1. Trang chủ
  2. » Công Nghệ Thông Tin

nghiên cứu google map api và xây dựng ứng dụng trên android

106 6K 194
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 106
Dung lượng 3,83 MB

Nội dung

Trong đó ta thấy nổi bật nhất hiện nay đó là công nghệ di động,các ứng dụng trên di động.Từ ý nghĩa trên nhóm đã quyết định nghiên cứu và xây dựng một ứng dụng ápdụng công nghệ đi động đ

Trang 1

KHÓA LUẬN TỐT NGHIỆP

NGHIÊN CỨU GOOGLE MAP API VÀ XÂY DỰNG ỨNG DỤNG TRÊN ANDROID

Trang 2

cũng ngày càng tăng, đặc biệt là nhu cầu về việc sử dụng công nghệ hỗ trợ cho cuộcsống hằng ngày Nắm bắt được nhu cầu đó mà các công ty không ngừng đổi mới, tạo ranhiều công nghệ hơn Trong đó ta thấy nổi bật nhất hiện nay đó là công nghệ di động,các ứng dụng trên di động.

Từ ý nghĩa trên nhóm đã quyết định nghiên cứu và xây dựng một ứng dụng ápdụng công nghệ đi động để đơn giản hóa việc tìm đường, tra cứu thông tin trên bản đồ.Với ứng dụng này người sử dụng có thể dễ dàng biết được vị trí của mình, cũng nhưtìm đường đi và địa điểm một cách nhanh chóng và chính xác tại bất kỳ nơi nào Ứngdụng đặc biệt thích hợp với khách du lịch vì chỉ cần cài đặt ứng dụng trên chiếc điệnthoại của mình là có thể sử dụng được

Khóa luận “Nghiên cứu Google Map Api và xây dựng ứng dụng trên

Android” bao gồm 8 chương:

Chương 1: Giới thiệu: Giới thiệu khái quát về khóa luận và mục đích của khóa

luận

Chương 2: Tổng quan hệ điều hành Android.

Chương 3: Kiến trúc và thành phần hệ điều hành Android.

Chương 4: Google Map API & các dịch vu Google Map trên Anroid.

Chương 5: Giới thiệu phần mềm MapPro.

Chương 6: Phân tích thiết kế hệ thống.

Chương 7: Thiết kế giao diện.

Chương 8: Đánh giá kết quả và kết luận.

Trang 3

giúp đỡ rất nhiều từ quý thầy cô Trước hết, nhóm xin gửi lời tri ân sâu sắc nhất đếnquý thầy cô khoa Công nghệ phần mềm, cũng như quý thầy cô của các khoa và bộ môntrường Đại học Công nghệ thông tin - ĐHQG HCM đã nhiệt tình truyền đạt kiến thức

và các kinh nghiệm thực tế, đặc biệt là Thầy PGS.TS Vũ Thanh Nguyên và Thầy TrầnAnh Dũng, người đã hết sức quan tâm và nhiệt tình hướng dẫn nhóm hoàn thành bàikhóa luận này

Cuối cùng, nhóm xin gửi lời chúc sức khỏe và thành công đến quý thầy cô trườngĐại học Công nghệ thông tin

Mặc dù nhóm đã rất cố gắng nhưng trong quá trình làm khóa luận sẽ không tránhkhỏi những thiếu sót Rất mong nhận được sự góp ý quý báu của quý thầy cô và bạn bè

để khóa luận được hoàn chỉnh hơn

Thành phố Hồ Chí Minh, ngày 31 tháng 12 năm 2011

Nhóm thực hiện

Nguyễn Minh Tuấn – Trương Duy

Trang 4

Trang 5

Trang 6

LỜI MỞ ĐẦU

LỜI CẢM ƠN

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN

MỤC LỤC

DANH SÁCH BẢNG BIỂU

DANH MỤC HÌNH VẼ

Chương 1 GIỚI THIỆU 1

1.1 Giới thiệu đề tài 1

1.2 Mục tiêu đề tài 2

Chương 2 TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID 3

2.1 Khái niệm 3

2.2 Đặc điểm 4

2.2.1 Tính mở 4

2.2.2 Tính ngang hàng của các ứng dụng 4

2.2.3 Phá vỡ rào cản phát triển ứng dụng 5

2.2.4 Dễ dàng và nhanh chóng xây dựng ứng dụng 5

2.3 Ưu và nhược điểm của Android so với các hệ điều hành khác 5 Chương 3 KIẾN TRÚC VÀ THÀNH PHẦN ANDROID 7 3.1 Kiến trúc của nền tảng Android 7 3.1.1 Kiến trúc tổng quát 7

3.1.2 Hệ điều hành 7

3.1.3 Thư viện và các giao diện lập trình ứng dụng 7

3.2 Các thành phần của ứng dụng 12 3.2.1 Hoạt động (Activity) 13

3.2.2 Service 16

Trang 7

3.2.7 Tập tin khai báo (manifest) 20

3.2.8 Bộ lọc Intent 22

3.3 Công cụ hỗ trợ lập trình Android 23 3.3.1 Tổng quan 23

3.3.2 Tạo máy ảo trên android 25

3.3.3 Xuất bản phần mềm chạy trên android 26

Chương 4 GOOGLE MAP API VÀ CÁC DỊCH VỤ GOOGLE MAP TRÊN ANDROID 30 4.1 Đăng ký API Key từ Google Maps 31 4.1.1 Giới thiệu 31

4.1.2 Lấy mã MD5 32

4.1.3 Lấy key Google Maps API 33

4.2 Các tham số truy cập trong Google Maps 33 4.2.1 Các tham số chung 33

4.2.2 Chế độ tìm kiếm 35

4.2.3 Vị trí 36

4.2.4 Hiển thị bản đồ 37

4.2.5 Dẫn đường 37

4.2.6 Quản lý thông tin đầu ra 38

4.3 File thông tin KML 39 4.3.1 Placemark 39

4.3.2 Đường đi (Path) 40

4.3.3 Truy xuất thông tin dữ liệu từ file KML 42

4.4 Một số API phổ biến của Google Maps trên Android 51 4.4.1 Lớp GeoPoint 51

4.4.2 OverlayItem & ItemizedOverlay 52

4.4.3 Lớp MapController 56

4.4.4 MapView & MapActivity 60

Trang 8

5.2 Kiến trúc phần mềm 72

5.2.1 Phần mềm cài đặt trên điện thoại 725.2.2 Hệ thống máy chủ 72

Chương 6 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 74

6.1 Sơ đồ Use-Case tổng quát 74

Chương 7 THIẾT KẾ GIAO DIỆN 86

7.1 Thiết kế giao diện86

7.1.1 Danh sách màn hình 867.1.2 Mô tả chi tiết từng màn hình 86

Chương 8 ĐÁNH GIÁ KẾT QUẢ VÀ KẾT LUẬN 96

8.1 Đánh giá luận văn 96

8.2 Đánh giá ứng dụng 96

8.2.1 Kết quả đạt được 968.2.2 Hạn chế 97

8.3 Hướng phát triển 97

8.4 Kết luận 97

TÀI LIỆU THAM KHẢO 98

Trang 9

Bảng 4.2: Các tham số truy xuất vị trí 37

Bảng 4.3: Các phương thức trong lớp GeoPoint 51

Bảng 4.4: Các thành phần lớp OverlayItem 54

Bảng 4.5: Các phương thức lớp OverlayItem 55

Bảng 4.6: Phương thức khởi tạo lớp ItemizedOverlay 55

Bảng 4.7: Các phương thức tạo lớp ItemizedOverlay 56

Bảng 4.8: Các phương thức lớp MapController 60

Bảng 4.9: Phương thức khởi tạo lớp MapView 65

Bảng 4.10: Các phương thức lớp MapView 68

Bảng 4.11: Các phương thức lớp MapActivity 70

Bảng 4.12 Các phương thức lớp MyLocationOverlay 71

Bảng 6.1: Danh sách actor 75

Bảng 6.2: Danh sách use-case 75

Bảng 7.1: Danh sách các màn hình 86

Trang 10

Hình 1.1: Một số công nghệ bản đồ hiện nay 1

Hình 2.1: Một số điện thoại sử dụng Android 3

Hình 3.1: Nhân Linux trên Android 7

Hình 3.2: Thư viện lập trình ứng dụng trên Android 8

Hình 3.3: Khung ứng dụng trên Android 11

Hình 3.4: Các ứng dụng trên Android 12

Hình 3.5 Vòng đi của một hoạt động 15

Hình 3.6: Sơ đồ chuyển trạng thái của Service 17

Hình 3.7: Tạo máy ảo 25

Hình 3.8: Khởi tạo máy ảo 26

Hình 3.9: Xuất bản phần mềm trên Android 27

Hình 3.10: Nhập thông số cần thiết 27

Hình 3.11: Thiết lập tên cho file apk 28

Hình 3.12: Nhập password 29

Hình 4.1: Hình ảnh nhìn từ vệ tinh trên Google Maps 30

Hình 4.2: Ví dụ chế độ hiển thị trên bản đồ 61

Hình 5.1: Kiến trúc phần mềm MapPro 73

Hình 6.1: Sơ đồ use-case tổng quát 74

Hình 6.2: Biểu đồ tuần tự cho chức năng tìm kiếm địa điểm 81

Hình 6.3: Biểu đồ tuần tự cho chức năng tìm kiếm đường đi 82

Hình 6.4: Biểu đề tuần tự cho chức năng tìm kiếm theo địa chỉ và hiển thị vị trí hiện tại 83

Hình 6.5: Biểu đồ lớp chi tiết cho tìm kiếm địa điểm 84

Hình 6.6: Biểu đồ lớp chi tiết cho tìm kiếm đường đi 84

Hình 6.7: Biểu đồ lớp chi tiết cho tìm kiếm theo địa chỉ và vị trí hiện tại 85

Hình 7.1: Màn hình chính 87

Hình 7.2: Màn hình bản đồ 88

Hình 7.3: Màn hình menu địa điểm 89

Hình 7.4: Màn hình nhập vị trí 90

Hình 7.5: Màn hình hiển thị địa điểm trên danh sách 91

Hình 7.6: Màn hình hiển thị địa điểm trên bản đồ 92

Hình 7.7: Màn hình nhập thông tin dẫn đường 93

Hình 7.8: Màn hình thông tin dẫn đường trên danh sách 94

Hình 7.9: Màn hình thông tin dẫn đường trên bản đồ 95

Trang 11

Chương 1 GIỚI THIỆU 1.1 Giới thiệu đề tài

Ngày nay với sự phát triển mạnh mẽ của công nghệ bản đồ thì việc tìm kiếmthông tin cũng như định vị trên bản đồ ngày càng dễ dàng dàng hơn Không những thếviệc ứng dụng công nghệ này trên thiết bị di động cũng là một xu hướng tất yếu Trênthực tế đã có nhiều hãng phần mềm hỗ trợ công nghệ này, chúng ta không khó nhận ra

đó là các ứng dụng như: Bing Maps của hãng phần mềm Microsoft, Yahoo! Maps củahãng phần mềm Yahoo, Trendsmap của mạng xã hội twitter…Trong đó đáng chú ýnhất là Google Maps của hãng phần mềm tìm kiếm hàng đầu thế giới là Google Khôngnhững hỗ trợ đầy đủ các dạng bản đồ như: Earth, Satellite, Traffic, Weather….mà còn

hỗ trợ bản đồ trên Android

Hình 1.1: Một số công nghệ bản đồ hiện nay

Giống như công nghệ bản đồ, công nghệ di động trên các smartphone cũng khôngkém phần sôi động với sự tham gia của các hãng lớn như: RIM, Nokia, Samsung,Apple, Google, Microsoft… Không chỉ là một chiếc điện thoại bình thường, cácsmartphone còn có thể hoạt động giống như một chiếc máy tính mini với nhiều côngnghệ hiện đại được tích hơp như: GPS, Web, E-mail, Office…

Trang 12

Nhận thấy xu hướng phát triển đó nhóm đã có ý tưởng kết hợp hai công nghệ nàyvới nhau để tạo ra một ứng dụng tìm kiếm và dẫn đường trên hệ điều hành Android vớitên “MapPro”.

“MapPro” là một ứng dụng bản đồ dựa trên Map APIs trên thiết bị Android củaGoogle Maps

1.2 Mục tiêu đề tài

Tìm hiểu các vấn đề xung quanh Google Map APIs và các dịch vụ mà GoogleMaps hỗ trợ đặc biệt là các ứng dụng trên Android Tìm hiểu hệ điều hành và cách xâydựng trên hệ đều hành Android

Áp dụng kiến thức tìm hiểu được xây dựng hệ thống chạy trên hệ điều hànhAndroid để giải quyết các vấn đề sau:

 Tìm kiếm thông tin xung quanh vị trí hiện tại như: ATM, nhà hàng, khách sạn,trường học, nhà sách…, tìm kiếm theo địa chỉ được cho sẵn

 Tìm kiếm địa điểm và địa chỉ trên bản đồ

 Hướng dẫn đường đi

 Tính toán lộ trình và thời gian đường đi

 Định vị người dùng

Trang 13

Chương 2 TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID 2.1 Khái niệm

Hình 2.2: Một số điện thoại sử dụng Android

Android được phát triển bởi tập đoàn Google, phiên bản đầu tiên ra đời năm

2008 Được xây dựng trên một nền tảng mở, và một bộ thư viện đa năng, mạnh mẽ vớinguyên lý mở, Android đã nhanh chóng được cộng đồng lập trình viên di động hưởngứng mạnh mẽ Nền tảng Android tích hợp nhiều tính năng nổi bật:

 Android là một hệ điều hành nhân Linux, đảm bảo sự tương tác với các phầncứng, quản lý bộ nhớ, điều khiển các tiến trình tối ưu cho các thiết bị di động

 Bộ ứng dụng khung cho phép sử dụng lại và thay thế các thành phần riêng lẻ

 Máy ảo Dalvik được tối ưu cho các thiết bị di động, chạy các ứng dụng lậptrình trên ngôn ngữ Java

 Các thư viện cho phát triển ứng dụng mã nguồn mở bao gồm SQLite, WebKit,OpenGL và trình quản lý đa phương tiện

 Hỗ trợ các chuẩn đa phương tiện phổ biến, thoại trên nền GSM, BluetoothEDGE, 3G và Wifi

Trang 14

 Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc…

 Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, công cụ sửa lỗi, tíchhợp với Eclipse SDK

Android cung cấp một tập hợp đầy đủ các phần mềm cho thiết bị di động baogồm: hệ điều hành, các khung ứng dụng và các ứng dụng cơ bản

2.2 Đặc điểm

2.2.1 Tính mở

Android được xây dựng từ dưới đi lên cho phép người phát triển tạo các ứngdụng di động hấp dẫn với đầy đủ các điểm mạnh của các thiết bị cầm tay hiện có.Android hoàn toàn mở, một ứng dụng có thể gọi tới bất kể một chức năng lõi của điệnthoại như tạo cuộc gọi, gửi tin nhắn hay sử dụng máy ảnh, cho phép người phát triểntạo phong phú hơn, liên kết hơn các tính năng cho người dùng Android được xây dựngtrên nhân Linux mở Thêm nữa, nó sử dụng một máy ảo mà đã được tối ưu hóa bộ nhớ

và phần cứng với môi trường di động Android là một mã nguồn mở, nó có thể được

mở rộng để kết hợp tự do giữa các công nghệ nổi trội Nền tảng này sẽ tiếp tục pháttriển bởi cộng đồng phát triển để tạo ra các ứng dụng di động hoàn hảo

2.2.2 Tính ngang hàng của các ứng dụng

Với Android, không có sự khác nhau giữa các ứng dụng điện thoại cơ bản vớiứng dụng của bên thứ ba Chúng được xây dựng để truy cập như nhau tới một loạt cácứng dụng và dịch vụ của điện thoại Với các thiết bị được xây dựng trên nền tảngAndroid, người dùng có thể đáp ứng đầy đủ các nhu cầu mà họ thích Chúng ta có thểđổi màn hình nền, kiểu gọi điện thoại, hay bất kể ứng dụng nào Chúng ta thậm chí cóthể hướng dẫn điện thoại chỉ xem những ảnh mình thích

Trang 15

2.2.3 Phá vỡ rào cản phát triển ứng dụng

Android phá vỡ rào cản để tạo ứng dụng mới và cải tiến Một người phát triển cóthể kết hợp thông tin từ trang web với dữ liệu trên điện thoại cá nhân – chẳng hạn nhưdanh bạ, lịch hay vị trí trên bản đồ – để cung cấp chính xác hơn cho người khác VớiAndroid, người phát triển có thể xây dựng một ứng dụng mà cho phép người dùng xem

vị trí của những người bạn và thông báo khi họ đang ở vị trí lân cận Tất cả được lậptrình dễ dàng thông qua sự hỗ trợ của MapView và dịch vụ định vị toàn cầu GPS

2.2.4 Dễ dàng và nhanh chóng xây dựng ứng dụng

Android cung cấp bộ thư viện giao diện lập trình ứng dụng đồ sộ và các công cụ

để viết các ứng dụng phức tạp Ví dụ, Android có thể cho phép người phát triển biếtđược vị trí của thiết bị và cho phép các thiết bị giao tiếp với nhau để có thể tạo nênmạng xã hội chia sẻ ngang hàng rộng khắp Thêm nữa, Android còn bao gồm một bộcông cụ đầy đủ giúp cho việc phát triển trở nên dễ dàng

2.3 Ưu và nhược điểm của Android so với các hệ điều hành khác

Android Google Android là nền tảng mở, cho

phép người dùng có thể tùy biến nền

tảng theo ý thích, hơn nữa lại có một

Liên minh thiết bị cầm tay mở hậu

thuẫn, Google Android đang là đối thủ

xứng tầm của iPhone của Apple

sợ vi phạm bản quyền vớiiPhone), giao diện không bắtmắt, khả năng hỗ trợ bộ nhớkém iPhone, không đồng bộđược với máy tính Hi vọngtrong thời gian tới Google sẽsớm khắc phục những nhượcđiểm này

Trang 16

(Linux, Windows hay Mac OS) do chạy

trên máy ảo Java Thư viện ngày càng

hoàn thiện, dễ dàng cho người lập trình

Window

s Mobile

Có thư viện API khá giống với API trên

Win32, các công cụ hỗ trợ lập trình đầy

đủ với Visual Studio, điều này làm cho

những người phát triển trên Win32

không mất công tìm hiểu lại các API và

các công cụ lập trình

Sự có mặt của iPhone vàAndroid là hai trở ngại lớn vớiWindows Mobile Hai nền tảngnày đang hoàn thiện và đượcngười dùng rất ưa chuộng

iPhone Màn hình cảm ứng đa điểm: iPhone

sử dụng hoàn toàn bằng cảm ứng và

không sử dụng các nút Với iPhone ta

có thể điều khiển trên màn hình kể cả

việc trượt của các ngón tay Ta có thể

phóng to ảnh bằng cách trượt hai ngón

tay ra xa và thu nhỏ bằng cách ngược

lại

Bộ cảm nhận gia tốc: Những phản ứng

nhanh chóng của bộ cảm nhận gia tốc

thay đổi độ phân giải màn hình từ dọc

sang ngang tự động khi ta đặt điện thoại

nằm ngang Điều này làm sinh động

thêm cho các trò chơi Âm thanh, hình

ảnh hoàn hảo

Không gửi được tin nhắn đaphương tiện (MMS) và IM(Instant Messaging), thiếu bộnhớ mở rộng Việc lập trình trêncho iPhone phải thực hiện trên

hệ điều hành Mac, do đó khôngphải ai cũng có thể lập trình choiPhone Hơn thế, nếu muốn đưachương trình ra máy thật ngườilập trình phải trả một khoản phílập trình, điều này làm giảm tínhcạnh tranh so với các đối thủkhác

Bảng 2.1: So sánh các hệ điều hành

Trang 17

Chương 3 KIẾN TRÚC VÀ THÀNH PHẦN ANDROID

3.1 Kiến trúc của nền tảng Android

Hình 3.3: Nhân Linux trên Android

Android sử dụng nhân Linux 2.6 làm nhân cho các dịch vụ hệ thống như bảo mật,quản lý bộ nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng), ngăn xếp mạng và trìnhđiều khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không đây, v.v…) NhânLinux này cũng có vai trò như một lớp trừu tượng giữa phần cứng và phần mềm

3.1.3 Thư viện và các giao diện lập trình ứng dụng

Android có một thư viện khá phong phú cung cấp sẵn để người lập trình có thể sửdụng Hình sau là sơ đồ tóm tắt về hệ thống thư viện này

Trang 18

Hình 3.4: Thư viện lập trình ứng dụng trên Android

3.1.3.1 Android runtime

Android có một tập các thư viện nòng cốt để cung cấp hầu hết các chức năng sẵn

có trong thư viện cốt lõi của ngôn ngữ lập trình Java Android Runtime: Bao gồm máy

ảo Dalvik và các thư viện Android

Các thư viện cơ bản: Các ứng dụng Android được phát triển trên môi trường Java,nhưng Dalvik lại không phải là một Java VM Các thư viện cơ bản của Android cungcấp hầu hết các chức năng có trong thư viện cơ bản của Java cũng như là thư viện riêngcủa Android

Máy ảo Dalvik: Dalvik là máy ảo để chạy các ứng dụng trên Android, đã được tối

ưu để đảm bảo rằng một thiết bị có thể chạy được nhiều Instance một cách hiệu quả

Nó dựa vào nhân Linux để thực hiện đa luồng và quản lý bộ nhớ cấp thấp

3.1.3.2 Bộ thư viện

Android cung cấp một số các APIs cho phát triển ứng dụng Danh sách các API

cơ bản sau được cung cấp bởi tất cả các thiết bị trên nền Android:

Trang 19

 android.util: Gói tiện ích cơ bản bao gồm nhiều lớp mức thấp như là cáclớp quản lý (List, Stack…) lớp xử lý chuỗi, lớp xử lý XML.

 android.os: Gói hệ điều hành cung cấp truy cập đến các dịch vụ cơ bản như

là chuyển tin nhắn, thông tin chéo, đồng hồ và gỡ lỗi

 android.graphics: Cung cấp các lớp đồ họa mức thấp thực hiện các chứcnăng đồ họa, màu, vẽ cơ bản

 android.text: Công cụ hiển thị và xử lý văn bản

 android.database: Cung cấp các lớp mức thấp bắt buộc cho việc điềukhiển cursor khi làm việc với các cơ sở dữ liệu

 android.content: Các giao tiếp lập trình nội dung được dùng để quản lýtruy cập dữ liệu và xuất bản bằng cách cung cấp các dịch vụ thao tác với tàinguyên, Content Provider, và các gói

 android.view: View là lớp giao diện người dùng cơ bản nhất Tất cả giaodiện người dùng được tạo ra đều phải sử dụng một tập các View để cung cấpcho các thành phần tương tác người dùng

 android.widget: Xây dựng dựa trên gói View Những lớp widget nhữngthành phần giao diện được tạo sẵn được sử dụng để tạo nên giao diện ngườidùng Các widget bao gồm danh sách, nút bấm, hộp nhập, các kiểu trình bày(layout)

 com.google.android.maps: Bộ API mức cao cung cấp truy cập đến điềukhiển bản đồ sẵn trong Android từ ứng dụng được xây dựng Bao gồm cả lớp

MapView cũng như Overlay và MapController để tương tác với bản đồ bêntrong ứng dụng

Trang 20

 android.app: Một gói thư viện bậc cao, cung cấp truy cập đến dữ liệu củaứng dụng Gói ứng dụng cũng bao gồm lớp Activity và Service là thành phần

cơ bản của mọi ứng dụng Android

 android.provider: Để tạo thuận lợi cho người phát triển truy cập đến cácContent Provider tiêu chuẩn (như là dữ liệu danh bạ), gói cung cấp (Provider)bao gồm các lớp cho phép truy cập đến cơ sở dữ liệu chuẩn trong tất cả cácbản phân phối Android

 android.telephony: Các API điện đàm cung cấp khả năng tương tác trựctiếp với tầng điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi cáccuộc gọi, tình trạng các cuộc gọi và tin nhắn SMS

 android.webkit: Gói WebKit cung cấp các API để làm việc với các nộidung Web-based bao gồm một lơp WebView để tạo ra giao diện web, nhúngtrong ứng dụng và một trình quản lý cookie

Cùng với các API của Android, còn có một tập các thư viện C/C++ như:

OpenGL: Thư viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn OpenGLES

1.0 API

FreeType: Hỗ trợ xử lý bitmap và font vector.

GGL: Thư viện cơ bản, dùng để cung cấp các engine đồ họa 2D.

Libc: Thư viện C chuẩn, được tối ưu cho các thiết bị Linux-based.

SQLite Engine: Cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu của

ứng dụng

SSL: Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer trong bảo mật

truyền thông Internet

Trang 21

Ngoài các thư viện chuẩn của Android, để đáp ứng tiêu chí phù hợp với nhiềuthiết bị khác nhau, Android còn có thể có các API phụ thuộc thiết bị như

android.location, android.media, android.opengl, android.hardware,

android.bluetooth, android.net.wifi, và android.telephony

3.1.3.3 Khung ứng dụng trên Android

Hình 3.5: Khung ứng dụng trên Android

Kiến trúc của Android khuyến khích khái niệm thành phần sử dụng lại, cho phépcông bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác với quyền truycập được quản lý bởi khai báo

Cơ chế đó cho phép người lập trình tạo ra một trình quản lý danh bạ hoặc trìnhquay số điện thoại mà có các thành phần người khác có thể tạo mới giao diện và mởrộng chức năng thay vì tạo lại chúng

Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả các ứngdụng, cung cấp một framework cho mọi mọi phần mềm được xây dựng:

Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả quản lý

các tầng Activity

Views: Được sử dụng để tạo lập các giao diện người dùng cho các Activity.

Notification Mamager: Cung cấp một cơ chế cố định và quy củ cho việc gửi

các thông báo đến người dùng

Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng.

Trang 22

Resource Manager: Hỗ trợ các thành phần không thuộc mã nguồn như là

chuỗi ký tự, đồ họa được đặt bên ngoài

3.1.3.4 Ứng dụng

Hình 3.6: Các ứng dụng trên Android

Đây là lớp trên cùng của kiến trúc nền tảng Android Android sẽ hoạt động vớimột bộ các ứng dụng bao gồm ứng dụng thư điện tử, gửi tin nhắn, lịch, bản đồ, trìnhduyệt web, danh bạ v.v… Tất cả các ứng dụng được viết bằng ngôn ngữ Java Các ứngdụng này có thể được cung cấp sẵn hoặc được phát triển bởi những lập trình viên

Các thành phần này không nhất thiết phải có mặt đầy đủ trong ứng dụng Chúng

ta có thể xem các thành phần nào được sử dụng trong ứng dụng bằng việc xem khaibáo trong file AndroidManifest.xml

Trang 23

3.2.1.2 Vòng đời của hoạt động

Các hoạt động trong hệ thống được quản lý bởi một cấu trúc dữ liệu ngăn xếp.Khi có một hoạt động được khởi tạo, nó được đẩy vào trong ngăn xếp, chuyển sangtrạng thái thực thi và hoạt trộng trước đó sẽ chuyển sang trạng thái chờ Hoạt động nàychỉ trở lại trang thái kích hoạt khi mà hoạt động vừa khởi tạo kết thúc việc thực thi.Một Activity có 3 trạng thái chính:

 Active hoặc running khi nó ở trên nhất màn hình và nhận tương tác ngườidùng

 Paused khi Activity không còn là trọng tâm trên màn hình nhưng vẫn hiệnthị trước người dùng

 Stopped khi một Activity hoàn toàn bị che khuất, nó sẽ rơi vào trạng tháiStopped Tuy nhiên, nó vẫn còn lưu trữ toàn bộ thông tin trạng thái Và nóthường bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ

Trang 24

Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với cácbước chuyển:

 void onCreate(Bundle savedInstanceState)

Vòng đời của một hoạt động có thể được thể hiện trong những quá trình sau:

Trang 25

Hình 3.7 Vòng đi của một hoạt động

Toàn bộ thời gian sống của một hoạt động bắt đầu từ lời gọi đầu tiên tới phươngthức onCreate(Bundle) tới lời gọi phương thức onDestroy() Trong quá trình này,một hoạt động sẽ khởi tạo lại tất cả các tài nguyên cần sử dụng trong phương thức

onCreate() và giải phóng chúng khi phương thức onDestroy() được thực thi

Thời gian sống có thể nhìn thấy của một hoạt động bắt đầu từ lời gọi tới phươngthức onStart(), cho tới khi phương thức onStop() của nó được thực thi Toàn bộ cáctài nguyên đang được sử dụng bởi hoạt động vẫn tiếp tục được lưu giữ, người dùng cóthể thấy giao diện nhưng không tương tác được với hoạt động do trong qua trình nàyhoạt động không ở trạng thái chạy tiền cảnh

Trang 26

Thời gian sống tiền cảnh của một hoạt động là quá trình bắt dầu từ khi có lời gọitới phương thức onResume() và kết thúc bằng lời gọi tới phương thức onPause().Trong thời gian này, hoạt động chạy ở tiền cảnh và có thể tương tác với người dùng.

3.2.2 Service

3.2.2.1 Khái niệm

Một dịch vụ (service) là các đoạn mã được thực thi ngầm bởi hệ thống mà người

sử dụng không thấy được Mỗi service đều được mở rộng từ lớp cơ sở là service tronggói android.app Có thể kết nối tới hoặc kích hoạt một Service thông qua interface

mà Service đưa ra.Ví dụ như một chương trình chơi nhạc, sẽ có vài hoạt động cho phépngười dùng duyệt danh sách các bài hát và lựa chọn bài nào để phát Tuy nhiên, chứcnăng chơi nhạc không được thiết kế như một hoạt động bởi chúng ta sẽ muốn chuyểnqua cửa sổ khác, như khi soạn tin nhắn thì bài nhạc vẫn tiếp tục được chơi Trongtrường hợp này, ứng dụng chơi nhạc sẽ khởi tạo một dịch vụ bằng cách sử dụngphương thức Context.startService().

Một ứng dụng có thể dễ dàng thực hiện liên kết tới một dịch vụ đang chạy (thậmchí khởi động nếu nó chưa thực thi) bằng phương thức Context.bindService() Khi

đó dịch vụ này sẽ cung cấp cho ứng dụng cơ chế để giao tiếp với chúng thông qua giaodiện gọi là IBinder (đối với dịch vụ chơi nhạc có thể cho phép dừng hoặc chuyển quabài nhạc kế tiếp)

3.2.2.2 Vòng đời của một dịch vụ

Vòng đời của một dịch vụ được hiểu là quá trình hoạt động từ khi nó được tạo racho tới khi bị loại khỏi hệ thống Có hai cách thức để một dịch vụ có thể được chạytrong hệ thống:

Trang 27

Khi hệ thống có lời gọi tới phương thức Context.startService() Trongtrường hợp này, dịch vụ sẽ được thực hiện liên tục cho tới khi hệ thống gọi phươngthức Context.stopService().

Khi các ứng dụng gọi phương thức Context.bindService() để tạo kết nối vớidịch vụ (dịch vụ sẽ được khởi tạo nếu tại thời điểm đó nó đang không hoạt động) Ứngdụng sẽ nhận được một đối tượng IBinder do dịch vụ trả lại để có thể gọi các phươngthức Callback phù hợp để truy cập tới các trạng thái của dịch vụ Nếu do lời gọi

Context.bindService() mà dịch vụ được khởi tạo thì nó sẽ được thực thi cho tới khinào kết nối trên (tức là đối tượng IBinder) vẫn còn tồn tại

Hình 3.8: Sơ đồ chuyển trạng thái của Service

Trang 28

3.2.3 Bộ nhận quảng bá (Broadcast receivers)

3.2.3.1 Khái niệm

Bộ nhận quảng bá là một thành phần không làm gì cả nhưng nó nhận và phản hồilại các thông báo quảng bá Nhiều quảng bá có nguồn gốc từ mã hệ thống, ví dụ thôngbáo thay đổi múi giờ, pin yếu, ảnh đã chụp hay thay đổi ngôn ngữ Các ứng dụng cóthể khởi động quảng bá, ví dụ để các ứng dụng khác biết rằng dữ liệu đã được tải vềxong trên thiết bị và sẵn sàng sử dụng

Một ứng dụng có thể có bất kỳ số lượng bộ nhận quảng bá nào để nhận nhữngthông báo quan trọng với nó Tất cả các bộ nhận quảng bá được kế thừa từ lớp

BroadcastReceiver

Bộ nhận quảng bá không có giao diện Tuy nhiên, chúng có thể khởi động mộthoạt động để đáp lại thông tin mà nó nhận được, hay chúng có thể sử dụngNotificationManager để thông báo người dùng biết Các thông báo có thể được sự chú

ý của người dùng theo các cách các nhau như là sáng màn hình, rung thiết bị, bật âmthanh nào đấy… Thông thường, chúng đặt thông báo trên thanh trạng thái, nơi ngườidùng có thể nhận được thông báo

3.2.4 Content Provider

3.2.4.1 Khái niệm

Các ứng dụng có thể lưu trữ dữ liệu của mình trong các tập tin hoặc sử dụng cơ

sở dữ liệu SQLite sẵn có v.v… Content Provider có chức năng cung cấp một tập hợpcác phương thức cho phép một ứng dụng có thể lưu trữ và lấy dữ liệu được quản lý bởicontent provider đó

Content Provider là một đặc trưng riêng của Android, nhờ đó mà các ứng dụng cóthể chia sẻ dữ liệu với nhau một cách dễ dàng

Trang 29

3.2.5 Các thành phần kích hoạt (các Intent)

Content provider được kích hoạt khi chúng được gọi từ một ContentResolver Bathành phần khác (hoạt động, dịch vụ và bộ nhận quảng bá) được kích hoạt bởi thôngđiệp không đồng bộ từ các intent Một intent là một đối tượng có kiểu Intent chứa nộidung của thông điệp Với các hoạt động và dịch vụ, nó gọi tên hành động được yêu cầu

và xác định URI của dữ liệu tác động tới ở giữa Ví dụ, nó có thể truyền tải một yêucầu cho một hoạt động hiển thị một ảnh cho người dùng hay cho phép người dùng sửavăn bản Với bộ nhận quảng bá, đối tượng Intent gọi tên của hành động được thôngbáo Ví dụ, bộ nhận quảng bá có thể thông báo các phần nó quan tâm là nút chụp ảnh

đã được bấm

Có vài phương thức cho việc kích hoạt mỗi thành phần:

Một hoạt động được khởi chạy thông qua một đối tượng Intent

Context.startActivity() hay Activity.startActivityForResult(). Hoạtđộng đáp lại có thể theo dõi intent được tạo ra đó bằng phương thức getIntent() vàcập nhật thông qua phương thức setIntent(Intent) Android gọi phương thức

onNewIntent() để bỏ qua các intent đến trước nó

Một hoạt động thường bắt đầu hoạt động khác Nếu nó muốn trả lại kết quả hoạtđộng nó đã khởi chạy, nó sẽ gọi phương thức startActivityForResult() thay chophương thức startActivity() Ví dụ, nếu nó khởi chạy một hoạt động mà cho phépngười dùng lấy một ảnh, nó có thể muốn lấy kết quả của ảnh được chọn Kết quả đượctrả về trong một đối tượng Intent thông qua phương thức onActivityResult()

Một dịch vụ được bắt đầu thông qua một đối tượng Intent là

Context.startService(). Android gọi phương thức onStart() của dịch vụ vàthông qua đối tượng Intent của nó

Trang 30

Tương tự, một intent có thể thông qua Context.bindService() để thiết lập mộtkết nối liên tục giữa các thành phần và dịch vụ đích Dịch vụ nhận đối tượng Intent qualời gọi onBind() (nếu dịch vụ chưa được chạy, bindService() có thể chọn bắt đầunó) Cho ví dụ, một hoạt động có thể thiết lập kết nối với dịch vụ chơi nhạc đề cập ởphần trước để nó có thể cung cấp cho người dùng giao diện sử dụng để điều khiển chơilại Hoạt động sẽ gọi bindService để thiết lập kết nối và sau đó gọi phương thức đãđịnh nghĩa bởi dịch vụ để áp dụng chơi lại ca khúc.

Một ứng dụng có thể khởi tạo một quảng bá thông qua đối tượng Intent bằngphương thức như Context.setBroadcast(), Context.setOrderedBroadcast() và

Context.sendStickyBroadcast() Android chuyển những intent tới tất cả các bộnhận quảng bá nào quan tâm bằng việc gọi phương thức onReceive() của nó

3.2.6 Ngắt một thành phần

Một hoạt động có thể bị ngắt thông qua việc gọi phương thức finish() Mộthoạt động có thể tắt một hoạt động khác (hoạt động đó được khởi động với lời gọi

startActivityForResult() bằng việc gọi finishActivity()

Để ngắt một dịch vụ chúng ta có thể sử dụng phương thức stopSelf(), hoặcbằng cách gọi Context.stopService().

Content provider được kích hoạt chỉ khi nó đáp lại yêu cầu từ mộtContentResolver Bộ nhận quảng bá được kích hoạt chỉ khi nó đáp lại một thông điệpquảng bá Chúng ta không cần thiết phải tắt các thành phần này

3.2.7 Tập tin khai báo (manifest)

Trước khi có thể khởi chạy một ứng dụng thành phần, nó phải xem ứng dụng baogồm những thành phần nào Thêm nữa, các ứng dụng khai báo các thành phần của nó

Trang 31

trong một tập tin khai báo để đóng gói lại vào trong gói Android (tập tin apk chứa các

mã nguồn, tập tin và tài nguyên)

Tập tin này có cấu trúc của tập tin XML và luôn có tên là AndroidManifest.xml

trong mọi ứng dụng Tập tin này thực hiện một số chức năng như thêm và khai báo cácthành phần của ứng dụng, tên các thư viện ứng dụng cần liên kết tới (ngoài thư việnchuẩn của Android) và xác định các quyền cho ứng dụng

Tuy nhiên, nhiệm vụ chính của tập tin khai báo là khai báo các thành phần củaứng dụng Một hoạt động có thể được khai báo như sau:

<?xml version="1.0" encoding="utf-8"?>

<manifest >

<application >

<activity android:name="com.example.project.FreneticActivity" android:icon="@drawable/small_pic.png"

và nhãn được hiển thị cho người dùng

Các thành phần khác được khai báo theo cách tương tự: <service> dịch vụ,

<receiver> bộ nhận quảng bá và <provider> content provider Các hoạt động, dịch

vụ và content provider có thể cùng được khai báo trong tập tin khai báo hoặc có thểđược tạo tự động trong mã (như đối tượng BroadcastReceiver) và được đăng ký với hệthống bằng cách gọi Context.registerReceiver().

Trang 33

Bộ lọc thứ hai được khai báo để hoạt động có thể thực thi trên một kiểu dữ liệuđặc biệt.

Một thành phần có thể có bao nhiêu số bộ lọc intent tùy thích, mỗi một cái lạiđược khai báo khác nhau cho các khả năng Nếu nó không có một bộ lọc nào, nó có thểđược được kích hoạt bởi các intent khác gọi đến

Để tạo và đăng ký một bộ nhận quảng bá trong mã nguồn, bộ lọc intent tạo thẳngmột đối tượng giống đối tượng IntentFilter Tất cả các bộ lọc khác đều được cài đặttrong tập tin khai báo

3.3 Công cụ hỗ trợ lập trình Android

3.3.1 Tổng quan

Bộ công cụ phát triển phần mềm Android SDK gồm nhiều công cụ trợ giúp choviệc phát triển ứng dụng di động trên nền tảng Android Thành phần quan trọng nhấtcủa bộ công cụ này là trình giả lập Android và bộ plug-in phát triển ứng dụng Androidtrên Eclipse ADT, bên cạnh đó bộ SDK cũng bao gồm các công cụ khác cho việc gỡrối, đóng gói và cài đặt ứng dụng trên trình giả lập và trên thiết bị

Trình giả lập Android: Thực chất đây là một chương trình mô phỏng một thiết

bị di động ảo trên máy tính Chúng ta có thể sử dụng bộ giả lập này để thiết kế gỡ rối

Trang 34

và kiểm tra ứng dụng của mình như trên thiết bị trước khi đưa chương trình vào thiết bịthật.

Android Development Tools Plugin (cho Eclipse): viết tắt là ADT, Plugin này

hỗ trợ cho việc tạo và gỡ rối các ứng dụng và sử dụng môi trường phát triển tích hợpEclipse trở nên dễ dàng hơn

Trình gỡ rối Dalvik Debug Monitor Service (DDMS): giúp quản lý các tiến

trình trong bộ giả lập hoặc thiết bị và trợ giúp việc gỡ rối ứng dụng Có thể sử dụngcông cụ này để hủy các tiến trình, chọn một tiến trình cụ thể để gỡ rối, sinh các dữ liệutruy vết, xem bộ nhớ heap và thông tin về các luồng, chụp ảnh màn hình của trình giảlập

Android Debug Bridge (adb): Công cụ này cho phép cài đặt các tập tin apk trên

bộ giả lập hoặc thiết bị, đồng thời hỗ trợ truy cập hai đối tượng này từ cửa sổ dònglệnh

Android Asset Packaging Tool (aapt): Công cụ để tạo tập tin apk chứa các mã

nhị phân và tài nguyên của một ứng dụng Android

Sqlite3: Đây là công cụ để truy cập các tập tin dữ liệu SQLite được tạo ra và sử

dụng bởi một ứng dụng Android

Dx: Đây là công cụ biên dịch các tập tin class thành mã bytecode chạy trên máy

ảo Dalvik (lưu trữ dưới dạng tập tin dex)

Mksdcard: Giúp tạo một tập tin ảnh lưu trữ dữ liệu mà ta có thể sử dụng trên bộ

giả lập, để mô phỏng sự có mặt của một thẻ nhớ ngoài (như thẻ SD)

Android Virtual Devices (AVD): Cho phép chúng ta có thể tạo cấu hình thiết bị

ảo, mô phỏng các đặc điểm của bộ giả lập Android Với mỗi cấu hình, ta có thể xácđịnh nền tảng cho nó chạy, tùy chỉnh phần cứng hay giao diện sử dụng Mỗi tùy chỉnh

Trang 35

3.3.2 Tạo máy ảo trên android

Bước 1: Chọn Project, Android SDK and AVD Manager

Hình 3.9: Tạo máy ảo

Virtual Devices: dùng để thiết lập máy ảo, tùy theo nhu cầu về chương trình mà

chúng ta thiết lập các máy ảo khác nhau Trong đó phân biệt làm hai nhóm là máy ảo

để chạy Android và máy ảo chạy Google APIs

Installed packages: các gói packages hỗ trợ máy áo mà chúng ta đã cài đặt Available packages: tùy chọn các gói packages mà bạn muốn sử dụng để thiết

lập máy ảo chẳng hạn android 2.2 hoặc googleAPIs –API level 8 Chúng ta phải cài cácgói packages mới khởi tạo được máy ảo

Bước 2: Chọn New để khởi tạo máy ảo

Trang 36

Hình 3.10: Khởi tạo máy ảo

Tùy theo nhu cầu của người lập trình mà tạo các máy ảo cấu hình khác nhau Ởđây chúng ta thiết lập một máy ảo chạy trên nên Android 2.2 với ứng dụng GoogleAPIs - API level 8

Chọn Create AVD sau đó nhập vào máy ảo vừa mới tạo và chọn Start Như vậy

chúng ta đã có một máy ảo để phục vụ cho việc lập trình

3.3.3 Xuất bản phần mềm chạy trên android

Bước 1: Nhấp phải chuột vào project muốn tạo file, chọn Android Tools > Export Signed Application Package Trên màn hình sẽ xuất hiện Export Android

Application, ở khung này chúng ta chọn project để export ra file apk Nếu project

không có lỗi nào chúng ta chọn Next sang màn hình kế tiếp.

Trang 37

Hình 3.11: Xuất bản phần mềm trên Android

Đây là lần đầu, nên chúng ta chọn Create new keystore với các thông tin chính:

Location: thư mục để lưu keystore mới, lưu ý khi save tên keystore tên file

phai có dạng [tên file].keystore

Password và Confirm: tạo password và xác nhận lại nó.

Sau đó chọn Next sang màn hình kế tiếp

Bước 2:

Hình 3.12: Nhập thông số cần thiết

Trang 38

Ở màn hình này chúng ta thiết lập các thông số cần thiết cho việc lấy mã MD5 để

đăng ký trên trang chủ Google Maps Api, sau khi nhập 5 ô đầu tiên chúng ta nhấn Next

để hoàn tất việc tạo một keystore riêng để chạy trên máy thật

Bước 3:

Hình 3.13: Thiết lập tên cho file apk

Ở đây chúng ta thiết lập tên và thư mục cho file apk cần xuất ra, sau khi chọnxong nhấn Finish để kết thúc

Bước 4: Chúng ta tiến hành lấy mã MD5 và đăng ký trên trang Google Map với

file mappro.keystore và những thông tin vừa mới tạo, sau khi lấy Key mới, chúng tathay thế Key cũ đang dùng trên trong chương trình

Bước 5: Một lần nữa chúng ta lại tiến hành bước 1 nhưng khi tới màn hình

keystore selection, chúng ta lựa chọn Use Existing keytore, chọn lại mappro.keytore

đã tạo ở bước 1 và nhập password vào

Bước 6: Tiếp tục điền password đã đăng ký khi khởi tạo ở bước 2.

Trang 39

Hình 3.14: Nhập password

Sau khi nhập xong chúng ta chọn Next.

Bước 7: Như bước 3, vậy chúng ta đã có một file apk hoàn chỉnh Chép file apk

vừa mới tạo ra vào máy ảo và tiến hành chạy trên nó

Trang 40

Chương 4 GOOGLE MAP API VÀ CÁC DỊCH VỤ GOOGLE MAP TRÊN

ANDROID

Trong thế giới web ngày nay, các giải pháp bản đồ là một thành phần không thểthiếu Chúng ta sử dụng chúng để thấy vị trí của mọi vật, để tìm vị trí của một địa chỉ,

để lấy về thông tin dẫn đường, và làm nhiều thứ khác Hầu hết thông tin có một vị trí,

và nếu vật nào đó có một vị trí thì nó có thể hiển thị trên một bản đồ

Có một số công ty cung cấp các giải pháp về bản đồ như Yahoo! Maps và BingMaps, nhưng phổ biến nhất vẫn là Google Maps Thực tế theo trangprogrammableweb.com, google maps là API phổ biến nhất trên internet Theo thống kêcủa trang này tháng 5/2010, 43% là sử dụng Google Maps API

Hình 4.15: Hình ảnh nhìn từ vệ tinh trên Google Maps

Phần này sẽ trình bày chi tiết về API của Google Maps cũng như sử dụng và đăng

ký dịch vụ này trên di động cụ thể là trên android

Ngày đăng: 12/09/2013, 09:55

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Gabriel Svennerberg (2010), Beginning Google Maps API 3, Nxb Apress Khác
2. Mark L. Murphy (2010), Beginning Android 2, Nxb Apress Khác
3. Reto Meier (2010), Professional Android™ 2 Application Development, Nxb Wrox Khác
4. Sayed Y. Hashimi and Satya Komatineni, Pro Android (2009), Nxb Apress Khác
5. Mike Guidry, Programming for the Android Platform. &lt;URL:http://eagle.phys.utk.edu/guidry/android/&gt Khác
6. Lars Vogel, Android Programming Tutotials. &lt;URL:http://www.vogella.de/code/code.html&gt Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.2: Một số điện thoại sử dụng Android - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 2.2 Một số điện thoại sử dụng Android (Trang 15)
Hình 3.3: Nhân Linux trên Android - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.3 Nhân Linux trên Android (Trang 19)
Hình 3.4: Thư viện lập trình ứng dụng trên Android - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.4 Thư viện lập trình ứng dụng trên Android (Trang 20)
Hình 3.7 Vòng đi của một hoạt động - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.7 Vòng đi của một hoạt động (Trang 27)
Hình 3.7 Vòng đi của một hoạt động - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.7 Vòng đi của một hoạt động (Trang 27)
Hình 3.8: Sơ đồ chuyển trạng thái của Service - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.8 Sơ đồ chuyển trạng thái của Service (Trang 29)
Hình 3.8: Sơ đồ chuyển trạng thái của Service - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.8 Sơ đồ chuyển trạng thái của Service (Trang 29)
Hình 3.9: Tạo máy ảo - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.9 Tạo máy ảo (Trang 37)
Hình 3.9: Tạo máy ảo - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.9 Tạo máy ảo (Trang 37)
Hình 3.10: Khởi tạo máy ảo - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.10 Khởi tạo máy ảo (Trang 38)
Hình 3.10: Khởi tạo máy ảo - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.10 Khởi tạo máy ảo (Trang 38)
Hình 3.11: Xuất bản phần mềm trên Android - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.11 Xuất bản phần mềm trên Android (Trang 39)
Hình 3.12: Nhập thông số cần thiết - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.12 Nhập thông số cần thiết (Trang 39)
Hình 3.11: Xuất bản phần mềm trên Android - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.11 Xuất bản phần mềm trên Android (Trang 39)
Hình 3.12: Nhập thông số cần thiết - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.12 Nhập thông số cần thiết (Trang 39)
Ở màn hình này chúng ta thiết lập các thông số cần thiết cho việc lấy mã MD5 để - nghiên cứu google map api và xây dựng ứng dụng trên android
m àn hình này chúng ta thiết lập các thông số cần thiết cho việc lấy mã MD5 để (Trang 40)
Hình 3.13: Thiết lập tên cho file apk - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.13 Thiết lập tên cho file apk (Trang 40)
Hình 3.14: Nhập password - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.14 Nhập password (Trang 41)
Hình 3.14: Nhập password - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 3.14 Nhập password (Trang 41)
Hình 4.15: Hình ảnh nhìn từ vệ tinh trên Google Maps - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 4.15 Hình ảnh nhìn từ vệ tinh trên Google Maps (Trang 42)
Hình 4.15: Hình ảnh nhìn từ vệ tinh trên Google Maps - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 4.15 Hình ảnh nhìn từ vệ tinh trên Google Maps (Trang 42)
Bảng 4.2: Danh sách keytool - nghiên cứu google map api và xây dựng ứng dụng trên android
Bảng 4.2 Danh sách keytool (Trang 44)
Bảng 4.2: Danh sách keytool - nghiên cứu google map api và xây dựng ứng dụng trên android
Bảng 4.2 Danh sách keytool (Trang 44)
Bảng 4.5: Các thành phần lớp OverlayItem - nghiên cứu google map api và xây dựng ứng dụng trên android
Bảng 4.5 Các thành phần lớp OverlayItem (Trang 63)
Bảng 4.6: Các phương thức lớp OverlayItem - nghiên cứu google map api và xây dựng ứng dụng trên android
Bảng 4.6 Các phương thức lớp OverlayItem (Trang 64)
Bảng 4.6: Các phương thức lớp OverlayItem - nghiên cứu google map api và xây dựng ứng dụng trên android
Bảng 4.6 Các phương thức lớp OverlayItem (Trang 64)
Bảng 4.8: Các phương thức tạo lớp ItemizedOverlay - nghiên cứu google map api và xây dựng ứng dụng trên android
Bảng 4.8 Các phương thức tạo lớp ItemizedOverlay (Trang 65)
Hình 4.16: Ví dụ chế độ hiển thị trên bản đồ - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 4.16 Ví dụ chế độ hiển thị trên bản đồ (Trang 69)
Hình 4.16: Ví dụ chế độ hiển thị trên bản đồ - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 4.16 Ví dụ chế độ hiển thị trên bản đồ (Trang 69)
Bảng 4.12: Các phương thức lớp MapActivity - nghiên cứu google map api và xây dựng ứng dụng trên android
Bảng 4.12 Các phương thức lớp MapActivity (Trang 77)
Bảng 4.13 Các phương thức lớp MyLocationOverlay - nghiên cứu google map api và xây dựng ứng dụng trên android
Bảng 4.13 Các phương thức lớp MyLocationOverlay (Trang 79)
Hình 5.17: Kiến trúc phần mềm MapPro - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 5.17 Kiến trúc phần mềm MapPro (Trang 81)
Hình 6.18: Sơ đồ use-case tổng quát - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.18 Sơ đồ use-case tổng quát (Trang 82)
Hình 6.18: Sơ đồ use-case tổng quát - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.18 Sơ đồ use-case tổng quát (Trang 82)
Bảng 6.14: Danh sách actor - nghiên cứu google map api và xây dựng ứng dụng trên android
Bảng 6.14 Danh sách actor (Trang 83)
1. Người dùng click nút “Xem” trên màn hình nhập thông tin tìm kiếm 2. Hiển thị màn hình thông tin địa điểm: - nghiên cứu google map api và xây dựng ứng dụng trên android
1. Người dùng click nút “Xem” trên màn hình nhập thông tin tìm kiếm 2. Hiển thị màn hình thông tin địa điểm: (Trang 84)
2. Hiển thị màn hình nhập thông tin tìm kiếm. - nghiên cứu google map api và xây dựng ứng dụng trên android
2. Hiển thị màn hình nhập thông tin tìm kiếm (Trang 85)
5. Màn hình dẫn đường bằng kiểu danh sách được hiển thị nếu kiểu danh sách được chọn, ngược lại màn hình dẫn đường trên bản đồ được hiển thị. - nghiên cứu google map api và xây dựng ứng dụng trên android
5. Màn hình dẫn đường bằng kiểu danh sách được hiển thị nếu kiểu danh sách được chọn, ngược lại màn hình dẫn đường trên bản đồ được hiển thị (Trang 87)
Hình 6.19: Biểu đồ tuần tự cho chức năng tìm kiếm địa điểm - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.19 Biểu đồ tuần tự cho chức năng tìm kiếm địa điểm (Trang 88)
Hình 6.20: Biểu đồ tuần tự cho chức năng tìm kiếm đường đi - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.20 Biểu đồ tuần tự cho chức năng tìm kiếm đường đi (Trang 89)
Hình 6.20: Biểu đồ tuần tự cho chức năng tìm kiếm đường đi - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.20 Biểu đồ tuần tự cho chức năng tìm kiếm đường đi (Trang 89)
Hình 6.21: Biểu đồ tuần tự cho chức năng tìm kiếm theo địa chỉ và hiển thị vị trí hiện tại - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.21 Biểu đồ tuần tự cho chức năng tìm kiếm theo địa chỉ và hiển thị vị trí hiện tại (Trang 90)
Hình 6.21: Biểu đồ tuần tự cho chức năng tìm kiếm theo địa chỉ và hiển thị vị trí hiện tại - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.21 Biểu đồ tuần tự cho chức năng tìm kiếm theo địa chỉ và hiển thị vị trí hiện tại (Trang 90)
Hình 6.22: Biểu đồ lớp chi tiết cho tìm kiếm địa điểm - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.22 Biểu đồ lớp chi tiết cho tìm kiếm địa điểm (Trang 91)
Hình 6.24: Biểu đồ lớp chi tiết cho tìm kiếm theo địa chỉ và vị trí hiện tại - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.24 Biểu đồ lớp chi tiết cho tìm kiếm theo địa chỉ và vị trí hiện tại (Trang 92)
Hình 6.24: Biểu đồ lớp chi tiết cho tìm kiếm theo địa chỉ và vị trí hiện tại - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 6.24 Biểu đồ lớp chi tiết cho tìm kiếm theo địa chỉ và vị trí hiện tại (Trang 92)
Hình 7.25: Màn hình chính - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.25 Màn hình chính (Trang 94)
Hình 7.26: Màn hình bản đồ - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.26 Màn hình bản đồ (Trang 95)
Hình 7.26: Màn hình bản đồ - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.26 Màn hình bản đồ (Trang 95)
Hình 7.27: Màn hình menu địa điểm - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.27 Màn hình menu địa điểm (Trang 96)
Hình 7.28: Màn hình nhập vị trí - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.28 Màn hình nhập vị trí (Trang 97)
Hình 7.29: Màn hình hiển thị địa điểm trên danh sách - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.29 Màn hình hiển thị địa điểm trên danh sách (Trang 98)
Hình 7.29: Màn hình hiển thị địa điểm trên danh sách - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.29 Màn hình hiển thị địa điểm trên danh sách (Trang 98)
Hình 7.30: Màn hình hiển thị địa điểm trên bản đồ - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.30 Màn hình hiển thị địa điểm trên bản đồ (Trang 99)
Hình 7.31: Màn hình nhập thông tin dẫn đường - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.31 Màn hình nhập thông tin dẫn đường (Trang 100)
Hình 7.31: Màn hình nhập thông tin dẫn đường - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.31 Màn hình nhập thông tin dẫn đường (Trang 100)
Hình 7.32: Màn hình thông tin dẫn đường trên danh sách - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.32 Màn hình thông tin dẫn đường trên danh sách (Trang 101)
Hình 7.32: Màn hình thông tin dẫn đường trên danh sách - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.32 Màn hình thông tin dẫn đường trên danh sách (Trang 101)
Hình 7.33: Màn hình thông tin dẫn đường trên bản đồ - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.33 Màn hình thông tin dẫn đường trên bản đồ (Trang 102)
Hình 7.33: Màn hình thông tin dẫn đường trên bản đồ - nghiên cứu google map api và xây dựng ứng dụng trên android
Hình 7.33 Màn hình thông tin dẫn đường trên bản đồ (Trang 102)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w