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

Báo Cáo Tốt Nghiệp: Xây dựng ứng dụng MAP trên Android Dùng Google Geocoding API để tìm Map Ban DO

108 1,9K 14

Đ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 108
Dung lượng 5,51 MB

Nội dung

VI.2 Các yêu cầu về chức năng của chương trình Chương trình sẽ xây dựng sẽ đảm bảo các chức năng chính sau : Bắt vị trí hiện tại của người sử dụng bằng GPS hoặc Wifi hoặc sóng điện thoại. Tính toán địa chỉ hiện tại dựa trên Google Geocoding API. Chức năng quản lý địa điểm du lịch Các địa điểm du lịch sẽ được quản lý theo danh sách. Mỗi danh sách theo từng loại địa điểm. Trên danh sách địa điểm hiển thị những thông tin tóm tắc cần thiết. Cho phép người truy cập truy cập nhanh vào từng danh sách địa điểm tương ứng với từng loại địa điểm. Có phân loại những địa điểm đã được đánh dấu là địa điểm yêu thích và địa điểm người dùng thêm vào. Có giao diện UI hiển thị chi tiết thông tin của từng địa điểm. Với một số thông tin đặt biệt sẽ cung cấp truy cập nhanh để sử dụng thông tin đó. Ví dụ: với số điện thoại, người sử dụng có thể gọi ngay…

Trang 1

BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN TỐT NGHIỆP

Đề tài:

Xây dựng ứng dụng tìm kiếm thông tin bản đồ

trên thiết bị Android

Giáo viên hướng dẫn: Trần Minh Văn Sinh viên thực hiện: Trần Mạnh Cường

MSSV:50130175 Lớp 50TH2

Trang 2

Contents

Lời nói đầu 6

Chương I: Giới thiệu 7

I.1 Du lịch Nha Trang 7

I.2 Công nghệ thiết bị di động 8

I.2.1 Di động đi tắt đón đầu trong thế giới công nghệ 8

I.2.2 Thời kỳ “hậu PC” và cơ hội cho các lập trình viên di động 10

I.3 Mục đích thực hiện đề tài 13

Chương II: Hệ điều hành Android 15

II.1 Giới thiệu hệ điều hành Android 15

II.2 Những đặc trưng của hệ điều hành Android: 15

II.3 Các tính năng hỗ trợ sẵn trong hệ điều hành Android 16

II.4 Kiến trúc và các thành phần trong hệ điều hành Android 17

II.4.1 Linux kernel (nhân Linux) 17

II.4.2 Libraries 17

II.4.3 Android runtime: 18

II.4.4 Application framework 2.4.3 Android runtime: 18

II.4.5 Applications: 19

II.5 Các khái niệm cơ bản trong lập trình ứng dụng Android 19

II.5.1 Activity 19

II.5.2 Service 22

II.5.3 Content provider 23

II.5.4 Broadcast Receive 23

II.5.5 View 23

II.5.6 Intent 24

II.6 Các thành phần trong một project ứng dụng Android 25

II.6.1 AndroidManifest.xml 25

II.6.2 File R.java 26

II.6.3 Thư mục src 26

II.6.4 Thư mục rec 26

Chương III: Công nghệ XML và Webservice 27

III.1 Công nghệ XML 27

III.1.1 Lịch sử ra đời chuẩn XML, XML là gì? 27

III.1.2 Cấu trúc của file XML và tài liệu XML 27

Trang 3

III.1.3 Đặc điểm của XML 28

III.1.4 XML và HTML 29

III.1.5 Ngôn ngữ đặt tả cấu trúc 29

III.1.6 Ưu điểm của XML 30

III.2 Webservice 31

III.2.1 Webservice là gì ? 31

III.2.2 Một số đặt điểm cơ bản của webservice 32

III.2.3 Phân loại webservice 32

Chương IV: Google Map và Google Maps API Web Services 34

IV.1 Google Map 34

IV.1.1 Giới thiệu Google Map 34

IV.1.2 Google Maps for Mobile 35

IV.2 Google Maps API Web Services 37

IV.2.1 Giới thiệu Google Maps API Web Services 37

IV.2.2 Sử dụng Google Maps API Web Services 37

IV.3 Google Geocoding API 40

IV.3.1 Mã hóa địa lý là gì? 40

IV.3.2 Giới hạn sử dụng 40

IV.3.3 Geocoding API request 40

IV.3.4 Kết quả mã hóa địa lý 41

IV.3.5 Giải mã địa lý (tìm địa chỉ từ kinh độ-vĩ độ) 47

IV.4 Google Distance Matrix API 50

IV.4.1 Giới hạn sử dụng 50

IV.4.2 Distance Matrix API request 50

IV.4.3 Kết quả từ Distance Matrix API 52

IV.5 Google Direction API 58

IV.5.1 Giới hạn sử dụng 58

IV.5.2 Google Direction request 58

IV.5.3 Kết quả trả về Google Direction 61

Chương V: Cơ sở dữ liệu SQLite 70

V.1 Giới thiệu SQLite 70

V.2 Thiết kế của SQLite 70

V.3 Các đặc tính của SQLite 71

Trang 4

V.4.1 Những trường hợp thích hợp sử dụng SQLite 71

V.4.2 Những trường hợp không thích hợp sử dụng SQLite 73

V.5 Các ứng dụng lớn của SQLite 74

Chương VI: Xây dựng ứng dụng 75

VI.1 Phân tích thiết kế dữ liệu 75

VI.1.1 Đặc tả hệ thống 75

VI.1.2 Mô hình thực thể kết hợp 76

VI.1.3 Mô hình vật lý dữ liệu 77

VI.2 Các yêu cầu về chức năng của chương trình 77

VI.3 Các vấn đề trong quá trình xây dựng ứng dụng 78

VI.3.1 Giao diện UI trong lập trình ứng dụng Android 78

VI.3.2 Đăng ký bản đồ Google Map trong ứng dụng 82

VI.3.3 Đánh dấu địa điểm và hiện thông tin trên bản đồ 83

VI.3.4 Sử dụng SQLite trong hệ điều hành Android 84

VI.3.5 Phân tích cú pháp XML 86

VI.3.6 Chạy đa tiến trình các tác vụ truy cập mạng nhằm giảm độ trễ cho ứng dụng 87

VI.3.7 Bắt vị trí hiện tại bằng các Location Provider 88

VI.3.8 Dùng Observer Template để thông báo cho các Activity mỗi khi địa điểm hiện tại thay đổi 90

VI.3.9 Gọi các Activity và truyền dữ liệu giữa chúng 91

VI.4 Kết quả xây dựng ứng dụng 92

Chương VII: Tổng kết 106

VII.1 Ưu khuyết điểm của chương trình đã xây dựng 106

VII.1.1 Ưu điểm 106

VII.1.2 Khuyết điểm 106

VII.2 Hướng đi trong tương lai 106

VII.3 Kết quả đạt được 107

Tài liệu tham khảo 108

Trang 5

Lời nhận xét của giáo viên hướng dẫn:

Trang 6

Lời nói đầu

Hiện hay du lịch đang là một ngành kinh tế mũi nhọn của Việt Nam nói chung

và đặt biệt là đối với Thành phố Nha Trang tỉnh Khánh Hòa Với tiềm năng du lịch như vậy việc xúc tiến quảng bá du lịch và cung cấp thông tin du lịch là điều rất quan trọng để đẩy mạnh hơn nữa ngành kinh tế mủi nhọn này

Với sự xuất hiện phát triển chóng mặt của công nghệ mobile-thiết bị nhúng hiện nay mang lại cơ hội quảng bá du lịch và cung cấp thông tin du lịch một cách thuận tiện nhất cho khách du lịch Và hiệu quả mạng lại là rất cao

Với sự hướng dẫn, giúp đỡ của thầy Trần Minh Văn tôi đã thực hiện đề tài ‘Xây

dựng ứng dụng tìm kiếm thông tin bản đồ trên thiết bị Android’ Phần mềm sản

phẩm có tên là ‘Du lịch Nha Trang bằng xe buýt’ Được viết bằng ngôn ngữ Java,

trên nền tảng Android 2.3.3, sử dụng Google Map API lever 10 và Google Maps API Web Services, sử dụng công nghệ XML, cơ sở dữ liệu SQLite

Phần mềm ‘Du lịch Nha Trang bằng xe buýt’ sẽ cung cấp thông tin địa điểm

du lịch chia thành các nhóm: ăn uống, vui chơi, tham quan … Cung cấp chức năng quản lý thông tin các địa điểm du lịch, cho phép người sử dụng thêm thông tin các vị trí của mình chưa có trong dữ liệu, cung cấp thông tin các tuyến và trạm xe buýt, hiển thị toàn bộ thông tin trên bảng đồ Google Map, lấy vị trí hiện tại trên bản đồ và chức năng tìm đường đi

Vì thời gian cộng với khả năng của bản thân có hạn và đây là một lĩnh vực khá mới mẻ nên chương trình chắc chắc sẽ còn nhiều thiếu sót Vì vậy tôi mong sẽ nhận được nhiều góp ý từ phía thầy cô để chương trình có thể hoàn thiện thêm

Cuối cùng tôi xin cảm ơn thầy Trần Minh Văn đã lo lắng và giúp đỡ em trong suốt quá trình thực hiện đề tài

Trang 7

Chương I: Giới thiệu

I.1 Du lịch Nha Trang

Nha Trang, một điểm du lịch hấp dẫn khách du lịch gần xa đặc bởi những bãi biển yên bình và khí hậu mát mẻ suốt bốn mùa Đến với Nha Trang khách du lịch không những được thưởng thức vô vàn cảnh đẹp thiên nhiên mà còn được tìm hiểu về văn hóa cả truyền thông lẫn hiện đại

Trong khoảng 20 năm qua, du lịch Nha Trang đã phát triển khá toàn diện về cơ

sở hạ tầng cũng như chất lượng sản phẩm du lịch Nhờ đó, Nha Trang đã trở thành trung tâm du lịch lớn của cả nước, hàng năm thu hút lượng khách lớn đến nghỉ dưỡng

Thiên nhiên đã ưu đãi cho Nha Trang những điều kiện tuyệt vời để phát triển du lịch, đó là vịnh Nha Trang - một trong những vịnh đẹp nhất thế giới, thời tiết ấm áp quanh năm… Vùng đất này còn có nhiều trầm tích văn hóa gắn liền với 2 nền hóa Việt

- Chăm, những lễ hội độc đáo của cư dân miền biển gắn với con người hiền hòa, mến khách… Những chuyên gia du lịch thế giới đánh giá, với những tiềm năng vốn có, Nha Trang hội tụ đầy đủ các lợi thế để trở thành một trung tâm du lịch biển của thế giới như Bali (Indonesia), Phuket (Thái Lan)

Cơ sở hạ tầng du lịch Nha Trang phát triển rất nhanh, cho đến nay Nha Trang

đã có gần 500 cơ sở lưu trú với hơn 12.000 phòng; trong đó, khách sạn từ 3 đến 5 sao

có gần 3.800 phòng Các thương hiệu khách sạn nổi tiếng của thế giới như: Sheraton, Novotel, Marriot… đã có mặt ở Nha Trang Thành phố biển cũng đã có những khu du lịch lớn như: Tổ hợp du lịch giải trí Vinpearl, Khu du lịch Diamond bay Nha Trang, Khu nghỉ mát Ana Mandara, Khu du lịch Hòn Tằm Bên cạnh đó số lượng các nhà hàng, quán bar quán cà phê, khu mua sắm ngày càng tăng phục vụ nhu cầu khách du lịch trong và ngoài nước

Các sự kiện văn hóa - du lịch mang tầm quốc gia và quốc tế liên tục được tổ chức ở Nha Trang như: Các cuộc thi hoa hậu trong nước và quốc tế, chương trình Festival Biển được tổ chức 2 năm/lần (từ năm 2003)… đã góp phần quảng bá hình ảnh

và từng bước khẳng định thương hiệu du lịch Nha Trang với du khách trong nước, quốc tế

Lượng khách đến nghỉ dưỡng ở Nha Trang liên tục tăng Theo thống kê của UBND TP Nha Trang, năm 2011, Nha Trang đón khoảng 2,073 triệu lượt khách du lịch (tăng 18,54% so với năm 2010), trong đó hơn 440.000 lượt khách quốc tế (tăng 13,5%), số ngày lưu trú bình quân của khách du lịch là 2,09 ngày/khách; tổng doanh thu du lịch và dịch vụ ước đạt 2.142,9 tỷ đồng (tăng 20,28%)…

Trang 8

Nhìn tổng thể, du lịch Nha Trang đã có những bước phát triển vượt bậc Tuy nhiên, sự phát triển của du lịch Nha Trang vẫn còn có những hạn chế cần khắc phục để hướng tới sự phát triển bền vững Thành phố cần phải đẩy mạnh công tác xúc tiến du lịch, giới thiệu hình ảnh du lịch Nha Trang ra thị trường quốc tế với nhiều hình thức khác nhau Hy vọng, trong tương lai, Nha Trang sẽ trở thành trung tâm du lịch biển quốc tế

I.2 Công nghệ thiết bị di động

I.2.1 Di động đi tắt đón đầu trong thế giới công nghệ

Công nghệ di động trong những năm gần đây đã có những bước nhảy vọt nhanh chóng cả về sức mạnh phần cứng lẫn tốc độ phổ biến của nó trong dân cư Những chiếc điện thoại thậm chí còn phát triển nhanh hơn cả thời kỳ hoàng kim của các công nghệ trong quá khứ như ti vi, máy vi tính Bên cạnh đó, trong vòng 2 năm trở lại đây thì thị trường máy tính bảng cũng trở nên vô cùng sôi động

Tốc độ chiếm lĩnh 10-40% số người tiêu dùng của các lại công nghệ Tốc độ chiếm lĩnh 10% số người tiêu dùng của các lại công nghệ

Trang 9

Biều đồ trên đã cho chúng ta thấy khá rõ “chặng đường phát triển” của các loại hình công nghệ Điện thoại bàn và điện năng đã phải trải qua hơn 100 năm mới đạt tới thời điểm bão hòa trong khi đó những công nghệ không dây như: radio, truyền hình hay điện thoại di động lại có thể thâm nhập được 75% thị trường chỉ trong vòng 20 năm

Những thành tựu mà công nghệ di động đã tạo ra là không thể phủ nhận Khi chiếc iPhone đầu tiên ra đời, kỷ nguyên của điện thoại thông minh bắt đầu phát triển mạnh mẽ và từng bước chiếm lĩnh thị trường từ 5% cho đến 40% thị phần

Đặc biệt, ở một số thị trường, sự phát triển điện thoại thông minh còn diễn ra nhanh hơn rất nhiều, đơn cử như ở Mỹ đã có hơn 2/3 số điện thoại được bán ra hiện nay là các điện thoại thông minh Nhiều khả năng thì điện thoại thông minh sẽ chiếm lĩnh tới 75% thị trường Mỹ trong vài năm tới, trở thành công nghệ có tốc độ phổ biến nhanh nhất trong lịch sử loài người Trong quý I năm 2012, điện thoại thông minh chiếm đến 36% tổng số điện thoại di động được bán ra, tăng 25% so với cùng kì năm trước, một tỷ lệ rất cao

Trong khi đó, máy tỉnh bảng cũng có sự phát triển nhanh chóng ở Mỹ từ khi iPad lần đầu ra mắt vào năm 2010 Các chuyên gia vẫn chưa dám khẳng định liệu nhu cầu về thiết bị này có lan rộng ở khắp nơi trên thế giới hay không Ở các nước phương Tây có thể dễ dàng mua được một chiếc máy tính xách tay, điện thoại thông minh hay máy tính bảng nhưng ở các nước đang phát triển nó là điều cần phải cân nhắc

Nền móng cho sự phát triển của điện thoại di động chính là hệ thống mạng không dây Theo ITU (Liên Minh Viễn Thông Quốc tế), có 90% dân số thế giới (hiện nay đã đạt gần 7 tỷ người) được bao phủ bởi mạng di động GSM, phần lớn trong số

đó là truy cập thông qua mạng lưới EDGE và GPRS Hơn thế nữa, có 45% dân số thế giới đã được biết hoặc đã từng sử dụng mạng di động 3G Ngày nay việc triển khai Internet tốc độ cao đã trở nên phổ biến ở mọi quốc gia ngay cả những nước đang phát triển

Sự tiến bộ của mạng không dây đã thúc đẩy sự phát triển của những sản phẩm

công nghệ “thông minh” như điện thoại thông minh và máy tính bảng Với số lượng

người dùng các thiết bị “thông minh” ngày càng cao sẽ tăng trưởng số lượng người dùng Internet Không nằm ngoài số đó Việt Nam cũng không ngừng gia tăng số lượng người sử dụng Internet đặt biệt xu hướng truy cập Internet từ thiết bị di động đang

tăng 37% so với cùng kỳ năm trước Trong đó, Mỹ, Nhật và Trung Quốc lần lượt là ba cường quốc hàng đầu về lượng thuê bao 3G Việt Nam đứng thứ 21 với 12 triệu thuê bao 3G, đứng sau nhóm các quốc gia phát triển, xếp trên Thụy Điển (24), Hà Lan (27)

và Hi Lạp (28)

Trang 10

Tiềm năng phát triển các thiết bị “thông minh ” tại Việt Nam là rất lớn Các sản phẩm máy tính bảng điện thoại “thông minh” của các hãng công nghệ nổi tiếng hầu hết đều có mặt tại Việt Nam Các hãng điện thoại trong nước cũng bắt đầu bán các thiết bị

“thông minh” giá rẻ ra thị trường Điện thoại thông minh ngày càng rẻ hơn cũng đang khiến nó nhanh chóng được phổ biến và tiếp cận với người dùng hơn Và đó chỉ là vấn đề thời gian bởi ngày càng có nhiều điện thoại thông minh có mức giá phải chăng được tung ra để đáp ứng nhu cầu của cả những khách hàng có thu nhập không cao Theo thống kê năm 2012 có 30% điện thoại được bán ra ở Việt Nam là điện thoại thông minh

Chiếc điện thoại không còn đơn thuần là thiết bị liên lạc mà nó đả trở thành một thiết bị đa chức năng phục vụ rất nhiều nhu cầu công việc và giải trí của con người Hiện tại điện thoại thông minh đang là ngọn sóng công nghệ trên thế giới Và Việt Nam cũng sẽ đón ngọn sóng đó chỉ tron một tương lai ngắn “Làn sóng moblie” sẽ thay đổi cách con người làm việc, giải trí và mang lại những thách thức mới

I.2.2 Thời kỳ “hậu PC” và cơ hội cho các lập trình viên di động

Thời kỳ “hậu-PC” tiêu biểu là thế hệ các thiết bị di động thông minh có khả năng chạy hệ điều hành quản lý đa nhiệm, kết nối dữ liệu tốc độ cao có thể đảm nhận hầu hết nhiệm năng của một máy tính cá nhân bình thường (PC) mà thậm chí còn nhiều điểm tiện lợi hơn Đâu tiên phải kể đến đó là chiếc điện thoại di động của Apple – Iphone Thiết bị điện thoại thông minh này xuất hiện vào năm 2007 khác xa các loại điện thoại truyền thống, màn hình cảm ứng rộng, không có bàn phím, chạy hệ điều hành IOS đã gây sốt trong giới công nghệ Chiếc Iphone đầu tiên được nhắc đến như một huyền thoại công nghệ mở màng cho một trào lưu mới Nó đã thúc đẩy thời kỳ

và mini (mainframe và mini computer) giai đoạn 1960 - 1980, PC-Internet giai đoạn

1980 – 2000

Trang 11

Đại diện tiêu biển nhất cho thời đại “hậu PC” đó là những chiếc điện thoại thông minh và máy tính bảng Hai thiết bị đã tạo nên một làng sóng công nghệ mạnh

mẽ Các xu hướng công nghệ của thế giới đều tập trung nhiều vào những thiết bị này Cùng với nó là sự phát triển chóng mặt của phần cứng và nhất là các phần mềm, các ứng dụng di động và hệ điều hành di động

Đầu tiên là sự xuất hiện của IOS trên thiết bị của Apple Tiếp theo đó là sự xuất hiện của Android – hệ điều hành mã nguồn mở do Google phát triển Sau đó nữa là WebOS của HP và Window Phone của Microsolf Tuy nhiên IOS và Android là hai

hệ điều hành phát triển mạnh nhất Android bắt đầu nhảy vọt sau IOS nhưng nó đang

có tốc độ phát triển nhanh hơn IOS

Điều quan trọng tạo nên thành công cho một hệ điều hành di động đó là các ứng dụng Với một chiếc điện thoại thông minh bạn có thể cài đặt nhiều ứng dụng đa dạng và phong phú phục vụ phục công việc và giải trí Một tiêu chí đánh giá một hệ điều hành này tốt hơn hệ điều hành kia là ở số lượng ứng dụng mà hệ điều hành đó có thể cung cấp chất lượng của ứng dụng

Hiện tại hệ điều hành IOS chiếm vị trí độc tôn với tổng cộng 356,577 ứng dụng Đứng thứ 2 là Android với 256,545 ứng dụng

Trang 12

Android là hệ điều hành mã nguồn mở có thể sử dụng trên rất nhiều thiết bị và đang

có tốc độ phát triển ứng dụng rất nhanh

Trong năm 2011, 10 xu hướng công nghệ chiến lược được các chuyên gia đánh giá có bao gồm điện toán đám mây, ứng dụng di động (điện thoại thông minh… ) Mỗi ngày có hàng triệu thiết bị đi động được bán ra đẫn đến nhu cầu về ứng dụng di động ngày càng tăng Đây là một cơ hội lớn cho các nhà lập trình các thiết bị di động Với các của hàng ứng dụng như AppStore, Google Play, lập trình viên hay nhóm lập trình các nhân có thể đưa các sản phẩm đưa lên để bán cho người dùng Đây là một lợi thế lớn cho các lập trình viên lập trình trên thiết bị di động Nhờ đó không cần phải trực thuộc một công ty lập trình đủ lớn mà sản phần của người lập trình có thể được trả tiền nếu sử dụng tốt và đáp ứng nhu cầu của người sử dụng Nhà viết ứng dụng cá nhân cũng có thể tiết kiệm được một khoảng tiền lớn chi phí quản cáo và kênh phân phối đến cho khách hàng của mình

Cụ thể hơn ở Việt Nam, lập trình di động đang là một cơ hội rất tốt cho các lập trình viên bán ra các sản phẩm của mình Có thể dễ dàng đưa sản phẩm của mình ra thế giới tiêu thụ và thu được tiền từ những ứng dụng tốt và độc đáo Đối với thị trường ứng dụng trong nước, từ năm 2010 đến nay, cùng với xu thế phát triển thiết bị di động của thế giới, Việt Nam cũng có một sự phát triển vượt bật trong mảng này.Với các chợ ứng dụng của chính hãng như AppStore, Google Play nhiều người sử dụng vẫn còn vấp phải rào cảng thanh toán Vì vậy đây là cơ hội để các lập trình viên phát triển ứng dụng tiêu thụ trong nước với các chợ ứng dụng của hãng thứ 3

Điện thoại thông minh và máy tính bảng đã góp phần thúc đẩy kỷ nguyên “hậu PC” phát triển Và đã mở ra một cơ hội lớn cho các lập trình viên tự do chứng tỏ khả năng sáng tạo của mình Lập trình di động là một hướng đi mới và đầy triển vọng, và

là cơ hội lớn đối với nền Công nghệ thông tin ở Việt Nam

Trang 13

I.3 Mục đích thực hiện đề tài

Quảng bá du lịch và cung cấp thông tin du lịch là một công việc hết sức quan trọng đối với ngành du lịch Nha Trang Cần phải thực hiện điều đó trên rất nhiều phương tiện đặt biệt là áp dụng công nghệ mới Có nhiều website đã được xây dựng để quản bá du lịch và cung cấp thông tin du lịch và đạt được hiệu quả tốt Tuy nhiên với

xu hướng công nghệ hiện nay thì website đã không còn là phương tiện cung cấp thông tin du lịch một cách thuận tiện nhất đối với khách du lịch

Ví dụ muốn lên tìm một điểm ăn uống, vui chơi, mua sắm ở Nha Trang khách

du lịch phải tìm trước ở nhà, nguyên cứu và ghi lại thông tin địa chỉ Hoặc trong chuyến đi có thể mang theo laptop để tra cứu thông tin, tuy nhiên thông thường rất ít người mang laptop du lịch bởi vì cồng kềnh và nặng nề, có thể sử dụng dịch vụ internet công cộng, tuy nhiên cũng khá bất tiện vì phát sinh thêm vấn đề là phải tìm thêm vị trí của dịch vụ internet công cộng, mỗi lần muốn tìm một địa điểm lại sử dụng internet công cộng Thậm chí bằng một cách nào đó khách du lịch có được địa chỉ của địa điểm mong muốn, nếu không phải quen với đường phố Nha Trang cũng khó xác địch được vị trí đó ở đâu Giải pháp là sử dụng một bản đồ số trên laptop nhưng bản đồ

số trên laptop rất bất tiện khi mạng theo trong lúc đi đường, thêm một giải pháp nữa là bản đồ giấy Tuy nhiên sử dụng bản đồ giấy rất khó khăn để nhận ra vị trí hiện tại Để tìm một vị trí ăn uống, vui chơi đối với một khách du lịch Nha Trang trở thành một vấn đề phức tạp, và nhiều du khách chấp nhận việc vui chơi ở các địa điểm tour du lịch xắp xếp sẵn và chỉ đến các địa điểm thật sự nổi tiếng

Ngoài ra khách du lịch có thể hỏi lái xe taxi đưa đến các vị trí đã biết trước, tuy nhiên nếu địa điểm đó đã được biết trước Hoặc nếu khách du lịch muốn tự đi thì sao?

Để giải quyết vấn đề ví dụ ở trên trở nên đơn giản, có một giải pháp đó chính là

sử dụng ứng dụng trên thiết bị di động Với một bản đồ số Google Map, có một danh sách các địa điểm nhà hàng, khách sạn, quán cà phê … mà khách du lịch có thể đến để lựa chọn, hiển thị trực tiếp địa địa điểm đó trên bản đồ số Với GPS, bản đồ có thể xác định đươc vị trí hiện tại và từ đó gợi ý tuyến đường ngắn nhất đến mục tiêu Và đặt biệt thiết bị di động luôn sẵn sàng hoạt động 24/24, kích thước nhỏ gọn luôn mang theo, cùng với mạng internet 3G hay WIFI thì việc tìm một địa điểm du lịch và đi đến

đó không còn gì thuận tiện hơn

Ngoài ra bản đồ số còn tích hợp bản đồ các tuyến xe buýt ở Nha Trang hiển thị toàn bộ 6 tuyến xe và các trạm xe tương ứng Cho người dùng hình dung được tổng thể các tuyến xe và biết tuyến xe buýt nào có thể đưa đến một địa điểm nhất định

Với một số lượng địa điểm vui chơi, nhà hàng, quán bar, khách sạn, mua sắm

ở Nha Trang nhiều như hiện nay rất cần thiết phải có một cách tìm kiếm thông tin du lịch thuận tiện nhất, đơn giản nhất, hiệu quả nhất Để du khách đến Nha Trang có thể biết đến Nha Trang một cách trọn vẹn không chỉ ở phong cảnh thiên nhiên, khí hậu

Trang 14

Tốc độ phổ biến công nghệ di động “thông minh” nhanh chóng như bây giờ sẽ mạng lại cơ hội cho các lập trình viên di động tự do thể hiện ý tưởng của mình Làm sao cho các sản phẩm phần mềm ngày càng hữu dụng, gần gũi và phục vụ cho công việc và cuộc sống nhiều hơn

Trang 15

Chương II: Hệ điều hành Android

II.1 Giới thiệu hệ điều hành Android

Android là một hệ điều hành di động dựa trên một phiên bản sửa đổi của Linux Được phát triển vào năm 2005 với một dự án cùng tên “Android” Như một phần chiến lược của mình để lấn sâu vào lĩnh vực di động Google Android đã mua về toàn bộ quá trình phát triển cũng như đội phát triển nó.Đây là con át chủ bài của Google để cạnh tranh thị phần hệ điều hành di động với Apple

Google Android muốn mở và miễn phí, vì vậy hầu hết các mã android được được đưa ra dưới dạng mã nguồn mở Apache License, điều này tương đương với việc bất cứ ai muốn sử dụng Android có thể làm như vậy bằng cách tải về mã nguồn android đầy đủ Hơn nữa các nhà cung cấp (thường là những nhà phát triển phần cứng)

có thể thêm phần mở rộng và tùy biến cho android để phân biệt sản phẩm của họ với sản phẩm của những người khác Điều này đơn giản làm cho mô hình phát triển android rất hấp dẫn và do đó khơi dậy sự quan tâm của nhiều nhà cung cấp Những nhà sản xuất coi android như một giải pháp – họ sẽ tiếp tục thiết kế phần cứng của riêng mình và sử dụng android như một hệ điều hành chính

Ưu điểm chính của việc áp dụng android là nó cung cấp một cách tiếp cận thống nhất để phát triển ứng dụng Các nhà phát triển chỉ cần phát triển cho android và các ứng dụng của họ có thể chạy trên nhiều thiết bị khác nhau, miễn là các thiết bị được hỗ trợ bằng cách sử dụng android Trong thế giới điện thoại thông minh ứng dụng là một phần quan trọng nhất của chuỗi thành công Do đó các nhà sản xuất thiết

bị coi Android như là hy vọng tốt nhất để thách thức sự tấn công của Apple

II.2 Những đặc trưng của hệ điều hành Android:

trong lập trình ứng dụng

nguồn mở

phần cứng)

Camera, GPS, la bàn, và gia tốc kế: (phụ thuộc vào phần cứng)

Môi trường phát triển phong phú: bao gồm thiết bị mô phỏng, công cụ

Trang 16

II.3 Các tính năng hỗ trợ sẵn trong hệ điều hành Android

Các tính năng được hổ trỡ tùy thuộc vào cấu hình phần cứng và phần mềm

dữ liệu

Bluetooth (bao gồm AD2P và AVRCP), Wifi, LTE và WiMAX

JavaScript V8 của Chrome

H.264 (Trong 3GP hoặc MP4 container ), MPEG-4 SP, AMR, AMR-WB (3GP container), AAC, HE-AAC (MP4 hoặc 3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF và BMP

Proximity Sensor và GPS

Trang 17

II.4 Kiến trúc và các thành phần trong hệ điều hành Android

Mô hình sau thể hiện đầy đủ kiến trúc các thành phần của hệ điều hành Android

II.4.1 Linux kernel (nhân Linux)

Kernel Linux hoạt động như một lớp trừu tượng hóa giữa phần cứng và tầng dưới của phần mềm Lớp này chứa tất cả các thiết bị mức thấp điều khiển các thành phần phần cúng khác nhau của một thiết bị Android

II.4.2 Libraries

Libraries bao gồm một tập hợp các thư viện lập trình chứa mã lệnh cung cấp những tính năng và thao tác chính trên hệ điều hành Một số các thư viện cơ bản được liệt kê dưới đây:

System C library: a BSD-derived triển khai các thư viện hệ thống ngôn ngữ C chuẩn, được nhúng vào các thiết bị dựa trên hệ điều hành Linux

Trang 18

Media Libraries – Dựa trên PacketVideo's OpenCORE; thư viện này hỗ trợ cho việc chơi nhạc, quay phim, chụp hình theo các định dạng file

MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG

Surface Manager – Quản lý truy cập đến các hệ thống con hiển thị cũng như các lớp đồ họa 2D, 3D từ tầng ứng dụng

LibWebCore – Thư viện được dùng để tạo nên thành phần webview trong Android và có thể nhúng được vào nhiều ứng dụng

3D libraries – Thư viện đồ họa 3D

FreeType - bitmap and vector font rendering

SQLite – Một cơ sở dữ liệu nhỏ được dùng cho các thiết bị cầm tay có bộ nhớ hạn chế SQLite không có quan hệ như các cơ sở dữ liệu khác

II.4.3 Android runtime:

Tại cùng một tầng với Libraries, android runtime cung cấp một bộ lõi thư viện cho phép các nhà phát triển viết các ứng dụng android bằng cách sử dụng ngôn ngữ lập trình java Android runtime cũng bao gồm các máy ảo Dalvik, cho phép mọi ứng dụng android chạy trong tiến trình riêng của mình Dalvik là một máy ảo chuyên dụng được thiết kế đặc biệt cho android và tối ưu hóa cho các thiết bị điện thoại di động với giới hạn bộ nhớ và CPU

II.4.4 Application framework 2.4.3 Android runtime:

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 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 API Đưa ra những khả năng khác nhau của hệ điều hành android vào ứng dụng để sử dụng chúng trong các ứng dụng của mình

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: các View (là dùng để hiển thị thông tin và để người dùng thao tác), Content Provider để chia sẻ dữ liệu giữa các ứng dụng, Resource Manager truy xuất tài nguyên, Notification Manager hiển thị các thông báo, Activity Manager quản lý chu trình sống của ứng dụng và điều hướng Activity

Trang 19

II.4.5 Applications:

Tại lớp trên cùng sẽ là các ứng dụng cho android (như điện thoại, danh bạ, trình duyệt,…) cũng như các ứng dụng được tải về và cài đặt từ AndroidMarket hay bất lý ứng dụng nào bạn viết được tại tầng này

II.5 Các khái niệm cơ bản trong lập trình ứng dụng Android

II.5.1 Activity

Một activity thể hiện một giao diện đồ họa người dùng Ví dụ một activity có thể biểu diễn một danh sách các menu item để người dùng có thể chọn và có thể hiển thị ảnh cùng với tiêu đề Một ứng dụng gửi tin nhắn văn bản có thể có một hoạt động

là hiển thị một danh sách các liên hệ để gửi tin nhắn tới, hoạt động thứ hai là viết tin nhắn tới liên hệ được chọn, các hoạt động khác nữa là xem lại tin nhắn cũ hay thay đổi cài đặt Mặc dù chúng làm việc cùng nhau để tạo thành một giao diện người dùng, mỗi activity độc lập với những cái khác Mỗi activity là một lớp con của lớp cơ sở Activity

Một ứng dụng có thể gồm chỉ một activity hay nhiều activity Activity chính phải được hiển thị đầu tiên khi khởi động chương trình Chuyển từ một activity sang activity khác bằng cách cho activity hiện thời khởi động activity kế tiếp

Mỗi activity được vẽ vào một cửa sổ trên màn hình, mặc định sẽ lấp đầy màn hình, nhưng nó có thể nhỏ hơn màn hình và nằm trên các cửa sổ khác ví dụ như activity thông báo một thông tin gì đó

Nội dung trực quan của cửa sổ được cung cấp bởi một cây phân cấp các đối tượng view dẫn xuất từ lớp View Mỗi view điều khiển một khoảng hình chữ nhật cụ thể bên trong cửa sổ View cha chứa và tổ chức bố cục các view con Các view lá vẽ trong hình chữ nhật mà chúng điều khiển và đáp ứng lại các hành động người dùng trực tiếp ở khoảng trống này Do đó, các view là nơi mà các tương tác của activity với người dùng diễn ra

Ví dụ một view có thể hiển thị một hình ảnh nhỏ và khởi tạo một hoạt động khi người dùng nhấn vào hình ảnh đó Android có một số view đã xây dựng sẵn mà bạn có thể sử dụng – gồm có các buttons, text fields, scroll bars, menu items, check boxes …

Một cây phân cấp view được đặt trong một cửa sổ của activity bằng phương thức Activity.setContentView() Content view là đối tượng View ở gốc của cây phân cấp

Trang 20

Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời của một hoạt động Class Activity định nghĩa các sự kiện sau đây :

động trước đó

tay hoặc bằng hệ thống để bảo tồn bộ nhớ)

lần nữa

Trang 21

Sau đây là sơ đồ các sự kiện trong vòng đời của một Activity:

Trang 22

II.5.2 Service

Một service không có giao diện trực quan, nó chạy trên nền trong một khoảng thời gian không xác định Ví dụ một service có thể chơi nhạc nền, hay nó nạp dữ liệu trên mạng hay tính toán cái gì đó và cung cấp kết quả cho activity cần đến nó Mỗi service mở rộng từ lớp cơ sở Service

Trong khi kết nối, người sử dụng có thể giao tiếp với service thông qua giao diện mà service đó trưng ra Ví dụ như trong service chơi nhạc, giao diện này có thể cho phép người dùng pause, rewind, stop và restart lại playback

Giống như các activity và các thành phần khác khác, service chạy trong thread chính của tiến trình ứng dụng Vì thế chúng không thể chặn những thành phần khác hay giao diện người dùng, chúng thường tạo ra các thead khác cho các nhiệm vụ hao tốn thời gian.Sơ đồ các sự kiện trong vòng đời của một service:

Trang 23

II.5.3 Content provider

Một content provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả dụng cho các ứng dụng khác Dữ liệu có thể được lưu trữ trong hệ thống file, trong một cơ

sở dữ liệu SQLite, hay trong một cách khác nào đó Content provider mở rộng lớp cơ

sở ContentProvider để cài đặt một tập các chuẩn các phương thức cho phép các ứng dụng khác đạt được và lưu trữ dữ liệu của kiểu mà nó điều khiển Tuy nhiên, các ứng dụng không gọi trực tiếp các phương thức này, chúng sử dụng một đối tượng ContentResolver và gọi các phương thức của nó Một ContentResolver có thể nói chuyện với bất cứ content provider nào, chúng cộng tác với provider để quản lý giao tiếp liên tiến trình

II.5.4 Broadcast Receive

Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc nhận và đáp lại các thông báo broadcast Nhiều broadcast khởi đầu trong mã hệ thống - ví dụ như thông báo múi giờ thay đổi, pin yếu, ảnh đã được chụp, hay người dùng đã thay đổi ngôn ngữ … Các ứng dụng có thể tạo ra các broadcast, chẳng hạn để ứng dụng khác biết được một số dữ liệu đã được tải về thiết bị và sẵn sàng cho việc sử dụng chúng

Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thông báo nào mà nó cho là quan trọng Tất cả các receiver mở rộng từ lớp cơ sở BroadcastReceiver

Broadcast Receiver không hiển thị một giao diện người dùng Tuy nhiên chúng

có thể bắt đầu một activity để đáp lại thông tin mà chúng nhận, hay chúng có thể sử dụng NotificationManager để cảnh báo người dùng Notifications có thể lấy sự chú ý của người dùng bằng nhiều cách, lóe sáng đèn sau, rung, tạo ra âm thanh, vân vân Chúng thường lấy một biểu tượng bền vững trong thanh trạng thái, cái mà người dùng

có thể mở để lấy thông điệp

II.5.5 View

Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối tượng View và ViewGroup Có nhiều kiểu View và ViewGroup Mỗi một kiểu là một con của class View và tất cả các kiểu đó được gọi là các Widget

Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trình bày vị trí, background, kích thước, lề,… Tất cả những thuộc tính chung này được thể hiện hết

ở trong đối tượng View

Trang 24

Trong Android Platform, các screen luôn được bố trí theo một kiểu cấu trúc phân cấp như hình dưới Một màn hình là một tập hợp các Layout và các widget được

bố trí có thứ tự Để thể hiện một màn hình thì trong hàm onCreate của mỗi Activity cần phải được gọi một hàm là setContentView(R.layout.main); hàm này sẽ load giao diện từ file XML lên để phân tích thành mã bytecode

II.5.6 Intent

Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng như truyền các dữ liệu cần thiết tới một Activity khác Điều này cũng giống như việc di chuyển qua lại giữa các Forms trong lập trình Windows Form

Trang 25

II.6 Các thành phần trong một project ứng dụng Android

II.6.1 AndroidManifest.xml

Trong bất kì một dự án Android nào khi tạo ra đều có một file AndroidManifest.xml, file này được dùng để định nghĩa các màn hình sử dụng, các quyền cũng như các giao diện cho ứng dụng Đồng thời nó cũng chứa thông tin về phiên bản SDK cũng như màn hình chính sẽ chạy đầu tiên

Application: chứa các giá trị định nghĩa cho một ứng dụng Android như

icon,tên ứng dụng, chế độ hiển thị giao diện…Ngoài ra cần phải khai báo các Activity

và Service có trong chương trình tại đây

Permission: bao gồm các thuộc tính chỉ định quyền truy xuất và sử dụng tài

nguyên của ứng dụng Khi cần sử dụng một loại tài nguyên nào đó thì trong file manifest của ứng dụng cần phải khai báo các quyền truy xuất tương ứng

Trang 26

SDK version: Xác định phiên bản SDK nhỏ nhất mà ứng dụng hiện đang sử

dụng tương ứng với một phiên bản hệ điều hành Android mà ứng dụng có thể tương thích

II.6.2 File R.java

File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được sử dụng để quản lý các thuộc tính được khai báo trong file XML của ứng dụng và các tài nguyên hình ảnh.Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào xảy xa làm thay đổi các thuộc tính trong ứng dụng

Có thể nói file R.java hoàn toàn không cần phải đụng chạm gì đến trong cả quá trình xây dựng ứng dụng

II.6.3 Thư mục src

Là vị trí chứa gói các class trong ứng dụng Các class có thể là các một Activity hoặc Service hoặc các lớp chức năng nào đó được viết bằng ngôn ngữ Java dựa trên API được cung cấp sẵn của Android Cần phải có ít nhất một Activity và khai báo là Activity chính để chương trình có thể chạy được

II.6.4 Thư mục rec

Thư mục chứa tài nguyên ứng dụng Thư mục này bao gồm 5 thư mục con là: drawable – hdpi, drawable – mdpi, drawable – ldpi,layout,values

Drawable – hdpi, drawable – mdpi, drawable – ldpi là ba thư mục dùng

để chứa các hình ảnh được sử dụng trong quá trình thiết kế giao diện ứng dụng, bao gồm cả icon của ứng dụng 3 thư mục tương ứng với hình ảnh sẽ được sử dụng ở ba độ phân giải khác nhau lần lược là: cao, trung bình, thấp Điều này giúp các nhà lập trình

có thể thiết kế giao diện ứng dụng phù hợp với nhiều độ phân giải màn hình tương thích với nhiều lại thiết bị

Thư mục layout chứa các file xml dùng để khai báo và thiết kế giao diện cho một Activity hay một thành phần điều khiển con trong ứng dụng Android

Thư mục values gồm các file xml chứa các giá trị chuỗi, mã màu … Giúp người lập trình có thể dễ dàng thay đổi những giá trị này trong ứng dụng một cách nhanh chóng mà khôn cần phải sửa trong code của ứng dụng

Trang 27

Chương III: Công nghệ XML và Webservice

III.1 Công nghệ XML

III.1.1 Lịch sử ra đời chuẩn XML, XML là gì?

XML (viết tắt từ tiếng Anh eXtensible Markup Language, “Ngôn ngữ Đánh dấu

Mở rộng”) là ngôn ngữ đánh dấu do W3C đề nghị Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet

XML là một ngôn ngữ đánh dấu tương đối mới vì nó là một subset (một phần nhỏ hơn) của và đến từ (derived from) một ngôn ngữ đánh dấu ra đời trước tên là Standard Generalized Markup Language (SGML) Ngôn ngữ HTML cũng dựa vào SGML, thật ra nó là một áp dụng của SGML

SGML được phát minh bởi Ed Mosher, Ray Lorie và Charles F Goldfarb của nhóm IBM research vào năm 1969, khi con người đặt chân lên mặt trăng Lúc đầu nó

có tên là Generalized Markup Language (GML), và được thiết kế để dùng làm language, một ngôn ngữ được dùng để diễn tả các ngôn ngữ khác - văn phạm, ngữ vựng của chúng ,.v.v Năm 1986, SGML được cơ quan ISO (International Standard Organisation) thu nhận (adopted) làm tiêu chuẩn để lưu trữ và trao đổi dữ liệu Khi Tim Berners-Lee triển khai HyperText Markup Language - HTML để dùng cho các trang Web hồi đầu thập niên 1990, ông ta cứ nhắc nhở rằng HTML là một áp dụng của SGML

meta-Vì SGML rất rắc rối, và HTML có nhiều giới hạn nên năm 1996 tổ chức W3C thiết kế XML XML version 1.0 được định nghĩa trong hồ sơ February 1998 W3C Recommendation, giống như một Internet Request for Comments (RFC), là một "tiêu chuẩn"

III.1.2 Cấu trúc của file XML và tài liệu XML

Cấu trúc file xml:

Document Prolog: lưu trữ metadata của XML gồm 2 phần đó là khai báo XML

và khai báo kiểu dữ liệu trong XML Phần khai báo XML (XML declaration) bao gồm các thông tin về version của XML, charset, encoding… Phần khai báo kiểu dữ liệu

trong XML (DTD) dùng để khai báo cấu trúc của các thẻ dùng trong XML

Root element hay còn gọi là Document Element: chứa tất cả các phần tử và nội dung của nó 1 phần tử của XML phải có thẻ mở và thẻ đóng

Trang 28

Dưới đây là sơ đồ cấu trúc của tài liệu XML

Cấu trúc tài liệu xml:

Gồm có hai phần đó là cấu trúc logic và cấu trúc vật lý

Cấu trúc logic: Định nghĩa các phần tử, các thuộc tính, kiểu dữ liệu

Cấu trúc vật lý:chứa dữ liệu và các phần tử chứa dữ liệu như text, hình ảnh,

media …

III.1.3 Đặc điểm của XML

áp dụng một cấu trúc kiểu cây cho thông tin đó

Set (Bộ ký tự toàn cầu)

định nghĩa các loại "application/xml" và "text/xml", với ý rằng dữ liệu được biểu diễn bằng XML mà không nói gì đến ngữ nghĩa của dữ liệu

tạo ra tùy biến cho các tags

Trang 29

III.1.4 XML và HTML

Content Markup Language Presenttation Markup Language

Cho phép người sử dụng định nghĩa

các phần tử Các phần tử được định nghĩa sẵn

Kiểm tra tính hợp lệ Hầu như không bắt lỗi

Cho phép trao đổi dữ liệu giữa các ứng

Cần phải được định nghĩa một cách

Các phần tử phải được đóng Các phần tử rổng không cần đóng

III.1.5 Ngôn ngữ đặt tả cấu trúc

DTD (Document Type Definition)

Một DTD xác định ngữ pháp của một tài liệu XML, DTD định nghĩa cấu trúc tài liệu XML bằng một tập những qui tắc của phần tử (elements) và thuộc tính (attributes)

<!ELEMENT from (#PCDATA)>

<ATTLIST note date TYPE CDATA #REQUIRED>

]>

Trang 30

<xs:element name="to" type="xs:string"/>

<xs:element name="from" type="xs:string"/>

<xs:element name="heading" type="xs:string"/>

<xs:element name="body" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

III.1.6 Ưu điểm của XML

 Dễ dàng xử lý, chuyển tải và trao đổi dữ liệu

 Mô tả dữ liệu và cách thể hiện dữ liệu thông qua các thẻ

 Tổ chức dữ liệu và cấu trúc phân cấp

 Dữ liệu độc lập là ưu điểm chính của XML Do XML chỉ dùng để mô tả

dữ liệu bằng dạng text nên tất cả các chương trình đều có thể đọc được XML

 Dễ dàng để tạo 1 file XML

 Lưu trữ cấu hình cho web site

 Sử dụng cho phương thức Remote Procedure Calls (RPC) phục vụ web service

Trang 31

III.2 Webservice

III.2.1 Webservice là gì ?

Webservice(dịch vụ web) là sự kết hợp các máy tính cá nhân với các thiết bị khác, các cơ sở dữ liệu và các mạng máy tính để tạo thành một cơ cấu tính toán ảo mà người sử dụng có thể làm việc thông qua các trình duyệt mạng hoặc ứng dụng có kết nối mạng

Webservice

Một web service có thể được mô tả như là một chức năng có thể duy trì trên web, và có thể được gọi bởi bất kỳ ứng dụng nào hay dịch vụ nào Nó có thể là một business application hay một system function

Bản thân các dịch vụ này sẽ chạy trên các máy chủ trên nền Internet chứ không phải là các máy tính cá nhân, do vậy có thể chuyển các chức nǎng từ máy tính cá nhân lên Internet Người sử dụng có thể làm việc với các dịch vụ thông qua bất kỳ loại máy hay phần mềm nào có hỗ trợ web service và có truy cập internet, kể cả các thiết bị cầm tay Do đó các web service sẽ làm internet biến đổi thành một nơi làm việc chứ không phải là một phương tiện để xem và tải nội dung

Điều này cũng sẽ đưa các dữ liệu và các ứng dụng từ máy tính cá nhân tới các máy phục vụ của một nhà cung cấp dịch vụ web Các máy phục vụ này cũng cần trở thành nguồn cung cấp cho người sử dụng cả về độ an toàn, độ riêng tư và khả nǎng truy nhập

Các máy phục vụ ứng dụng sẽ là một phần quan trọng của các web service bởi

vì thường thì các máy chủ này thực hiện các hoạt động ứng dụng phức tạp dựa trên sự chuyển giao giữa người sử dụng và các chương trình kinh doanh hay các cơ sở dữ liệu của một tổ chức nào đó

Trang 32

Một số nhà quan sát ngành công nghiệp này cho rằng web service không thực

sự là một khái niệm mới và phản ánh một phần không nhỏ khái niệm mạng máy tính vốn đã trở nên quen thuộc trong nhiều nǎm qua Web service chủ yếu dựa trên một lời gọi thủ tục từ xa không chặt chẽ mà có thể thay thế các lời gọi thủ tục từ xa chặt chẽ, đòi hỏi các kết nối API phù hợp đang phổ biến hiện nay Dịch vụ web sử dụng XML chứ không phải C hay C++, để gọi các quy trình

Tuy nhiên các chuyên gia khác lại cho rằng web service là một dạng API dựa trên phần mềm trung gian, có sử dụng XML để tạo phần giao diện trên nền Java 2 (J2EE) hay các server ứng dụng NET Giống như các phần mềm trung gian, web service sẽ kết nối server ứng dụng với các chương trình khách hàng

III.2.2 Một số đặt điểm cơ bản của webservice

Một webservice có thể được truy cập thông qua web

Một webservice có giao diện dịch vụ Giao diện này giúp cho webservice có thể được gọi bởi bất kỳ một ứng dụng nào hay bởi webservice nào khác Giao diện dịch vụ

là một tài liệu XML Bởi vì XML có thể thể hiện rõ vai trò trong công nghệ trao đổi thông tin toàn cục (global exchange technology) được chấp nhận bởi phần lớn công nghệ hiện nay

Các Dịch vụ web dùng giao thức tiêu chuẩn web để giao tiếp, không như COM, RMI hay CORBA XML được dùng để trao đổi thông tin giữa các chương trình ứng dụng và dịch vụ

III.2.3 Phân loại webservice

Service có hai loại :

Dịch vụ ứng dụng và dịch vụ hệ thống (Application and System Service ) Một Application Service thể hiện một hành động của user như duyệt thư email, hay kiểm tra tỷ số hối đoái… Một System Service thể hiện yêu cầu của kiến trúc hệ thống và sự quản lý như bảo mật , lưu trữ và chịu lỗi, quản lý transaction hay messaging

Một dịch vụ có hai đặc điểm chính : Interface và Registration Sử dụng Interface, một dịch vụ có thể được gọi từ một chương trình khác Một service được đăng ký trong một registry

Các ví dụ về công nghệ liên quan đến hệ thống hướng dịch vụ (service-oriented system) là Remote Method Invocation (RMI), Jini, CORBA và Distributed Computing Environment (DCE)

Một vấn đề tổng quát với service hệ thống là các client cần thiết chỉ rõ giao thức để yêu cầu các dịch vụ từ các hệ thống Web service là một hệ thống phát triển từ

hệ thống hướng dịch vụ , dùng giao tiếp tổng quát để chuyển tải các thông điệp giữa các hệ thống

Trang 33

Một tập hợp các modular service có thể được cung cấp bởi cùng công ty hay bởi nhiều công ty khác nhau được mix và match lại để trở thành một business process

Lấy ví dụ đơn giản dễ nhận thấy nhất về webservice là hệ thống NET passport của Hotmail Vấn đề đăng nhập trở nên đơn giản giữa các web site nếu giải quyết bằng webservice Web site tương tác với các site khác thông qua Web Service, điều này cho phép thông tin người dùng được chia xẻ giữa các chúng Một user khi điền thông tin đăng nhập chỉ một lần duy nhất, và có thể dùng nó cho dịch vụ email, và dùng cùng login user cùng mật khẩu trong một “accounting package service site”

Trang 34

Chương IV: Google Map và Google Maps API Web Services

IV.1 Google Map

IV.1.1 Giới thiệu Google Map

Google Maps (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 đồ đường sá, đường đi cho xe đạp, cho người đi bộ và xe hơi, và những địa điểm kinh doanh trong khu vực cũng như khắp nơi trên thế giới

Một sản phẩm liên quan, đó là Google Earth, một ứng dụng độc lập dành cho Microsoft Windows, Mac OS X và Linux cho phép xem các tính năng mở rộng khác

Trang 35

Google Map là một trong những ứng dụng phổ biến nhất của Google hiện nay Khi mà việc sử dụng bản đồ giấy đã trở lên lỗi thời thì dịch vụ tìm kiếm bản đồ số, bản

đồ vệ tinh, hệ thống GPS là hết sức cần thiết Giờ đây chúng ta có thể dễ dàng truy cập vào Google Map dù ở bất cứ nơi đâu để tra cứu địa chỉ hoặc sử dụng hệ thống GPS cũng rất phổ biến Đặt biệt khả năng tích hợp dịch vụ bản đồ Google Map là rất cần thiết và quan trọng

IV.1.2 Google Maps for Mobile

Năm 2006, Google đã giới thiệu một ứng dụng Java có tên là Google Maps for

Mobile Mục đích để chạy trên bất kỳ thiết bị di động nào dựa có cũng cấp nền tảng

Java Rất nhiều tính năng chính của phiên bảng Google Maps trên web có mặt trong ứng dụng

Ngày 28 tháng 11, 2007, Google Maps for Mobile 2.0 được phát hành Nó cung cấp một dịch vụ xác định vị trí giống như GPS nhưng vẫn hoạt động nếu thành phần GPS trong phần cứng không có hoạt không hoạt động Vị trí hiện tại chỉ được bắt nếu thành phần GPS sẵn sàng hoạt động Tính năng định vị không cần thành phần GPS dựa vào phần mềm xác định trạm phát sóng không dây và trạm BTS gần nhất Sau đó phần mềm sẽ tìm trong cơ sở dữ liệu của nó vị trí của các điểm phát sóng WiFi và các trạm BTS mà nó biết được Bằng cách xác định cường độ tín hiệu từ nhiều trạm phát sóng WiFi và BTS đã biết vị trí, phần mềm sẽ tính toán ra được vị trí hiện tại của người dùng

Trang 36

Thứ tự ưu tiên tính toán vị trí như sau:

 Nokia/Symbian (S60 3rd & 5th)

Ngày 4 tháng 11, năm 2009, Google Maps Navigation đã được phát hành trên

hệ điều hành Google Android 2.0 Eclair trên điện thoại Motorola Droid, thêm chức năng ra lệnh bằng giọng nói, báo cáo lưu lượng truy cập, và hỗ trợ xem đường phố Phát hành ban đầu được giới hạn ở Hoa Kỳ Dịch vụ này đã được đưa ra tại Anh vào ngày 20 tháng 4 năm 2010 và trong phần lớn của lục địa châu Âu vào ngày 09 tháng 6

2010 (bao gồm Áo, Bỉ, Canada, Đan Mạch, Pháp, Đức, Ý, Hà Lan, Bồ Đào Nha, Tây Ban Nha, và Thụy Sĩ )

Trong tháng 3 năm 2011, Phó Chủ tịch Dịch vụ Location Service, Marissa Mayer thông báo mà Google đã cung cấp dịch vụ bản đồ đến 150 triệu người sử dụng

Trong tháng sáu năm 2012, Apple thông báo rằng họ sẽ loại bỏ Google Maps trên IOS 6 và sẽ được thay thế bằng dịch vụ bản đồ của riêng của họ

Trang 37

IV.2 Google Maps API Web Services

IV.2.1 Giới thiệu Google Maps API Web Services

Google Maps API Web Services là một tập các giao diện HTTP cung cấp thông tin địa lý cho ứng dụng

Google Maps API Web Services bao gồm:

IV.2.2 Sử dụng Google Maps API Web Services

Google Maps API cung cấp các dịch vụ như là các giao diện phục vụ cho việc yêu cầu dữ liệu địa lý và sử dụng dữ liệu đó trong ứng dụng của nhà phát triền Các dịch vụ này được thiết kế để sử dụng với một ứng dụng bản đồ

Các dịch vụ này sử dụng HTTP request, thiết lập các chuỗi URL request để gởi yêu cầu cho web service Thông thường, web service sẽ trả về kết quả là tập tin JSON hoặc XML Phân tích cú pháp kết quả trả về để sử dụng

Trang 38

Theo dõi sử dụng với tham số sensor

Sử dụng Google Maps API yêu cầu nhà phát triển phải chỉ ra rằng ứng dụng có

sử dụng một cảm biến (ví dụ cảm biến GPS) để xác định vị trí người dùng trong bất cứ yêu cầu nào cho service Nó khá quan trọng cho điện thoại Nếu ứng dụng Google Map API sử dụng bất cứ dạng cảm biến để xác định vị trí của thiết bị phải thiết lập giá trị của tham số sensor=true

Trong trường hợp ứng dụng không sử dụng cảm biến thì vẫn phải gán giá trị sensor=false

Xây dựng chuỗi URL request hợp lệ

Một chuỗi URL có thể chứa những ký tự đặt biệt Ví dụ trong trình duyệt web, chuỗi URL được nhập vào thanh địa chỉ chứa những ký tự đặt biệt (ví dụ chứa tiếng Việt có dấu), trình duyệt phải tự chuyển sang kiểu mã hóa khác trước khi gởi đi Một

số trình duyệt có thể nhận những chuỗi ký tự ở dạng mã hóa UTF-8 Quá trình chuyển kiểu mã hóa ký tự đó gọi là URL-encoding

Cần phải dịch những ký tự đặt biệt bởi vì tất cả các URL cần phải phù hợp với

cú pháp đã được qui định ở W3 Uniform Resource Identifier Có nghĩa là URL chỉ chứa các ký tự thuộc một tập hợp các ký tự ASCII Các ký tự được sử dụng trong chuỗi URL được qui định trong bảng sau:

Alphanumeric a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H

I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 Unreserved - _ ~

Ký tự muốn sử dụng theo cách thông thường nằm trong nhóm ký tự dành riêng (Ví dụ ký tự “?”) Nếu muốn sử dụng ký tự dành riêng phải mã hóa

Ký tự được mã hóa bằng cách sử dụng ký tự “%” theo sau là hai ký tự chứa giá trị hex đại diện cho ký tự hệ UTF-8

Giới hạn của chuối URL là 2048 ký tự Hầu hết các URL request ít khi đạt đến ngưỡng này, tuy nhiên vẫn phải cẩn thận để tránh trường hợp web service không trả lời

vì chuỗi URL quá dài

Trang 39

Processing Responses

Kết quả trả về của Google Direction API khá dễ hiểu nhưng lại ít thân thiện với người sử dụng Khi giởi yêu cầu và nhận được kết quả, tốt nhất là không hiển thị tất cả những gì nhận được mà chỉ cần trích xuất một số thông tin phù hợp Tóm lại là cần phải phân tích cú pháp kết quả nhận được và chỉ trích xuất một số thông tin có ích

Phân tích cú pháp kết quả nhận được phụ thuộc vào loại tập tin trả về là XML hay JSON và có thể sử dụng nhiều kỹ thuật và ngôn ngữ lập trình khác nhau

Trang 40

IV.3 Google Geocoding API

IV.3.1 Mã hóa địa lý là gì?

Mã hóa địa lý là tiến trình chuyển địa chỉ (ví dụ: số 2, đường Nguyễn Đình Chiểu, Vĩnh Thọ, Nha Trang)sang tọa độ địa lý (ví dụ: kinh độ 12.268491, vĩ độ 109.202148) để đánh dấu trên bảng đồ Google Geocoding API cung cấp một phương thức trực tiếp để truy cập bộ mã hóa địa lý thông qua giao thức HTTP Ngoài ra dịch

vụ Google Geocoding API còn cho phép giải mã từ tọa độ sang địa chỉ

IV.3.2 Giới hạn sử dụng

Google Geocoding API giới hạn ở 2500 truy vấn mỗi ngày Nếu trả phí con số này tăng lên 100000 Các giới hạn này được đặt ra để ngăn chặn sự lạm dụng dịch vụ Nếu vượt quá giới hạn này ứng dụng sẽ không thể truy cập được sau 24 giờ, nếu tiếp

tục vượt ở 24 giờ tiếp theo thì dịch dụ Geocoding API có thể sẽ chặn ứng dụng

Sử dụng Geocoding API cần phải kết hợp với một bản đồ Google Map dùng để

hiển thị các địa điểm một cách trực quan trên bản đồ

IV.3.3 Geocoding API request

Định dạng chuỗi request URL

Chuỗi request URL có dạng như sau:

http://maps.googleapis.com/maps/api/geocode/output?parameters

HTTPS được khuyến cáo sử dụng cho các ứng dụng có dùng những dữ liệu nhạy cảm của người dùng:

https://maps.googleapis.com/maps/api/geocode/output?parameters

Output có thể là xml hoặc json:

Loại tập tin này phù hợp hơn cho các ứng dụng bản đồ trên nền web

Ngày đăng: 03/11/2014, 10:35

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w