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

XÂY DỰNG ỨNG DỤNG BẢN ĐỒ ĐỊA ĐIỂM DU LỊCH HỘI AN TRÊN ANDROID - Full 10 điểm

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.37 MB, 53 trang )

LỜI CẢM ƠN
Trong thời đại số hiện nay, thị trường điện thoại di động, đặc biệt là các dòng
điện thoại thông minh ngày càng phát triển và phổ biến. Trong xu hướng đó điện thoại
thơng minh dần thay thế cho PC trong giải quyết các yêu cầu công việc, các hoạt động
giải trí thơng qua các ứng dụng trên nền tảng di dộng. Hiện nay hầu hết các dòng điện
thoại đều tích hợp ứng dụng bản đồ, nằm giúp chúng ta thuận tiện trong việc tra cứu
địa điểm, tìm kiếm đường đi, hay xác định vị trí của một người dùng hoặc là một
người dùng nào khác thông qua hệ thống định vị toàn cầu GPS. Du lịch hiện nay là
một ngành rất phát triển tại Việt Nam, đặc biệt là các địa danh nổi tiếng như Vịnh Hạ
Long, Huế, Hội An…vv. Ngày càng thu hút lượng khách tới tham quan du lịch. Tuy
nhiên các một hạn chế là du khách thường gặp khó khăn trong việc tìm các địa điểm
tham quan tại một địa điểm nào đó, cũng như một số thơng tin về các địa điểm đó.
Việc cầm theo bản đồ đối với nhiều du khách có thể là bất tiện. Vì vậy em muốn phát
triển và xây dựng một ứng dụng bản đồ du lịch trong một địa điểm du lịch, nhằm cung
cấp thông tin địa điểm một cách cụ thể, chính xác tạo thuận lợi cho khách du lịch
thông qua nền tảng di động Android hiện đang rất phổ biến trên hầu hết các dòng điện
thoại thông minh hiện nay.
Do thời gian hạn chế nên đồ án khơng hồn thành hết các chức năng như dự
định ban đầu đ đặt ra. Trong quá trình thực hiện thì khơng thể tránh kh i nh ng sai
sót, mong thầy cơ và các bạn góp ý để em hồn thiện tốt hơn.
Trong thời gian làm đồ án tuy gặp khơng ít khó khăn nhưng được sự giúp đỡ
tận tình của thầy cơ trong bộ mơn lập trình – Khoa Khoa Học Máy Tính đ giúp em
hồn thành đồ án này.
Em xin chân thành cảm ơn giảng viên Võ Hoàng Phương Dung - người trực
tiếp hướng dẫn tận tình và giúp đỡ em hoành thành đồ án. Một lần n a em cũng xin
gửi lời cảm ơn chân thành tới các thấy cô trong khoa nh ng người đ cung cấp nền
tảng kiến thức để em hoàn thành đồ án này
Em xin chân thành cảm ơn!

Trang i



MỤC LỤC
LỜI CẢM ƠN .................................................................................................................i
MỤC LỤC .................................................................................................................... ii
DANH MỤC TỪ VIẾT TẮT .......................................................................................iv
DANH MỤC HÌNH ẢNH ............................................................................................. v
Chƣơng 1. CHƢƠNG MỞ ĐẦU .................................................................................1
1.1. Lý do chọn đề tài ................................................................................................ 1
1.2. Mục tiêu và nhiệm vụ ........................................................................................1
1.3. Đối tƣợng nghiên cứu và phạm vi hệ thống.....................................................2
1.4. Phƣơng pháp nghiên cứu ..................................................................................2
1.5. Ý nghĩa thực tiễn ................................................................................................ 2
Chƣơng 2. CƠ SỞ LÝ THUYẾT ................................................................................3
2.1. Giới thiệu về Android ........................................................................................3
2.1.1. Khái niệm về Android .................................................................................3
2.1.2. Tổng quan cấu trúc của Android ............................................................... 4
2.1.3. Sơ lược các phiên bản Android ..................................................................5
2.1.4. Các thành phần cơ bản của ứng dụng Android ........................................5
2.2. Lập trình trên hệ điều hành Android .............................................................. 8
2.2.1. Ngôn ngữ Java ............................................................................................8
2.2.2. JSON ..........................................................................................................10
2.2.3. Ngôn ngữ XML .........................................................................................11
2.2.4. Ngôn ngữ PHP ..........................................................................................12
2.3. Các dịch vụ của Google với lập trình MapView ...........................................13
2.3.1. Google Maps .............................................................................................. 13
2.3.2. Google Places API .....................................................................................13
2.3.3. Google Directions API ..............................................................................13
2.3.4. Google Geocoding API .............................................................................13
2.4. Máy ảo Dalvik và Android SDK .....................................................................13
2.4.1. Máy ảo Dalvik............................................................................................ 13

2.4.2. Android SDK ............................................................................................. 14
2.4.3. Android Emulator .....................................................................................15
Chƣơng 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG .................................................16
Trang ii


3.1. Mô tả hệ thống ..................................................................................................16
3.1.1. Yêu cầu chức năng ....................................................................................16
3.1.2. Yêu cầu phi chức năng .............................................................................16
3.1.3. Yêu cầu hệ thống .......................................................................................16
3.2. Phân tích thiết kế ............................................................................................. 16
3.2.1. Mơ hình hóa u cầu ................................................................................16
3.2.2. Mơ hình hóa khái niệm.............................................................................19
3.2.3. Mơ hình hóa tương tác .............................................................................21
3.2.4. Mơ hình hóa hành vi .................................................................................28
3.2.5. Thiết kế chi tiết biểu đồ lớp .......................................................................31
3.2.6. Thiết kế kiến trúc vật lý. ............................................................................31
Chƣơng 4. XÂY DỰNG ỨNG DỤNG.......................................................................33
4.1. Cách thức xây dựng chƣơng trình .................................................................33
4.1.1. Xây dựng chức năng xử lý của WebService ............................................33
4.1.2. Truyền dữ liệu qua các form ....................................................................34
4.1.3. Truy vấn và lấy dữ liệu từ hệ thống Services của Google .......................36
4.1.4. Đọc dữ liệu từ file JSON...........................................................................36
4.1.5. Hiển thị MapView .....................................................................................37
4.1.6. Sử dụng tài nguyên GPS và Internet của hệ thống .................................38
4.1.7. Đánh dấu vị trí trên MapView ..................................................................38
4.1.8. Sử dụng Google Directions API để vẽ đường ..........................................39
4.2. Giao diện ứng dụng ..........................................................................................40
TÀI LIỆU THAM KHẢO.......................................................................................... vii
NHẬN XÉT CỦA GIẢNG VIÊN ............................................................................. viii


Trang iii


DANH MỤC TỪ VIẾT TẮT
 API: Application Programming Interface (Giao diện lập trình ứng dụng)
 CSDL: Cơ sở d liệu
 GPS: Global Positioning System (Hệ thống định vị toàn cầu)
 HD: High- Definition (Truyền hình độ nét cao)
 HTML: Hyper Text Markup Language (Ngôn ng Đánh dấu Siêu văn bản)
 JSON: Java Script Object Notation (Định dạng trao đổi d liệu cực nhẹ)
 OPP: Object- Oriented Programming (Lập trình hướng đối tượng)
 OHA: Open Handset Alliance (Liên minh thiết bị cầm tay mở rộng)
 XML: eXtensible Markup Language (Ngôn ng Đánh dấu mở rộng)
 SDK: Software Development Kit (Bộ công cụ phát triển phần mềm)

Trang iv


DANH MỤC HÌNH ẢNH
Số hiệu

Tên hình vẽ

hình vẽ

Trang

Hình 2.1:


Logo Android

3

Hình 2.2:

Kiến trúc Android

4

Hình 2.3:

Chu trình sống của 1 Activity

8

Hình 2.4:

Android Emulator

15

Hình 3.1:

Biểu đồ trường hợp sử dụng

18

Hình 3.2:


Biểu đồ use case cập nhật danh sách địa điểm

18

Hình 3.2:

Hình 3.2:Biểu đồ use case cập nhật các loại địa điểm

18

Hình 3.4:

Biểu đồ use case tìm kiếm các địa điểm

19

Hình 3.5:

Các lớp biên

19

Hình 3.6:

Các lớp điều khiển

20

Hình 3.7:


Các lớp thực thể

20

Hình 3.8

Biểu đồ trình tự mở hệ thống

21

Hình 3.9:

Biểu đồ trình tự đóng hệ thống

21

Hình 3.10:

Biểu đồ trình tự cập nhật địa điểm

22

Hình 3.11:

Biểu đồ trình tự cập nhật các loại địa điểm

22

Hình 3.12:


Biểu đồ trình tự tìm kiếm qua webservices

23

Hình 3.13: Biểu đồ trình tự tìm kiếm qua google places

23

Hình 3.14:

Biểu đồ trình tự xem vị trí địa điểm

24

Hình 3.15:

Biểu đồ cộng tác mở hệ thống

24

Hình 3.16:

Biểu đồ cộng tác đóng hệ thống

25

Hình 3.17:

Biểu đồ cộng tác cập nhật địa điểm


25

Hình 3.18:

Biểu đồ cộng tác cập nhật các loại địa điểm

26

Hình 3.19:

Biểu đồ cộng tác tìm kiếm qua webservices

26

Hình 3.20:

Biểu đồ cộng tác tìm kiếm qua google places

27

Hình 3.21:

Biểu đồ cộng tác xem vị trí địa điểm

27

Hình 3.22:

Biểu đồ mơ trạng thái mở hệ thống


28

Hình 3.23:

Biểu đồ trạng thái cập nhật địa điểm

28

Trang v


Hình 3.24:

Biểu đồ trạng thái tìm kiếm địa điểm.

28

Hình 3.25:

Biểu đồ trạng thái xem vị trí địa điểm

29

Hình 3.26: Biểu đồ hoạt mở hệ thống

29

Hình 3.27:

Biểu đồ hoạt động cập nhật địa điểm


29

Hình 3.28:

Biểu đồ hoạt động tìm kiếm

30

Hình 3.29: Biểu đồ hoạt động xem vị trí địa điểm

30

Hình 3.30:

Chi tiết biểu đồ lớp

31

Hình 3.31:

Biểu đồ thành phần

31

Hình 3.32: Biểu đồ triển khai

32

Hình 4.1:


Quá trình xử lý của web services

33

Hình 4.2:

Mơ hình trao đổi d liệu gi a hai Activity

34

Hình 4.3

Cấu trúc của một Intent

35

Hình 4.4:

Quá trình truy vấn và lấy d liệu từ hệ thống Services của Google

36

Hình 4.5:

Mơ hình xác định của một mảng giá trị trong JSON.

36

Hình 4.6:


Quá trình lấy key Map API

37

Hình 4.7:

Quy trình đánh dấu vị trí lên MapView

38

Hình 4.8:

Một file JSON trả về các thơng tin của Google Direction API

39

Hình 4.9:

Giao diện chính của chương trình

40

Hình 4.10:

Giao diện danh sách các địa điểm và tìm kiếm

41

Hình 4.11:


Kết quả tìm kiếm và hiển thi lên bản đồ

41

Hình 4.12:

Vị trí của người dùng với các địa điểm du lịch và nhà hàng

42

Hình 4.13:

Vị trí của người dùng với các quán café và khách sạn

42

Hình 4.14:

Giao diện vẽ đường đi hiển thị địa chỉ sau khi vẽ

43

Hình 4.15:

Kích chọn chia sẻ và giao diện chia sẻ facebook

43

Hình 4.16:


Giao diện đăng nhập và tiến hành chia sẻ

44

Hình 4.17:

Kết quả chia sẻ trên facebook qua ứng dụng

44

Trang vi


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

Chƣơng 1.CHƢƠNG MỞ ĐẦU
1.1. Lý do chọn đề tài
Ngày nay các thiết bị số cầm tay như điện điện thoại di động, điện thoại thơng
minh, máy tính bảng có rất nhiều trên thị trường. Với giá thành ngày càng rẻ và các
tiện ích mà nó đem lại, các thiết bị đó giờ dần trở nên phổ biến. Có rất nhiều nền tảng
được sử dụng để điều hành các thiết bị như iOS , Windows Phone, Android …vv.
Trong đó Android là một nền tảng điều hành di động được chính nhà phát triển là
Google cung cấp mở nguồn m , cùng với đó các thiết bị di động mạnh mẽ với khả
năng xử lý các vụ ngày càng nhanh hơn với các bộ vi xử lý khủng là điều kiện để các
lập trình viên có thể tiếp cận và tận dụng tối đa nh ng gì mà Android đem lại trên nền
tảng các thiết bị với phần cứng ngày càng mạnh mẽ hiện nay. Android nhanh chóng
trở thành hệ điều hành thu hút nhiều lập trình viên nhất và chiếm một thị phần lớn
trong thị trường di động thông minh hiện nay.
Việc sử dụng các thiết bị số ngồi khả năng hỗ trợ con người trong cơng việc,

giải trí mà cịn giúp cho con người tiết kiệm thời gian hơn vào nhiều cơng việc thực
tiễn như giải trí, học tập, du lịch…vv
Du lịch hiện nay là một ngành rất phát triển tại Việt Nam, đặc biệt là các địa
danh nổi tiếng như Vịnh Hạ Long, Huế, Hội An…vv. Ngày càng thu hút lượng khách
tới tham quan du lịch. Tuy nhiên các một hạn chế là du khách thường gặp khó khăn
trong việc tìm các địa điểm tham quan tại một địa điểm nào đó, cũng như một số thơng
tin về các địa điểm đó. Việc cầm theo bản đồ đối với nhiều du khách có thể là bất tiện.
Vì vậy em muốn phát triển và xây dựng một ứng dụng bản đồ du lịch trong một
địa điểm du lịch, nhằm cung cấp thông tin địa điểm một cách cụ thể, chính xác tạo
thuận lợi cho khách du lịch thông qua nền tảng di động Android hiện đang rất phổ biến
trên hầu hết các dịng điện thoại thơng minh hiện nay.
1.2. Mục tiêu và nhiệm vụ
 Mục tiêu: Tìm hiểu về các cơng nghệ lập trình cần thiết trên nền tảng Android
để hồn thành được ứng dụng có thể tìm kiếm hiện thị vị trí các thơng tin cần
thiết về một địa điểm du lịch
o Hiểu về nguyên lý hoạt động của Android, các thành phần của hệ thống
cũng như của một ứng dụng thực thi trên nền Android
Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 1


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

o Tìm hiểu và áp dụng được các cơng nghệ lập trình trên nền Android như
ngơn ng JAVA, tương tác với các tài nguyên hệ thống (GPS,Internet,
TouchScreen), sử dụng các dịch vụ của Google như Google Map,
Google Places API, Google Directions API, Google Geocoding API.
o Tìm hiểu về xây dưng một dịch vụ web trên nền tảng php sử dụng hệ cơ
sở d liệu MySQL.

 Nhiệm vụ: Đọc các tài liệu liên quan về bộ thư viện lập trình trên nền Android.
Tìm hiểu các dịch vụ liên quan đến ứng dụng.
1.3. Đối tƣợng nghiên cứu và phạm vi hệ thống
 Đối tượng :
o Ngôn ng JAVA, PHP, JSON, XML.
o Hệ cơ sở d liệu MySQL
o Công cụ Android SDK & Eclipse
o Hệ điều hành và tài nguyên hệ thống Android.
o Các dịch vụ của google như Google Map, Google Places API, Google
Directions API, Google Geocoding API.
 Phạm vi: Đề tài dừng lại ở khuôn khổ hiện thị lên bản đồ tìm kiếm các địa điểm
và thơng tin trong phạm vi nh của thành phố Hội An.
Sử dụng mapview để tìm kiếm và dẫn đường cho người dùng. Ứng dụng được
viết trên nền tảng Android 2.2
1.4. Phƣơng pháp nghiên cứu
Đọc tham khảo các liệu trên mạng, các sách viết về Android và tham khảo qua
giáo viên hướng dẫn
1.5. Ý nghĩa thực tiễn
Chương trình có thể áp dụng vào trong cuộc sống, sử dụng để tìm kiếm hiển thị
các thống tin về địa điểm du lịch dành cho các du khách.

Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 2


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

Chƣơng 2.CƠ SỞ LÝ THUYẾT
2.1. Giới thiệu về Android

2.1.1. Khái niệm về Android

Hình 2.1: Logo Android
Android là hệ điều hành trên điện thoại di động ( và hiện nay là cả trên một số
đầu phát HD, HD player) phát triển bởi Google và dựa trên nền tảng Linux. Trước đây,
Android được phát triển bởi công ty liên hợp Android ( sau đó được Google mua lại
vào năm 2005). Theo NPD, thiết bị di động sử dụng hệ điều hành Android bán được
tại Mỹ trong quý II năm 2010 xếp vị trí đầu tiên với 33%, thứ 2 là BB os với 28% và
iOS ở vị trí thứ 3 với 22%. Android có một cộng đồng nh ng nhà phát triển rất lớn viết
các ứng dụng cho hệ điều hành của mình. Hiện tại có khoảng 70,000 ứng dụng cho
Android và vào khoảng 100,000 ứng dụng đ được đệ trình, điều này khiến Android
trở thành hệ điều hành di động có mơi trường phát triển lớn thứ 2. Các nhà phát triển
viết ứng dụng cho Android dựa trên ngôn ng Java. Sự ra mắt của Android vào ngày 5
tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay m nguồn mở,
bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đích tạo nên một
chuẩn mở cho điện thoại di động cho tương lai. Google công bố hầu hết các m ngồn
của Android theo bản cấp phép Apache. Hệ điều hành Android bao gồm 12 triệu dòng
m , 3 triệu dòng XML, 2.8 triệu dòng m C, 2.1 triệu m Java và 1.75 triệu dịng m
C++.

Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 3


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

2.1.2. Tổng quan cấu trúc của Android
Android bao gồm ba thành phần
1. Một hệ điều hành mở, miễn phí cho các thiết bị di dộng.

2. Một nền tảng mã nguồn mở cho phát triển các ứng dụng.
3. Thiết bị chạy hệ điều hành Android và các ứng dụng Android.
Một cách chi tiết Android bao gồm các thành phần quan trọng sau:
1. Một thiết kế phần cứng cho thiết bị di động hỗ trợ bộ phần mềm.
2. Một nhân viên điều hành Linux cung cấp giao diện mức thấp với phần cứng,
quản lý bộ nhớ và kiểm soát tiến trình. Tất cả đều tối ưu hóa cho thiệt bị di
động.
3. Thư viện mã nguồn mở cho phát triển ứng dụng bao gồm SQLite, Webkit,
OpenGL và quản lí đa phương tiện.
4. Một hệ thống thực thi và lưu tr cho ứng dụng Android bao gồm máy ảo Dalvik
và các thư viện cở bản cung cấp chức năng đặc thù cho Android. Hệ thống thục
thi được các thiết kế nh gọn và hiệu quả khi sử dụng trên các thiết bị di động.
5. Một kiến trúc ứng dụng cung cấp các dịch vụ hệ thống cho tầng ứng dụng bao
gồm quản lý cửa sổ, quản lý vị trí, cung cấp nội dung và các cảm biến.
6. Một số kiến trúc giao diện người dùng để lưu tr và chạy các ứng dụng.
7. Một số ứng dụng được cài sẵn coi như một phần của bộ ứng dụng.
8. Một bộ phát triển ứng dụng bao gồm các công cụ và tài liệu.

Hình 2.2: Kiến trúc Android

Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 4


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

2.1.3. Sơ lƣợc các phiên bản Android
Android là một nền tảng mới và phát triển nhanh. Các phiên bản thông thường
được phát hành sau khoảng sáu tháng. Sau đây là danh sách các phiên bản chính và sự

thay đổi lớn trong mỗi phiên bản Android.
 OHA giới thiệu Android (5-11-2007).
 Phát hành SDK (12-11-2007).
 Apple pie Android 1.0 (23/09/2008) : Phát hành phiên bản Android 1.0 trên
điện thoại Android đầu tiên – HTC Dream (G1)
 Banana Bread- Android 1.1 (9-2-2009): Phát hành phiên bản cập nhật 1.1 riêng
cho T-Mobie G1.
 Cupcake- Android 1.5 (30/4/2009).
 Donut- Android 1.6 (15/9/2009).
 Éclair- Android 2.0 (26/10/2009).
 Froyo- Android 2.2 (20/5/2010).
 Gingerbear- Android 2.3 (6/12/2010).
 Honeycomb- Android 3.0 (22/2/2011).
 Ice Cream Sandwich 4.0 (16/12/2011).
 Jelly Bean – Android 4.1 (9/7/2012).
 Jelly Bean- Android 4.2 (13/11/2012).
2.1.4. Các thành phần cơ bản của ứng dụng Android
Ứng dụng Android bao gồm nhiều thành phần liên kết với nhau được giới hạn
trong kiến trúc ứng dụng. Kiến trúc ứng dụng mô tả chi tiết mỗi thành phần và sự
tương tác gi a các thành phần này cũng như siêu d liệu về yêu cầu phần cứng.
Các thành phần sau đây tạo nên một ứng dụng Android:
 Activity: là lớp thể hiện ứng dụng. Mỗi màn hình trong ứng dụng là một mở
rộng của lớp Activity. Các Activity sử dụng các View tạo thành giao diện đồ
họa tương tác người dùng để thể hiện thông tin và phản hồi hành động của
người dùng.
 Service: là thành phần chạy ẩn, cập nhật nguồn d liệu và thể hiển các Activity,
kích hoạt các Notification. Các Service thường thực hiện xử lí thơng thường
như tiếp tục Activity sau khi các Activity này khơng hoạt động hoặc hiển thị.

Võ Minh Trí –CCLT04C- Khoa Học Máy Tính


Trang 5


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

 Content Provider: là thành phần lưu tr d liệu chia sẻ. Content Provider quản
lí và chia sẻ cở sở d liệu của ứng dụng. Chúng được coi như là phương tiện
chia sẻ d liệu gi a các ứng dụng.
 Intent: là cấu trúc truyền thông điệp gi a các ứng dụng. Chúng ta có thể sử
dụng Intent để truyền một thơng tin tới tồn hệ thống hay tới Activity hay
Service định trước để thực thi một hoạt động. Hệ thống sau đó sẽ xác định đối
tượng nào sẽ thực hiện các hoạt động phù hợp.
 Broadcast Receiver: là nơi nhận các Intent. Chúng ta có thể tự tạo một
Broadcast Receiver để ứng dụng có thể nhận được các Intent phù hợp với bộ
lọc đặt trước. Broadcast Receiver tự động bắt đầu khi ứng dụng phản hồi với
Intent nhận được và biến ứng dụng trở thành hướng sự kiện một cách hoàn hảo.
 Widget: thành phần trực quan của ứng dụng có thể them vào màn hình chính.
Là một dạng Broadcast Receiver, Widget cho phép người dùng tạo ra các ứng
dụng động, tương tác được nhúng ngay trên màn hình chính.
 Notification: là thành phần thơng báo cho người dùng. Hộp thoại thông báo cho
người dùng mà không gián đoạn các Activity hiện thời. Đây là kĩ thuật thông
báo cho người dùng nằm trong một Service hay một Broadcast Receiver. Ví dụ
khi nhận được một tin nhắn hay cuộc gọi đến có thể thơng báo cho người dùng
bằng đèn nháy hay bằng âm thanh…
Một ứng dụng không nhất thiết phải có hết các thành phần trên nhưng để có một
giao diện người dùng thì ít nhất ứng dụng đó phải có Activity. M đ được biên dịch
của các thành phần của ứng dụng, tài nguyên liên quan như thư viện, hình ảnh và các
d liệu cần thiết khác được đóng gói trong một file apk duy nhất chính là dạng file
thực thi của ứng dụng Android.

Như đ trình bày ở trên, Activity là thành phần quan trọng nhất và đóng vai trị
chính trong việc xây dựng ứng dụng Android. Hệ điều hành Android quản lí ứng dụng
dưới dạng stack: khi một Activity mới được khởi tạo, nó được xếp lên đầu stack và trở
thành running activity, các Activity trước đó sẽ bị tạm ngừng và chỉ hoạt động trở lại
khi Activity mới được giải phóng.
 Activity có 4 trạng thái:
o Active (running): Activity đang hiển thị trên màn hình.
o Pause: Activity vẫn hiển thị nhưng khơng thể tương tác.
Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 6


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

o Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng
thái stop.
o Killed: Khi hệ thống 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ị gả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 trạng thái trước đó.
Tùy từng sự kiện mà các phương thức được gọi để đảm bảo trạng thái các
Activity được hoạt động đúng. Chi tiết từng phương thức và sự kiện thây đổi trạng thái
tương ứng.
 onCreate(): Phương thức này khởi tạo Activity. Nó có thể b qua trạng thái cũ
để trở lại hoạt động. Phương thức tiếp theo luôn là onStart().
 onRestart(): Được gọi sau khi một Activity muốn bắt đầu trở lại.
 onStart(): Được gọi khi ứng dụng chuyển sang visible nhưng chưa tương tác
được với người dùng.
 onResume(): Activity có tương tác với người sử dụng và có thể nhận thơng tin

đầu vào. Kiểu tiến trình của ứng dụng được chuyển sang dạng hiển thị.
 onPause(): Nếu ứng dụng khơng cịn tương tác hay thiết bị khơng hoạt động,
phương thức này được gọi va kiểu tiến trình ứng dụng sẽ được chuyển sang
dạng visible. Sau khi thực hiện phương thức này, hệ thống cho phép giải phóng
ứng dụng bất kì lúc nào. Các thao tác sử dụng CPU và d liệu đều được lưu lại.
Activity sẽ có thể được hoạt động trở lại hoặc dừng lại.
 onStop(): Khi Activity khơng cịn tương tác n a thì kiểu thiến trình được
chuyển sang chạy nền và ứng dụng sẽ có thể bị giải phóng hoặc khởi động lại.
 onDestroy(): Phương thức cuối cùng này được hệ thống gọi trước khi giải
phóng ứng dụng hay ứng dụng loại b Activity. Tiến trình của ứng dụng có thể
chuyển sang kiểu rỗng nếu hệ thống muốn gi lại ứng dụng để tiếp tục lại ứng
dụng cho lần sau.

Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 7


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

Hình 2.3: Chu trình sống của 1 Activity
2.2. Lập trình trên hệ điều hành Android
2.2.1. Ngơn ngữ Java
2.2.1.1. Tổng quan về ngôn ngữ Java
Java là một ngôn ng lập trình dạng hướng đối tượng (OOP). Khác với phần
lớn ngơn ng lập trình thơng thường, thay vì biên dịch m nguồn thành m máy hoặc
thông dịch mà nguồn khi chạy, Java được thiết kế để biên dịch m nguồn thành
bytecode, bytecode sau đó sẽ được mơi trường thực thi chạy. Bằng cách này, Java
thường chạy chậm hơn nh ng ngơn ng lập trình thơng dịch khác như C++, Python,
Perl, PHP, C#...

Vào năm 1991, nhóm các kỹ sư của Sun Microsystems có ý định thiết kế một
ngơn ng lập trình để điều khiển các thiết bị điện tử như tivi, máy giặt, lị nướng…
Mặc dù C và C++ có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào
từng loại CPU.
Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất đắt, vì vậy
để mỗi loại CPU có một trình biên dịch riêng là rất tốn kém. Do đó nhu cầ thực tế địi
h i một ngơn ng chạy nhanh, gọn, hiệu quả và độc lập thiết bị tức là có thể chạy trên
Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 8


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

nhiều loại CPU khác nhau, dưới các môi trường khác nhau. “Oak”đ ra đời và vào
năm 1995 được đổi tên thành Java.
2.2.1.2. Một số tính chất ngơn ngữ Java
Cú pháp Java được vay mượn nhiều từ C và C++ nhưng có cú pháp hướng đối
tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chương
trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn. Dùng bộ thử viện
chuẩn KFC, nhiều đoạn code Java chỉ mất vài dòng trong khi C phải mất cả trang giấy.
Đơn giản: Nh ng người thiết kế mong muốn phát triển một ngôn ng dễ học và
quen thuộc với đa số người lập trình. Do vậy Java loại b các đặc trưng phức tạp
của C và C++ như:
 Loại b thao tác con tr , thao tác định nghĩa chồng toán tử.
 Không cho phép đa kế thừa mà sử dụng các giao diện,
 Không sử dụng lệnh “goto” cũng như file header (.h)/
 Loại b cấu trúc “struct” và “union”.
Hƣớng đối tƣợng: Java là ngơn ng lập trình thuần hướng đối tượng, mọi chương
trình viết trên Java đều phải được xây dựng trên các đối tượng. Nếu trong C/C++ ta

có thể tạo ra các hàm (chương trình con khơng gắn với đối tượng nào) thì trong
Java ta chỉ có thể tạo ra các phương thức (chương trình con gắn liền với một lớp cụ
thể). Trong Java không cho phép các đối tượng có tính năng đa kế thừa mà được
thấy thế bằng các giao diện (interface).
Mạnh mẽ:
 Java là ngôn ng yêu cầu chặt chẽ về kiểu d liệu
 Kiểu d liệu phải khai báo tường minh.
 Java không sử dụng con tr và các phép toán con tr .
 Java kiểm tra tất cả các truy nhập đến mảng, chuỗi khi thực thi để đảm bảo
rằng các truy nhập đó khơng ra ngồi giới hạn kích thước.
 Cơ chế bẫy lỗi của Java giúp đởn giản hóa q trình xử lý lỗi và phục hồi
sau lỗi
Bảo mật: Java cung cấp một mơi trường quản lý thực thi chương trình với nhiều
mức để kiểm sốt tính an tồn:
 Ở mức thứ nhất, d liệu và các phương thức được đóng gói bên trong lớp.
Chúng ta chỉ được truy xuất thơng qua các giao diện mà lớp cung cấp.
Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 9


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

 Ở mức thứ hai, trình biên dịch kiểm sốt để đảm bảo mã là an tồn và
tuân theo các nguyên tắc của Java.
 Mức thứ ba được đảm bảo bởi trình thơng dịch, chúng kiểm sốt xem
bytecode có đảm bảo các quy tắc an tồn trước khi được thực thi khơng
 Mức thứ tư kiểm sốt việc nạp các lớp vào bộ nhớ để giám sát việc vi
phạm giới hạn truy xuất trước khi nạp vào hệ thống.
Phân tán: Java được thiết kế để hỗ trợ các ứng dụng chạy trên mạng bằng các lớp

mạng (java.net). Hơn n a, Java hỗ trợ nhiều nền chạy khác nhau nên chúng được
sử dụng rộng r i như là công cụ phát triển trên Internet- nơi sử dụng nhiều nền
khác nhau.
Đa luồn: Chương trình Java cung cấp giải pháp đa luồng để thực thi các công việc
đồng thời chúng cũng cung cấp giải pháp đồng bộ gi a các luồng. Đặc tính hỗ trợ
đa luồng này cho phép xây dựng các ứng dụng trên mạng chạy hiệu quả.
Linh động: Java được thiết kế như một ngôn ng động để đáp ứng cho nh ng mơi
trường mở. Các chương trình Java chứa rất nhiều thông tin thực thi nhằm kiểm soát
và truy nhập đối tượng lúc chạy. Điều này cho phép khả năng liên kết m động.
2.2.2. JSON
JSON (JavaScript Object Noation) là một chuẩn dể định dạng d liệu. Rất dễ
dàng đọc, viết và phân tích. Nó dựa trên cơ sở tập hợp của ngôn ng JavaScript, tiêu
chuẩn ECMA- 262 phiên bản 3 tháng 12 năm 1999. Khi sử dụng JSON có thể truy vấn
trực tiếp giá trị theo tên (khóa) được định nghĩ trong JSON. Đứng về mặt tố độ của
ứng dụng di dộng đây là một ưu điểm rất lớn.
JSON đƣợc xây dựng trên 2 cấu trúc:
 Là tập hợp của các cặp tên và giá trị name – value.
 Là một tập hợp các giá trị đ được sắp xếp.
Các đặc điểm của JSON:
 JSON là văn bản trơn khơng (khơng có định dạng(màu sắc, cỡ ch …))
 JSON là “tự mơ tả”(người dùng có thể hiểu được)
 JSON là phân cấp (có cấu trúc cây)
 JSON có thể được phân tích cú pháp (parse) bởi JavaScript
 D liệu JSON có thể được truyền đi bằng AJAX
 Khơng có thẻ kết thúc
Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 10



Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

 Ngắn hơn
 Nhanh hơn để đọc và ghi
 Có thể được phân tích cú pháp bằng hàm dựng sẵn trong JavaScript là
eval()
 Sử dụng mảng (Array)
 Không dùng các từ reserve
2.2.3. Ngôn ngữ XML
XML là một ngơn ng đánh dấu mà bạn có thể sử dụng để tạo ra thẻ riêng của
mình. Nó được tạo neen bởi Liên minh mạng toàn cầu nhằm khắc phục nh ng hạn chế
của HTML – ngôn ng đánh dấu siêu văn bản, là cở sở của mọi trang Web. Giống như
HTML, XML cũng được dựa trên GSML – Standard Generalized Markup Language.
Mặc dù GSML được sử dụng trong ngành công nghiệp xuất bản trong nhiều thập kỉ,
nhưng sự phức tạp của nó đều khiến nh ng ai từng sử dụng nó mà khơng có các nào
khác phải thấy mệt m i.
Các đặc điểm của XML:
 Dễ dàng viết được các chương trình xử lý d liệu
 Tài liệu XML dễ đọc và có tính hợp lý cao.
 XML dễ dàng được sử dụng trên Internet
 XML hỗ trợ nhiều ứng dụng.
 Khơng đặt nặng tính hình thức trong nội dung thẻ
Các loại văn bản XML:
 Văn bản không hợp lệ: không theo nguyên tắc cú pháp được quy định bởi
đặc tính kỹ thuật XML.
 Văn bản hợp lệ: tuân theo nguyên tắc cú pháp XML và quy định trong
DTD hoặc lược đồ.
 Văn bản chuẩn: tuân theo quy tắc cú pháp XML nhưng khơng có DTD
hoặc lược đồ.
Một tài liệu XML đƣợc chia thành hai phần chính:

 Phần khai báo: khai báo cho tài liệu XML.
o Khai báo phiên bản, bảng mã ký tự sử dụng trong tài liệu.
o Định nghĩa kiểu cho tài liệu.
 Phần thân: chứa nội dung d liệu
Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 11


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

o Gồm một hay nhiều phần tử
o Mỗi phần tử được chứa trong một cặp thẻ
o Phần tử đầu tiên là phần tử gốc
2.2.4. Ngơn ngữ PHP
Tóm tắt sơ lƣợc về PHP:
 PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Ramus
Lerdorf tạo ra năm 1995. Ramus đ quyết định công bố m nguồn của
PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi trong nó đồng
thời cải tiến m nguồn.
 Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C. PHP/FI
2.0 được chính thức cơng bố vào tháng 11 năm 1997
 PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với
các phiên bản PHP mà chúng ta được biết ngày nay. Nó đ được Andi
Gutmans và Zeev Suraski tạo ra năm 1997. PHP 3.0 đ chính thức được
cơng bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đơng
kiểm nghiệm.
 PHP 4.0 đ chính thức được công bố vào tháng 5 năm 2000, gần 2 năm
sau khi bản PHP 3.0 ra đời. Ngoài tố độ xử lý được cải thiện rất nhiều,
PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều mấy

chủ Web hơn, hỗ trợ phiên làm việ HTTP, tạo bộ đệm thông tin đầu ra,
nhiều cách xử lý thông tin người sử dụng nhập vào đ bảo mật hơn và
cung cấp một vài cấu trúc ngôn ng mới
 PHP 5.0 bản chính thức đ ra mắt ngày 13 tháng 7 năm 2004 sau một
chuỗi khá dài các phiên bản kiểm tra thử bao gồm Beta 4, RC 1, RC 2, RC
3. Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn
một số lỗi trong đó đáng kể là lỗi xác thực HTTP.
 Hiện nay bản tiếp theo của PHP đang được phát triển, PHP 6 được kì vong
sẽ lâp đầy khiếm khuyết của PHP ở phiển bản hiện tại
Lý do chọn ngôn ngữ PHP:
 Viết m PHP trở nên khá trực quan và dễ dàng trong việc xây dựng giao
diện ứng dụng HTTP
 Rất thích hợp với web có thể dễ dàng nhúng trang HTML
Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 12


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

 Tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nh gọn
 Dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các
ngôn ng khác.
2.3. Các dịch vụ của Google với lập trình MapView
Để làm việc tốt với hệ thống bản đồ của Google, thì cần sử dụng một số các
dịch vụ cần thiết để lập trình. Điểm chung của các dịch vụ này là đều chạy trên môi
trường web và đều trả kết quả qua định dạng JSON hoặc là XML.
2.3.1. Google Maps
Google Maps là một dịch vụ ứng dụng và công nghệ bởi Google và hỗ trợ nhiều
dịch vụ dựa vào bản đồ nhứ Google Ride Finder và một số có thể dùng để nhúng vào

các trang web của bên thứ ba thơng qua Google Maps API. Nó cho phép thấy bản đồ
đường sá, đường đi cho xe đạp, cho người đi bộ và xe hơi, và nh ng địa điểm kinh
doanh trong khu vực cũng như khắp nới trên thế giới.
2.3.2. Google Places API
Google Places API là một dịch vụ của Google INC mà khi sử dụng chúng ta sẽ
nhận được các thông tin về các địa điểm đ được đánh dấu trên bản đồ Google Maps
bởi các tổ chức, công ty và cá nhân ở khắp nơi trên thế giới. Để sử dụng được dịch vụ
này chúng ta phải đăng ký API key dịch vụ Google Places với Google .
2.3.3. Google Directions API
Google Directions API là một dịch vụ của Google INC mà khi sử dụng chúng ta
sẽ đưa vào tọa độ 2 địa điểm đầu cuối rồi sau đó sẽ được thơng tin về khoảng cách
gi a 2 điểm, tọa độ GPS, thời gian đi lại dự kiến với các phương tiện như xe máy, ô tô
hay là đi bộ.
2.3.4. Google Geocoding API
Đây là dịch vụ n a của Google cho phép chúng ta xác định các địa điểm đi qua
trên đường đi gi a 2 vị trí xác định.
2.4. Máy ảo Dalvik và Android SDK
2.4.1. Máy ảo Dalvik
Các ứng dụng Android và các thành phần cơ bản hầu hết được viết bằng Java.
Thay vì sử dụng máy ảo Java, Android sử dụng máy ảo riêng. Máy ảo của Android
được thiết kế và tối ưu cho các hệ thống nh , khơng tương thích với máy ảo Java của

Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 13


Xây dựng ứng dụng bản đồ địa điểm du lịch Hội An trên Android

JavaMe. Nh ng hệ thống nh này có dung lượng RAM nh , CPU chậm và hầu hết

khơng có chỗ để trao đổi d liệu bù đắp cho dung lượng bộ nhớ nh .
Đây là điểm khác biệt gi Android với các hệ điều hành di động khác như
Symbian, iOS, webOS. Ngơn ng lập trình sử dụng chính là C, C++ và objective C,
trong khi với webOS sử dụng chủ yếu ngôn ng web như Javascript hay HTML.
Trình biên dịch byte code là máy ảo Dalvik. Thay vì sử dụng dạng byte code
thơng thường, Dalvik có định dạng riêng để phù hợp với yêu cầu đối với thiết bị
Android. M của Android nh hơn so với m của Java và file dex được tạo ra cũng
nh .
2.4.2. Android SDK
Android SDK là bộ công cụ phát triển phần mềm cho phép lập trình viên tạo ra
các ứng dụng cho các thiết bị sử dụng nền tảng Android. Android SDK bao gồm nền
tảng Android, các cơng cụ, chương trình mẫu và các tài liệu hỗ trợ. Nó cũng là thành
phần bổ sung trong bộ phát triển Java và có thể tích hợp vào Eclipse.
Android chứa các gói hỗ trợ các chức năng tính tốn cơ bản như quản lý xâu,
quản lý vào ra, tính tốn từ các gói cơ bản trong Java:
 Java.lang – lớp ngôn ng cơ bản của Java.
 Java.io – quản lý vào ra.
 Java.net – quản lí kết nối mạng.
 Java.text – tiện ích xử lý văn bản.
 Java.math – hỗ trợ tính tốn.
 Java.sercurity – quản lý các thành phần bảo mật.
 Java.xml – lớp về các XML.
 Org.apache – các lớp liên quan HTML.
Ngồi ra Android cịn có các lớp riêng như:
 android.app – truy cập mơ hình ứng dụng của Android.
 android.bluetooth – chức năng Bluetooth của Android.
 android.content – quản lý d liệu trong Android.
 android.net – chứa các lớp Uri dùng để truy cập d liệu.
 android.graphics – các thành phần đồ họa.
 android.location – các dịch vụ liên quan đến vị trí.

 android.onpengl – các lớp OpenGL.
Võ Minh Trí –CCLT04C- Khoa Học Máy Tính

Trang 14



×