Tải bản đầy đủ (.pdf) (58 trang)

Nghiên cứu và phát triển ứng dụng trên nền điện thoại di động android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.41 MB, 58 trang )

ĐẠI HỌC ĐÀ NẴNG

TRƢỜNG ĐẠI HỌC SƢ PHẠM

KHOA TIN HỌC
Tel. (84-511)3841323 - 3841513, Fax. (84-511) 3842953
Website: www.ued.edu.vn E-mail:

KHÓA LUẬN TỐT NGHIỆP
NGÀNH CỬ NHÂN CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI:

NGHIÊN CỨU VÀ PHÁT TRIỂN ỨNG DỤNG TRÊN
NỀN ANDROID

Sinh viên
: Nguyễn Tấn Quốc
Lớp
: 09CNTT1
Giáo viên hƣớng dẫn : ThS. Lê Văn Mỹ

Đà Nẵng, tháng 5 năm 2013


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

LỜI CẢM ƠN
Đầu tiên em xin chân thành cảm ơn các thầy cô trƣờng Đại học Sƣ phạm
Đà Nẵng, đã truyền đạt những kinh nghiệm quý báu cho chúng em trong những
năm học vừa qua.
Đặc biệt xin chúng em xin chân thành cảm ơn thầy Lê Văn Mỹ đã nhiệt


tình hƣớng dẫn em hồn thành đề tài luận văn tốt nghiệp này.
Tuy nhiên, trong q trình hồn thành đề tài khơng thể tránh khỏi những
thiếu sót. Em mong nhận đƣợc nhiều đóng góp của q thầy cơ để đề tài đƣợc
hoàn thiện hơn.
Em xin chân thành cảm ơn.
Đà Nẵng, tháng 5/2013
Sinh viên thực hiện:

Nguyễn Tấn Quốc

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 2


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

LỜI CAM ĐOAN
Tôi xin cam đoan:
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của thầy thầy Lê Văn Mỹ.
2 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian
trá, chúng tơi xin chịu hồn tồn trách nhiệm.
Sinh viên thực hiện

Nguyễn Tấn Quốc

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 3



Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

MỤC LỤC
DANH MỤC CÁC HÌNH .......................................................................................................... 5
DANH MỤC CÁC BẢNG ......................................................................................................... 8
DANH MỤC CÁC TỪ VIẾT TẮT ............................................................................................ 9
MỞ ĐẦU .................................................................................................................................. 10
1. Lý do chọn đề tài ............................................................................................................... 10
2. Mục đích nghiên cứu ......................................................................................................... 10
3. Đối tƣợng và phạm vi nghiên cứu ..................................................................................... 10
3.1. Đối tƣợng nghiên cứu ................................................................................................. 10
3.2. Phạm vi nghiên cứu .................................................................................................... 10
4. Phƣơng pháp nghiên cứu................................................................................................... 10
4.1. Cơ sở lý thuyết ........................................................................................................... 11
4.2. Công cụ thiết kế chƣơng trình .................................................................................... 11
4.3. Dự kiến kết quả đạt đƣợc............................................................................................ 11
5.

Ý nghĩa khoa học và thực tiễn đề tài .......................................................................... 11

6.

Cấu trúc của luận văn................................................................................................... 12

Chƣơng 1: CƠ SỞ LÝ THYẾT ................................................................................................ 13
1.1 Tổng quan về Android .................................................................................................... 13
1.1.1 Android là gì? ........................................................................................................... 13
1.1.2 Lịch sử Android ....................................................................................................... 13

1.1.3 Nền tảng Android ..................................................................................................... 14
1.1.4 Kiến trúc ứng dụng Android .................................................................................... 17
1.1.5 Một số gói cơ bản của Android. ............................................................................... 22
1.2. Cài đặt SDK ................................................................................................................... 23
1.2.1. Giới thiệu SDK........................................................................................................ 23
1.2.2 Cài đặt Plugin cho Eclipse ....................................................................................... 24
1.3 Giới thiệu về Dịch vụ Web (Web service) ...................................................................... 26
1.3.1 Giới thiệu công nghệ ................................................................................................ 26
1.3.2 Đặc điểm của Dịch vụ Web..................................................................................... 26
1.3.3 Các thành phần của Dịch vụ Web ........................................................................... 28
Chƣơng 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG ................................................................... 33
SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 4


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

2.1 Thiết kế các thành phần ứng dụng .................................................................................. 33
2.2 Phân tích và thiết kế hệ thống ......................................................................................... 36
2.3 Giải pháp và xây dựng ứng dụng .................................................................................... 40
2.3.1 Phân tích và thiết kế CSDL ...................................................................................... 40
2.3.2 Các kỹ thuật sử dụng trong ứng dụng ...................................................................... 42
2.4 Thiết kế mã nguồn .......................................................................................................... 45
CHƢƠNG 3: CÀI ĐẶT CHƢƠNG TRÌNH VÀ KẾT QUẢ THỰC HIỆN ............................ 48
3.1 Cài đặt chƣơng trình ....................................................................................................... 48
3.2 Kết quả chƣơng trình ...................................................................................................... 49
KẾT LUẬN .............................................................................................................................. 56
1. Kết quả đạt đƣợc ............................................................................................................... 56
1.1 Về lý thuyết ................................................................................................................. 56

1.2. Về thực nghiệm .......................................................................................................... 56
2. Hƣớng phát triển của đề tài ............................................................................................... 57
TÀI LIỆU THAM KHẢO ........................................................................................................ 58

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 5


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

DANH MỤC CÁC HÌNH
Hình 1. 1 Biểu tƣởng hệ điều hành Android ............................................................................ 13
Hình 1. 2 Kiến trúc hệ điều hành Android ............................................................................... 15
Hình 1. 3 Các thành phần của một ứng dụng Android ............................................................. 18
Hình 1. 4 Vịng đời của một ứng dụng Android ....................................................................... 19
Hình 1. 5 Hình ảnh một device emulator.................................................................................. 23
Hình 1. 6 Biểu diễn bƣớc đầu tiên cài đặt plugin ..................................................................... 24
Hình 1. 7 Hình biểu diễn địa chỉ trang web cài đặt plugin ....................................................... 25
Hình 1. 8 Hình biểu diễn qua trình cài đặt tự động của plugin................................................. 25
Hình 2. 1 Mơ hình tổng quát của ứng dụng .............................................................................. 33
Hình 2. 2 Sơ đồ luồng thành phần Du lịch ............................................................................... 33
Hình 2. 3 Sơ đồ luồng thành phần Ẩm thực ............................................................................. 34
Hình 2. 4 Sơ đồ luồng thành phần Khách sạn .......................................................................... 34
Hình 2. 5 Sơ đồ luồng thành phần Taxi .................................................................................... 35
Hình 2. 6 Sơ đồ luồng thành phần Mua sắm ............................................................................ 35
Hình 2. 7 Sơ đồ luồng thành phần ATM .................................................................................. 36
Hình 2. 8 Mơ hình Use Case Khạch sạn .................................................................................. 36
Hình 2. 9 Mơ hình Use Case Ẩm thực .................................................................................... 37
Hình 2. 10 Mơ hình Use Case Mua Sắm ................................................................................. 37

Hình 2. 11Mơ hình Use Case Du lịch ...................................................................................... 38
Hình 2. 12 Mơ hình Use Case ATM ........................................................................................ 38
Hình 2. 13 Mơ hình Use Case Taxi ......................................................................................... 39
Hình 2. 14 Sơ đồ tuần tự triển khai ứng dụng .......................................................................... 39
Hình 2. 15 Các lớp trong packet Map....................................................................................... 45
Hình 2. 16 Tổng hợp các packet và thƣ mục của ứng dụng ..................................................... 45
SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 6


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

Hình 3. 1 Giao diện kho ứng dụng Google Play ...................................................................... 48

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 7


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

DANH MỤC CÁC BẢNG
Bảng 2.1 Cấu trúc bảng ATM .................................................................................................. 40
Bảng 2.2 Cấu trúc bảng Ẩm thực ............................................................................................. 40
Bảng 2.3 Cấu trúc bảng Khách sạn........................................................................................... 41
Bảng 2.4 Cấu trúc bảng Mua sắm............................................................................................. 41
Bảng 2.5 Cấu trúc bảng Taxi .................................................................................................... 41
Bảng 2.6 Cấu trúc bảng Du lịch ............................................................................................... 41


\

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 8


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

DANH MỤC CÁC TỪ VIẾT TẮT
1. APK : Android application package file
2. API : Application Programming Interface
3. SDK: Software Development Kit
4. ADT: Adroid Development Tool

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 9


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay do nhu cầu đời sống con ngƣời ngày càng đƣợc nâng cao, có sự hiểu
biết rộng rãi hơn, cơng nghệ và những tính năng mới trên điện thoại càng đƣợc con
ngƣời chú ý và đặt mối qua tâm. Thêm vào đó nhu cầu giải trí,du lịch của con ngƣời
cũng đƣợc quan tâm, xuất phát từ những nhu cầu đó các ứng dụng di động trở thành
công cụ không thể thiếu trong cuộc sống của con ngƣời trong thời hiện đại. Từ thƣc tế
đó, với kiến thức đã học kết hợp với nền tảng Android trên di động em đã chọn đề tài

tốt nghiệp cho mình là:
Nghiên cứu và phát triển ứng dụng trên nền điện thoại di động Android:
“ Sổ tay du lịch Đà Nẵng ”
2. Mục đích nghiên cứu
Với sự phát triển công nghệ nhƣ hiên nay, thế giới đƣợc ví là thế giới của cơng
nghệ thơng tin. Thêm vào đó nhu cầu du lịch của con ngƣời ngày càng tăng lên, các
địa điểm vị trí trên bản đồ giấy khơng cịn tiện lợi nữa. Android ra đời làm tăng khả
năng tiện dụng khi chúng ta có thể đƣa một bản đồ, những địa điểm du lịch vào chiếc
điện thoại thơng minh của mình.
3. Đối tƣợng và phạm vi nghiên cứu
3.1. Đối tƣợng nghiên cứu
Android là một hệ điều hành mở cho nền tảng di động và là một sự chọn lựa
đúng đắn của ngƣời tiêu dùng. Với đề tài này chúng em sẽ đi nghiên cứu công nghệ,
nền tảng và ứng dụng của Android trên thiết bị di động và những kỹ thuật để xây dựng
ứng dụng của mình.
3.2. Phạm vi nghiên cứu
Phạm vi nghiên cứu của đề tài này là các kiến thức cơ bản liên quan đến
Android và các kĩ thuật liên quan đến mạng. Trên cơ sở đó xây dựng thành cơng ứng
dụng “Sổ tay du lịch Đà Nẵng” trên nền Android. Đây là một ứng dụng có thể thay
thế bản đồ giấy, giúp du khách có thể dễ dàng tra cứu về các thơng tin, tìm đƣờng đi
đến các điểm du lịch, nhà hàng, khách sạn, v/v…
4. Phƣơng pháp nghiên cứu
SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 10


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

4.1. Cơ sở lý thuyết


Tìm hiểu cơng nghệ và nền tảng di động mở Android của Google, cách thức sử
dụng GoogleMap, nhằm xây dựng thành công một ứng dụng trên nền di động Android.
Với mục đích đó, u cầu phải nắm đƣợc các kiến thức cơ bản sau đây trên nền tảng
cơng nghệ Android:
 Quy trình phát triển một ứng dụng trên nền di động.
 Các công cụ và ngơn ngữ lập trình.
 Kiến thức về cở sở dữ liệu SQLite
 Thực thi chƣơng trình trên thiết bị thực (điện thoại di động chạy trên nền
Android).
4.2. Công cụ thiết kế chƣơng trình
 Eclipse 4.2.1
 Thiết kế đồ họa Photoshop CS3.
 Android SDK_r06-window tích hợp trên Eclipse.
 Thiết kế sơ đồ UML.
4.3. Dự kiến kết quả đạt đƣợc
Nắm rõ lý thuyết thiết kế ứng dụng trên nền tảng Android nói riêng. Xây dựng
ứng dụng “Sổ tay du lịch Đà Nẵng” thõa mãn các yêu cầu sau đây:
 Ứng dụng thể hiện các địa điểm du lịch, giải trí, nhà hàng, khách sạn trên
địa bàn thành phố Đà Nẵng.
 Đảm bảo tính chính xác về địa điểm trên bản đồ, đồng thời đƣa ra chỉ
dẫn cho du khách.
 Cài đặt trên các thiết bị di động dùng hệ điều hành Android.
5. Ý nghĩa khoa học và thực tiễn đề tài

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 11



Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

Xây dựng thành công ứng dụng trên nền tảng di động sử dụng hệ điều hành
Android. “Sổ tay du lịch Đà Nẵng” mang đến sự tiện lợi cho du khách, góp phần làm
hiện đại hóa Ngành du lịch ở Đà Nẵng nói chung và ở Việt Nam nói chung.
Đề tài giúp chúng ta hiểu rõ hơn về sự phát triển công nghệ hiện nay và đặc biệt
hiểu rõ hơn về nền tảng, những ứng dụng và vai trò của Android trong lĩnh vực di
động.
6. Cấu trúc của luận văn
 Mở đầu: Giới thiệu sơ lƣợc về đề tài, hƣớng nghiên cứu và dự kiến kết
quả đạt đƣợc.
 Chƣơng 1: Cở sở lý thuyết
Khái niệm, lịch sử phát triển, các tính năng, mơ hình, vịng đời và các
gói trong Android.


Chƣơng 2: Phân tích thiết kế hệ thống
Vẽ các sơ đồ phân tích, thiết kế và kết quả đạt đƣợc.



Chƣơng 3: Cài đặt chƣơng trình và kết quả thực hiện
Đƣa ra cách cài đặt ứng dụng vào điện thoại và những hình ảnh của ứng
dụng.



Kết luận
Nêu ra những nhận xét về kết quả đạt đƣợc từ đó đƣa ra hƣớng phát triển
cho đề tài.


SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 12


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

Chƣơng 1: CƠ SỞ LÝ THYẾT
1.1 Tổng quan về Android
1.1.1 Android là gì?
Là nền tảng phần mềm dựa trên nền tảng Linux OS ( Kernel 2.6) cho máy di
động và những phần mềm trung gian (middleware) để hỗ trợ các ứng dụng mà ngƣời
sử dụng cần đến.

Hình 1. 1 Biểu tưởng hệ điều hành Android

1.1.2 Lịch sử Android
Năm 2003, một công ty hoạt động trong lĩnh vực phát triển phần mềm cho các
thiết bị di động mang tên là Android đƣợc thành lập bởi 4 thành viên là:
1. Andy Rubin (nhà đồng sáng lập công ty Danger - công ty chuyên về các nền
tảng, phần mềm, thiết kế, và dịch vụ cho các thiết bị điện toán di động)
2. Rich Miner (nhà đồng sáng lập công ty truyền thông Wildfire Communications)
3. Nick Sears (một trong những vị phó chủ tịch của nhà cung cấp mạng viễn thông
di động T-Mobile ở Mỹ)
4. Chris White (trƣởng bộ phận thiết kế và phát triển giao diện của WebTV)
Năm 2005, sau hơn 2 năm hoạt động thì Android đƣợc Google mua lại với một
khoản tiền khơng đƣợc tiết lộ và chính thức trở thành một trong những công ty con của
gã khổng lồ ngành tìm kiếm. Đồng thời cả Andy Rubin, Rich Miner và Chris White
đều quyết định tiếp tục làm việc tại chính cơng ty của mình sau khi đƣợc mua lại. Ở

thời điểm đó, nhiều ngƣời khơng thực sự chú ý vào thƣơng vụ này, thế nhƣng nó lại
đánh dấu bƣớc đi đầu tiên của Google trong thị trƣờng thiết bị di động thế giới.
SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 13


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

Tại Google, một nhóm nghiên cứu đứng đầu là Rubin đã bắt đầu phát triển một
nền tảng dành cho thiết bị di động dựa trên nhân của hệ điều hành Linux. Và sau đó,
hệ điều hành này cũng đƣợc giới thiệu đến các nhà phát triển phần cứng lẫn phần
mềm, báo hiệu sự có mặt của một "ngơi sao" khác trên "thiên hà" thị trƣờng công nghệ
di động.
Đến tháng 12 năm 2006, suy đoán về ý định gia nhập thị trƣờng truyền thông di
động của Google tiếp tục đƣợc củng cố sau khi BBC và The Wall Street Journal cho
biết rằng hãng này muốn đƣa ứng dụng và chức năng tìm kiếm của mình lên các thiết
bị di động. Lập tức ngay sau đó, nhiều tin đồn về chiếc điện thoại mang thƣơng hiệu
Google xuất hiện khắp các phƣơng tiện truyền thông.
Tháng 5 năm 2007, liên minh các nhà sản xuất thiết bị cầm tay - Open Handset
Alliance (OHA) đƣợc thành lập bao gồm Google và một số thành viên khác của cộng
đồng Linux mở nhƣ: Broadcom Corporation, Google, HTC, Intel, LG, Marvell
Technology Group, Motorola, Nvidia,Qualcomm, Samsung Electronics, Sprint Nextel,
T-Mobile và Texas Instruments. Mục tiêu của OHA là phát triển tiêu chuẩn mở cho
các thiết bị di động và sản phẩm đầu tiên của liên minh này đó là Android, một nền
tảng di động đƣợc xây dựng trên nhân Linux phiên bản 2.6.
Tính cho đến thời điểm này, Google Android đã có 5 phiên bản chính thức và 1
phiên bản sắp ra mắt đƣợc đặt tên theo những món tráng miệng, với ngụ ý ngƣời dùng
sẽ dễ dàng sử dụng hệ điều hành của họ nhƣ thƣởng thức các món ăn đó. Các phiên
bản Android có tên mã lần lƣợt là: Cupcake 1.5, Donut 1.6, Éclair 2.0, Froyo 2.2,

Gingerbread 2.3, Honeycomb 3.0/3.1 và phiên bản sắp ra mắt là Android Ice Cream
Sandwich.
1.1.3 Nền tảng Android
Với khả năng rộng rãi của Android, sẽ rất dễ dàng nhầm lẫn nó với một hệ điều
hành máy tính để bàn. Android là một môi trƣờng phân tầng, xây dựng trên nền của hệ
điều hành nhân Linux, và nó bao hàm nhiều chức năng phong phú. Hệ thống giao diện
ngƣời sử dụng gồm có:
• Cửa sổ
• Khung hình
• Các tiểu trình để hiển thị các phần tử phổ biến nhƣ các hộp biên soạn, danh
sách, danh sách thả xuống.

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 14


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

Android gồm một trình duyệt có thể nhúng vào đƣợc, đƣợc xây dựng dựa trên
WebKit, chính là máy (engine) trình duyệt mã nguồn mở cũng đang là động cơ của
trình duyệt Safari của iPhone.
Android khoe ra một mảng dồi dào nhiều tùy chọn kết nối, gồm WiFi,
Bluetooth và dữ liệu không dây qua một kết nối di động (nhƣ GPRS, EDGE và 3G).
Một kỹ thuật phổ biến trong các ứng dụng Android là liên kết tới Google Maps để hiển
thị một địa chỉ trực tiếp trong một ứng dụng. Việc hỗ trợ cho các dịch vụ dựa trên địa
điểm (chẳng hạn nhƣ GPS) và các dụng cụ đo gia tốc cũng có sẵn trong gói phần mềm
Android, mặc dù không phải tất cả các thiết bị Android đƣợc trang bị với các phần
cứng cần thiết. Ngồi ra cịn có cả hỗ trợ máy ảnh nữa (camera).
Về mặt lịch sử, có hai lĩnh vực mà các ứng dụng di động đã gắng sức theo kịp

các đối tác máy tính để bàn là đồ họa/đa phƣơng tiện và phƣơng thức lƣu trữ dữ liệu.
Android giải quyết thách thức về đồ họa bằng sự hỗ trợ dựng sẵn cho đồ họa 2D và
3D, gồm cả thƣ viện OpenGL. Gánh nặng lƣu trữ dữ liệu đƣợc giảm nhẹ vì nền
Android có gồm cả cơ sở dữ liệu SQLite mã nguồn mở phổ biến. Hình 1 cho thấy một
khung hình đơn giản hóa về các tầng phần mềm Android.

Hình 1. 2 Kiến trúc hệ điều hành Android

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 15


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

 Application
Android đƣợc phát hành cùng với một bộ các ứng dụng gốc bao gồm: email,
trình tin nhắn SMS, lịch, bản đồ, trình duyệt web, danh bạ, và một số ứng dụng khác.
Tất cả các ứng dụng trên đƣợc viết bằng ngơn ngữ lập trình Java.
 Application Framework
Bằng cách phát triển một nền tảng 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 vơ cùng phong phú. Bên cạnh đó, họ có thể tự do tận
dụng ƣu điểm của các thiết bị phần cứng, thông tin địa điểm truy cập hay các dịch vụ
chạy nền để thiết lập hệ thống báo động, thông báo trên thanh trạng thái và rất nhiều
dịch vụ khác nữa.
Ngồi ra, các nhà phát triển có tồn quyền truy cập vào nền tảng API
(Application Programming Interface - giao diện lập trình ứng dụng) mà các ứng dụng
gốc sử dụng. Cấu trúc của các ứng dụng đƣợc đơn giản hóa thiết kế giúp cho việc tái
sử dụng, thay thế các thành phần của bất kỳ ứng dụng nào đó một cách dễ dàng (nhƣng
phải tùy thuộc vào cơ chế bảo mật riêng của từng ứng dụng).

View System đƣợc dùng để xây dựng một ứng dụng bao gồm các văn bản, nút
bấm và cả những trình duyệt web nhúng.
Content Provider cho phép truy cập dữ liệu từ các ứng dụng khác (nhƣ
Contacts...) hoặc chia sẻ dữ liệu của riêng mình.
Resource Manager cung cấp khả năng truy cập mã nguồn.
Notification Manager cho phép tất cả các ứng dụng hiển thị thông báo tuỳ chỉnh
trong thanh trạng thái.
Activity Manager quản lý thời gian hoạt động của các ứng dụng.
 Libraries
Android đƣợc tích hợp một thƣ viện ngôn ngữ C/C++ đƣợc sử dụng bởi nhiều
thành phần khác nhau của hệ thống. Thƣ viện ngôn ngữ này sẽ tiếp xúc với các nhà
phát triển ứng dụng thông qua nền tảng hệ điều hành Android. Một số các thƣ viện
nhƣ:
System C library: có gốc từ hệ thống thƣ viện chuẩn C (LIBC) giúp điều chỉnh
nhúng cho các thiết bị sử dụng nền tảng Linux.
SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 16


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

Media Libraries: dựa trên OpenCORE của PacketVideo, hỗ trợ ghi và phát lại
âm thanh, hình ảnh, video dƣới nhiều định dạng phổ biến nhƣ MPEG4, H.264, MP3,
AAC, AMR, JPG, và PNG.
Surface Manager: quản lý truy cập vào các hệ thống hiển thị và tổng hợp đồ
họa 2D và 3D các lớp từ nhiều ứng dụng trên thiết bị.
LibWebCore: trình duyệt web hiện đại hỗ trợ cả trình duyệt web của Android
và các trình duyệt web nhúng khác.
SGL: cơng cụ đồ họa 2D cơ bản.

3D libraries: dựa trên OpenGL ES 1.0 API, dùng để tăng tốc phần cứng 3D
(nếu có) hoặc để tối ƣu hóa các phần mềm 3D.
SQLite: cơ sở dữ liệu dùng cho tất cả các ứng dụng.
 Android Runtime
Cung cấp các chức năng có sẵn trong thƣ viện gốc của ngơn ngữ lập trình Java.
Mỗi ứng dụng trên hệ điều hành Android sẽ chạy trên một tiến trình của riêng nó. Ví
dụ: các máy ảo Dalvik chạy trên các lớp đƣợc biên soạn bởi một trình biên dịch ngôn
ngữ Java và đƣợc chuyển đổi sang định dạng Dalvik (.dex) bằng cơng cụ "dx" tích
hợp. Các tập tin đƣợc thực thi dƣới định dạng .dex sẽ giúp tối ƣu hóa cũng nhƣ quản lý
bộ nhớ ở cấp độ thấp.
 Linux Kernel
Android hoạt động dựa trên nhân hệ điều hành Linux 2.6 qua đó cung cấp các
dịch vụ cho hệ thống cốt lõi nhƣ an ninh, quản lý bộ nhớ, q trình hay mơ hình điều
khiển... Đồng thời nhân hệ điều hành hoạt động nhƣ một lớp trừu tƣợng giúp kết nối
giữa phần cứng và những phần mềm còn lại trên nền tảng.
1.1.4 Kiến trúc ứng dụng Android
 Máy Dalvik
Nhƣ đã đề cập, Android chạy bên trên một hệ điều hành nhân Linux. Các ứng
dụng Android đƣợc viết bằng ngơn ngữ lập trình Java, và chúng chạy trong một máy
ảo (VM). Điều quan trọng là phải lƣu ý rằng VM không phải là một máy ảo Java
(JVM) nhƣ bạn chờ đợi, mà là máy ảo Dalvik (Dalvik Virtual Machine), một công
nghệ mã nguồn mở. Mỗi ứng dụng Android chạy trong một cá thể của máy ảo Dalvik,

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 17


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android


đến lƣợt mình, cá thể máy ảo này nằm trong một tiến trình do nhân Linux quản lý, nhƣ
trình bày dƣới đây.( Hình dƣới là Máy ảo Dalvik)

Hình 1. 3 Các thành phần của một ứng dụng Android

 Activity
Một ứng dụng có một giao diện ngƣời dùng nhìn thấy đƣợc, sẽ đƣợc thực hiện
bằng một Activity. Activity dùng Views để tạo nên giao diện đồ họa ngƣời dùng, để
hiển thị thông tin và đáp lại các hành động của ngƣời dùng. Khi ngƣời dùng chọn một
ứng dụng từ màn hình chủ hoặc trình khởi chạy ứng dụng thì một Activity đƣợc khởi
động. Activity trong Android cũng tƣơng tự nhƣ một Form trong các ứng dụng
desktop truyền thống.
Vòng đời của ứng dụng Android:
Actitvity là thành phần quan trọng nhất và đóng vai trị chính trong xây dựng
ứng dụng Android.
Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới
đƣợc khởi tạo, nó sẽ đƣợc xếp lên đầu của stack và trở thành running activity, các
Activity trƣớc đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới đƣợc giải
phóng.
Các trạng thái trong Activity:
• Running: Activity đang hiển thị trên màn hình (foreground).
• Paused: Activity vẫn hiển thị (visible) nhƣng không thể tƣơng tác (lost focus).
SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 18


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

• Activity bị thay thế hồn tồn bởi Activity mới sẽ tiến đến trạng thái stop

• Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo
nguyên tắc ƣu tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải
phóng và khi nó đƣợc hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và
phục hồi lại trạng thái trƣớc đó.

Hình 1. 4 Vịng đời của một ứng dụng Android

 Service
Service là một ứng dụng component có thể thực hiện các hoạt động longrunning trong background và không cung cấp một giao diện ngƣời dùng. Một ứng
dụng component có thể bắt đầu một service và nó sẽ tiếp tục chạy trong background
thậm chí nếu ngƣời dùng chuyển cho ứng dụng khác. Ngồi ra, một component có thể
liên kết cho một dịch vụ tƣơng tác với nó và thậm chí thực hiện giao tiếp InterProcess

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 19


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

(IPC). Ví dụ, một dịch vụ có thể xử lý các giao dịch mạng, nghe nhạc, thực hiện các
tập tin I/O, hoặc tƣơng tác với một provider content, tất cả từ background.
Một service cơ bản có thể có hai hình thức:
Started
Service là "started" khi một component ứng dụng (nhƣ một activity) bắt đầu nó
bằng cách gọi startService (). Khi bắt đầu, một service có thể chạy trên background vơ
thời hạn, ngay cả khi các thành phần đó bắt đầu nó bị phá hủy. Thơng thƣờng, một
service bắt đầu thực hiện một hoạt động đơn lẻ và không trả lại kết quả cho ngƣời gọi.
Ví dụ, nó có thể tải về hoặc tải lên một tập tin qua mạng. Khi hoạt động đƣợc thực
hiện, các service nên dừng lại bản thân.

Bound
Service là "bound" khi một component ứng dụng liên kết cho nó bằng cách gọi
bindService (). Một service ràng buộc cung cấp một giao diện client-server cho phép
các component tƣơng tác với các dịch vụ, gửi các yêu cầu, có đƣợc kết quả, và thậm
chí làm nhƣ vậy qua quá trình giao tiếp InterProcess (IPC). Một service bound chỉ
chạy miễn là ứng dụng component khác bị ràng buộc vào nó. Nhiều thành phần có thể
liên kết cho dịch vụ cùng một lúc, nhƣng khi tất cả chúng unbind, service này bị phá
hủy.
Để tạo ra một service, bạn phải tạo một lớp dịch vụ (hoặc một trong các
subclasses hiện tại của nó). Trong implementation của bạn, bạn cần cho ghi đè lên một
số method gọi lại có thể xử lý các khía cạnh quan trọng của vịng đời service và cung
cấp một cơ chế cho các component cho gắn kết với dịch vụ, nếu thích hợp. Các
method quan trọng nhất bạn có nên ghi đè lên gọi là:
+ onStartCommand()
Hệ thống gọi method này khi component nhƣ là một activity, yêu cầu các
service đƣợc started, bằng cách gọi startService (). Sau khi thực hiện phƣơng pháp
này, các service đƣợc khởi động và có thể chạy trong background vơ thời hạn. Nếu
bạn có triển khai điều này, đó là trách nhiệm của bạn để dừng dịch vụ khi cơng việc
của mình đƣợc thực hiện, bởi stopSelf gọi điện thoại () hoặc stopService (). (Nếu bạn
có chỉ muốn cung cấp ràng buộc, bạn khơng cần phải triển khai method này.)
+ onBind()

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 20


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

Hệ thống gọi method này khi component muốn liên kết với các service (chẳng

hạn nhƣ cho thực hiện RPC), bằng cách gọi bindService(). Trong implementation của
bạn của phƣơng pháp này, bạn có phải cung cấp một giao diện đó khách hàng sử dụng
để giao tiếp với dịch vụ, bằng cách trả lại một IBinder. Bạn luôn luôn phải triển khai
phƣơng pháp này, nhƣng nếu bạn không muốn cho phép liên kết, sau đó bạn nên trở về
null.
+ onCreate()
Hệ thống gọi method này khi service đầu tiên tạo ra, để thực hiện các thủ tục
thiết lập một lần (trƣớc khi cuộc gọi hoặc là onStartCommand() hoặc onBind()). Nếu
service đang chạy, phƣơng pháp này không đƣợc gọi.
+ onDestroy()
Hệ thống gọi method này khi service khơng cịn đƣợc sử dụng và đang đƣợc bị
phá hủy. service của bạn nên triển khai điều này cho làm sạch bất cứ nguồn tài nguyên
nhƣ chủ đề, ngƣời nghe đã đăng ký, nhận, vv Đây là các cuộc gọi qua dịch vụ này
nhận đƣợc.
 Content Provider
Có thể coi nhƣ là một máy chủ cơ sở dữ liệu. Cơng việc của nó là quản lý truy
cập và chia sẻ dữ liệu đang tồn tại, chẳng hạn nhƣ một cơ sở dữ liệu SQLite. Nó có thể
đƣợc cấu hình để cho phép các ứng dụng khác truy xuất và ngƣợc lại. Nếu ứng dụng
rất đơn giản thì khơng nhất thiết phải tạo ra một trình cung cấp nội dung.
Content Provider giúp tách biệt tầng ứng dụng ra khỏi tầng dữ liệu. Nó có đầy
đủ các quyền điều khiển và đƣợc truy xuất thơng qua mơ hình URI đơn giản nhƣ là có
thể thêm, xóa, cập nhật dữ liệu của các ứng dụng.
 Broadcast Receiver
Bằng cách tạo và đăng ký một Broadcast Receiver, ứng dụng Android có thể
lắng nghe toàn bộ các Intent theo một chuẩn cụ thể đƣợc chỉ định. Các Broadcast
Receiver sẽ chạy ứng dụng một cách tự động để đáp ứng một Intent gửi đến, hay xử lý
một phần tử dữ liệu hoặc đáp ứng một sự kiện, chẳng hạn nhƣ nhận một văn bản thông
báo.
BroadcastReceiver chỉ có duy nhất một phƣơng thức onReceive().


SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 21


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

• Khi có sự kiện mà BroadcastReceiver đã đăng ký nhận đƣợc phát đi, thì
phƣơng thức onReceive() của BroadcastReceiver đó sẽ đƣợc gọi.
• Sau khi thực thi xong phƣơng thức này, vịng đời của BroadcastReceiver kết
thúc.
1.1.5 Một số gói cơ bản của Android.
Trong Android có một số gói chính sau đây:


Android.util: Chứa những lớp tiện ích cấp độ thấp, chẳng hạn nhƣ các

lớp container đƣợc đặc biệt hóa, tiện ích XML,…


Android.os: Cung cấp những dịch vụ hệ điều hành nền tảng, chuyển các

gói tin, giao tiếp giữa các tiến trình.


Android.graphics: Cung cấp những cơng cụ đồ họa mức độ thấp nhƣ

canvas, bộ lọc màu, point trong map, và các khối chữ nhật giúp bạn có thể trang trí
trực tiếp lên giao diện.



Android.text, Android.text.method, Android.text.style: Cung cấp bộ

công cụ xử lý văn bản mạnh mẽ, hỗ trợ rich text, những phƣơng thức nhập…


Android.database: Chứa APIs cấp độ thấp để làm việc với cơ sở dữ



Android.content: Cung cấp các dịch vụ khác nhau truy cập dữ liệu trên

liệu.

thiết bị: những ứng dụng đƣợc cài đặt trên thiết bị và những tài nguyên gắn liền với
chúng, và những bộ cung cấp dữ liệu chung lâu dài của riêng android.


Android.view: Cung cấp những lớp tạo ra lớp giao diện cơ bản.



Android.widget: Chứa hầu hết các yếu tố về giao diện sử dụng trên màn

hình ứng dụng.


Android.app: Lớp cấp độ cao đóng gói mơ hình ứng dụng tầng trên của

android.


SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 22


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android



Android.opengl: Cung cấp tiện ích OPENGL ES, thƣ viện hỗ trợ đồ họa



Android.media: Cung cấp các lớp xử lý các phƣơng tiện nhƣ audio,

3D.

video, image…


Android.net: Cung cấp các hỗ trợ cho việc truy cập web.

1.2. Cài đặt SDK
1.2.1. Giới thiệu SDK
Google đã phát hiện bộ SDK (Software Development Kit- Bộ phát triển phần
mềm) cho Android giúp các lập trình viên tạo các ứng dụng trên nền tảng di động một
cách dễ dàng.
Bộ SDK đƣợc thiết kế cho phép các nhà phát triển “mở rộng, thay thế và tái sử
dụng ” các thành phần phần mềm và đi kèm công cụ gỡ lỗi, một chƣơng trình device

emulator (thiết bị giả lập) và các dự án mẫu.

Hình 1. 5 Hình ảnh một device emulator

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 23


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

SDK cũng chứa chƣơng trình hỗ trợ để kết hợp với các công cụ với nền tảng
phát triển nguồn mở Eclipse. Sử dụng cho Eclipse từ 3.2 trở lên.
1.2.2 Cài đặt Plugin cho Eclipse
Sử dụng Eclipse nhƣ một môi trƣờng để phát triển ứng dụng Android. Bạn có
thể cài đặt plugin ADT (Android Development Tools), công cụ hỗ trợ các cơng cụ lập
trình Android gắn liền với Eclipse với các chức năng bao gồm: tạo, chạy, gỡ rối các
ứng dụng trên Android dễ dàng hơn nhiều.
Sau đó hãy tải bộ SDK tại địa chỉ www.code.google.com/android.
Để cài đặt Android plugin ta làm nhƣ sau:


Bƣớc 1 : Trƣớc hết chúng ta cần tải bộ Eclipse 3.2 trở lên (tốt nhất là bộ

Eclipse 3.7) tại website />

Bƣớc 2: Giải nén và khởi động eclipse.




Bƣớc 3: Vào Help chọn Install New Software

Hình 1. 6 Biểu diễn bước đầu tiên cài đặt plugin



Bƣớc 4: Chọn nút add trên hộp thoại để hiện cửa sổ Add site

Lƣu ý: Hộp name có thể đặt tên tùy ý của bạn cịn hộp Location thì bắt buộc là
/>SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 24


Nghiên cứu và phát triển ứng dụng trên hệ điều hành Android

Hình 1. 7 Hình biểu diễn địa chỉ trang web cài đặt plugin



Bƣớc 5: Đợi eclipse lấy thông số plugin từ địa chỉ trên.



Bƣớc 6: Bạn check vào Developer chọn Next để tiếp tuc.



Bƣớc 7: Chọn Finish nếu bạn chấp nhận cài đặt.


Hình 1. 8 Hình biểu diễn qua trình cài đặt tự động của plugin

SVTH: Nguyễn Tấn Quốc – Lớp 09CNTT1

Trang 25


×