TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU VỀ ANDROID VÀ SQLITE
ỨNG DỤNG XÂY DỰNG CHƯƠNG
TRÌNH QUẢN LÝ VÀ NGHE NHẠC
Sinh viên thực hiện
Cán bộ hướng dẫn
Hồ Bình Tân
ThS. Phan Phương Lan
MSSV: 1081426
MSCB: 1232
Cần Thơ, 2012
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU ANDROID VÀ SQLITE
ỨNG DỤNG XÂY DỰNG CHƯƠNG
TRÌNH QUẢN LÝ VÀ NGHE NHẠC
Sinh viên thực hiện
Cán bộ hướng dẫn
Hồ Bình Tân
ThS. Phan Phương Lan
MSSV: 1081426
MSCB: 1232
Cán bộ phản biện
ThS. Trương Thị Thanh Tuyền
ThS. Phan Huy Cường
ThS. Phan Phương Lan
Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Công nghệ
phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Cần Thơ vào ngày 10
tháng 05 năm 2012.
Mã số đề tài:…………..
LỜI CẢM ƠN
Trƣớc tiên, con xin bày tỏ lòng cảm ơn tới gia đình, đặc biệt là đối với cha mẹ
đã sinh ra, nuôi dƣỡng và cho con ăn học đến ngày nay. Và em xin bày tỏ lòng biết
ơn chân thành và sâu sắc nhất tới cô Phan Phƣơng Lan đã tạo điều kiện cho em
thực hiện đề tài này và tận tình hƣớng dẫn em trong suốt quá trình thực hiện đề tài.
Em xin gửi lời cảm ơn sâu sắc tới quý Thầy Cô trong Khoa Công nghệ thông
tin và Truyền thông Trƣờng Đại Học Cần Thơ đã truyền đạt kiến thức quý báu cho
chúng em trong những năm học vừa qua.
Xin chân thành cảm ơn các bạn bè, đặc biệt là các thành viên trong lớp Kỹ
Thuật Phần Mềm 1-K34 đã ủng hộ, giúp đỡ em trong suốt thời gian học tập trên
giảng đƣờng Đại Học và thực hiện đề tài.
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép
nhƣng chắc chắn sẽ không tránh khỏi những thiếu sót. Em kính mong nhận đƣợc sự
cảm thông và tận tình chỉ bảo của quý Thầy Cô và các Bạn.
Em xin chân thành cảm ơn!
Cần Thơ, ngày 16, tháng 4, năm 2012
Sinh viên
Hồ Bình Tân
TÓM TẮT
Ngày nay các thiết bị cầm tay càng trở lên phổ biến, giá thành ngày càng. Cùng với
đó là sự ra đời của hệ điều hành mã nguồn mở Android có khả năng tùy biến cao, có
thể coi đây là một bƣớc tiến lớn trong lĩnh vực công nghệ. Vì vậy, việc xây dựng
các ứng dụng trên các thiết bị di động sử dụng hệ điều hành Adroid đƣợc rất nhiều
nhà phát triển quan tâm. Trong luận văn của mình tôi sẽ thực hiện tìm hiểu về hệ
điều hành mở Android, cách lập trình cho Android bằng Eclipse, SQLite trên
Android .Trên cơ sở lý thuyết tiếp thu đƣợc, tôi xây dựng một chƣơng trình quản lý
việc nghe nhạc cung cấp các chức năng: phát nhạc, chỉnh sửa thông tin về bài
hát(tựa đề, album, nhạc sỹ, ca sỹ), xóa bài hát, tạo và chỉnh sửa danh sách nhạc,
xem thống kê về các bài hát, ca sỹ, album có bài hát đƣợc chơi nhiều nhất trong
tuần.
ABSTRACT
Nowaday handheld devices become more common as well as more low cost.
Beside that, the open source operating system Android supports a lot of highly
customizable capabilities. So that, many software developers are interested in
developing applications running on mobile devices using Android. In my thesis, I
will study about operating system Android, how to program with Eclipse, SQLite
on Android. On the basis of acquired knowledge, I build a program to provide
features such as play music, edit the song information (title, album, composers,
singers), delete songs, create and edit playlists, view statistics on songs, singers,
albums that are most played in week.
MỤC LỤC
MỤC LỤC .............................................................................................................. i
DANH MỤC HÌNH ............................................................................................. iii
DANH MỤC TỪ VIẾT TẮT ............................................................................... iv
CHƢƠNG I: TỔNG QUAN ..................................................................................1
1.1 ĐẶT VẤN ĐỀ ............................................................................................1
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ .............................................................1
1.3 PHẠM VI CỦA ĐỀ TÀI ............................................................................1
1.4 PHƢƠNG PHÁP NGHIÊN CỨU ...............................................................2
1.4.1 VỀ LÝ THUYẾT ....................................................................................2
1.4.2 VỀ ỨNG DỤNG ..................................................................................2
CHƢƠNG II: CỞ SỞ LÝ THUYẾT .....................................................................3
2.1 HỆ ĐIỀU HÀNH ANDROID .....................................................................3
2.1.1 LỊCH SỬ PHÁT TRIỂN HỆ ĐIỀU HÀNH ANDROID ..........................3
2.1.2 MÁY ẢO DALVIK ................................................................................4
2.1.3 KIẾN TRÚC CỦA ANDROID ...............................................................4
2.1.4 NHỮNG ĐẶC TÍNH CỦA HỆ ĐIỀU HÀNH ANDROID ......................7
2.1.5 CHU KỲ ỨNG DỤNG ANDROID .........................................................8
2.1.6 CÁC THÀNH PHẦN CỦA ỨNG DỤNG ANDROID .......................... 11
2.1.7 NỀN TẢNG ĐỂ PHÁT TRIỂN ỨNG DỤNG TRÊN ANDROID ......... 25
2.2 CHƢƠNG TRÌNH MÔ PHỎNG THIẾT BỊ SỬ DỤNG HỆ ĐIỀU HÀNH
ANDROID TRÊN ECLIPSE (ANDROID EMULATOR) .................................26
2.3 CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT ................... 27
2.3.1 AndroidManifest.xml ............................................................................ 27
2.3.2 File R.java ............................................................................................. 28
2.4 HỆ QUẢN TRỊ CSDL SQLITE .................................................................29
2.4.1 GIỚI THIỆU VỀ SQLITE ..................................................................... 29
2.4.2 ƢU NHƢỢC ĐIỂM CỦA HỆ QUẢN TRỊ CSDL SQLITE................... 29
2.4.3 THAO TÁC VỚI SQLITE TRONG ANDROID ................................... 29
CHƢƠNG III: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU .............................. 32
3.1 ĐẶC TẢ ................................................................................................... 32
3.1.1 Mục tiêu ................................................................................................ 32
3.1.2 Các yêu cầu chức năng .......................................................................... 32
3.1.3 Các yêu cầu phi chức năng .................................................................... 36
3.2 THIẾT KẾ ................................................................................................ 36
3.2.1 Mục tiêu ................................................................................................ 36
3.2.2 Thiết kế kiến trúc .................................................................................. 36
3.2.3 Thiết kế dữ liệu ..................................................................................... 38
3.2.4 Thiết kế chức năng ................................................................................ 40
3.3 KIỂM THỬ .............................................................................................. 50
3.3.1 Mục đích ............................................................................................... 50
3.3.2 Môi trƣờng kiểm thử ............................................................................. 50
3.3.3 Các trƣờng hợp kiểm thử (Test case) ..................................................... 50
i
KẾT LUẬN VÀ ĐỀ NGHỊ .................................................................................. 54
1.
KẾT QUẢ ĐẠT ĐƢỢC ........................................................................... 54
Về lý thuyết: ..................................................................................................54
Về chƣơng trình: ............................................................................................ 54
Về kỹ năng: .................................................................................................... 54
2.
HẠN CHẾ ................................................................................................ 54
3.
HƢỚNG PHÁT TRIỂN ............................................................................ 54
TÀI LIỆU THAM KHẢO ................................................................................... 55
INDEX .................................................................................................................. 55
GVHD: Th.S Phan Phƣơng Lan
ii
SVTH: Hồ Bình Tân - 1081426
DANH MỤC HÌNH
Hình 1: Lịch sử hình thành android ..........................................................................3
Hình 2: Cấu trúc stack hệ thống Android .................................................................5
Hình 3: Hệ điều hành Android .................................................................................7
Hình 4: Chu kỳ sống các thành phần trong android ..................................................9
Hình 5: Activity Stack ........................................................................................... 10
Hình 6: Các phƣơng thức cơ bản trong chu kỳ sống ............................................... 11
Hình 7: Vòng đời của một Activity ........................................................................ 12
Hình 8: Thực đơn(Menu) ....................................................................................... 15
Hình 9: Bề Mặt(Surface) ........................................................................................ 15
Hình 10: Lƣợc đồ trạng thái ................................................................................... 16
Hình 11: Service life cycle ..................................................................................... 19
Hình 12: Cấu trúc tiệp XML định nghĩa các giá trị ................................................ 20
Hình 13: Cấu trúc tiệp XML khai báo một ListView .............................................. 21
Hình 14: XML hiển thị một TextView ................................................................... 21
Hình 15: Hiển thị một TextView trên thiết bị ......................................................... 21
Hình 16: XML thể hiện một Button ....................................................................... 22
Hình 17: Tiệp java kết nối và thực thi hành động click vào button ......................... 22
Hình 18: Hiển thị của button .................................................................................. 23
Hình 19: XML thể hiện ImageButton..................................................................... 23
Hình 20: Tiệp java thực thi hành động click vào ImageButton ............................... 24
Hình 21: Hiển thị của ImageButton........................................................................ 24
Hình 22: XML thể hiện ListView .......................................................................... 24
Hình 23: Hiển thị của ListLiew .............................................................................. 25
Hình 24: Android Emulator ................................................................................... 26
Hình 25: Sơ đồ hoạt động của ứng dụng ................................................................ 37
Hình 26: Sơ đồ giữa các giao diện trong ứng dụng ................................................. 38
Hình 27: Mô Hình MCD ........................................................................................ 39
Hình 28: Chức năng tìm kiếm ................................................................................ 41
Hình 29: kết quả tìm kiếm...................................................................................... 41
Hình 30: Cách xử lý chức năng tìm kiếm ............................................................... 42
Hình 31: Chức năng Chỉnh sửa thông tin bài hát .................................................... 43
Hình 32: Cách xử lý việc chỉnh sửa thông tin bài hát ............................................. 44
Hình 33: Mục chọn xóa bài hát .............................................................................. 45
Hình 34: Thông báo xóa bài hát ............................................................................. 45
Hình 35: Cách xử lý xóa bài hát ............................................................................. 46
Hình 36: Giao diện phát nhạc................................................................................. 47
Hình 37: Giao diện chọn xem thống kê ..................................................................48
Hình 38: Giao diện hiển thị xem thống kê ca sỹ ..................................................... 48
Hình 39: Cách xử lý xem thống kê ......................................................................... 49
GVHD: Th.S Phan Phƣơng Lan
iii
SVTH: Hồ Bình Tân - 1081426
DANH MỤC TỪ VIẾT TẮT
Giải thích
Ký hiệu
ADT
API
Tiếng Anh
Tiếng Việt
Công cụ phát triển ứng dụng Android
Android Deverloper Tool
Application Programming
Interface
Giao diện lập trình ứng dụng
Cơ sở dữ liệu
CSDL
OHA
SDK
UI
Integrated Development
Enveronment
Open Handset Alliance
Software Development Kit
User Interface
USB
Universal Serial Bus
VM
Virtual Machine
EXtensible Markup
Language
IDE
XML
GVHD: Th.S Phan Phƣơng Lan
Môi trƣờng phát triển tích hợp
Liên minh thiết bị cầm tay mã nguồn mở
Bộ công cụ phát triển phần mềm
Giao diện ngƣời sử dụng
Một chuẩn kết nối tuần tự trong máy
tính
Máy ảo
Ngôn ngữ đánh dấu mở rộng
iv
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
CHƢƠNG I: TỔNG QUAN
ĐẶT VẤN ĐỀ
Hiện nay, các lĩnh vực về công nghệ thông tin đang phát triển rất nhanh và ngày càng
phổ biến trong đời sống con ngƣời, đặc biệt về lĩnh vực điện thoại di động khi hầu hết ai
cũng có một chiếc điện thoại bên mình để phục vụ cho vệc liên lạc, học tập và giải trí. Từ
khi có sự xuất hiện hệ điều hành android thì chi phí cho việc sản xuất cho một chiếc smart
phone cũng giãm xuống nên việc sở hữu một chiếc smart phone không còn khó.
Android hiện đang chiếm dần sự ƣa chuộng của ngƣời dung điện thoại tại Việt Nam.
Tuy nhiên các ứng dụng do ngƣời Việt tạo ra chƣa nhiều và các ứng dụng còn khá ít chức
năng, chẳng hạn nhƣ ứng dụng nghe nhạc chƣa đáp ứng đủ các chức năng nhƣ: thống kê
các bài hát nghe nhiều, chỉnh sửa các phần thông tin bị sai về tên bài hát, ca sỹ, album.
Chính vì vậy tôi quyết định chọn đề tài tìm hiểu về hệ điều hành Android để xây dựng ứng
dụng quản lý nghe nhạc có giao diện tiếng Việt và có bổ sung các tính năng nhƣ trên mà
các ứng dụng hiện tại chƣa đáp ứng đầy đủ.
1.1
LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Qua tìm hiểu trên mạng internet thì trên thế giới đã có rất nhiều ứng dụng nghe nhạc
rất hay của các hang nổi tiếng nhƣ: RealPlayer, MortPlayer, Cubed. Các ứng dụng này đều
là các phần mềm mã nguồn đóng, có các chức năng đã đáp ứng đƣợc các nhu cầu về nghe
nhạc của ngƣời dùng. Nhƣng đa số đều chƣa có chức năng thống kê các bài hát, ca sỹ
đƣợc chơi nhiều nhất theo tuần, tháng.
Còn ở Việt Nam, hiện chƣa thấy có ứng dụng nghe nhạc nào có các chức năng nêu
trên và cũng chƣa tìm kiếm đƣợc phần mềm nào cụ thể.
1.2
PHẠM VI CỦA ĐỀ TÀI
- Nghiên cứu lý thuyết về: hệ điều hành Andoid, hệ quản trị CSDL SQLite trên
Android.
- Ứng dụng nhằm phục vụ cho tất cả những ai có nhu cầu nghe nhạc trên máy điện
thoại sử dụng hệ điều hành Android. Đây là ứng dụng độc lập chạy trên điện thoại có hệ
điều hành Android phiên bản từ 2.3.3 trở lên.
- Các chức năng chính của ứng dụng cần đạt đƣợc:
o Tạo danh sách bài hát
o Thêm bài hát vào danh sách
o Tìm bài hát
o Xem thống kê
o Chơi một bài hát hoặc danh sách đƣợc chọn
o Chỉnh sửa thông tin bài hát
o Xóa bài hát
1.3
GVHD: Th.S Phan Phƣơng Lan
1
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
1.4
PHƢƠNG PHÁP NGHIÊN CỨU
1.4.1 VỀ LÝ THUYẾT
- Tìm hiểu về các tài liệu, ebook nói về cấu trúc hệ điều hành Android, SQLite,
phƣơng pháp lập trình Android trên Eclipse qua mạng internet.
- Xây dựng các ứng dụng mẫu để hiểu rõ cách lập trình.
- Tìm hiểu về cách lập trình cho một ứng dụng chơi nhạc trên Android.
1.4.2 VỀ ỨNG DỤNG
- Xây dựng mô hình cơ sở dữ liệu phục vụ cho việc lƣu trữ danh sách bài hát do
ngƣời dùng tạo, lịch sử phát nhạc để phục vụ cho việc thống kê.
- Áp dụng những kiến thức đã nghiên cứu đƣợc vào xây dựng ứng dụng quản lý nghe
nhạc.
- Tìm hiểu về các phần mềm mô phỏng điện thoại Android phục vụ cho việc kiểm
thử và chạy demo.
GVHD: Th.S Phan Phƣơng Lan
2
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
CHƢƠNG II: CỞ SỞ LÝ THUYẾT
2.1
HỆ ĐIỀU HÀNH ANDROID
2.1.1 LỊCH SỬ PHÁT TRIỂN HỆ ĐIỀU HÀNH ANDROID
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên nền Linux, do công ty
Android Inc.(California, Mỹ) thiết kế. Công ty này sau đó đƣợc Google mua lại vào năm
2005 và bắt đầu xây dựng Android Platform. Các thành viên chủ chốt ở Android Inc. gồm
có: Andy Rubin, Rich Miner, Nick Sears, and Chris White.
Hình 1: Lịch sử hình thành android
Sau tiếp, vào cuối năm 2007, thuộc về OHA gồm các thành viên nổi bật trong ngành
viễn thông và thiết bị cầm tay nhƣ: Texas Instruments, Broadcom Corporation, Google,
HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung
Electronics, Sprint Nextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek
Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone
Group,…
Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu
ngƣời tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android. Android đƣợc thiết
kế để phục vụ nhu cầu của các nhà sản xuất thiết bị, các nhà khai thác và các lập trình viên
thiết bị cầm tay.
Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hảng T-Mobile cũng
công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu
GVHD: Th.S Phan Phƣơng Lan
3
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
tiên dựa trên nền tảng Android. Một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt
phiên bản Android SDK release Candidate 1.0. Trong tháng 10 năm 2008, Google đƣợc
cấp giấy phép mã nguồn mở cho Android Platform.
Khi Android đƣợc phát hành thì một trong số các mục tiêu trong kiến trúc của nó là
cho phép các ứng dụng có thể tƣơng tác đƣợc với nhau và có thể sử dụng lại các thành
phần từ những ứng dụng khác. Việc tỏi sử dụng không chỉ đƣợc áp dụng cho cho các dịch
vụ mà nó cũng đƣợc áp dụng cho cả các thành phần dữ liệu và giao diện ngƣời dùng.
Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay đƣợc gọi là Android
Dev Phone 1 có thể chạy đƣợc các ứng dụng Android mà không bị ràng buộc vào các nhà
cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là cho phép các nhà phát triển
thực hiện các cuộc thử nghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà
không phải ký một bản hợp đồng nào. Vào khoảng cùng thời gian đó thì Google cũng cho
phát hành một phiên bản vá lỗi 1.1 của hệ điều hành này. Ở cả hai phiên bản 1.0 và 1.1
Android chƣa hỗ trợ soft-keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý.
Android giải quyết vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tƣ năm 2009,
cùng với một số tính năng khác. Chẳng hạn nhƣ nâng cao khả năng ghi âm truyền thống,
vật dụng, và các live folder.
2.1.2 MÁY ẢO DALVIK
Dalvik là máy ảo giúp các ứng dụng java chạy đƣợc trên các thiết bị di động
Android. Nó chạy các ứng dụng đã đƣợc chuyển đổi thành một file thực thi Dalvik(dex).
Định dạng phù hợp cho các hệ thống mà thƣờng bị hạn chế về bộ nhớ và tốc độ xử
lý. Dalvik đã đƣợc thiết kế và viết bởi Dan Bornstein, ngƣời đã đặt tên cho nó sau khi
đến thăm một ngôi làng đánh cá nhỏ có tên là Dalvík ở đảo Eyjafjửrður của Iceland, nơi
mà một số tổ tiên của ông sinh sống.
Từ góc nhìn của một nhà phát triển, Dalvik trông giống nhƣ máy ảo Java (Java
Virtual Machine) nhƣng thực tế thì hoàn toàn khác. Khi nhà phát triển viết một ứng dụng
dành cho Android, anh ta thực hiện các đoạn mã trong môi trƣờng Java. Sau đó, nó sẽ
đƣợc biên dịch sang các bytecode của Java, tuy nhiên để thực thi đƣợc ứng dụng này trên
Android thì nhà phát triển phải thực thi một công cụ có tên là dx. Đây là công cụ dùng
để chuyển đổi bytecode sang một dạng gọi là dex bytecode. "Dex" là từ viết tắt của
"Dalvik executable" đúng vai trò nhƣ cơ chế ảo thực thi các ứng dụng Android.
2.1.3 KIẾN TRÚC CỦA ANDROID
Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành Android.
Mỗi một phần sẽ đƣợc đặc tả một cách chi tiết dƣới đây.
GVHD: Th.S Phan Phƣơng Lan
4
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
Hình 2: Cấu trúc stack hệ thống Android
2.1.3.1 Tầng Application
Android đƣợc tích hợp sẵn một số ứng dụng cần thiết cơ bản nhƣ: contacts,
browser, camera, Phone,… Tất cả các ứng dụng chạy trên hệ điều hành Android đều
đƣợc viết bằng Java.
2.1.3.2 Tầng Application Framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà phát
triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát triển
đƣợc tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy
nền, thiết lập hệ thống báo động, thêm các thông báo về các thanh trạng thái, và nhiều,
nhiều hơn nữa.
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ đƣợc sử dụng bởi
các ứng dụng lại. Các kiến trúc ứng dụng đƣợc thiết kế để đơn giản hóa việc sử dụng lại
các thành phần; bất kỳ ứng dụng có thể cung cấp các tài nguyên của mình và ứng dụng
GVHD: Th.S Phan Phƣơng Lan
5
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
nào khác sau đó có thể sử dụng những tài nguyên đó (có thể hạn chế bảo mật đƣợc thực
thi bởi khuôn khổ). Cơ chế này cho phép các thành phần tƣơng tự sẽ đƣợc thay thế bởi
ngƣời sử dụng.
Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm:
- Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết
kế phần giao diện ứng dụng nhƣ: gridview, tableview, linearlayout,…
- Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từ
các ứng dụng khác (chẳng hạn nhƣ Contacts) hoặc là chia sẻ dữ liệu giữa
các ứng dụng đó.
- Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải là
mã nguồn, chẳng hạn nhƣ: localized strings, graphics, and layout files.
- Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các
custom alerts trong status bar.
- Activity Manager đƣợc dùng để quản lý chu trình sống của ứng dụng và điều
hƣớng các Activity.
2.1.3.3 Tầng Library
Android bao gồm một tập hợp các thƣ viện C/C++ đƣợc sử dụng bởi nhiều thành
phần khác nhau trong hệ thống Android. Điều này đƣợc thể hiện thông qua nền tảng ứng
dụng Android. Một số các thƣ viện cơ bản đƣợc liệt kê dƣới đây:
- System C Library
- Media Librarys
- Surface Manager
- Surface Manager
- SGL
- 3D libraries
- FreeType
- SQLite
2.1.3.4 Tầng Android Runtime
Android bao gồm một tập hợp các thƣ viện cơ bản mà cung cấp hầu hết các chức
năng có sẵn trong các thƣ viện lõi của ngôn ngữ lập trình Java. Tất cả các ứng dụng
Android đều chạy trong tiến trình riêng. Máy ảo Dalvik đã đƣợc viết để cho một thiết bị
có thể chạy nhiều máy ảo hiệu quả. Các VM Dalvik thực thi các tập tin thực thi Dalvik
(dex).
Định dạng đƣợc tối ƣu hóa cho bộ nhớ tối thiểu. VM là dựa trên register-based, và
chạy các lớp đã đƣợc biên dịch bởi một trình biên dịch Java để chuyển đổi thành các định
dạng dex. Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản nhƣ luồng và
quản lý bộ nhớ thấp.
2.1.3.5 Tầng Linux kernel
Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi nhƣ security,
memory management, process management, network stack, and driver model. Kernel
Linux hoạt động nhƣ một lớp trừu tƣợng hóa giữa phần cứng và phần còn lại của phần
mềm stack.
GVHD: Th.S Phan Phƣơng Lan
6
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
2.1.4 NHỮNG ĐẶC TÍNH CỦA HỆ ĐIỀU HÀNH ANDROID
Hình 3: Hệ điều hành Android
Một số đặc điểm của Android:
Handset Layout: Nền tảng này dễ thích nghi lớn hơn, VGA, thƣ viện đồ họa 2D, thƣ
viện đồ họa 3D cơ bản trong OpenGL 2.0, và các cấu trúc điện thoại thong minh truyền
thống.
Lƣu trữ: Phần mềm cơ sở dữ liệu SQLite đƣợc sử dụng cho mục đích lƣu trữ, tuy
nhiên chỉ dùng dể lƣu trữ trên thiết bị.
Tính kết nối: Android hỗ trợ các công nghệ kết nối : GSM/EDGE, IDEN, CDMA,
EV-DO, UMTS, Bluetooth, Wi-Fi,và WiMAX.
Tin nhắn: dạng SMS và MMS luôn luôn sẵn sàng với luồng text messaging.
Trình duyệt web: Trình duyệt web là một phần cơ bản luôn sẵn sang trong mã
nguồn mở WebKit application framework.
Hỗ trợ Java: Phần mềm viết bởi Java có thể đƣợc biên dịch và chạy trên Dalvik
virtual machine, nó là một VM đặc biệt cho phép thi hành thiết kế cho thiết bị di động sử
GVHD: Th.S Phan Phƣơng Lan
7
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
dụng, mặc dù nó không phải là một công nghệ JVM chuẩn. Android không hỗ trợ J2ME
giống một số hệ điều hành khác.
Hỗ trợ Media: Android hỗ trợ hầu nhƣ tất cả các định dạng : H.263, H.264 (in 3GP
or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC
(trong MP4 hoặc 3GP), MP3, MIDI, OGG Vorbis, WAV, JPEG, PNG, GIF, BMP.
Tăng hỗ trợ phần cứng: Android có thể hỗ trợ video/ từ camera, cảm ứng, GPS,
máy đo gia tốc.
Môi trƣờng phát triển: bao gồm thiết bị emulator, công cụ để debug, bộ nhớ và sự
định hình thực thi và plugin cho Eclipse IDE.
Market: giống nhƣ nhiều nơi lƣu trữ ứng dụng điện thoại cơ bản, Android market là
một danh mục phần mềm có thể tải về và cài đặt trên thiết bị mà không cần sử dụng PC.
Cảm ứng đa điểm: Android có hỗ trợ cảm ứng đa điểm, tuy nhiên trƣớc đây chỉ trên
máy HTC Hero có sử dụng do vấn để bản quyền. Tuy nhiên, đến nay, trên các thiết bị mới
nhƣ Nexus One hay Motorola Android chức năng này đã đƣơck kích hoạt.
Bluetooth: Hỗ trợ gửi và nhận file qua Bluetooth 2.0.
Cuộc gọi video: Android không hỗ trợ videocalling. Tuy nhiên nếu chạy UI bổ sung
thì nó có thể hỗ trợ cuộc gọi video.
2.1.5 CHU KỲ ỨNG DỤNG ANDROID
Một tiến trình Linux của một ứng dụng Android đƣợc tạo ra cho ứng dụng khi ứng
dụng cần chạy và sẽ chạy cho đến khi:
Nó không còn công việc để thực hiện
Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác
Một sự khác thƣờng và đặc tính cơ bản của Android là thời gian sống của
tiến trình ứng dụng không đƣợc điều khiển trực tiếp bới chính nó. Thay vào đó,
nó đƣợc xác định bởi hệ thống qua một kết hợp của các yếu tố:
Những phần của hệ thống đang quản lý chạy.
Những phần đƣợc cho là quan trọng đối với ngƣời dung.
Có bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống.
2.1.5.1 Chu kỳ sống thành phần
Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc bắt đầu
khởi tạo và đến thời điểm kết thúc. Đôi lúc chúng có thể là active hoặc inactive, hoặc là
trong trƣờng hợp activies này có thể visible hoặc invisible.
GVHD: Th.S Phan Phƣơng Lan
8
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
Hình 4: Chu kỳ sống các thành phần trong android
2.1.5.2 Activity stack
Bên trong hệ thống, các Activity đƣợc quản lý bởi một Activity stack. Khi một
Activity mới đƣợc tạo ra, nó đƣợc đặt ở đỉnh của stack và trở thành Activity đang chạy
Activity trƣớc sẽ ở bên dƣới Activity mới và sẽ không thấy trong suốt quá trình Activity
mới tồn tại.
Nếu ngƣời dùng nhấn nút Back thì Activity kết tiếp của stack sẽ di duyển lên và trở
thành active.
GVHD: Th.S Phan Phƣơng Lan
9
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
Hình 5: Activity Stack
2.1.5.3 Chu kỳ sống của ứng dụng(Application life cycle)
Trong một ứng dụng Android có chứa nhiều thành phần và mỗi thành phần đều có
một chu trình sống riêng. Và ứng dụng chỉ đƣợc gọi là kết thúc khi tất cả các thành phần
trong ứng dụng đã kết thúc. Activity là một thành phần cho phép ngƣời dùng giao tiếp với
ứng dụng. Tuy nhiên, khi tất cả các Activity kết thúc và ngƣời dùng không còn giao tiếp
đƣợc với ứng dụng nữa nhƣng không có nghĩa là ứng dụng đã kết thúc. Bởi vì ngoài
Activity là thành phần có khả năng tƣơng tác ngƣời dùng thì cũng có các thành phần
không có khả năng tƣơng tác với ngƣời dùng nhƣ là Service, Broadcast receiver. Có
nghĩa là những thành phần không tƣơng tác ngƣời dùng có thể chạy ẩn(background) dƣới
sự giám sát của hệ điều hành cho đến khi ngƣời dùng tự tắt chúng.
2.1.5.4 Các sự kiện trong chu kỳ sống của ứng dụng
Tất cả các Activity bắt buộc phải có onCreate() để khởi tạo ứng dụng. Nếu một
Activity đƣợc tạm dừng hoặc dừng hẳn, hệ thống có thể bỏ thông tin khác của nó từ
vùng nhớ bởi việc gọi hàm finish() của nó, hoặc đơn giản giết tiến trình của nó. Khi đƣợc
hiển thị lần nữa với ngƣời dùng, nó phải đƣợc hoàn toàn khởi động lại và phục hồi lại
trạng thái trƣớc. Khi một Activity chuyển qua chuyển lại giữa các trạng thái, nó phải báo
việc chuyển của nó bằng việc gọi hàm transition.
GVHD: Th.S Phan Phƣơng Lan
10
SVTH: Hồ Bình Tân - 1081426
Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc
Hình 6: Các phƣơng thức cơ bản trong chu kỳ sống
Tất cả các phƣơng thức là những móc nối mà lập trình viên có thể cài đè (override)
để làm phù hợp với công việc trong ứng dụng khi thay đổi trạng thái.
2.1.5.5 Thời gian sống của ứng dụng(Application life time)
Thời gian sống của một Activity diễn ra giữa lần đầu tiên gọi onCreate() đến trạng
thái cuối cùng gọi onDestroy(). Một Activity khởi tạo toàn bộ trạng thái toàn cục trong
onCreate(), và giải phóng các tài nguyên đang chiếm giữ trong onDestroy().
2.1.6 CÁC THÀNH PHẦN CỦA ỨNG DỤNG ANDROID
Để có thể xây dựng các ứng dụng trên hệ điều hành Android thì trƣớc tiên phải tìm
hiểu các giao diện lập trình ứng dụng của hệ điều hành này. Vì vậy sau đây sẽ là giới thiệu
về các API cơ bản của Android dƣới đây.
2.1.6.1 Activity
Là thành phần quan trọng nhất của một ứng dụng. Hiểu đơn giản thì Activity nhƣ là
một môi trƣờng đƣợc khởi tạo để ngƣời sử dụng tạo ra, hiển thị các giao diện, thực hiện
những công việc mà ngƣời sử dụng muốn làm.
Vòng đời của một Activity:
GVHD: Th.S Phan Phƣơng Lan
11
SVTH: Hồ Bình Tân - 1081426
- Xem thêm -