Tải bản đầy đủ (.doc) (74 trang)

Xây dựng ứng dụng tìm kiếm nâng cao google map trên nền hệ điều hành android

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

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN TẤT ĐẠT

TÌM HIỂU ANDROID, XÂY DỰNG
ỨNG DỤNG TÌM KIẾM NÂNG CAO
GOOGLE MAP TRÊN ANDROID
ĐỒ ÁN TỐT NGHIỆP ĐAI HỌC
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN

THÁI NGUYÊN, NĂM 2012


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

ĐỒ ÁN

TỐT NGHIỆP ĐAI HỌC
Chuyên ngành Công nghệ thông tin
Đề tài:

TÌM HIỂU ANDROID, XÂY DỰNG ỨNG
DỤNG TÌM KIẾM NÂNG CAO GOOGLE MAP
TRÊN ANDROID
Sinh viên thực hiện:

NGUYỄN TẤT ĐẠT

Lớp K6B, Hệ chính qui


Giáo viên hướng dẫn: ThS. NGUYỄN HỒNG TÂN

THÁI NGUYÊN, NĂM 2012

2


NHIỆM VỤ ĐỒ ÁN
Tên đồ án: Xây dựng ứng dụng tìm kiếm nâng cao Google Map trên nền hệ
điều hành Android .
Trong xu thế phát triển của công nghệ hiện nay, và cùng theo đó là sự phát
triển, ra đời của các thiết bị smartphone tân tiến. Việc tốc độ xử lý nhanh, bộ nhớ
SDCard lớn trên các máy điện thoai smartphone cho phép thực hiện các nhiệm
vụ trong công việc hay giải trí dần dần thay thế cho máy tính. Các ứng dụng trên
môi trường mạng dần thay thế các ứng dụng chạy trên máy đơn, cục bộ. Với sự
lớn mạnh và phát triển vượt bậc trong những năm gần đây,HĐH Android đã cho
thấy được thế mạnh của mình trong các thiết bị smartphone. Các ứng dụng, phần
mềm phát triển trên Android OS ngày càng nhiều, và mục đích của các ứng dụng
ngày càng đáp ứng được yêu cầu của người dùng. Một trong những ứng dụng
hữu ích nhất hiện nay đó là các chương trình tìm kiếm trên Google Map.
Chính vì điều này nên em quyết định xây dựng ứng dụng tìm kiếm nâng cao
trên google map.
Đồ án nhằm giải quyết việc tìm các địa điểm mà người dùng đang cần như
tìm địa điểm, quán cà phê, trạm xăng, cây atm, các ngân hàng… gần nhất mang
lại thuận lợi cho người dùng. Thông qua môi trường internet, sử dụng webservice
giúp cho ứng dụng kết nối đến csdl của google api và cơ sở dữ liệu của server.
Các thiết bị chạy hệ điều hành android sẽ kết nối đến csdl thông qua webservice
và hiển thị thông tin cần tìm kiếm cho người sử dụng cần trên google map.
Nhiệm vụ đồ án của em là xây dựng một ứng dụng chạy trên hệ điều hành
Android và cho phép người dùng tìm kiếm các địa điểm trên Google Map. Một

nhiệm vụ quan trọng nữa là xây dựng chức năng cập nhật, quản lý thông tin cho
người quản trị thông qua Webservice.

3


LỜI CẢM ƠN
Lời đầu tiên, Em xin chân thành cảm ơn trường đại học công nghệ thông
tin và truyền thông , đại học đại học Thái Nguyên đã tạo điều kiện thuận lợi cho
phép em thực hiện đồ án tốt nghiệp.
Đặc biệt, Em xin chân thành cảm ơn tới Th.S Nguyễn Hồng Tân đã rất tận
tình hướng dẫn, chỉ bảo em trong suốt thời gian thực hiện đề tài vừa qua.
Em cũng xin chân thành cảm ơn tất cả các Thầy, các Cô trong Trường đã
tận tình giảng dạy, trang bị cho chúng em những kiến thức cần thiết, quý báu
trong những năm tháng học tập tại Trường.
Mặc dù em đã cố gắng, nhưng với trình độ còn hạn chế, trong quá trình
làm đồ án không tránh khỏi những thiếu sót. Em hy vọng sẽ nhận được những ý
kiến nhận xét, góp ý của các nhà khoa học, các thầy cô giáo và bạn bè về những
vấn đề được triển khai trong đồ án.
Xin trân trọng cảm ơn!

4


LỜI CAM ĐOAN
Em xin cam đoan toàn bộ đồ án: “Tìm hiểu Android, xây dựng ứng dụng
tìm kiếm nâng cao Google Map trên nền hệ điều hành Android”. là do bản
thân tìm hiểu, nghiên cứu. Không có sự sao chép nội dung từ các đồ án khác. Tất
cả nội dung hoặc hình ảnh minh họa đều có nguồn gốc xuất xứ rõ ràng từ các tài
liệu tham khảo ở nhiều nguồn khác nhau mà xây dựng nên. Ngoài ra còn có sự

góp ý và định hướng của thầy giáo Th.S Nguyễn Hồng Tân.
Em xin cam đoan những lời trên là đúng, mọi thông tin sai lệch em xin
hoàn toàn chịu trách nhiệm trước Hội đồng.
Thái Nguyên, tháng 6 năm 2012.
Sinh viên
Nguyễn Tất Đạt

5


MỤC LỤC
ĐỒ ÁN TỐT NGHIỆP ĐAI HỌC............................................................1
.....................................................................................................................2
NHIỆM VỤ ĐỒ ÁN....................................................................................3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT........................................................10
1.1 Lịch sử Android.............................................................................................................................10
1.2 Delving với máy ảo Dalvik...........................................................................................................11
1.3 Kiến trúc của Android..................................................................................................................11
1.4 Sơ lược về Web service.................................................................................................................14

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN...............................................73
TÀI LIỆU THAM KHẢO........................................................................74

6


DANH MỤC HÌNH ẢNH

HÌNH 1.1 CẤU TRÚC STACK HỆ THỐNG ANDROID.....................12
HÌNH 1.2 CÔNG CỤ ANDROID SDK...................................................19

HÌNH 1.3 CÔNG CỤ ECLIPSE..............................................................19
HÌNH 1.4 GIAO DIỆN ECLIPSE...........................................................19
HÌNH 1.5 CÔNG CỤ HOSTING IPAGE..............................................20
HÌNH 1.6 CÔNG CỤ JOOMLA..............................................................20
HÌNH 2.1 ANDROID EMULATOR.......................................................27
HÌNH 2.2 CHU KỲ SỐNG CỦA MỘT ỨNG DỤNG ANDROID........29
HÌNH 2.3 ACTIVITY STACK................................................................30
HÌNH 2.4 CHU KỲ SỐNG CỦA ACTIVITY........................................30
HÌNH 2.5 CÁC SỰ KIỆN TRONG CHU KỲ SỐNG CỦA ỨNG DỤNG
............................................................................................................................32
HÌNH 2.6 CÁC SỰ KIỆN TRONG CHU KỲ SỐNG CỦA ỨNG DỤNG
............................................................................................................................34
HÌNH 2.7 BỐ TRÍ CÁC WIDGET SỬ DỤNG LINEARLAYOUT......35
HÌNH 2.8 BỐ TRÍ CÁC WIDGET TRONG FRAMELAYOUT..........36

7


HÌNH 2.9 BỐ TRÍ WIDGET TRONG RETALIVELAYOUT.............37
HÌNH 2.10 BỐ TRÍ WIDGET TRONG TABLELAYOUT..................38
HÌNH 2.11 IMAGEBUTON.....................................................................39
HÌNH 2.12 IMAGEVIEW VÀ IMAGEBUTTON BUTON...................40
HÌNH 2.13 MINH HOẠ CHO MỘT LISTVIEW..................................41
HÌNH 2.14 MINH HOẠ OPTION MENU..............................................43
HÌNH 2.15 MINH HOẠ CONTEXT MENU..........................................44
HÌNH 2.16 MINH HOẠ QUICK SEARCH BOX..................................45
HÌNH 2.17 TRUYỀN DỮ LIỆU GIỮA 2 ACTIVITY...........................47
HÌNH 2.18 CÁC THUỘC TÍNH CỦA INTEND....................................47
HÌNH 2.19 CÁC ACTION ĐÃ ĐƯỢC ĐỊNH NGHĨA SẴN TRONG
INTEND.............................................................................................................48

HÌNH 2.20 CHU TRÌNH SỐNG CỦA MỘT SERVICE.......................52
HÌNH 2.21 SQLITE MANAGER............................................................55
BIỂU ĐỒ USECASE: QUẢN LÝ THÔNG TIN....................................61
BIỂU ĐỒ USECASE: TÌM KIẾM ĐỊA ĐIỂM......................................61
QUẢN LÝ THÔNG TIN CÁC ĐỊA ĐIỂM............................................66
CẬP NHẬT THÔNG TIN CÁC ĐỊA ĐIỂM.........................................66
8


FORM SEARCH TRÊN MOBILE.........................................................67
HIỂN THỊ ĐỊA ĐIỂM TRÊN MOBILE................................................70

LỜI NÓI ĐẦU
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 đang trở nên sôi động hơn bao giờ hết. Do thu nhập của
người dân ngày càng được cải thiện cũng như nhu cầu trao đổi thông tin ngày
càng tăng theo. 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ị
di động. Phần mềm, ứng dụng cho điện thoại di động hiện nay rất đa dạng và
phong phú, đa số các phần mềm ứng dụng là các loại trò chơi, các chương trình
tiện ích như từ điển, soạn thảo văn bản, diệt virus… Bên cạnh đó, một phần mềm
rất cần thiết và tiện lợi cho mọi người đó là tìm kiếm trên google map view.
Chính vì lý do đó mà em đã chọn đề tài : “ Tìm hiểu Android, xây dựng ứng
dụng tìm kiếm nâng cao trên Google Map”.
Nội dung của đề tài được chia thành 2 phần như sau:
 Chương I: Cơ sở lý thuyết và các công cụ sử dụng trong đồ án.
Chương này nói về lịch sử hình thành và phát triển của hệ điều
hành Android. Tổng quan về Webservice, một số thành phần của
webservice. Giới thiệu một số công cụ lập trình Android và công cụ quản
lý trên server.

 Chương II: Xây dựng một ứng dụng Android
Chương này sẽ giải thích lý do tại sao chúng ta chọn Android và
cách tạo ra một ứng dụng Android trên máy tính.
 Chương III: Xây dựng ứng dụng và cài đặt
Chương này đưa ra cách giải quyết bài toán, code, giao diện của
chương trình và cách cài đặt trên điên thoại, cuối cùng đưa ra kết luận và
hướng phát triển của đề tài.

9


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Lịch sử Android
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi
Linux do công ty Android Inc. (California, Mỹ) thiết kế. Công ty này sau đó
được Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform. Các
thành viên chủ chốt tại ở Android Inc. gồm có: Andy Rubin, Rich Miner, Nick
Sears, and Chris White.
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh thiết bị cầm tay mã
nguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễn
thông và thiết bị cầm tay như: Texas Instruments, Broadcom Corporation,
Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia,
Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings,
Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony
Ericsson, Toshiba Corp, and Vodafone Group,…
Mục tiêu của liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho
nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android.
Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết, các nhà
khai thác và các lập trình viên thiết bị cầm tay.
Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng TMobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1,

chiếc smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày sau đó,
Google lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate
1.0. Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho
Android Platform.
Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc
của nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử
dụng lại các thành phần từ những ứng dụng khác. Việc tái sử dụng không chỉ
được áp dụng cho cho các dịch vụ mà nó còn được áp dụng cho cả các thành
phần dữ liệu và giao diện người dùng.

10


Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là
Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng
buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là
cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực
có thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào. Vào
khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi
1.1 của hệ điều hành này. Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ softkeyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý. Android cố định
vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một
số tính năng khác. Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật
dụng, và các live folder.
1.2 Delving với máy ảo Dalvik
Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị động
Android. Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi
Dalvik (dex). Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ
nhớ và tốc độ xử lý. Dalvik đã được thiết kế và viết bởi Dan Bornstein, người đã
đặt tên cho nó sau khi đến thăm một ngôi làng đánh cá nhỏ có tên là Dalvík ở đảo
Eyjafjörður, nơi mà một số tổ tiên của ông sinh sống.

Từ góc nhìn của một nhà phát triển, Dalvik trông giống như máy ảo Java
(Java Virtual Machine) nhưng thực tế thì hoàn toàn khác. Khi nhà phát triển viết
một ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trường
Java. Sau đó, nó sẽ được biên dịch sang các bytecode của Java, tuy nhiên để thực
thi được ứng dụng này trên Android thì nhà phát triển phải thực thi một công cụ
có tên là dx. Đây là công cụ dùng để chuyển đổi bytecode sang một dạng gọi là
dex bytecode. "Dex" là từ viết tắt của "Dalvik executable" đóng vai trò như cơ
chế ảo thực thi các ứng dụng Android.
1.3 Kiến trúc của Android
Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành
Android. Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây.

11


Hình 1.1 Cấu trúc stack hệ thống Android
1.3.1 Tầng ứng dụng
Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản như: contacts,
browser, camera, Phone,… Tất cả các ứng dụng chạy trên hệ điều hành Android
đều được viết bằng Java.
1.3.2 Application framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các
nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo.
Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm
truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo
để các thanh trạng thái, và nhiều, nhiều hơn nữa.
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử
dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn giản hóa
việc sử dụng lại các thành phần; bất kỳ ứng dụng có thể xuất bản khả năng của
mình và ứng dụng nào khác sau đó có thể sử dụng những khả năng (có thể hạn

chế bảo mật được thực thi bởi khuôn khổ). Cơ chế này cho phép các thành phần
tương tự sẽ được thay thế bởi người sử dụng.

12


Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm:
• Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để
thiết kế phần giao diện ứng dụng như: gridview, tableview,
linearlayout,…
• Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu
từ các ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu
giữa các ứng dụng đó.
• Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không
phải là mã nguồn, chẳng hạn như: localized strings, graphics, and
layout files.
• Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các
custom alerts trong status bar.
Activity Maanager được dùng để quản lý chu trình sống của ứng dụng và
điều hướng các activity.
1.3.3 Library
Android bao gồm một tập hợp các thư viên C/C++ được sử dụng bởi nhiều
thành phần khác nhau trong hệ thống Android. Điều này được thể hiện thông qua
nền tảng ứng dụng Android. Một số các thư viện cơ bản được liệt kê dưới đây:
• Hệ thống thư viện C : triển khai BSD-derived có nguồn gốc từ các hệ
thống thư viện chuẩn C (libc), chỉnh để nhúng vào các thiết bị dựa trên
Linux.
• Media Libraries – Dựa trên gói Video OpenCORE; các thư viện hỗ trợ
phát và ghi âm của các định dạng âm thanh và video phổ biến, cũng như
các file hình ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG,

and PNG
• Surface Manager – Quản lý việc truy xuất vào hệ thống hiển thị
• LibWebCore - một trình duyệt web hiện đại có quyền hạn trong cả trình
duyệt Android và hiển thị nhúng web.
• SGL – Các cơ sở công cụ đồ họa 2D.
• 3D libraries - Thực hiện dựa trên OpenGL ES 1.0 APIs; Thư viện sử dụng
hoặc là tăng tốc phần cứng 3D (nếu có) hoặc bao gồm tối ưu hóa phần
mềm 3D.
• FreeType - bitmap and vector font rendering.
13


• SQLite - a powerful and lightweight relational database engine available
to all applications.
1.3.4 Android Runtime
Android bao gồm một tập hợp các thư viện cơ bản mà cung cấp hầu hết các
chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java. Tất cả các
ứng dụng Android đều chạy trong tiến trình riêng. Máy ảo Dalvik đã được viết để
cho một thiết bị có thể chạy nhiều máy ảo hiệu quả. Các VM Dalvik thực thi các
tập tin thực thi Dalvik (dex). Định dạng được tối ưu hóa cho bộ nhớ tối thiểu.
VM là dựa trên register-based, và chạy các lớp đã được biên dịch bởi một trình
biên dịch Java để chuyển đổi thành các định dạng dex. Các VM Dalvik dựa vào
nhân Linux cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp.
1.3.5 Linux kernel
Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi như
security, memory management, process management, network stack, and driver
model. Kernel Linux hoạt động như một lớp trừu tượng hóa giữa phần cứng và
phần còn lại của phần mềm stack.
1.4 Sơ lược về Web service
1.4.1 Khái niệm về Web Service :

Theo định nghĩa của W3C (World Wide Web Consortium), Web Service
là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các
ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung
và sự gắn kết của nó được mô tả bằng XML. Dịch vụ Web là tài nguyên phần
mềm có thể xác định bằng địạ chỉ URL, thực hiện các chức năng và đưa ra các
thông tin người dùng yêu cầu. Một dịch vụ Web được tạo nên bằng cách lấy các
chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có
thể truy cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông
tin từ dịch vụ Web khác. Nó bao gồm các mô đun độc lập cho hoạt động của
khách hàng và doanh nghiệp và bản thân nó được thực thi trên server.

14


1.4.2 Đặc điểm của Web Service :
1.4.2.1 Đặc điểm chung :
- Web Service cho phép client và server tương tác được với nhau ngay cả
trong những môi trường khác nhau.
- Phần lớn kỹ thuật của web service được xây dựng dưa trên mã nguồn mở
và được phát triển theo các chuẩn đã được công nhận.
- Là sự kết hợp của việc phát triển theo hướng từng thành phần với
những lĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả
doanh nghiệp, khách hàng, những nhà cung cấp khác và cả những cá nhân
thông qua mạng Internet.
- Một ứng dụng được triển khai đều hoạt động theo mô hình client-server.
- Web service có ứng dụng thực tế rộng rãi trong các lĩnh vực dịch vụ
chọn lọc và phân loại tin tức, ứng dụng cho các dịch vụ du lịch, bán hang qua
mạng, tỉ giá, chứng khoán, các dịch vụ giao dịch trực truyến như đặt vé máy bay,
tàu xe.
1.4.2.2: Ưu điểm và nhược điểm của Web Service :

+ Ưu điểm :
-

Cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần

-

mềm khác nhau chạy trên các nền tảng khác nhau.
Sử dụng các giao thức và các chuẩn mở. Giao thức và định dạng

-

dữ liệu theo dạng text, thuận lợi cho người phát triển ứng dụng.
Nâng cao khả năng tái sử dụng.
Thúc đẩy đầu tư các hệ thống phần mềm đa tồn tại bằng cách
cho phép các tiến trình/ chức năng nghiệp vụ đóng gói trong

-

giao diện web service.
Tạo mối tương tác lẫn nhau và mềm dẻo giữa các thành phần
trong hệ thống, dễ dàng cho việc phát triển các hệ thống phân
tán.
15


-

Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống.


+ Nhược điểm :
-

Có quá nhiều chuẩn cho dịch vụ web khiến người dùng khó

-

nắm bắt.
Cần quan tâm hơn nhiều về vấn đề bảo mật.
Các giao thức được thay đổi và nâng cấp, đòi hỏi ứng dụng của
client phải được nâng cấp, thay đổi.

1.5 Giới thiệu về Google Places API :
Google Places API là dịch vụ web cung cấp cho người dùng trả về thông tin
các địa điểm được tìm kiếm.Định nghĩa bên trong API này là cơ sở, vị trí địa lý,
các địa điểm nổi bật bằng cách sử dụng các yêu cầu thông qua HTTP. Các địa
điểm này được xác định bằng cách thông qua tọa động vĩ độ/kinh
độ(latitude/longitude).
4 chức năng chính của Google Places API :
 Place Searches : trả về danh sách các địa điểm gần với vị trí của
người dùng đang tìm kiếm.
 Place Details request : trả về chi tiết các thông tin về 1 địa điểm
đang tìm kiếm.
 Place Check-ins cho phép các báo cáo rằng người dùng đã tìm
kiếm về địa điểm này. Mục đích nhằm đánh giá phổ biến những nơi
hay được tìm kiếm.
 Place Reports cho phéo thêm mới 1 địa điểm đến Place service. Và
xóa 1 địa điểm mà bạn đã thêm vào.
1.5.1 Chứng thực :
Được sử dụng với mục đích chứng thực cho Google biết rằng ứng dụng

đang sử dụng Place service.Sau khi chứng thực, google sẽ cung cấp 1 key sẽ
được sử dụng trong chương trình.
Cách đăng kí lấy API Key :
16


 Vào đường link sau : và đăng nhập
bằng gmail.
 Google sẽ tạo ra cho bạn 1 API Project trong lần đăng nhập đầu
tiên.
 Sau đó bạn click vào Status để bật Place Service lên.
 Cuối cùng click vào API access tab bạn sẽ nhận được key do
Google cung cấp.
Các hạn chế và những yêu cầu :
Google hạn chế người dùng về mức độ truy vấn như sau :
Các ứng dụng sử dụng API key chỉ được truy vấn tối đa 1000 request trên
24 giờ.
Với những ứng dụng mà người phát triển đã để lại danh tính thì được phép
truy vấn tối đa 100 000 request trên 24 giờ bằng cách xác định thông qua 1 thẻ
tin dụng. Tuy tin người phát triển không phải trả phí cho việc này.
Nếu muốn hiển thị dữ liệu của Places API trên bản đồ thì bản đồ đó phải do
Google cung cấp sẵn và tính chính xác khi tìm kiếm trong 1 khu vực nhỏ không
cao.
1.5.2 Kết quả trả về sau khi tìm kiếm :
Kết quả tìm kiếm trả về phụ thuộc vào output mà nhà phát triển cung cấp
trong câu lệnh tìm kiếm. Có thể là file Xml hoặc Json. Kết quả tìm kiếm trả về
các địa điểm mà Google API tìm kiếm được, người phát triển sẽ tùy chọn hiển thị
thông tin lên ứng dụng.
Kết quả tìm kiếm chứa 3 phần tử sau :
 “status” : trạng thái tìm kiếm. Nó có thể là các loại sau đây.

 OK : không có lỗi xảy ra trong quá trình tìm kiếm. Tìm kiếm
thành công.
 ZERO_RESULT : Tìm kiếm thành công nhưng không có kết quả nào
được tìm thấy.
17


 OVER_QUERY_LIMIT : quá số lượng truy vấn.
 REQUEST_DENIED : thiết tham số bắt buộc phải truyền vào.
 INVALID_REQUEST :tham số truyền vào bị lỗi.
 “results” : là 1 danh sách các kết quả trả về. Danh sách trả vê gồm có
 Icon : chứ url đến hình ảnh hiển thị địa điểm tìm kiếm.
 Id : mỗi địa điểm chứa 1 id duy nhất.
 Geometry : chứa cặp thông số lat/long về vị trí tìm kiếm.
 Name : tên địa điểm.
 Reference : dùng để tìm kiếm chi tiết về địa điểm này.
 Types[]: các kiểu tìm kiếm được thêm vào trong kết quả.
 Vicinity : Tên đường của khu vực đó.
 Html_attributions : chứa tập hợp các thuộc tính về bảng kết quả này được
hiển thị cho người dùng.
1.6 Giới thiệu các công cụ sử dụng trong đồ án :
- Android SDK và eclipse là hai công cụ phổ biến cần thiết cho các lập trình
viên Android trên máy tính.
- Chúng ta có thể sử dụng hosting của nhiều hãng nổi tiếng trên thế giới như
Ipage,Just host, Blue host…
- Joomla là hệ quản trị cơ sở dữ liệu mà chúng ta sẽ sử dụng để quản lý
thông tin trên server.

18



Hình 1.2 Công cụ Android SDK

Hình 1.3 Công cụ Eclipse

Hình 1.4 Giao Diện Eclipse

19


Hình 1.5 Công cụ Hosting Ipage

Hình 1.6 Công cụ Joomla

20


CHƯƠNG 2: XÂY DỰNG MỘT ỨNG DỤNG ANDROID
2.1 Tại sao sử dụng hệ điều hành Android
2.1.1 Tiềm năng phát triển của Android
Hiện nay, cùng với sự phát triển của thị trường điên thoại di động thì
cũng có rất nhiều các hãng cho ra các sản phẩm hệ điều hành với nhiều ưu điểm
riêng biệt của mình như Android, Samsung bada, Windows phone, Symbian,
Blackberry, …. Nhưng theo một số thống kê cho thấy hên điều hành được giới
lập trình và người sử dụng ưa chuộng nhất là Android.
ICTnews – Nền tảng Android của Google đang phát triển mạnh mẽ và
đứng đầu trên thị trường di động. Có rất ít dấu hiệu cho thấy sẽ có một nền tảng
nào khác đánh bật được Android khỏi vị trí này
Trong vài năm qua, Android đã tạo được một vị trí thống trị vững chắc
trên thị trường điện thoại di động. Và 2012 có lẽ là một năm may mắn nhất đối

với nền tảng này. Theo công ty nghiên cứu thị trường IDC, Android sẽ chiếm
61% thị trường trong năm nay và sẽ vẫn chiếm tới gần 53% thị phần vào năm
2016
Với thương hiệu vững chắc, sự hợp tác từ nhiều hãng sản xuất điện thoại
và với số lượng lớn Android vẫn là nền tảng đứng đầu trên thị trường di động. Và
những điều sau đây sẽ không thay đổi trong một vài năm tới.
Số lượng các hãng sản xuất di động Android rất lớn
Con số về các thiết bị Android được bày bán và đang được sử dụng là một
bằng chứng đơn giản và rõ ràng nhất về sự thành công của nền tảng này. Hiện có
hàng trăm (nếu không muốn nói là hàng nghìn) các thiết bị di động khác nhau
chạy Android từ smartphone đến máy tính bảng và các sản phẩm dành cho doanh
nghiệp. Phủ trên thị trường với nhiều loại sản phẩm là một cách rất khôn ngoan
để chiếm thị phần.

Apple chỉ có 3 thiết bị

21


Trong khi đó, đối thủ cạnh tranh chính của Android là iOS lại đang chỉ xuất
hiện trên iPhone, iPad và iPod Touch. Mặc dù nền tảng này đang rất phổ biến và
thu lại rất nhiều lợi nhuận cho Apple nhưng iOS của Apple khó có thể theo kịp
Android của Google chỉ với 3 sản phẩm.
Sự suy giảm của RIM
RIM từ lâu đã là một “cái gai’ bên cạnh nền tảng Symbian của Nokia và
Windows Mobile. Tuy nhiên, trong năm qua, thị phần của RIM đã tụt xuống chỉ
còn 6% và theo dự đoán của IDC, con số này còn tiếp tục giảm tới năm 2016. Sự
suy giảm của RIM lại tạo ra nhiều thuận lợi cho Android.
BYOD
BYOD(Bring Your Own Device), cho phép nhân viên sử dụng thiết bị riêng

của họ trong môi trường làm việc đã trở thành một trong những xu thế có ảnh
hưởng lớn. Mặc dù iPhone là một trong những sản phẩm tiêu dùng phổ biến nhất
tại các văn phòng làm việc, nhưng Android cũng đang có một số thành công với
xu hướng này. Với BYOD, Android sẽ có thêm nhiều cơ hội mở rộng thị trường.
Microsoft có ít cơ hội cạnh tranh
Microsoft được cho là có cơ hội tốt nhất để một ngày nào đó có thể vượt
qua Android. Hệ điều hành Windows Phone của Microsoft cũng có cùng một loại
chiến lược cấp phép cho các nhà sản xuất như Android. Tuy nhiên, theo công ty
nghiên cứu thị trường IDC,đến năm 2012, hệ điều hành này mới chỉ có thể tập
hợp được 5,2% thị phần. Với khả năng cạnh tranh kém của Microsoft, một trong
những đối thủ có tiềm năng nhất, Android vẫn còn nhiều thời gian để chiếm lĩnh
thị trường di động.
Google hỗ trợ tốt các đối tác
Nền tảng Android của Google sẽ không là gì cả nếu Google không có sự hỗ
trợ các đối tác sản xuất di động. Với chính sách này, Google đã thu hút được rất
nhiều đối tác trong những năm qua. Một khi đã tham gia vào thế giới của
Android, các nhà sản xuất di động sẽ được khuyến khích đầu tư càng nhiều càng
tốt vào nền tảng này. Đó là một bước đi thông minh giúp Google có được những
thị phần rộng lớn.

22


Giá trị thương hiệu của Google
Và một yếu tố vô cùng quan trọng tác động đến thành công của Android
chính là giá trị thương hiệu của Google. Thương hiệu này được cả khách hàng và
các đối tác tin cậy. Đó cũng là một lý do chủ yếu khác khiến các nhà sản xuất
smartphone đầu tư vào nền tảng này và là một động lực khuyến khích khách
hàng mua sản phẩm chạy hệ điều hành Android. Nếu không có khối tài nguyên
và ảnh hưởng to lớn với thị trường của Google, Android sẽ không thể thành công

như ngày hôm nay.
Hỗ trợ của các nhà mạng
Các nhà mạng là vũ khí bí mật đằng sau sự thành công của Android trong
vài năm qua. Những nhà mạng như Verizon, AT T, Sprint và T-Mobile đã quảng
bá rất nhiều cho hệ điều hành này giúp đem lại doanh số khổng lồ cho các thiết bị
Android.
Hỗ trợ ứng dụng
Khi Apple ra mắt kho ứng dụng App Store, thì nhiều nhà phân tích và
nghiên cứu thị trường đã tỏ ra lo ngại rằng kho ứng dụng này sẽ khó có thể thành
công. Nhưng sau một vài năm, đây rõ ràng là một quyết định rất thông minh. Số
lượng và chất lượng các ứng dụng có ảnh hưởng rất lớn đối với thành công của
một nền tảng di động. Và Google may mắn đã có một kho ứng dụng Android
Market với nhiều ứng dụng chất lượng cao, nâng cao sức hấp dẫn thương mại
cho hệ điều hành Android.
Doanh nghiệp đang dần quan tâm đến Android
Cách đây không lâu Android vẫn không phải là hệ điều hành được những
người quản lý công nghệ thông tin tại các doanh nghiệp quan tâm. Tuy nhiên,
gần đây mọi thứ đã thay đổi đáng kể. Thế giới doanh nghiệp đang dần chấp nhận
Android và để mắt tới những thiết bị chạy hệ điều hành này.
2.1.2 Sức mạnh của Android :
Android là một hệ điều hành di động dựa trên nền tảng linux phiên bản
2.6 dành cho cácdòng điện thoại SmartPhone. Đầu tiên được ra đời bởi công ty
liên hợp Android, sau đó được Google mua lại và phát triển từ năm 2005 và trở

23


thành một hệ điều hành di động mã nguồn mở,miễn phí, mạnh mẽ và được ưa
chuộng cao trên thế giới.
Hệ điều hành android một hệ điều hành rất mạnh mạnh, có bảo mật cao,

hỗ trợ được nhiều công nghệ tiên tiến như 3G, GPS, EDGE, Wifi..tương thích
với nhiều phần cứng, hỗ trợ nhiều loại bộ nhập dữ liệu như keyboard, touch và
trackball. Android là hệ điều hành di động nên có khả năng kết nối cao với các
mạng không dây. Hỗ trợ công nghệ OpenGL nên có khả năng chơi các phương
tiện media, hoạt hình cũng như trình diễn các khả năng đồ họa khác cực tốt, là
tiền đề để phát triển các ứng dụng có giao diện phức tạp chẳng hạn như là các trò
chơi.
Android liên tục được phát triển, mỗi bản cập nhật từ google là mỗi lần
android được tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm
công nghệ mới. Chẳng hạn như theo một đánh giá thì android phiên bản 2.2 hoạt
động nhanh hơn bản 2.1 tới 450%. Hiện nay, phiên bản mới nhất 4.0 phát hành
6/2012 và đang tiếp tục được cập nhật.
Năm 2008, hệ điều hành android đã chính thức mở toàn bộ mã nguồn,
điều đó cho phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế
lại sao cho phù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọng nữa là
hệ điều hành mở này hoàn toàn miễn phí, không phải trả tiền nên giúp họ tiết
kiệm khá lớn chi phí phát triển hệ điều hành. Những điều đó là cực kỳ tốt không
chỉ đối với các hãng sản xuất điện thoại nhỏ mà ngay cả với những hãng lớn như
Samsung, HTC....

2.1.3 Tính Năng của Android :
- Storage (Lưu trữ): Android sử dụng SQLlite - một CSDL quan hệ nhỏ
để lưu trữ DL có cấu trúc.
- Kết nối (Connectivity): Android hỗ trợ GSM/EDGE, IDEN, CDMA,
EV-DO, UMTS, Bluetooth (bao gồm A2DP and AVRCP), WiFi, LTE, và
WiMAX.

24



- Tin nhắn:

Android hỗ trợ cả tin nhắn dạng SMS (Short Message

Services) và MMS (Multimedia Messaging Service).
- Tích hợp Trình duyệt Web (Web Browser): Dựa trên các bộ Webkit mã
nguồn mở (open Webkit) cùng với GoogleChrome V8 javascript.
- Hỗ trợ truyền trông (Media Support): Android hỗ trợ các định dạng âm
thanh, video phổ biến và các định dạng ảnh như: MPEG4, H.264, MP3, AAC,
AMR, JPG, PNG, GIF…
- Hỗ trợ phần cứng (Hardware Support): Accelerometer Sensor, Camera,
Digital Compass, Proximity Sensor, và GPS.
- Cảm ứng đa chạm (Multil Touch).
- Đa tác vụ (Multil Task).
- Hỗ trợ Flash: Android 2.3 hỗ trợ Flash 10.1
- Tethering (Chia sẽ kết nối internet tới các thiết bị khác).
2.1.4 So sánh Android với hệ điều hành khác :
Android được xây dựng mở để cho phép các nhà phát triển để tạo
ra các ứng dụng di động hấp dẫn tận dụng tất cả các chức năng một chiếc điện
thoại đã cung cấp. Một ứng dụng có thể gọi bất kỳ chức năng lõi sẵn có của thiết
bị hiện tại như thực hiện cuộc gọi, gửi tin nhắn… Android được xây dựng trên
nhân Linux. Hơn nữa, nó sử dụng một máy ảo tuỳ chỉnh được thiết kế để tối ưu
hóa bộ nhớ và tài nguyên phần cứng với nhiều thư viện mở rộng.
Với android khái niệm phần mềm lõi của điện thoại và các phần mềm
được cung cấp bởi hãng thứ 3 là không còn ranh giới. Một chương trình do người
dùng tự viết sẽ không khác gì so với phần mềm đi cùng máy do cả 2 đều có toàn
quyền sử dụng và triệu gọi các dịch vụ nền tảng của chiếc máy điện thoại vận
hành trên nền Android.
Android cung cấp cách tiếp cận thống nhất cho việc phát triển ứng dụng.
Người phát triển chỉ cần phát triển ứng dụng cho Android và tất cả các ứng dụng

của họ sẽ chạy trên các thiết bị cầm tay khác được trang bị HĐH Android.
Android là thực sự là một nền tảng đa nhiệm. Các nền tảng khác cũng có
thể làm được điều này tuy nhiên việc quản lý đa nhiệm của chúng có phần khó
khăn và kém khả thi.

25


×