TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN KHOA HỌC MÁY TÍNH
------------***------------
ĐỒ ÁN MÔN HỌC
LẬP TRÌNH ỨNG DỤNG DI ĐỘNG
ĐỀ TÀI : XÂY DỰNG ỨNG DỤNG MÁY TÍNH BỎ TÚI
Giáo viên hướng dẫn : TS. HỒ NGỌC VINH
Sinh viên: TRẦN THỊ THỦY
Lớp : ĐH CNTT K11Z
Vinh, năm 2019
TRƯỜNG ĐHSPKT VINH
KHOA CNTT
BỘ MÔN KHOA HỌC MÁY TÍNH
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
PHIẾU GIAO ĐỒ ÁN MÔN HỌC
MÔN HỌC: PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG
Họ tên sinh viên hoặc nhóm sinh viên:
STT
Họ và tên
MSSV
1
Hoàng Thị Hà
1205190007
SĐT
Email
[email protected]
Lớp: DH CNTT K11Z
Ngày giao đề tài: 05/08/2019
Ngày hoàn thành: 30/11/2019
1.Tên đề tài: Lập trình ứng dụng máy tính bỏ túi
Yêu cầu: Xây dựng ứng dụng di động trên Android
1.2. Nhiệm vụ đồ án:
- Tìm hiểu về lý thuyết phát triển ứng dụng di động, SQLite, lập trình CSDL với
Android Studio
- Xây dựng ứng dụng máy tính bỏ túi với các chức năng: Cộng, Trừ, Nhân,
Chia, Log, Căn bậc 2, Căn bậc 3, Lũy thừa, Sin, Cos, Tan (tính theo góc rad).
- Viết chương trình thực hiện các chức năng trên
2. Báo cáo và chương trình:
- Báo cáo, thuyết minh: file word, file trình chiếu (PowerPoint)
- Mã nguồn: ghi vào đĩa CD.
3. Theo dõi quá trình thực hiện đồ án
Ngày
kiểm
tra
Tiến độ công việc (yêu cầu ghi
Nhận xét của
Chữ ký của
rõ các nội dung đã hoàn thành)
GVHD
GVHD
4. Điểm hướng dẫn (điểm chữ và số)
…………………………………………………………………
5. Đồng ý cho bảo vệ hay không đồng ý:
………………………………………………………….…..….
TRƯỞNG BỘ MÔN
GIÁO VIÊN HƯỚNG
DẪN
SINH VIÊN THỰC HIỆN
Nhận xét của giáo viên hướng dẫn
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
Nghệ An, Ngày Tháng
Năm 2019
Giáo Viên hướng dẫn
(Ký ghi rơ họ tên)
Nhận xét của giáo viên chấm
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
Nghệ An, Ngày Tháng
Năm 2019
Giáo Viên chấm
(Ký ghi rơ họ tên)
MỤC LỤC
LỜI NÓI ĐẦU ...................................................................................................... 1
LỜI CẢM ƠN ....................................................................................................... 2
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ..................................................................... 3
1.1. Sơ lược về các hệ điều hành trên điện thoại di động ..................................... 3
1.2. Lịch sử phát triển Android ............................................................................. 5
1.3. Vòng đời của một Activity ........................................................................... 13
1.4 Giao diện android .......................................................................................... 13
1.5. Các thành phần của một vòng đời ................................................................ 14
1.5.1. Activity ...................................................................................................... 14
1.5.2. Service ....................................................................................................... 15
1.5.3. View .......................................................................................................... 16
1.5.4. Một số control thường dùng ...................................................................... 18
1.6. Lưu trữ dữ liệu ............................................................................................. 21
1.6.1. SQLite ....................................................................................................... 22
2.1. Sơ lược về Android ...................................................................................... 24
2.2. Cài đặt android studio .................................................................................. 24
2.3 Tổng quan về Android................................................................................... 29
2.3.1 Tầng hạt nhân Linux .................................................................................. 30
2.3.2 Tầng Library ............................................................................................... 30
2.3.3 Phần Android runtime ................................................................................ 30
2.3.4 Tầng Application Famework...................................................................... 30
2.3.5 Tầng Application ........................................................................................ 31
CHƯƠNG 3: DEMO ỨNG DỤNG .................................................................... 32
3.1. Cài đặt ứng dụng .......................................................................................... 32
3.1.1. Đóng gói chương trình và chạy thử chương trình ..................................... 32
a. Môi trường cài đặt ........................................................................................... 32
3.2. Các giao diện chính của chương trình .......................................................... 34
3.2.1 Giao diện tính phép tính cộng, trừ, nhân, chia ........................................... 34
3.2.2: Code trong ứng dụng:................................................................................ 35
4. KẾT LUẬN .................................................................................................... 45
TÀI LIỆU THAM KHẢO ................................................................................... 46
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
LỜI NÓI ĐẦU
Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu những nãm 1990
và theo thời gian số lương các thuê bao cũng nhý các nhà cung cấp dịch vụ đi
động tại Việt Nam ngày càng tãng. Do nhu cầu trao đổi thông tin ngày càng tãng
và nhu cầu sử dụng sản phẩm công nghệ cao nhiều tính nãng, cấu hình cao, chất
lương tốt, kiểu dáng mẫu mà đẹp, phong phú nên nhà cung cấp phải luôn luôn
cải thiện, nâng cao những sản phẩm của mình. Do đó việc xây dựng các ứng
dụng cho điện thoại di động đang là một ngành công nghiệp mới đầy tiềm nãng
và hứa hẹn nhiều sự phát triển vươt bậc của ngành khoa học kĩ thuật.
Cùng với sự phát triển của thị trường điện thoại di động là sự phát triển
mạnh mẽ của xu hướng lập trình phần mềm ứng dụng cho các thiết bị di động.
Phần mềm, ứng dụng cho điện thoại di động hiện nay rất đa dạng và phong phú
trên các hệ điều hành di động cũng phát triển mạnh mẽ và đang thay đổi từ ngày.
Các hệ điều hành J2ME, Android, IOS, Hybrid, Web based Mobile Application
đã có rất phát triển trên thị trương truyền thông di động.
Trong vài nãm trở lại đây, hệ điều hành Android ra đời với sự kế thừa
những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công
nghệ tiên tiến nhất hiện nay, đã được nhà phát triển công nghệ rất nổi tiếng hiện
nay là Google. Android đã nhanh chóng là đối thủ cạnh tranh mạnh mẽ với các
hệ điều hành trước đó và đang là hệ điều hành di động của tương lai và được
nhiều người ưa chuộng nhất. Ngày nay, với sự phát triển nhanh chóng của xã
hội, nhu cầu cập nhật tin tức xã hội mọi lúc mọi nơi là rất cần thiết, vì vậy em đã
chọn đề tài “Tìm hiểu Android và xây dựng ứng dụng máy tính bỏ túi” với mục
đích nghiên cứu,tìm hiểu về hệ điều hành Android và xây dựng ứng dụng máy
tính bỏ túi để có thể đáp ứng đươc nhu cầu tính toán dễ dàng, tiện ích.
SVTH: Trần Thị Thủy
1
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn đến các thầy cô trong khoa Công Nghệ
Thông Tin, đặc biệt là thầy giáo ThS. Hồ NGỌC VINH, đã tận tình hướng dẫn
và giúp đỡ em trong suốt quá trình làm đồ án môn học. Với sự chỉ bảo của thầy,
em đã có những định hướng tốt trong việc triển khai và thực hiện các yêu cầu
trong quá trình làm đồ án môn học này.
Em xin cảm ơn những người thân và gia đình đã quan tâm, động viên và
luôn tạo cho em những điề u kiện tốt nhất trong suốt quá trình học tập và làm đồ
án.
Qua đây, một lần nữa em xin cảm ơn THẦY HỒ NGỌC VINH đã giúp
đỡ chúng em trong việc hoàn thành đồ án trên.
Em xin chân thành cảm ơn!
SVTH: Trần Thị Thủy
2
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Sơ lược về các hệ điều hành trên điện thoại di động
Ngày nay, khái niệm hệ điều hành không chỉ là trên máy tính mà còn
được mở rộng cho nhiều thiết bị điện tử khác chẳng hạng như điện thoại thông
minh (smart phone), các thiết bị cầm tay PDA v.v…
Như vậy hệ điều hành di động là hệ điều hành chạy trên hệ thống máy
có tính di động cao. Với đặc thù đó, hệ điều hành di động phải có những khả
năng đặc biệt mà những hệ điều hành thông thường không có được. Chẳng
hạn như nó phải chạy trên hệ thống máy có cấu hình máy hạn chế về tốc độ
bộ vi xử lý, bộ nhớ sử dụng, phải chạy được ổn định liên tục trong một thời
gian dài mà chỉ sử dụng một lượng điện năng nhỏ, trong suốt thời gian chạy
đó có thể duy trì các kết nối mạng không dây để đảm bảo liên lạc.
Một số hệ điều hành tiêu biểu:
Trên máy tính cá nhân: MS DOS, MS WINDOW, MACOS, LINUX,
UNIX
Trên điện thoại thông minh: Android, Sybian, Window Mobile, iPhone
OS, BlackBerry, S60, Bada OS, Palm OS..
Android
Android là hệ điều hành trên điện thoại di động phát triển bởi Google và
dựa trên nền tảng Linux. Trước đây, Android được phát triển bởi công ty liên
hợp Android (sau đó được Google mua lại vào năm 2005). Sự ra mắt của
Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết
bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn
thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương
lai.
Đối với các nhà phát triển, những người muốn xây dựng các ứng dụng di
động một cách nhanh chóng thì Android là một môi trường tuyệt vời để bắt đầu.
Nếu bạn có thể lập trình bằng Java và các ngôn ngữ JVM khác, thì bạn chỉ cần
SVTH: Trần Thị Thủy
3
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
tập trung vào việc nghiên cứu cách thức xây dựng ứng dụng và triển khai ứng
dụng từ đó. Tính linh hoạt của Android có nghĩa là bạn có thể dễ dàng áp dụng
và thử nghiệm với các công nghệ mới như HTML5 và PhoneGap. Và nền tảng
có mặt khắp nơi - cùng với Google Play - đảm bảo rằng các ứng dụng của bạn
sản xuất có thể được chia sẻ rộng rãi.
Vì tính linh hoạt, dễ sử dụng và phổ biến của Android mà nhóm chúng em
đã lựa chọn hệ điều hành Android để thực hiện chương trình “Quản lý nhà trọ”.
Symbian
Mobilephone-Symbian, hai từ trên “ghép” lại đã đem đến một thế hệ điện
thoại thông minhSmartphone. Symbian chính là tâm điểm của sự phát triển cho
thị trường di động. Hệ điều hành (HĐH) này ra đời đã góp phần tạo nên một bức
tranh đầy màu sắc cho thế giới mobile.
Các nhà sản xuất liên tục cho ra những mẫu điện thoại cực kỳ tối tân,
mạnh mẽ. Tuy Symbian chỉ mới được biết đến từ cuối thập niên 90, nhưng tuổi
đời phát triển của nó chẳng thua kém vòng đời phát triển của HĐH Windows mà
chúng ta đang sử dụng là bao. Tháng 6/1998, Symbian ra đời tại London (Anh),
tiền thân của sản phẩm này là một phần mềm của Psion. Sau đó, lần lượt Nokia,
Motorola, Ericsson đều mua cổ phần chung sở hữu sử dụng nền tảng này.
Windows Phone 7
Windows Phone 7 là một hệ điều hành di động được phát triển bởi
Microsoft, và là sự kế thừa để bởi nền tảng Windows Mobile. Nó ra mắt tại châu
Âu, Singapore và Úc vào ngày 21 Tháng Mười năm 2010, và tại Mỹ và Canada
vào ngày 08 Tháng Mười Một năm 2010, với châu Á có thể trong năm 2011.Với
Windows Phone 7, Microsoft cung cấp một Metro giao diện người dùng mới ,
tích hợp các hệ điều hành với các dịch vụ khác của Microsoft, và kế hoạch kiểm
soát chặt chẽ phần cứng mà nó chạy trên nền tảng này.
IOS
SVTH: Trần Thị Thủy
4
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
IOS là hệ điều hành của Apple. Ban đầu nó được cài tren điện thoại
Iphone,sau đó nó ddauw vào và trở thành hệ điều hành trên iPod
Touch, iPad và Apple TV. Apple không có phép hệ điều hành này chạy trên
phần cứng của bên thứ 3.
BlackBerry
Giống như Windows Mobile, những chiếc BlackBerry của RIM được chỉ
định là dành cho doanh nhân, nhưng gần đây đã có những thay đổi để hướng tới
người dùng bình dân. Nền tảng này tương đối trực quan và dễ sử dụng, cung cấp
cho người dùng một server e-mail, hỗ trợ việc gửi và nhận tin nhắn nhanh.
1.2. Lịch sử phát triển Android
Tổng công ty Android (Android, Inc.) được thành lập tại Palo Alto,
California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty
Danger),[20] Rich Miner (đồng sáng lập Tổng công ty Viễn thông Wildfire),
Nick Sears (từng là Phó giám đốc T-Mobile), và Chris White (trưởng thiết kế và
giao diện tại WebTV) để phát triển, theo lời của Rubin, "các thiết bị di động
thông minh hơn có thể biết được vị trí và sở thích của người dùng". Dù những
người thành lập và nhân viên đều là những người có tiếng tăm, Tổng công ty
Android hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang làm phần mềm
dành cho điện thoại di động. Trong năm đó, Rubin hết kinh phí. Steve Perlman,
một người bạn thân của Rubin, mang cho ông 10.000 USD tiền mặt nhưng từ
chối tham gia vào công ty. Google mua lại Tổng công ty Android vào ngày 17
tháng 8 năm 2005, biến nó thành một bộ phận trực thuộc Google. Những nhân
viên của chủ chốt của Tổng công ty Android, gồm Rubin, Miner và White, vẫn
tiếp tục ở lại công ty làm việc sau thương vụ này. Vào thời điểm đó không có
nhiều thông tin về Tổng công ty, nhưng nhiều người đồn đoán rằng Google dự
tính tham gia thị trường điện thoại di động sau bước đi này. Tại Google, nhóm
do Rubin đứng đầu đã phát triển một nền tảng thiết bị di động phát triển trên nền
nhân Linux. Google quảng bá nền tảng này cho các nhà sản xuất điện thoại và
các nhà mạng với lời hứa sẽ cung cấp một hệ thống uyển chuyển và có khả năng
SVTH: Trần Thị Thủy
5
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
nâng cấp. Google đã liên hệ với hàng loạt hãng phần cứng cũng như đối tác
phần mềm, bắn tin cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ
khác nhau. Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trường điện
thoại di động xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật báo
phố Wall chú thích rằng Google muốn công nghệ tìm kiếm và các ứng dụng của
họ vào điện thoại di động và họ đang nỗ lực làm việc để thực hiện điều này. Các
phương tiện truyền thông truyền thống lẫn online cũng viết về tin đồn rằng
Google đang phát triển một thiết bị cầm tay mang thương hiệu Google. Một vài
tờ báo còn nói rằng trong khi Google vẫn đang thực hiện những bản mô tả kỹ
thuật chi tiết, họ đã trình diễn sản phẩm mẫu cho các nhà sản xuất điện
thoại di động và nhà mạng. Tháng 9 năm 2007, InformationWeek đăng tải một
nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng
sáng chế trong lĩnh vực điện thoại di động. Ngày 5 tháng 11 năm 2007, Liên
minh thiết bị cầm tay mở (Open Handset Alliance), một hiệp hội bao gồm nhiều
công ty trong đó có Texas Instruments, Tập đoàn Broadcom, Google, HTC,
Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm,
Samsung Electronics, Sprint Nextel và T-Mobile được thành lập với mục đích
phát triển các tiêu chuẩn mở cho thiết bị di động. Cùng ngày, Android cũng
được ra mắt với vai trò là sản phẩm đầu tiên của Liên minh, một nền tảng thiết
bị di động được xây dựng trên nhân Linux phiên bản 2.6. Chiếc điện thoại chạy
Android đầu tiên được bán ra là HTC Dream, phát hành ngày 22 tháng 10 năm
2008. Biểu trưng của hệ điều hành Android mới là một con rôbốt màu xanh lá
cây do hãng thiết kế Irina Blok tại California vẽ. Từ năm 2008, Android đã trải
qua nhiều lần cập nhật để dần dần cải tiến hệ điều hành, bổ sung các tính năng
mới và sửa các lỗi trong những lần phát hành trước. Mỗi bản nâng cấp được đặt
tên lần lượt theo thứ tự bảng chữ cái, theo tên của một món ăn tráng miệng; ví
dụ như phiên bản 1.5 Cupcake (bánh bông lan nhỏ có kem) tiếp nối bằng phiên
bản 1.6 Donut (bánh vòng). Phiên bản mới nhất hiện nay là 5.0 Lollipop. Vào
năm 2010, Google ra mắt loạt thiết bị Nexus—một dòng sản phẩm bao gồm điện
SVTH: Trần Thị Thủy
6
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
thoại thông minh và máy tính bảng chạy hệ điều hành Android, do các đối tác
phần cứng sản xuất. HTC đã hợp tác với Google trong chiếc điện thoại thông
minh Nexus đầu tiên, Nexus One. Kể từ đó nhiều thiết bị mới hơn đã gia nhập
vào dòng sản phẩm này, như điện thoại Nexus 4 và máy tính bảng Nexus 10, lần
lượt do LG và Samsung sản xuất. Google xem điện thoại và máy tính bảng
Nexus là những thiết bị Android chủ lực của mình, với những tính năng phần
cứng và phần mềm mới nhất của Android. Năm 2014, Google công báo Android
Wear, hệ điều hành dành cho các thiết bị đeo được
Android – hệ điều hành dành cho điện thoại di động được phát triển
bởi Google và ngày càng trở nên phổ biến với các hãng liên tục ra mắt các
mẫu điện thoại sử dụng Android.
Giao diện màn hình khóa (Android 2.2) Giao diện màn hình chính (Android 2.2)
Android được xây dựng trên nhân linux và được phân phối miễn phí.
Không giống như Windows mobile và Apple iPhone, tuy cả hai đều cung cấp
môi trường phát triển ứng dụng phong phú và đơn giản dễ tiếp cận nhưng luôn
có sự ưu tiên cho các ứng dụng mặc định có sẵn của hệ điều hành (native
SVTH: Trần Thị Thủy
7
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
applications). Với Android mọi ứng dụng đều được viết trên cùng một tập API,
thế nên không có sự phân biệt giữa các ứng dụng mặc định và các ứng dụng của
bên thứ ba. Người dùng hoàn toàn có thể thay thế mọi ứng dụng mặc định bằng
các ứng dụng yêu thích của mình, thậm chí ngay cả màn hình thực hiện cuộc gọi
mà màn hình nhà (home scream).
Các nhà phát triển ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra
mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập liên minh
thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng và phần mềm
viễn thông nhằm mục đích tạo nên chuẩn mở cho điện thoại di động trong
tương lai. Google công bố hầu hết các mã nguồn Android theo bản cấp phép
Apache.
Các thành viên của liên minh di động mở
Các ứng dụng có sẵn trên Android
SVTH: Trần Thị Thủy
8
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
Một điện thoại Android thông thường sẽ đi kèm với một vài ứng dụng có
sẵn, bao gồm:
* Một trình email tương thích với Gmail
* Chương trình quản lý tin nhắn SMS
* Chương trình quản lý thông tin cá nhân, bao gồm cả lịch làm việc, danh
bạ và được đồng bộ hóa với dịch vụ Google
* Phiên bản thu gọn của Google Map cho điện thoại, bao gồm StreetView,
tìm kiếm địa chỉ, chỉ đường, tình trạng giao thông…
* Trình duyệt Web dựa trên nhân Webkit.
* Chương trình tán gẫu (Chat).
* Trình đa phương tiện (chơi nhạc, xem phim…).
* Android MarketPlace cho phép người dùng tải về và cài đặt các ứng dụng
mới.
Tất cả các ứng dụng có sẵn đều được viết bằng ngôn ngữ Java và sử dụng
Android SDK.Các dữ liệu về thông tin người dùng được các ứng dụng có sẵn sử
dụng như thông tin về danh bạ vẫn hoàn toàn có thể được sử dụng bởi các ứng
dụng của bên thứ ba. Tương tự vậy, ứng dụng của bạn hoàn toàn có thể xử lý các
sự kiện như các cuộc gọi đến, nhận một tin nhắn mới… thay cho các ứng dụng
có sẵn.
Truy cập phần cứng
Android bao gồm các thư viện API giúp đơn giản hóa tối đa việc sử dụng
phần cứng của thiết bị. Điều đó đảm bảo rằng bạn không cần phải bận tâm nhiều
đến việc ứng dụng của mình có thể chạy như mong đợi trên nhiều thiết bị khác
nhau hay không, miễn là thiết bị đó có hỗ trợ Android.
Android SDK bao gồm các API cho phần cứng:GPS, Camera, kết nối
mạng, WIFI, Bluetooth, con quay gia tốc, màn hình cảm ứng, quản lý năng
lượng…
Dịch vụ chạy nền
SVTH: Trần Thị Thủy
9
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
Android hỗ trợ các ứng dụng và dịch vụ được thiết kế chạy ẩn. Do kích
thước nhỏ của màn hình điện thoại nên tại một thời điểm chỉ có thể thấy một
ứng dụng. Dịch vụ chạy nền giúp tạo ra các thành phần ứng dụng “vô hình” để
thực hiện tự động một tác vụ nào đó mà không cần phải có sự tương tác của
người dùng. Ví dụ như một dịch vụ chạy nền có chức năng chặn cuộc gọi đến
đối với các số điện thoại có trong “black list” chẳng hạn.
SQLite Database
Bởi vì tính chất nhỏ gọn và bị hạn chế về phần cứng của điện thoại di động,
cho nên đòi hỏi việc lưu trữ và truy xuất dữ liệu phải nhanh chóng và hiệu quả.
Android hỗ trợ hệ quản trị nhỏ gọn SQLite, và cung cấp cho ứng dụng các API để
thao tác. Mặc định mỗi ứng dụng đều được chạy trong SandBox (hộp cát) điều này
có nghĩa là nội dung của từng database ứng với từng ứng dụng chỉ có thể truy cập
bằng chính ứng dụng đó. Tuy nhiên cũng có các cơ chế để các ứng dụng chia sẽ,
trao đổi các database với nhau.
Tối ưu hóa bộ nhớ và quản lý tiến trình
Việc quản lý bộ nhớ và tiến trình trong Android cũng có một chút khác
biệt giốn như công nghệ Java và .NET, Android sử dụng một bộ Run-time của
riêng mình với công nghệ ảo hóa để quản lý bộ nhớ của các ứng dụng đang
chạy. Không giống như những nền tản khác, Android Run-time cũng đồng thời
quản lý luôn cả thời gian sống của ứng dụng. Android đảm bảo các ứng dụng
đều được đáp ứng bằng cách dừng và hủy các tiến trình không cần thiết để giải
phóng các tài nguyên cho các tiến trình có độ ưu tiên cao hơn.
Android software development kit (SDK)
Bộ SDK của Android bao gồm mọi thứ cần thiết giúp bạn có thể lập trình,
debug, test ứng dụng Android.
* Android API: Cốt lơi của bộ SDK là thư viện các hàm API và Google
cũng chỉ sử dụng bộ API này để xây dựng các ứng dụng có sẵn cho
Android.
SVTH: Trần Thị Thủy
10
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
* Android Emulator: Trình giả lập thiết bị chạy Android thực sự với nhiều
Skin thay thế, cực kì tiện lợi cho việc test ứng dụng Android ngay trên máy tính
mà không cần phải thông qua một thiết bị chạy Android thực.
* Tài liệu: SDK bao gồm một bộ tài liệu rất chi tiết, giải thích cặn kẽ
chính xác những gì bao gồm trong mỗi page, class cùng với cách sử dụng chúng.
Ngoài tài liệu về “code”, còn có những tài liệu dùng để “getting started” và giải
thích các nguyên tắc và cơ chế hoạt động của ứng dụng trong Android.
* Code mẫu: SDK bao gồm các ứng dụng mẫu đơn giản minh họa cho các
tính năng nổi bật trên Android, cũng như các ứng dụng demo cách sử dụng các
tính năng của bộ API.
Kiến trúc ứng dụng
Ý tưởng của Android là việc khuyến khích tái sử dụng lại các thành phần
đã có, cho phép ứng dụng của bạn có thể chia sẻ Activity, Service, Dữ liệu với
các ứng dụng khác nhau trong giới hạn bạn đặt ra.
Sau đây là kiến trúc của mọi ứng dụng Android:
- Activity Manager: Kiểm soát vòng đời của Activity.
- View: Xây dựng giao diện người dùng cho Activity.
- Notification Manager: Cung cấp một cơ chế thống nhất và an toàn để
ứng dụng có thể đưa ra các thông báo cho người dùng.
- Content Provider: Giúp trao đổi và chia sẽ dữ liệu giữa các ứng dụng với
nhau.
- Resource Manager: Hỗ trợ quản lý các tài nguyên không là code như
các chuỗi, hình ảnh, và âm thanh…
Các thư viện của Android
Android cung cấp các gói API để phát triển ứng dụng. Sau đây là các API
mà tất cả các thiết bị Android đều tối thiểu phải hỗ trợ để giúp cho chúng ta một
cái nhìn tổng quát về thư viện này.
- Android.util: Gói API lơi, chứa các class cấp thấp như container, string
formatter, XML parsing.
SVTH: Trần Thị Thủy
11
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
- Android.os: Truy cập tới chức năng của hệ điều hành như : gởi nhận tin
nhắn, giao tiếp nội bộ giữa các ứng dụng, thời gian…
- Android.graphics: Cung cấp các lớp liên quan tới xử lý đồ họa ở mức
thấp. Hỗ trợ các hàm cơ bản như vẽ điểm, vẽ miền, tô màu.. trên khung canvas.
- Android.text: Cung cấp các hàm phân tích và xử lý chuỗi.
- Android.database: Cung cấp các lớp cấp thấp cần thiết để làm việc với
database.
- Android.content: Dùng để quản lý các tài nguyên, các nội dung và các
gói.
- Android.view: Views là lớp cha của mọi lớp giao diện người dùng.
- Android.widget: Được thừa kế từ lớp View, bao gồm các lớp cơ bản để
xây dựng giao diện widget như: list, button, layout..
- Android.map: Gói API cấp cao, dùng để truy cập tới các chức năng của
GoogleMap.
- Android.app: Gói API cấp cao, bao gồm các Activity và Service – hai
lớp cơ sở cho mọi ứng dụng Android.
- Android.telephony: Cung cấp cho bạn khả năng tương tác trực tiếp với
các chức năng cơ bản của một điện thoại như nghe, gọi, tin nhắn
- Android.webkit: Cung cấp một webView control trên nền webkit để có
thể nhúng ứng dụng, cùng với các API điều khiển cơ bản như stop, refresh,
cookieManager…
SVTH: Trần Thị Thủy
12
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
1.3. Vòng đời của một Activity
Chu kỳ sống của Activity
Một Activity chủ yếu có 3 chu kỳ chính sau:
- Active hoặc running: Khi Activity là được chạy trên màn hình. Activity
này tập trung vào những thao tác của người dùng trên ứng dụng.
- Paused: Activity là được tạm dừng (paused) khi mất focus nhưng người
dùng vẫn trông thấy. Có nghĩa là một Activity mới ở trên nó nhưng không bao
phủ đầy màn hình. Một Activity tạm dừng là còn sống nhưng có thể bị kết thúc
bởi hệ thống trong trường hợp thiếu vùng nhớ.
- Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác. Nó vẫn còn trạng
thái và thông tin thành viên trong nó. Người dùng không thấy nó và thường bị
loại bỏ trong trường hợp hệ thống cần vùng nhớ cho tác vụ khác.
1.4 Giao diện android
Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp,
sử dụng cảm ứng chạm tương tự như những động tác ngoài đời thực như vuốt,
chạm, kéo giãn và thu lại để xử lý các đối tượng trên màn hình. Sự phản ứng với
tác động của người dùng diễn ra gần như ngay lập tức, nhằm tạo ra giao diện
cảm ứng mượt mà, thường dùng tính năng rung của thiết bị để tạo phản
hồi rung cho người dùng. Những thiết bị phần cứng bên trong như gia tốc kế,
con quay hồi chuyển và cảm biến khoảng cách được một số ứng dụng sử dụng
SVTH: Trần Thị Thủy
13
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
để phản hồi một số hành động khác của người dùng, ví dụ như điều chỉnh màn
hình từ chế độ hiển thị dọc sang chế độ hiển thị ngang tùy theo vị trí của thiết bị,
hoặc cho phép người dùng lái xe đua bằng xoay thiết bị, giống như đang điều
khiển vôlăng. Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính,
điểm khởi đầu với các thông tin chính trên thiết bị, tương tự như khái niệm
desktop (bàn làm việc) trên máy tính để bàn. Màn hính chính Android thường
gồm nhiều biểu tượng (icon) và tiện ích (widget); biểu tượng ứng dụng sẽ mở
ứng dụng tương ứng, còn tiện ích hiển thị những nội dung sống động, cập nhật
tự động như dự báo thời tiết, hộp thư của người dùng, hoặc những mẩu tin thời
sự ngay trên màn hình chính. Màn hình chính có thể gồm nhiều trang xem được
bằng cách vuốt ra trước hoặc sau, mặc dù giao diện màn hình chính của Android
có thể tùy chỉnh ở mức cao, cho phép người dùng tự do sắp đặt hình dáng cũng
như hành vi của thiết bị theo sở thích. Những ứng dụng do các hãng thứ ba có
trên Google Play và các kho ứng dụng khác còn cho phép người dùng thay đổi
"chủ đề" của màn hình chính, thậm chí bắt chước hình dáng của hệ điều hành
khác như Windows Phone chẳng hạn. Phần lớn những nhà sản xuất, và một số
nhà mạng, thực hiện thay đổi hình dáng và hành vi của các thiết bị Android của
họ để phân biệt với các hãng cạnh tranh. Ở phía trên cùng màn hình là thanh
trạng thái, hiển thị thông tin về thiết bị và tình trạng kết nối. Thanh trạng thái
này có thể "kéo" xuống để xem màn hình thông báo gồm thông tin quan trọng
hoặc cập nhật của các ứng dụng, như email hay tin nhắn SMS mới nhận, mà
không làm gián đoạn hoặc khiến người dùng cảm thấy bất tiện. Trong các phiên
bản đời đầu, người dùng có thể nhấn vào thông báo để mở ra ứng dụng tương
ứng, về sau này các thông tin cập nhật được bổ sung theo tính năng, như có khả
năng lập tức gọi ngược lại khi có cuộc gọi nhỡ mà không cần phải mở ứng dụng
gọi điện ra. Thông báo sẽ luôn nằm đó cho đến khi người dùng đã đọc hoặc xóa
nó đi.
1.5. Các thành phần của một vòng đời
1.5.1. Activity
SVTH: Trần Thị Thủy
14
Xây Dựng Ứng Dụng Máy Tính Bỏ Túi Trên Android
Là thành phần tối quan trọng của bất kỳ một ứng dụng Android nào.
Thuật ngữ Activity chỉ một việc mà người dùng có thể thực hiện trong một ứng
dụng Android. Do gần như mọi activity đều tương tác với người dùng, lớp
Activity đảm nhận việc tạo ra một cửa sổ (window) để người lập trình đặt lên đó
một giao diện UI với setContentView(View). Một activity có thể mang nhiều
dạng khác nhau: Một cửa sổ toàn màn hình (full screen window), một cửa sổ
floating (với windowsIsFloating) hay nằm lồng bên trong 1 activity khác (với
ActivityGroup).
Có 2 phương thức mà gần như mọi lớp con của Activity đều phải hiện
thực:
- onCreate(Bundle) - Nơi khởi tạo activity. Quan trọng hơn, đây chính
người lập trình gọi setContentView(int) kèm theo layout để thể hiện UI của
riêng mình. Đồng thời còn có findViewById(int) giúp gọi các widget (buttons,
text boxes, labels,..) để dùng trong UI.
- onPause() - Nơi giải quyết sự kiện người dùng rời khỏi activity. Mọi dữ
liệu được người dùng tạo ra tới thời điểm này cần phải được lưu vào
Để có thể sử dụng Context.startActivity(), mọi lớp
ContentProvider.
activity
đều
phải
được
khai
báo
với
tag
trong
file
AndroidManifest.xml.
thi hiệu quả cho Intent đó.
1.5.2. Service
Một service là một thành phần của ứng dụng, thể hiện mong muốn ứng
dụng thực hiện các hành động trong khi không tương tác với người dùng hoặc
cung cấp chức năng cho các ứng dụng khác sử dụng. Nói một cách đơn giản,
service là các tác vụ (task) chạy ngầm dưới hệ thống nhằm thực hiện một nhiệm
vụ nào đó. Mỗi class Service phải chứa thẻ được khai báo trong file
AndroidManifext.xml. Services có thể được bắt đầu bởi Context.startService()
và Context.bindservice().
SVTH: Trần Thị Thủy
15