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

xây dựng ứng dụng quản lý nhà trọ trên nền tảng android kết hợp web services

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 (4.55 MB, 78 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI

XÂY DỰNG ỨNG DỤNG QUẢN LÝ
NHÀ TRỌ TRÊN NỀN TẢNG ANDROID
KẾT HỢP WEB SERVICES

Sinh viên: Trần Minh Tuấn
Mã số: 1117889
Khóa K37

Cần Thơ, 05/2015


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN TIN HỌC ỨNG DỤNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

Đề Tài

XÂY DỰNG ỨNG DỤNG QUẢN LÝ


NHÀ TRỌ TRÊN NỀN TẢNG ANDROID
KẾT HỢP WEB SERVICES

Người hướng dẫn
Ths. Hồ Văn Tú

Sinh viên: Trần Minh Tuấn
Mã số: 1117889
Khóa: K37

Cần Thơ, 05/2015


LỜI CẢM ƠN
Tôi xin chân thành cảm ơn Quý thầy cô Khoa Công nghệ thông tin và Truyền
thông, trường Đại học Cần Thơ đã tận tình dạy bảo và truyền thụ những kiến thức
quý báu trong suốt thời gian tôi học tập tại trường, cũng như tạo điều kiện để tôi có
thể hoàn thành tốt đề tài luận văn.
Xin gửi lời cảm ơn chân thành đến gia đình và cha mẹ, những người luôn quan
tâm, động viên và là chỗ dựa tinh thần để con có thể bước đi trên con đường mà con
đã chọn.
Tôi xin chân thành cảm ơn thầy Hồ Văn Tú đã tận tình hướng dẫn, giúp đỡ tôi
trong suốt quá trình thực hiện đề tài, tôi có thể hoàn thành đề tài này cũng nhờ sự giúp
đỡ nhiệt tình của thầy.
Tôi xin cảm ơn tất cả bạn bè, các bạn sinh viên ngành Tin học ứng dụng khóa
37 đã giúp đỡ, đóng góp nhiều ý kiến quý báu để tôi có thể chỉnh sửa và khắc phục
kịp thời.
Mặc dù đã cố gắng khắc phục và hoàn thiện đề tài được tốt hơn nhưng chắc
chắn tôi cũng mắc những sai lầm trong quá trình thực hiện. Rất mong nhận được sự
thông cảm, phê bình và những ý kiến quý báu của thầy cô.

Tôi xin chân thành cảm ơn.
Cần Thơ, ngày 05 tháng 05 năm 2015
Người thực hiện
Trần Minh Tuấn

i


MỤC LỤC
LỜI CẢM ƠN ............................................................................................................. i
MỤC LỤC .................................................................................................................. ii
DANH MỤC HÌNH .................................................................................................. iv
DANH MỤC BẢNG ................................................................................................ vii
TÓM TẮT ............................................................................................................... viii
ABSTRACT .............................................................................................................. ix
Chương 1. GIỚI THIỆU .............................................................................................1
1.1. ĐẶT VẤN ĐỀ.................................................................................................1
1.2. MỤC TIÊU ĐỀ TÀI........................................................................................1
1.3. PHẠM VI ĐỀ TÀI ..........................................................................................1
Chương 2. CƠ SỞ LÝ THUYẾT ................................................................................3
2.1. HỆ ĐIỀU HÀNH ANDROID [6,8] ................................................................3
2.1.1.

Tổng quan về hệ điều hành Android ..........................................................3

2.1.2.

Các phiên bản Android...............................................................................3

2.1.3.


Nền tảng Android .......................................................................................4

2.1.4.

Kiến trúc ứng dụng .....................................................................................5

2.1.5.

Bộ công cụ phát triển phần mềm (SDK) ....................................................6

2.2. GOOGLE MAPS API .....................................................................................7
2.2.1.

Giới thiệu Google Map API .......................................................................7

2.2.2.

Dịch vụ của Google Map API ....................................................................7

2.2.2.1. Google Map Web Services ..............................................................7
2.2.2.2. Places API ......................................................................................14
2.2.2.3. JavaScript V3 .................................................................................14
2.2.2.4. Các dịch vụ khác của Google Maps ..............................................14
2.3. DỊCH VỤ WEB (WEB SERVICES) [1,3,5] ................................................18
2.3.1.

Kiến trúc dịch vụ Web .............................................................................18

2.3.2.


Xây dựng dịch vụ Web.............................................................................18

2.3.3.

Giao tiếp giữa Android và Web Service dựa trên SOAP [1] ...................23

2.3.4.

Sử dụng dịch vụ Web trong Android .......................................................25

2.3.5.

Thư viện kSoap trong Android [1,3] ........................................................32

ii


Chương 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ............................................33
3.1. MÔ HÌNH ER ...............................................................................................33
3.2. TẬP THỰC THỂ ..........................................................................................34
3.3. MÔ HÌNH USE CASE..................................................................................37
3.4. KỊCH BẢN....................................................................................................40
Chương 4. KẾT QUẢ ĐẠT ĐƯỢC..........................................................................43
4.1. GIAO DIỆN WEB ........................................................................................43
4.2. GIAO DIỆN TRÊN ANDROID ...................................................................54
Chương 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..............................................66
5.1. KẾT LUẬN ...................................................................................................66
5.1.1.


Ưu điểm ....................................................................................................66

5.1.2.

Hạn chế .....................................................................................................66

5.2. HƯỚNG PHÁT TRIỂN ................................................................................66
TÀI LIỆU THAM KHẢO .........................................................................................67

iii


DANH MỤC HÌNH
Hình 2.1 Các tầng phần mềm Android .......................................................................5
Hình 2.2 Máy ảo Dalvik ..............................................................................................5
Hình 2.3 Sử dụng Direction API .................................................................................9
Hình 2.4 Sử dụng Distance Matrix API ....................................................................11
Hình 2.5 Sử dụng Geocoding API ............................................................................13
Hình 2.6 Sử dụng Place Searches .............................................................................15
Hình 2.7 Sử dụng Text Search Requests ...................................................................16
Hình 2.8 Sử dụng Radar Search Requests ................................................................17
Hình 2.9 Tạo một dịch vụ Web .................................................................................19
Hình 2.10 Dịch vụ Web ............................................................................................19
Hình 2.11 Dịch vụ Web tạo mới ...............................................................................20
Hình 2.12 Phương thức Web cộng hai số nguyên.....................................................21
Hình 2.13 Các phương thức trong dịch vụ Web được định nghĩa ............................21
Hình 2.14 Nhập giá trị cần tính trong phương thức CongHaiSo ..............................22
Hình 2.15 Kết quả thực thi CongHaiSo ....................................................................22
Hình 2.16 HTML frontend ........................................................................................23
Hình 2.17 Direct Web service invocation .................................................................24

Hình 2.18 Web service gateway................................................................................24
Hình 2.19 Gửi yêu cầu và nhận kết quả từ dịch vụ Web sử dụng HttpTransport .....25
Hình 2.20 Phương thức hiển thị thông tin thành viên ...............................................26
Hình 2.21 Kết quả trả về của danhsachTV ...............................................................27
Hình 2.22 Hàm lấy dữ liệu từ dịch vụ Web ..............................................................28
Hình 2.23 Sử dụng đa tiến trình khi gửi yêu cầu ......................................................29
Hình 2.24 Tạo đa tiến trình với AsyncTask – gọi phương thức Web .......................29
Hình 2.25 Tạo đa tiến trình với AsyncTask – hiển thị dữ liệu từ dịch vụ Web ........30
Hình 2.26 Hiển thị dữ liệu từ kết quả trả về của dịch vụ Web .................................31
Hình 2.27 Sử dụng Log hiển thị chuỗi XML trả về từ dịch vụ Web ........................31
Hình 2.28 Mô hình class đợn giản của kSoap2 .........................................................32
Hình 3.1 Mô hình ER ................................................................................................33
Hình 3.2 Mô hình use case người quản trị ................................................................37
Hình 3.3 Mô hình use case chủ nhà trọ .....................................................................38
Hình 3.4 Mô hình use case người dùng ....................................................................39
Hình 4.1 Đăng ký tài khoản ......................................................................................43
Hình 4.2 Đăng ký tài khoản thành công....................................................................43
Hình 4.3 Thông tin nhà trọ ........................................................................................44
Hình 4.4 Tìm kiếm nhà trọ theo tên ..........................................................................44
Hình 4.5 Tìm kiếm nhà trọ theo địa chỉ ....................................................................45
Hình 4.6 Thông tin khuyến mãi ................................................................................45
Hình 4.7 Danh sách nhà trọ với tài khoản quản trị ...................................................46

iv


Hình 4.8 Xóa nhà trọ .................................................................................................46
Hình 4.9 Danh sách khuyến mãi với tài khoản quản trị ............................................47
Hình 4.10 Xóa khuyến mãi .......................................................................................47
Hình 4.11 Danh sách nhà trọ với tài khoản khách hàng ...........................................47

Hình 4.12 Đăng ký đặt phòng ...................................................................................48
Hình 4.13 Danh sách yêu cầu đặt phòng của khách hàng .........................................48
Hình 4.14 Hủy đăng ký đặt phòng ............................................................................48
Hình 4.15 Danh sách khuyến mãi với tài khoản khách hàng ....................................49
Hình 4.16 Danh sách nhà trọ của chủ nhà trọ ...........................................................49
Hình 4.17 Cập nhật thông tin nhà trọ ........................................................................49
Hình 4.18 Kết quả sau khi cập nhật ..........................................................................50
Hình 4.19 Thông tin phòng trọ ..................................................................................50
Hình 4.20 Thêm phòng trọ ........................................................................................50
Hình 4.21 Cập nhật thông tin nhà trọ ........................................................................51
Hình 4.22 Xóa nhà trọ ...............................................................................................51
Hình 4.23 Quản lý đặt phòng theo nhà trọ ................................................................51
Hình 4.24 Danh sách thuê phòng ..............................................................................52
Hình 4.25 Xác nhận đặt phòng ..................................................................................52
Hình 4.26 Bỏ qua yêu cầu đặt phòng ........................................................................52
Hình 4.27 Xóa khách hàng thuê phòng .....................................................................53
Hình 4.28 Danh sách khuyến mãi .............................................................................53
Hình 4.29 Giao diện chính ứng dụng ........................................................................54
Hình 4.30 Danh mục chức năng khi chưa đăng nhập ...............................................54
Hình 4.31 Danh mục chức năng của quản trị ............................................................55
Hình 4.32 Danh mục chức năng của chủ nhà trọ ......................................................55
Hình 4.33 Danh mục chức năng của khách hàng ......................................................56
Hình 4.34 Danh sách nhà trọ .....................................................................................56
Hình 4.35 Thông tin chi tiết nhà trọ. .........................................................................57
Hình 4.36 Vị trí nhà trọ trên bản đồ ..........................................................................57
Hình 4.37 Chỉ đường .................................................................................................58
Hình 4.38 Danh sách khuyến mãi .............................................................................58
Hình 4.39 Lọc thông tin khuyến mãi theo từ khóa ...................................................59
Hình 4.40 Tìm kiếm nhà trọ trên bản đồ ...................................................................59
Hình 4.41 Xem thông tin nhà trọ trên bản đồ ...........................................................60

Hình 4.42 Thông tin khuyến mãi chi tiết ..................................................................60
Hình 4.43 Danh sách nhà trọ của chủ nhà trọ ...........................................................61
Hình 4.44 Lọc danh sách nhà trọ theo từ khóa .........................................................61
Hình 4.45 Thêm nhà trọ ............................................................................................62
Hình 4.46 Cập nhật thông tin nhà trọ ........................................................................62
Hình 4.47 Xác nhận yêu cầu xóa nhà trọ ..................................................................63
Hình 4.48 Kết quả xóa một dòng dữ liệu trong danh sách nhà trọ ...........................63

v


Hình 4.49 Thông tin chi tiết của một nhà trọ ............................................................63
Hình 4.50 Quản lý đặt phòng ....................................................................................64
Hình 4.51 Thông tin khuyến mãi ..............................................................................64
Hình 4.52 Cập nhật thông tin tài khoản ....................................................................65

vi


DANH MỤC BẢNG
Bảng 2.1 Các phiên bản của hệ điều hành Android ....................................................4
Bảng 3.1 Mô tả tập thực thể thành viên ....................................................................34
Bảng 3.2 Mô tả tập thực thể nhà trọ ..........................................................................34
Bảng 3.3 Mô tả tập thực thể phòng trọ......................................................................35
Bảng 3.4 Mô tả tập thực thể khuyến mãi ..................................................................35
Bảng 3.5 Mô tả tập thực thể loại phòng ....................................................................35
Bảng 3.6 Mô tả tập thực thể đặt phòng .....................................................................36
Bảng 3.7 Kịch bản đăng nhập ...................................................................................40
Bảng 3.8 Kịch bản tra cứu nhà trọ ............................................................................41
Bảng 3.9 Quản lý đặt phòng ......................................................................................41


vii


TÓM TẮT
Nhà trọ là vấn đề được rất nhiều người quan tâm hiện nay, đặc biệt đối với
những người sống và làm việc xa nhà, học sinh, sinh viên,… để tìm được một phòng
trọ phù hợp với kinh tế của bản thân, có điều kiện thuận lợi trong sinh hoạt hàng ngày
và giảm chi phí đi lại là một điều rất khó khăn. Không những vậy, đối với chủ nhà
trọ, nó cũng là vấn đề mà họ rất quan tâm vì làm sao để cho mọi người có thể thuê
phòng trọ của mình, ở đâu, giá phòng như thế nào, thông tin liên hệ,…
Ứng dụng quản lý nhà trọ được xây dựng nhằm đáp ứng những nhu cầu trên.
Ứng dụng không chỉ giải quyết vấn đề của chủ nhà trọ mà còn đáp ứng được nhu cầu
của học sinh, sinh viên, những người làm việc xa nhà,...
Đối với chủ nhà trọ, họ có thể thêm và cập nhật thông tin nhà trọ, khuyến mãi,
giá phòng, hiển thị những phòng còn trống, quản lý đặt phòng và xử lý các yêu cầu
đăng ký đặt phòng của khách hàng.
Đối với khách hàng, họ có thể xem thông tin những nhà trọ còn phòng trống,
chương trình khuyến mãi đang diễn ra, tìm các nhà trọ theo tên hoặc địa chỉ, vị trí
nhà trọ trên bản đồ, tìm đường đi từ vị trí hiện tại của mình đến nhà trọ, yêu cầu đăng
ký đặt phòng và hủy đặt phòng nếu cảm thấy nhà trọ đó không phù hợp với yêu cầu
bản thân.
Đối với những người chưa đăng ký thành viên, họ có thể tìm kiếm nhà trọ,
xem thông tin nhà trọ và khuyến mãi, vị trí nhà trọ trên bản đồ, tìm đường đi,... Nếu
như nhà trọ phù hợp với yêu cầu bản thân, họ có thể đăng ký thành viên và gửi yêu
cầu đăng ký đặt phòng của mình và có thể sử dụng những chức năng khác của khách
hàng.
Bên cạnh đó, người quản trị ứng dụng có thể xem tất cả thông tin nhà trọ,
khuyến mãi, thành viên và có thể xóa nếu thông tin không chính xác hoặc không tồn
tại để ứng dụng có thể ngày càng hoàn thiện và thông tin sẽ càng chính xác hơn.

Từ khóa: quản lý nhà trọ, google maps api, android, webservices, json

viii


ABSTRACT
At the present time, accommodation is a problem that many people interested
in, especially for those who live and work outside the home for example students,
workers, staffs,… furthermore, they can find a room which is suit their own economy,
comfortable condition for daily living and reduce transportation cost, it is very
difficulty. That parallel, for landlord, it is also the problem that they are very
concerned for how to let everyone can rent their room with information such as
location, price, convenience,…
The motel management system is designed to supply for that demanding. The
application not only solve the problem of landlords, but also meet the need of pupils,
students and others,...
For landlords, they can add and update the inn, promotions, room rates,
showing the rooms available for people to know, solve the registration requirements
of the customer reservation.
For customers, they can view the information of the inn also availability,
promotion are, find the hostel by name or address, hostel location on the map, their
way from the current position at her to a motel, require registration and reservation
cancellation if the inn feel that is inconsistent with the request itself.
For registered members, they can search for hostel, inn information and
promotion, if the match can register and submit a request to register a reservation, use
the other function of customer. Besides, the application administrator can view all
information inn, promotion, and remove members if information is incorrect or does
not exist.
Key words: motel management system, google maps api, android,
webservices, json


ix


Chương 1. GIỚI THIỆU
1.1. ĐẶT VẤN ĐỀ
Ngày nay, hầu như tất cả các ngành nghề hiện đại đều có sự xuất hiện của Công
nghệ thông tin, đặc biệt là kinh tế xã hội ngày càng phát triển nên việc sử dụng những
sản phẩm của Công nghệ thông tin với kích thướt nhỏ gọn, tiện lợi không còn gì là
xa lạ đối với mọi người. Trong đó, công nghệ di động và những ứng dụng của nó
được mọi người quan tâm và sử dụng phổ biến hơn.
Trong những năm gần đây những người ngoại tỉnh ra các thành phố lớn để làm
ăn, sinh sống, thuê nhà trọ ngày càng tăng. Cộng với số lượng sinh viên cũng ngày
càng tăng làm cho nhu cầu chỗ ở ngày càng trở nên khó khăn và cấp bách hơn. Không
những vậy, việc tìm kiếm một phòng trọ vừa ý và phù hợp với thu nhập của bản thân
cũng là một điều rất khó khăn, bởi vì kinh tế xã hội phát triển nên hệ thống giao thông
cũng như quá trình đô thị hóa ngày càng phát triển, đặc biệt là đối với người dân đã
quen sống ở vùng nông thôn, việc tìm kiếm nhà trọ lại càng khó khăn và tốn nhiều
thời gian, công sức hơn.
Nhận thấy nhu cầu thiết yếu trên nên em quyết định chọn đề tài: “Xây dựng ứng
dụng quản lý nhà trọ trên nền tảng Android kết hợp Webservice”. Ứng dụng không
chỉ giải quyết vấn đề tìm kiếm nhà trọ của học sinh, sinh viên, những người làm việc
xa nhà mà còn rất hữu ích đối với các chủ nhà trọ trong việc quản lý nhà trọ của mình.
Ứng dụng có thể giúp người dùng tìm kiếm thông tin nhà trọ phù hợp với điều kiện
của bản thân, thuận tiện trong việc đi lại và học tập và trên nhiều khía cạnh khác nhau
tùy theo yêu cầu của từng người.
1.2. MỤC TIÊU ĐỀ TÀI
Ứng dụng quản lý nhà trọ giúp mọi người tìm kiếm thông tin nhà trọ dễ dàng
hơn, tra cứu phòng trọ còn trống, xác định vị trí của nhà trọ, tìm đường, cập nhật
thông tin nhà trọ, khuyến mãi, đăng ký đặt phòng,…

Lưu trữ dữ liệu trên mạng giúp mọi người có thể sử dụng mọi lúc, mọi nơi và
chia sẻ thông tin nhà trọ thông qua ứng dụng.
Tạo trang web đơn giản giúp người dùng cập nhật, tra cứu thông tin nhà trọ,
khuyến mãi, giúp khách hàng có thể đăng ký đặt phòng, thuê phòng.
1.3. PHẠM VI ĐỀ TÀI
Tập trung chủ yếu xây dựng ứng dụng trên nền tảng Android giúp người dùng có thể
tra cứu thông tin chung, tìm nhà trọ trên bản đồ, tìm đường và đăng nhập với quyền
hạn khác nhau: người quản trị, chủ nhà trọ, khách hàng, người chưa đăng nhập sẽ
thực hiện những chức năng khác nhau. Cụ thể:
1


 Người quản trị: xem tất cả thông tin nhà trọ, thành viên, khuyến mãi và xóa những
thông tin chia sẻ không chính xác.
 Chủ nhà trọ: thêm, xóa, cập nhật thông tin nhà trọ, phòng trọ, khuyến mãi, xác
nhận yêu cầu đặt phòng của khách hàng và xóa thuê phòng.
 Khách hàng: tra cứu thông tin nhà trọ, khuyến mãi, gửi đăng ký đặt phòng, hủy
yêu cầu đặt phòng của bản thân.
 Người chưa đăng nhập: tra cứu thông tin nhà trọ, khuyến mãi, đăng ký thành viên.

2


Chương 2. CƠ SỞ LÝ THUYẾT
2.1. HỆ ĐIỀU HÀNH ANDROID [6,8]
2.1.1. Tổng quan về hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho
các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính
bảng. Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài
chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra

mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một
hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh
các tiêu chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android
được bán vào tháng 10 năm 2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép
Apache. Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã
cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết
được điều chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có một
cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng
của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Vào tháng 10 năm
2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google
Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt.
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh
phổ biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010 và được các công ty
công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh
chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu. Kết quả
là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất
hiện trênTV, máy chơi game và các thiết bị điện tử khác. Bản chất mở của Android
cũng khích lệ một đội ngũ đông đảo lập trình viên và những người đam mê sử dụng
mã nguồn mở để tạo ra những dự án do cộng đồng quản lý. Những dự án này bổ sung
các tính năng cao cấp cho những người dùng thích tìm tòi hoặc đưa Android vào các
thiết bị ban đầu chạy hệ điều hành khác.
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời
điểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích hoạt và 1,3 triệu
lượt kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến nó trở thành
mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong "cuộc chiến
điện thoại thông minh" giữa các công ty công nghệ.
2.1.2. Các phiên bản Android
Trong khi các số phiên bản của Android phiên bản hệ điều hành tuần tự là: 1.6,
2.1, 4.2,... Các bản phát hành cũng được đặt tên tương tự như các mặt hàng khác nhau

3


trong một thực đơn tráng miệng hảo hạng: Donut, Eclair, và Jelly Bean. Khi mọi
người ám chỉ Jelly Bean có nghĩa là phiên bản Android 4.2. Phiên bản Android cũng
được mô tả ở cấp độ API, bởi số nguyên tăng dần theo trình tự. Vì vậy, Android API
ở mức 17 đề cập đến Android phiên bản 4.2, còn được gọi là Jelly Bean.
Bảng 2.1 Các phiên bản của hệ điều hành Android
Phiên bản

Tên mã

Ngày phát hành

API

Phân bố

5.0

Lollipop

07/2014

20

Dành cho người
phát hành

4.4


KitKat

10/2013

19

17,9%

4.3

Jelly Bean

25/07/2013

18

10,5%

4.2.x

Jelly Bean

13/11/2012

17

18,8%

4.1.x


Jelly Bean

09/07/2012

16

25,2%

4.0.x

IceCream
Sandwich

16/12/2011

15

11,4%

3.2

Honeycomb

15/07/2011

13

0%


3.1

Honeycomb

10/05/2011

12

0%

2.3.3–2.3.7

Gingerbread

09/02/2011

10

13%

2.3–2.3.2

Gingerbread

06/12/2010

9

0,5%


2.2

Froyo

20/05/2010

8

0,7%

2.0–2.1

Eclair

26/10/2009

7

0%

1.6

Donut

15/09/2009

4

0%


2.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 con
giao diện người sử dụng gồm có:

4


̶
̶
̶

Cửa sổ.
Khung nhìn.
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.

Hình 2.1 Các tầng phần mềm Android
2.1.4. Kiến trúc ứng dụng
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,
đế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 2.2 Máy ảo Dalvik


5


- Một ứng dụng Android gồm có một hoặc nhiều phân loại sau đây:
 Hoạt động (Activities)
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 hoạt động. Khi người sử 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, một hoạt động được khởi động.
 Dịch vụ (Services)
Một dịch vụ nên được sử dụng đối với bất kỳ ứng dụng nào cần tồn tại trong
một thời gian dài, chẳng hạn như một trình giám sát mạng hoặc ứng dụng kiểm
tra cập nhật.
 Trình cung cấp nội dung (Content providers)
Bạn có thể coi các trình cung cấp nội dung như là một máy chủ cơ sở dữ
liệu. Công việc của một trình cung cấp nội dung là quản lý truy cập vào dữ liệu
đang tồn tại, chẳng hạn như một cơ sở dữ liệu SQLite. Nếu ứng dụng của bạn
rất đơn giản thì bạn không nhất thiết phải tạo ra một trình cung cấp nội dung.
Nếu bạn đang xây dựng một ứng dụng lớn hơn, hoặc một ứng dụng để cung cấp
dữ liệu sẵn sàng cho nhiều hoạt động hoặc ứng dụng khác, một trình cung cấp
nội dung là phương tiện truy cập dữ liệu của bạn.
 Trình thu sóng phát (Broadcast receivers)
Một ứng dụng Android có thể được khởi chạy để 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.
2.1.5. Bộ công cụ phát triển phần mềm (SDK)
Cách dễ nhất để bắt đầu phát triển các ứng dụng Android là tải về Bộ công cụ
phát triển phần mềm Android và Môi trường phát triển tích hợp Eclipse (Eclipse IDE).
Việc phát triển Android có thể diễn ra trên Microsoft® Windows®, Mac OS X, hoặc
Linux.
Bộ công cụ phát triển phần mềm Android được phân phối dưới dạng một tệp
tin nén zip. Bộ công cụ phát triển phần mềm (SDK) gồm có:


̶

̶

̶

̶

̶

android.jar.
documention.html và docs directory.
Samples directory.
Tools directory.
usb_driver.

6


2.2. GOOGLE MAPS API
2.2.1. Giới thiệu Google Map API
Google Maps hay Bản đồ Google (thời gian trước còn gọi là Google Local)
là một dịch vụ ứng dụng và công nghệ bản đồ trực tuyến trên web miễn phí được
cung cấp 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 đồ các tuyến đường, đường đi cho xe đạp, cho
người đi bộ (những đường đi ngắn hơn 6.2 dặm) 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
Đặc trưng của Google Maps:

̶
̶
̶

Draw on the map: tùy chỉnh thêm hình vẽ, ký kiệu trên bản đồ.
Location Services: xác định vị trí trên bản đồ bằng cách sử dụng các công nghệ
định vị.
3D Rendering: xem bản đồ với nhiều điểm quan sát có độ nghiêng và gốc xoay
khác nhau.

2.2.2. Dịch vụ của Google Map API
2.2.2.1. Google Map Web Services
Google Map Web Services là một tập hợp các giao diện HTTP cung cấp thông
tin về vi trí địa lý.Sử dụng các yêu cầu URL để truy cập mã hóa địa lý, phương hướng,
độ cao, vị trí và thông tin múi giờ và đảm bảo rằng Google có thể liên lạc được khi
cần thiết.
- Directions API
 Directions API là một dịch vụ cho phép tìm đường đi, tính khoảng cách, thời
gian giữa hai điểm trên bản đồ bằng cách gửi yêu cầu HTTP (HTTP request).
Có thể tìm kiếm đường đi theo phương thức: vận chuyển (transit), lái xe
(driving), đi bộ (walking) hoặc xe đạp (cycling).
 Gửi một yêu cầu tìm đường đi trên bản đồ, sử dụng cú pháp sau:
/>Trong đó:
- Output là dạng kết quả trả về, có thể là json hoặc xml.
Truy cập địa chỉ tìm đường đi thông qua HTTP, sử dụng như sau:
/>
7


-


Tham số bắt buộc phải có trong yêu cầu gửi đi
Origin: địa chỉ hoặc tọa độ của điểm bắt đầu tìm đường đi.
Destination: địa chỉ hoặc tọa độ của điểm cần đến.

-

Ngoài ra, có thể sử dụng thêm các thông số phổ biến sau
Mode: hình thức tìm đường đi, mặc định là driving.
Language: chọn ngôn ngữ hiển thị trong kết quả trả về.

-

Kết quả trả về có thể là kiểu json hoặc xml tùy thuộc vào người sử dụng,
dưới đây là các giá trị cần chú ý với kết quả trả về là json.
distance: độ dài quảng đường từ điểm bắt đầu đến điểm kết thúc, gồm hai
giá trị trả về là text (giá trị trả về dạng chuỗi và thường kèm theo đơn vị
là kilomet) và value (giá trị số tính theo mét).
duration: thời gian đi trung bình, chủ yếu tính theo thời gian đi của xe
máy, gồm hai giá trị trả về là text (chuỗi thời gian) và value (thời gian
kiểu số và tính theo giây).
start_address: địa chỉ điểm bắt đầu.

-

start_location: tọa độ điểm bắt đầu, gồm hai giá trị lat (vĩ độ) và lng (kinh
độ).
end_address: địa chỉ điểm đến.
end_location: tọa độ điểm đến, gồm hai giá trị lat (vĩ độ) và lng (kinh độ).
steps: là một mảng các giá trị hướng dẫn đường đi từ điểm bắt đầu đến

điểm đến, trong đó thành phần cần quan tâm nhất là points nằm trong
json polyline, nó là chuỗi đã được mã hóa từ một danh sách các điểm cần
đi qua của một đoạn đường, khi sử dụng cần phải giải mã chuỗi thành
danh sách các điểm.
Ví dụ: tìm đường đi từ Đại học Cần Thơ đến Đại học Tây Đô.
Cú pháp:
hoc can
tho &destination=dai hoc tay do

8


-

Kết quả:

Hình 2.3 Sử dụng Direction API

9


- Distance Matrix API
 Distance Matrix API la một dịch vụ cung cấp khoảng cách và thời gian đi lại
bằng ma trận các điểm bắt đầu và kết thúc. Thông tin trả về dựa trên các tuyến
đề nghị giữa điểm bắt đầu và kết thúc, dịch vụ không trả về thông tin lộ trình
chi tiết.
 Gửi yêu cầu lên server
/>-

Trong đó: output có thể là json hoặc xml.

Các tham số bắt buộc
Origins: một hoặc nhiều địa chỉ bắt đầu.
Destinations: một hoặc nhiều địa chỉ kết thúc.

Kết quả trả về dưới dạng json
origin_addresses: tập hợp tên hoặc địa chỉ của các điểm bắt đầu và được
phân biệt với nhau bằng dấu “|”.
destination_addresses: tập hợp tên hoặc địa chỉ của các điểm đến và được
phân biệt với nhau bằng dấu “|”.
distance: độ dài quảng đường từ điểm bắt đầu đến điểm kết thúc, gồm hai
giá trị trả về là text (giá trị trả về dạng chuỗi và thường kèm theo đơn vị
là kilomet) và value (giá trị số tính theo mét).
duration: thời gian đi trung bình, chủ yếu tính theo thời gian đi của xe
máy, gồm hai giá trị trả về là text (chuỗi thời gian) và value (thời gian
kiểu số và tính theo giây).
 Ví dụ: tìm khoảng thời gian đi từ Đại học Cần Thơ, Đại học Tây Đô đến Đại
học Y dược Cần Thơ.
- Cú pháp:
-

/>hoc can tho | dai hoc tay do&destinations=dai hoc y duoc can tho
-

Kết quả
o Từ Đại học Cần Thơ đến Đại học Y dược Cần Thơ
Độ dài quảng đường là 3,9 km.
Thời gian đi trung bình là 12 phút.
o Từ Đại học Tây Đô đến Đại học Y dược Cần Thơ
Độ dài quảng đường là 8,4 km.
Thời gian đi trung bình là 19 phút.


10


Hình 2.4 Sử dụng Distance Matrix API

11


- Elevation API
 Elevation API cung cấp giao diện đơn giản để truy vấn các địa điểm theo độ
cao, cung cấp dữ liệu về độ cao cho tất cả các điểm trên bề mặt Trái đất và sâu
dưới đáy đại dương. Sử dụng JacaScript V3 cũng có thể sử dụng API này thông
qua đối tượng ElevationService.
 Gửi yêu cầu tìm địa điểm theo độ cao, trong tham số gửi đi cần phải có tọa độ
điểm cần xác định độ cao
/> Ví dụ: xác định độ cao tại trường Đại học Cần Thơ
- Cú pháp:
/>8,105.769518
-

Kết quả:

Sử dụng Elevation API
- Geocoding API
 Geocoding API là dịch vụ chuyển đổi địa chỉ dạng văn bản sang dạng số để có
thể thêm địa điểm lên bản đồ hoặc định vị địa điểm.
 Có thể gửi yêu cầu chuyển đổi tọa độ bằng http hoặc https.
 Cú pháp:
/> Ví dụ: tìm tọa độ điểm có địa chỉ là đường 3/2, quận Ninh Kiều, TP Cần Thơ.


12


-

Cú pháp:
3/2
quan ninh kieu thanh pho can tho

-

Kết quả:

Hình 2.5 Sử dụng Geocoding API

13


2.2.2.2. Places API
- Add a place
Add a place là một dịch vụ giúp người dùng đưa tọa độ một điểm bắt kỳ lên
Google Map.
Để thêm một điểm lên bản đồ, gọi hàm GeoDataApi.addPlace, gửi giá trị về
thông tin chi tiết của điểm cần thêm lên bản đồ thông qua AddPlaceRequest.
Các nội dung bắt buộc khi thêm một điểm lên nhà trọ.
-

Tên đầy đủ của địa điểm.
Tọa độ của điểm cần thêm.

Địa chỉ có thể đọc hiểu. Nếu một nơi địa chỉ có thể đọc được, có nhiều khả
năng sẽ được đưa vào cơ sở dữ liệu của Google.
Các vị trí đặc trưng của địa điểm.

2.2.2.3. JavaScript V3
Thiết kế này dành cho những người đã quen thuộc với JavaScript và lập trình
hướng đối tượng. Nhúng bản đồ Google vào trang web bằng cách sử dụng JacaScript.
Tất cả các ứng dụng sử dụng Google Maps API cần phải có một API key. Sử
dụng API key giúp việc giám sát ứng dụng cũng như đảm bảo rằng Google có thể
liên lạc khi cần thiết.
2.2.2.4. Các dịch vụ khác của Google Maps
- Place Searches
 Nearby Search Requests
- Tìm kiếm các địa điểm xung quanh một tọa độ.
- Gửi yêu cầu lên server:
/>Trong đó: output là dạng kết quả về (json hay xml).
-

Parameters phải có ít nhất 4 từ khóa chủ yếu sau
key: api key đăng ký sử dụng dịch vụ Google Places API.
location: tọa độ tìm kiếm xung quanh một vị trí xác định.
radius: phạm vi bán kính tìm kiếm, tối đa là 50 km.
types: loại địa điểm tìm kiếm.

Ví dụ: tìm các ngân hàng xung quanh trường Đại học Cần Thơ trong phạm vi bán
kính 500m.

14



×