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

ỨNG DỤNG TÌM ĐƯỜNG ĐI TRÊN BẢN ĐỒ SỐ TRONG THIẾT BỊ DI ĐỘNG SỬ DỤNG CÔNG NGHỆ 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 (1.24 MB, 61 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP
ỨNG DỤNG TÌM ĐƯỜNG ĐI TRÊN
BẢN ĐỒ SỐ TRONG THIẾT BỊ DI ĐỘNG
SỬ DỤNG CÔNG NGHỆ ANDROID
Ngành

: Công nghệ thông tin

Niên khoá
: 2007 - 2010
Lớp
: LT07DT
Sinh viên thực hiện : Phạm Thế Sang

TP.HỒ CHÍ MINH, tháng 9 năm 2010


BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP
ỨNG DỤNG TÌM ĐƯỜNG ĐI TRÊN
BẢN ĐỒ SỐ TRONG THIẾT BỊ DI ĐỘNG
SỬ DỤNG CÔNG NGHỆ ANDROID


Giáo viên hướng dẫn:
Th.S Mai Anh Thơ

Niên khoá
Lớp
Sinh viên thực hiện
Mã số sinh viên

: 2007 - 2010
: LT07DT
: Phạm Thế Sang
: 07430019

TP.HỒ CHÍ MINH, tháng 9 năm 2010


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

Nhận xét của giáo viên hướng dẫn
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................

..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................

..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
…………………………………………………………………………………………..
Trang i  
 


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

Nhận xét của giáo viên phản biện
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................

..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
.........................................................................................................................................
Location Map
 

Trang ii


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 


LỜI CẢM ƠN

Em xin chân thành cảm ơn Quý thầy cô trong Khoa Công nghệ Thông tin
Trường Đại học Nông Lâm đã tận tình dạy bảo cho em nhiều kiến thức bổ ích trong
suốt thời gian học tập tại trường cũng như đã tạo điều kiện cho em được thực hiện đề
tài này. Kính chúc các Thầy cô luôn dồi dào sức khỏe và thành công trong cuộc sống.
Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến cô Mai Anh Thơ, người đã tận
tình hướng dẫn em trong suốt thời gian thực hiện đề tài, cho em sự bình tĩnh và tự tin,
giúp em rút ra nhiều bài học kinh nghiệm quý báu mỗi khi em vấp phải những khó
khăn.
Cảm ơn các bạn sinh viên CNTT khóa 2007. Các bạn đã giúp đỡ, động viên
và hỗ trợ tôi rất nhiều cũng như đóng góp cho tôi nhiều ý kiến quý báu, qua đó, giúp
tôi hoàn thiện hơn cho đề tài.
Mặc dù đã rất nỗ lực, cố gắng nhưng chắc hẳn đề tài vẫn còn nhiều thiếu sót.
em rất mong nhận được nhiều sự góp ý phê bình của Quý thầy cô, của các anh chị và
các bạn. Một lần nữa, em xin chân thành cảm ơn!
TP Hồ Chí Minh, tháng 9 năm 2010
Phạm Thế Sang

Location Map
 

Trang iii


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 


TÓM TẮT
Hiện nay đời sống của người dân trên thế giới ngày càng nâng cao, xã hội ngày
càng phát triển, và mang lưới giao thông cũng được phát triên theo. Nhu cầu du lịch
giải trí và đi lại của người dân tăng rất nhiều so với những năm trước. Khi đến một địa
điểm du lịch, thành phố mới, việc đi lại rất là khó khăn. Điều này sẽ gây cản trở cho
công việc và tốn nhiều thời gian để đến nơi cần đến. Chính vì khó khăn này, hệ thống
phần mềm tìm đường đi trên bản đồ số trên điện thoại đi dộng đã được xây dựng
nhằm giảm thiều tồi đa việc đi lại và tìm kiếm địa điểm.
Hiện nay cộng nghệ Android đã và đang từng bước phát triển bên cạnh các
công nghệ khác như Windows Mobile, Symbian và dĩ nhiên là cả OS X (iPhone).
Nắm bắt được nhu cầu sử dung các thiết bị số ngày càng cao của con người, Google
đã xây dựng một nền tảng mở cho thiết bị di động của Google (gồm hệ điều hành [linux base], middleware và một số ứng dụng cơ bản).
Android đã thu hút được sự chú ý của giới công nghệ khắp toàn cầu khi đứa
con của Google sẽ sử dụng giấy phép mã nguồn mở. Chính vì vậy em đã chọn công
nghệ Android để xây dựng hệ thống phần mềm tìm đường đi trên bản đồ số trên điện
thoại di động.
Bước đầu em đã xây dựng thành công ứng dụng tìm đường đi trên bản đồ số
của Google với các chức năng cơ bản. Ứng dụng này sẽ giúp ích rất nhiều trong việc
tìm đường đi và địa điểm cho người sử dụng thiết bị di động.

Location Map
 

Trang iv


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 


 

MỤC LỤC
Trang
LỜI CẢM ƠN ................................................................................................................iii
TÓM TẮT...................................................................................................................... iv
MỤC LỤC ...................................................................................................................... v
DANH SÁCH CHỮ VIẾT TẮT ..................................................................................vii
DANH SÁCH CÁC HÌNH ..........................................................................................viii
Giới thiệu ........................................................................................................................ 1
Chương I: CƠ SỞ LÝ THUYẾT .................................................................................... 5
1.1.

Giới thiệu về Android: ...................................................................................... 5

1.2.

Kiến trúc của Android:...................................................................................... 6

1.3.

Các thành phần của Android: ............................................................................ 9

1.3.1

Activity: ...................................................................................................... 9

1.3.2


Service: ..................................................................................................... 12

1.3.3

Content Provider: ..................................................................................... 15

1.3.4

Broadcast and Intent Receivers: ............................................................... 16

1.3.5

Notification: ............................................................................................. 20

1.4.

Application Life Cycle:................................................................................... 20

1.5.

Android Manifest: ........................................................................................... 21

1.6.

Android SQLite Database: .............................................................................. 22

CHƯƠNG II: ỨNG DỤNG LOCATION MAP TRÊN ANDROID ........................... 23
2.1

Phát biểu bài toán: ........................................................................................... 23


2.1.1

Đôi nét về thị trường điện thoại di động Việt Nam: ................................ 23

2.1.2

Giới thiệu bài toán tìm đường đi trên bản đồ số trong thiết bị di động: .. 25

2.1.3

Khảo sát hiện trạng: ................................................................................. 25

2.1.4

Tầm quan trọng của ứng dụng: ................................................................ 26

2.1.5

Mục tiêu của luận văn: ............................................................................. 26

2.2

Công nghệ sử dụng: ........................................................................................ 27

2.2.1

Server: ...................................................................................................... 27

2.2.2


Client android: .......................................................................................... 27

Location Map
 

Trang v


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

2.3

Các chức năng của ứng dụng: ......................................................................... 27

2.3.1

Tìm đường đi dến 1 địa chỉ bất kỳ: .......................................................... 27

2.3.3

Lưu lại nhưng địa chỉ cần thiết theo từng danh mục: .............................. 33

2.3.4

Quản lý danh mục các địa chỉ: ................................................................. 34


2.3.5

Hiển thị bản đồ trên google map với các chức năng: ............................... 35

Hình 14: Các chức năng trên bản đồ. .................................................................... 35
2.4

Yêu cầu phi chức năng: ................................................................................... 36

2.4.1

Tính thân thiện, dễ sử dụng: ..................................................................... 36

2.4.2

Hiệu suất chương trình: ............................................................................ 36

2.4.3

Tính tương thích: ...................................................................................... 36

2.5

Giao diện ứng dụng: ........................................................................................ 37

2.6

Cách triển khai và cài đặt ứng dụng: .............................................................. 48


2.6.1

Trong Emulator: ....................................................................................... 48

2.6.2

Trong máy diện thoại có cài hệ điều hành Android: ................................ 48

Chương III: KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN ............................ 49
3.1

Kết quả đạt được: ............................................................................................ 49

3.1.1

Ưu điểm: ................................................................................................... 49

3.1.2

Khuyết điểm: ............................................................................................ 49

3.2

Kiến nghị: ........................................................................................................ 50

3.3

Hướng mở rộng: .............................................................................................. 50

TÀI LIỆU THAM KHẢO ............................................................................................ 51


Location Map
 

Trang vi


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

DANH SÁCH CHỮ VIẾT TẮT
 

API

Application Programming Interface
Giao diện lập trình ứng dụng

EVN

Vietnam Electricity
Tập đoàn Điện lực Việt Nam

SMS

Short Message Services
Dịch vụ tin nhắn ngắn


MMS

Multimedia Messaging Service
Dịch vụ nhắn tin đa phương tiện

USD

United States dollar
Đồng đô la Mỹ

OS

Operation System
Hệ điều hành

SDK

software development kit
Bộ phát triển phầm mềm

VM

Virture Machine
Máy ảo

URI

Uniform Resource Identifier
chuỗi ký tự xác định mộttài nguyên trên Internet.


GPS

Global Positioning System
Hệ thống định vị toàn cầu

WAP

Wireless Application Protocol
Giao thức Ứng dụng Không dây

Location Map
 

Trang vii


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

DANH SÁCH CÁC HÌNH
Trang
Hình 1: Sơ đồ kiến trúc................................................................................................... 6
Hình 2: Sơ đồ trạng thái của Activity ........................................................................... 10
Hình 3: Vòng đời của Service ...................................................................................... 15
Hình 4: Intent ................................................................................................................ 17
Hình 5: Thuộc tính của Intent. ...................................................................................... 18

Hình 6: Action của Intent. ............................................................................................ 20
Hình 7: Android Manifest. ........................................................................................... 21
Hình 8: Ứng dụng tìm đường. ...................................................................................... 28
Hình 9: Chức năng tìm kiếm ........................................................................................ 29
Hình 10: Kết quả tìm kiếm. .......................................................................................... 30
Hình 11: Tìm đường đi ngắn nhất giữa 2 điểm. ........................................................... 32
Hình 12: Danh mục các địa chỉ trong hệ thống. ........................................................... 33
Hình 13: Quản lý danh mục.......................................................................................... 34
Hình 14: Các chức năng trên bản đồ. ........................................................................... 35
Hình 15: Giao diện các ứng dụng trên Android. .......................................................... 37
Hình 16: Danh sách khu vực. ....................................................................................... 38
Hình 17: Danh sách danh mục...................................................................................... 39
Hình 18: Các địa chỉ trong một danh mục.................................................................... 40
Hình 19: Vị trí hiện tại.................................................................................................. 41
Hình 20: Vị trí tìm kiếm và đường đi dến nó. .............................................................. 42
Hình 21: Vị trí cần đến. ................................................................................................ 43
Hình 22: Các chức năng trong bản đồ. ......................................................................... 44
Hinh 23: Nhập thông tin tìm đường đi giữa 2 điểm. .................................................... 45
Hình 24: Hộp thoại chọn lựa các View trên bản đồ. .................................................... 46
Hình 25: Bản đồ hiển thị theo vệ tinh........................................................................... 47

Location Map
 

Trang viii


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 


Giới thiệu
Có thể nói rằng đề tài về bản đồ giao thông tại thành phố Hồ Chí Minh
là một đề tài không mới. Trong các năm qua, đã có nhiều khóa luận của các
sinh viên ngành CNTT nghiên cứu về chủ đề này. Các đề tài này đa số đều
được thực hiện rất tốt, hỗ trợ cho người dùng rất nhiều chức năng như : xem
bản đồ, tra cứu thông tin về các đường đi, các địa điểm, tra cứu các tuyến xe
buýt…đặc biệt là chức năng xác định lộ trình để tìm đường đi ngắn nhất giữa
hai địa điểm và hầu hết các đề tài nói trên đều được thực hiện nhắm đến môi
trường sử dụng là các máy tính để bàn, Pocket PC hoặc di động.
Trong thời điểm hiện nay, trên thế giới cũng như tại Việt Nam, thị
trường cho điện thoại di động thông minh (smart phone) đang trở nên sôi động
hơn bao giờ hết. Một mặt, do thu nhập của người dân ngày càng được cải thiện
cùng với nhu cầu trao đổi thông tin ngày càng tăng khiến cho nhu cầu sử dụng
điện thoại di động thông minh cũng tăng theo. Mặt khác, các nhà sản xuất điện
thoại di động nắm bắt được nhu cầu của giới trẻ ưa chuộng những sản phẩm
“high-tech” và cũng do yêu cầu cạnh tranh với nhau nên liên tục tung ra nhiều
sản phẩm mới với nhiều tính năng, cấu hình ngày càng được nâng lên và giá
thành ngày càng giảm. Chiếc điện thoại di động giờ đây không phải là một món
hàng quá xa xỉ. Nhờ đó, ngày càng có nhiều người sở hữu được phương tiện
trao đổi thông tin hữu ích này.
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ị này.
Phần mềm cho các điện thoại di động hiện nay rất đa dạng mà đa số là các trò
chơi, các chương trình tiện ích như xử lý ảnh chụp, đổi đơn vị đo lường, từ
điển, soạn thảo văn bản, diệt virus…

Trang 1
 



GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

Lý do chọn đề tài:
Hiện nay đã có nhiều vậy ứng dụng về bản đồ giao thông dành cho điện
thoại di động với các tính năng đã trình bày ở trên. Tuy nhiên ứng dụng sử
dụng công nghệ Google Maps của Android thì còn rất ít.
Với những lý do trên, em đã chọn thực hiện đề tài “Xây dựng bản đồ số
trên điện thoại di động sử dụng công nghệ Android của Google”. Mục tiêu của
đề tài nhằm xây dựng một phần mềm ứng dụng bản đồ giao thông bằng công
nghệ Android. Nhờ vào phần mềm này, người sử dụng có thể xem bản đồ, tra
cứu tên đường, tên các địa điểm, các công trình công cộng như chợ, trường
học, bệnh viện, khách sạn…, đặc biệt là trợ giúp người sử dụng xác định lộ
trình ngắn nhất để đi từ địa điểm này đến một địa điểm khác… Phần mềm này
nếu được thực hiện tốt sẽ trở thành một ứng dụng rất hữu ích, rất thiết thực và
tiện dụng đối với nhiều người, đặc biệt là các bạn trẻ và những người bận rộn
trong việc đi lại.
Google Maps là là một dịch vụ của Google cung cấp công nghệ bản đồ
mạnh, thân thiện với người dùng và các thông tin doanh nghiệp địa phương bao
gồm địa điểm kinh doanh, thông tin liên hệ và chỉ đường bản đồ số toàn cầu,
đem lại nhiều lợi ích cho người sử dụng.
Hiện nay, Google Maps không chỉ xuất hiện trên máy tính mà nó trở nên
gần gũi hơn với các phần mềm tiện dụng trên điện thoại di động sử dụng công
nghệ Android. Điều này giúp người dùng điện thoại di động có thể xem bản đồ,
tìm đường đi và địa điểm ở mọi lúc, mọi nơi.
Việc sử dụng ứng dụng này trên điện thoại giúp bạn không bao giờ phải

mang theo bản đồ giấy hay chiếc máy tính bên mình nữa. Mục đích của ứng

Location Map
 

Trang 2


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

dụng này nhằm hỗ trợ người sử dụng trong việc tìm đường đi và địa điểm trên
bản đồ số do Google Maps hỗ trợ.
Mục đích:


Tìm hiểu nghiên cứu kỹ thuật lập trình trên Android.
ƒ Nền tảng, kiến trúc framework Android.
ƒ Chu kỳ của ứng dụng Android.
ƒ Các thành phần của một ứng dụng Android.
ƒ Các công cụ hỗ trợ và phát triển ứng dụng trên Android.



Xây dựng và phát triển ứng dụng tìm đường đi trên bản đồ số trên thiết bị di
động sử dụng công nghệ Android của Google.
ƒ Tìm đường đi ngắn nhất từ vị trí đang đứng đến 1 vị trí được lưu trữ

trong hệ thống.
ƒ Tìm đường đi ngắn nhất giữa 2 vị trí bất kỳ.
ƒ Xác định vị trí hiện tại.
ƒ Lưu trữ các vị trí cần thiết vào hệ thống.



Xây dựng hoàn chỉnh úng dụng để có thể làm sản phẩm thương mại trên
Android Market.
Đối tượng và phạm vi nghiên cứu:



Lập trình trên nền tảng mã nguồn mở của Android và tất cả các kỹ thuật trên
nền tảng này.
ƒ Nền tảng phát triển ứng dụng trên Android.
ƒ Cấu trúc và chu kỳ sống của 1 ứng dụng Android.
ƒ Activity, Service, Broadcast Receiver.

Location Map
 

Trang 3


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 


ƒ Intent Messaging.
ƒ Google map và GPS.
ƒ UI, events, Resource.
ƒ Database SQLite


Phạm vi nghiên cứu: Xây dựng ứng dụng trên Android với IDE để phát triên là
Eclipse 3.6. Các kỹ thuật cần thiết được sử dụng trong ứng dụng:
ƒ Hiển thị Google Map với API key của Google.
ƒ Xây dụng giao diện trong Android bằng XML.
ƒ Định vị hệ thống bằng GPS.
ƒ Database SQLite.
Phương pháp nghiên cứu: để nghiên cứu và phát triển một dứng dụng Android
của Google, em đã xem và tham khảo tài liệu từ nhiều thông tin:



Xem tài liệu về Android do Google cung cấp, bao gồm các tài liệu về SDK,
ADT, và các trang Developer Guide:
/> />


Tham gia các forum trong và ngoài nước như: /> />


Xem và hiểu các chức năng về Maps trên Google Map:
/>



Đọc sách, tài liệu liên quan đến Android.

Location Map
 

Trang 4


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

Chương I: CƠ SỞ LÝ THUYẾT
1.1.
-

Giới thiệu về Android:
Một cách định nghĩa không quá chuyên môn thì có thể coi Android là tên một

nền tảng mở cho thiết bị di động của Google (gồm hệ điều hành - [linux base],
middleware và một số ứng dụng cơ bản). Androind sẽ đương đầu với một số hệ điều
hành dành cho thiết bị di dộng khác đang hâm nóng thị trường như Windows Mobile,
Symbian và dĩ nhiên là cả OS X (iPhone).
-

Android đã thu hút được sự chú ý của giới công nghệ khắp toàn cầu khi đứa

con của Google sẽ sử dụng giấy phép mã nguồn mở. Đó là một sản phẩm kết tinh từ ý

tưởng của Khối Liên minh thiết bị cầm tay mở do Google dẫn đầu, gồm 34 thành viên
với các công ty hàng đầu về công nghệ và di động toàn cầu như Qualcomm, Intel,
Motorola, Texas Instruments và LG Electronics, các nhà mạng như T-Mobile, Sprint
Nextel, NTT DoCoMo và China Mobile. Các nhà phát triển có thể sử dụng miễn phí
bộ Android Software Development Kit (SDK) để xây dựng các ứng dụng của mình.
-

Android sẽ hỗ trợ:
ƒ Màn hình cảm ứng (đa điểm).
ƒ

3G.

ƒ Wifi .
ƒ Trình duyệt dựa trên webkit.
ƒ Tin nhắn (SMS) theo luồng.
ƒ Định dạng MPEG-4, H.264, MP3, AAC.
ƒ Bộ tăng tốc đồ họa 3D.

Location Map
 

Trang 5


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 


1.2.

Kiến trúc của Android:

Hình 1: Sơ đồ kiến trúc
-

Màu đỏ: linux kernel - trái tim của android:
Giống như một con người muốn sống phải có trái tim, một nền tảng muốn hoạt

động được phải có kernel. Android được viết dựa trên linux kernel có chỉnh sửa lại
và tối ưu cho nền tảng di động.
Kernel này đảm nhiệm các chức năng cơ bản của một hệ điều hành (quản lý bộ
nhớ, lập lịch, quản lý process, file system, ...). Đặc biệt trong kernel có các driver
để giao tiếp trực tiếp với phần cứng cho riêng từng mẫu di động. Muốn nhúng
được android vào một mẫu di động mới, hãng phát triển sẽ phải viết lại toàn bộ
hoặc một phần các driver trong kernel. Hiện tại linux kernel phiên bản mới nhất
cũng hỗ trợ khá nhiều các loại phần cứng (đa số là do các thành viên, công ty chế
tạo ra phần cứng đó đóng góp).
-

Màu xanh xá cây: library - thư viện mở cho người dùng

Location Map
 

Trang 6



GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

Nếu kernel là trái tim thì library chính là "đôi chân" tạo nền tảng vững chắc cho
các ứng dụng phía trên. Nó cung cấp các hàm cho các ứng dụng phía trên dùng lại.
Các hàm này thực hiện các thuật toán vô cùng phức tạp (giải mã mp3, jpg, html,
...) sau đó gọi lại các hàm của kernel (system call) để hiển thị, lưu trữ hoặc đưa ra
các thiết bị phần cứng tương ứng.
-

Nhìn vào bức tranh, ta có thể thấy android bao gồm 9 nhóm thư viện chính:
ƒ Surface Manager: Thư viện quản lý các đối tượng đồ họa (cửa sổ, nút
bấm, ...).
ƒ Media Framework: thư viện hỗ trợ giải mã và ghi âm các chuẩn âm
thanh, hình ảnh, video phổ biến (MPEG4, H.264, MP3, AAC, AMR,
JPG, and PNG).
ƒ SQLite: thư viện tạo, lưu trữ và phân tích cơ sở dữ liệu.
ƒ OpenGL | ES: thư viện đồ họa 3D (hỗ trợ từ phần cứng nếu có).
ƒ FreeType: thư viện giải mã và hiển thị các font chữ.
ƒ Webkit: thư viện để phân tích, giải mã các trang web.
ƒ SGL: thư viện đồ họa 2D.
ƒ SSL: thư viện hỗ trợ kết nối tới máy chủ qua giao thức SSL (giao thức
kết nối có mã hõa và bảo mật)
ƒ Libc: thư viện biên dịch mã nguồn các chương trình viết bằng ngôn ngữ
C.

-


Màu vàng: Android Run time
Mặc dù ngôn ngữ lập trình Java với sự phát triển, viết các ứng dụng,
nhưng chúng tôi hiện không sử dụng thông thường sử dụng Java Runtime
(J2ME) phiên bản để chạy các chương trình Java, nhưng với Android của riêng
Android Runtime để chạy.Thời gian chạy Android chứa những điều sau đây hai
lõi.
ƒ (1) Core Thư viện: Bên trong thư viện lõi đã có chứa hầu hết các ngôn
ngữ lập trình Java được sử dụng trong tính hiệu quả của chức năng hô
hấp được yêu cầu, sau đó mỗi ứng dụng Android sẽ được trong quá trình

Location Map
 

Trang 7


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

này và tự Android hơn với một máy ảo Dalvik đồng thời chạy nhiều ứng
dụng Android chương trình, nhưng mà mỗi ứng dụng Android là sử
dụng một máy ảo từ Dalvik phải thực hiện.
ƒ (2) Máy ảo Dalvik: Dalvik máy ảo là một loại máy ảo được phát triển
bằng văn bản đã được vạch ra khi bộ nhớ với nguồn lực ít nhất để thực
hiện, và đề cập ở trên, "trong khi thực thi nhiều hơn VM cá nhân."
Dalvik máy ảo với nhiều phần của thiết kế ảo Java tham khảo máy,

Dalvik máy ảo mã thực hiện bởi trung gian không được thực thi bởi các
ảo Java Máy Java bytecode, trong khi không phải là một thực hiện trực
tiếp của file Java-class (Java Class File), nhưng ngày Java bytecode
công cụ để chuyển đổi VM dex Dalvik thực hiện cụ thể (Dalvik
EXcutable) định dạng, được gọi là. dex. So Dalvik VM Java VM Java
VM là sự khác biệt lớn nhất cho Stack-based, và Dalvik là dựa trên đăng
ký. Để cân nhắc kỹ thuật dựa trên đăng ký VM đặc điểm có lợi thế rất
lớn, đó là cho kiến trúc hiện phần cứng chính, do đó rất dễ dàng để tích
hợp với hệ thống hiện có và công nghệ tốt nhất, và các nguồn lực cần
thiết cho một tương đối nhỏ. Ngay cả trong VM trên phần cứng được
thực hiện dễ dàng hơn để đạt được.
-

Màu xanh nước biển: Application Framework: cung cấp sẵn các class để cho

người lập trình kế thừa lại một cách dễ dàng. Kèm theo đó là một môi trường phát
triển phần mềm tích hợp (Android SDK) khiến cho việc tạo ra các phần mềm ứng
dụng cho nền tảng này dễ dàng hơn, thuận lợi hơn. Hiện tại, số lượng phần mềm
trên nền tảng android chưa thể so sánh với các nền tảng khác (symbian, mac,
windows mobile) nhưng đây thực sự là "biển lớn" cho những người phát triển phần
mềm vì nếu xét về mặt tốc độ thì android đang "bơi" nhanh hơn rất nhiều so với
các nền tảng khác.
-

Android là nền tảng mã nguồn mở, sự đóng góp của các thành viên tạo nên sự

vững mạnh của android.
Location Map
 


Trang 8


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

1.3.

Các thành phần của Android:

1.3.1 Activity:
-

Là là nền của 1 ứng dụng. Khi khởi động 1 ứng dụng Android nào đó thì bao
giờ cũng có 1 main Activity được gọi, hiển thị màn hình giao diện của ứng
dụng cho phép người dùng tương tác. Activities có thể so sánh như là utility
độc lập trên hệ thống desktop hay như office applications. Activities là đoạn
code thực thi mà khởi động thời điểm cả user và hệ điều hành(Android) chạy
song song khi được cần thiết. Nó có thể tương tác với user và request data hoặc
services từ những activities khác hoặc những services thông qua queries hoặc
Intents.

-

Activity Life Cycle: 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.

-

Activity bao gồm 4 state:
ƒ active (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). VD: một activity mới xuất hiện hiển thị giao diện đè lên trên
activity cũ, nhưng giao diện này nhỏ hơn giao diện của activity cũ, do đó
ta vẫn thấy được 1 phần giao diện của activity cũ nhưng lại không thể
tương tác với nó.
ƒ stop: Activity bị thay thế hoàn toà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 đó.

Location Map
 

Trang 9


GVHD:: Mai Anh Thơ

Ứ dụng tìm
Ứng
m đường đi

đ trên Anddroid 

 

-

B đồ miêu tả Activitty state:
Biểu

Hình 2:
2 Sơ đồ trạạng thái củ
ủa Activityy

Location
n Map

Trang 110


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

-

Activity của bạn sẽ giám sát và react những sự kiện bằng cách thực hiện những
mothod mà override những method của Activity class:
ƒ onCreate: sẽ được gọi khi activity của bạn lần đầu tiên được tạo. Đây là

nơi bạn thường tạo views, mở những file dữ liệu mà cần thiết cho
activity của bạn, và nó chung là khởi tạo activity của bạn. Khi cọi
onCreate, Android framework sẽ được truyền một đối tượng Bundle
object mà chứa bất khì trạng thái hoạt động nào đã được lưu khi activity
đó đã chạy trước đó.
ƒ onStart: được gọi trước khi activity của bạn xuất hiện ở màn hình. Khi
onStart hoàn thành, nếu activity của bạn foreground trên màn hình, điều
khiển sẽ được chuyển cho onResume. Nếu activity của bạn không thể
foreground vì một vài lý do nào đó, điều khiển sẽ được chuyển sang cho
onStop.
ƒ onResume: được gọi ngay sau khi onStart nếu activity của bạn
foreground trên màn hình. Tại thời điểm này activity của bạn sẽ chạy và
tương tác với user. Bạn sẽ nhận keyboard và touch inputs, và màn hình
sẽ hiển thị user interface của bạn. onResume cũng được gọi nếu activity
của bạn nhường foreground cho activity khác, và activity đó cuối cùng
kết thúc, lúc đó sẽ lại bật lên trời lại foreground. Đây là nơi activity của
bạn sẽ thực hiện(hoặc resume) những thứ mà cần thiết để update user
interface.
ƒ onPause: được gọi khi hệ điều hành resume activity khác, để activity đó
foreground. Tại thời điểm này activity của bạn sẽ không còn trên màn
hình nữa, vì vậy bạn nên ngừng những việc mà tiêu thụ battery và CPU.
Nếu bạn đang chạy animation, tất nhiên không ai có thể thấy nó, vì vậy
bạn nên suspend nó cho đến khi nó trở lại màn hình. Activity của bạn
cần sự thuận lợi của phương thức này để chứa bất kỳ trạng thái nào mà
sẽ cần trong trường hợp activity của bạn nhận lại được foreground và

Location Map
 

Trang 11



GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

điều này không đảm bảo rằng activity của bạn sẽ được resume. Nếu thiết
bị của bạn đang chạy out of memory, mà không có vitual memory trên
đĩa cứng để dùng cho sự mở rộng, vì vậy activity của bạn có lẽ phải tạo
ra cách cho system process mà bộ nhớ cần. Khi bạn exit method này,
Android có thể kill activity của bạn tại bất khì thời điểm nào mà không
trả lại quyền điều khiển cho bạn.
ƒ onStop: được gọi khi activity của bạn không còn visible nữa, bởi activity
khác chiếm foregroudn và bởi activity của bạn destroyed.
ƒ onDestroy: cơ hội cuối cùng cho activity của bạn thực hiện bất khì
processing nào trước khi nó bị destroyed. Bình thường bạn sẽ có được
điều này(tức là sẽ tự destroyed và bạn không phải làm điều này) bởi vì
activity được thực hiện và framework gọi phương thức finish của chính
nó. Nhưng như đã đề cập trước đây, phương thức này có thể được gọi
bởi vì Android đã quyết định tài nguyên mà activity của bạn tiêu thụ.
1.3.2 Service:
-

Là thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu, đưa
ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy.
Tương tự như những services chạy trên hệ thống desktop hay server. Nó là
những đoạn code thực thi mà thương chạy ngầm từ lúc thực thi đến khi thiết
bị(cell phone) shut down. Nói chung nó không expose ra cho user thấy. Ví dụ

như service là một MP3 player thì cần phải chơi các file được xếp sẵn vào 1
queue nào đó(playlist) cho đến khi user tiếp tục dùng ứng dụng khác. Ứng
dụng của bạn cần implement services để thực thi task đó ngầm định mà sẽ
không expose ra giao diện.

-

Một Service có thể được sử dụng theo 2 cách:
ƒ Nó có thể được bắt đầu và được cho phép hoạt động cho đến khi một
người nào đó dừng nó lại hoặc nó tự ngắt. Ở chế độ này, nó được bắt

Location Map
 

Trang 12


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

đầu bằng cách gọi Context.startService() và dừng bằng lệnh
Context.stopService(). Nó có thể tự ngắt bằng lệnh Service.stopSelf()
hoặc Service.stopSelfResult(). Chỉ cần một lệnh stopService() để ngừng
Service lại cho dù lệnh startService() được gọi ra bao nhiêu lần.
ƒ Service có thể được vận hành theo như đã được lập trình việc sử dụng
một Interface mà nó định nghĩa. Các người dùng thiết lập một đường
truyền tới đối tượng Service và sử dụng đường kết nói đó để thâm nhập

vào Service. Kết nối này được thiết lập bằng cách gọi lệnh
Context.bindService() và được đóng lại bằng cách gọi lệnh
Context.unbindService(). Nhiều người dùng có thể kết nối tới cùng một
thiết bị. Nếu Service vẫn chưa được khởi chạy, lệnh bindService() có thể
tùy ý khởi chạy nó. Hai chế độ này thì không tách biệt toàn bộ. Bạn có
thể kết nối với một Service mà nó đã được bắt đầu với lệnh
startService(). Ví dụ, một Service nghe nhạc ở chế độ nền có thể được
bắt đầu bằng cách gọi lệnh startService() cùng với một đối tượng Intent
mà định dạng được âm nhạc để chơi. Chỉ sau đó, có thể là khi người sử
dụng muốn kiểm soát trình chơi nhạc hoặc biết thêm thông tin về bài hát
hiện tại đang chơi, thì sẽ có một Activity tạo lập một đường truyền tới
Service bằng cách gọi bindService(). Trong trường hợp như thế này,
stopService() sẽ không thực sự ngừng Service cho đến khi liên kết cuối
cùng được đóng lại.
-

Giống như một Activity, một Service cũng có các phương thức chu kỳ thời
gian mà bạn có thể cài đặt để kiểm soát những sự thay đổi trong trạng thái của
nó. Những những phương thức của Service thì ít hơn là của Activity, chỉ có 3
và thì được sử dụng rộng rãi, không được bảo vệ.
ƒ void onCreate()
ƒ void onStart(Intent intent)
ƒ void onDestroy()

Location Map
 

Trang 13



GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

-

Bằng việc thực hiện những phương thức này, bạn có thể giám sát 2 vòng lặp
của chu kỳ thời gian của mỗi Service

-

Entire lifetime của một Service diễn ra giữa thời gian onCreate() được gọi ra và
thời gian mà onDestroy() trả lại. Giống như một Activity, một Service lại tiết
hành cài đặt ban đầu ở onCreate(), và giải phóng tát cả các tài nguyên còn lại ở
onDestroy(). Ví dụ, một Service phát lại nhạc có thể tạo ra một luồng và bắt
đầu chơi nhạc onCreate(),và sau đó luồng chơi nhạc sẽ dừng lại ở onCreate(),
Active lifetime của một Service bắt đầu bằng một lệnh tới onStart(). Đâylà
phương thức được chuyển giao đối tượng Intent mà đã được thông qua để tới
startService() Service âm nhạc sẽ mở đối tượng Intent để quyết định xem sẽ
chơi loại nhạc nào và bắt đầu phát nhạc. Không có callback tương đương nào
cho thời điểm Service ngừng lại – không có phương thức onStop() .

-

Các phương thức onCreate() và onDestroy() được gọi cho tất cả các Service dù
có được bắt đầu bằng Context.startService() hoặc Context.bindService() hay
không. Tuy nhiên thì, onStart() chỉ được gọi ra đối với các Service bắt đầu
bằng startService().


-

Nếu một Service cho phép những Service khác kết nối với nó thì sẽ có thêm
các phương thức callback dành cho Service đó để thực hiên
ƒ IBinder onBind(Intent intent) .
ƒ boolean onUnbind(Intent intent) .
ƒ void onRebind(Intent intent).

-

Biểu đồ dưới đây minh họa cho các phương thức callback giành cho một
Service. Mặc dù, nó phân tách các Service được tạo ra thông qua startService
với các Service mà được tạo ra bằng bindService(). Hãy nhớ rằng bất kì
Service nào, cho dù nó được khởi tạo như thế nào thì nó vẫn có thể cho phép
các người dùng kết nối tới nó một cách hiệu quả nhất, cho nên bất kì Service

Location Map
 

Trang 14


GVHD: Mai Anh Thơ

Ứng dụng tìm đường đi trên Android 

 

nào cũng có thể được chỉ định thông qua các các phương thức onBind()và

onUnbind().

Hình 3: Vòng đời của Service
1.3.3 Content Provider:
-

Là kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý và chia sẻ
dữ liệu giữa các ứng dụng. Content providers được tạo ra để chia sẻ data với
các activities hay services khác. Một content provider dùng một interface chuẩn
từ URI để thực hiện requests cho data từ ứng dụng khác mà có thể không biết
content provider nào mà sẽ dùng. Ví dụ, khi một ứng dụng truy xuất Contact
data, nó đánh địa chỉ truy xuất dạng:
Content://contacts/people

Location Map
 

Trang 15


×