5 Nội dung tổng thể của khoá luận là nghiên cứu phát triển ứng dụng trên Smartphone giúp người đi xe buýt có được lịch trình lý tưởng, biết được thông tin các trạm sẽ đến và báo trạm khi
Trang 1TR ƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH
Trang 2NH ẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 3
NH ẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
Trang 4
1
MỤC LỤC 1
TÓM TẮT KHOÁ LUẬN 5
1.1 Giới thiệu 9
1.2 Mục đích nghiên cứu 9
1.3 Phương pháp nghiên cứu 10
1.4 Đối tượng và phạm vi nghiên cứu 12
1.4.1 Đối tượng nghiên cứu 12
1.4.2 Phạm vi nghiên cứu 12
1.5 Ý nghĩa 12
1.5.1 Về mặt xã hội 12
1.5.2 Về mặt khoa học 13
1.6 Bố cục báo cáo 13
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 14
2.1 Giới thiệu GPS 14
2.1.1 Sơ lược về hệ thống GPS 14
2.1.2 Nghiên cứu các thành phần hệ thống GPS 14
2.1.2.1.Các thành phần hệ thống GPS 14
2.1.2.2.Nguyên lý định vị GPS 14
2.1.2.3.Các phương pháp đo GPS 15
2.1.2.4.Cách xác định vị trí trên mặt đất thông qua hệ thống GPS 16
2.2 Tìm hiểu về Android 17
2.2.1 Giới thiệu về Android 17
2.2.2 Kiến trúc của Android 17
2.2.2.1.Application 18
2.2.2.2.Application Framework 18
2.2.2.3.Libraries 18
2.2.2.4.Runtime Android 19
Trang 52
2.2.2.5.Linux Kernel 19
2.2.3 Công cụ cài đặt Android 19
2.2.4 Các thành phần cấu tạo nên ứng dụng Android : 19
2.2.5 Cấu trúc một Project Android 20
2.3 Webservice 21
2.3.1 Dịch vụ Web là gì ? 21
2.3.2 Đặc điểm Webservice 21
2.3.2.1.Đặc điểm 21
2.3.2.2.Ưu và nhược điểm 22
2.3.3 Các thành phần của Webservice 22
2.3.3.1.XML – eXtensible Markup Language 22
2.3.3.2.WSDL – Web Service Description Language 23
2.3.3.3.Universal Description, Discovery, and Integration (UDDI) 23
2.3.3.4.SOAP – Simple Object Access Protocol 23
CHƯƠNG 3: THIẾT KẾ ỨNG DỤNG 26
3.1 Phân tích thực trạng 26
3.2 Phân tích xác định yêu cầu 26
3.3 Thiết kế ứng dụng 27
3.3.1 Xây dụng ứng dụng trên Android 27
3.3.1.1 Vòng đời của một ứng dụng Android 27
3.3.1.2 Các bước tạo một Project Android 29
3.3.1.3 Xây dựng giao diện ứng dụng 30
3.3.1.4 Hiển thị bản đồ đường đi trực tuyến 30
3.3.1.5 Hiển thị vị trí GPS người dùng : 32
3.3.1.6 Hiển thị tất cả các trạm của tuyến xe trên bản đồ 33
3.3.1.7 Thông báo sắp đến trạm dừng 35
3.3.1.8 Hiển thị thông tin trạm khi chọn trên bản đồ 37
3.3.1.9 Hiển thị các trạm xung quanh vị trí 37
3.3.1.10 Hiển thị các trạm xung quanh một điểm trên bản đồ : 39
Trang 63
3.3.1.11 Trả về thông tin tuyến xe buýt 39
3.3.1.12 Báo thời gian xe buýt sắp đến trạm 40
3.3.2 Xây dựng Web services 41
3.3.2.1 Tạo Web services 41
3.3.2.2 Xây dựng các WebMethod cho Webservies : 42
3.3.2.3 Tạo Cơ sở dữ liệu truy vấn 46
CHƯƠNG 4: HIỆN THỰC 48
4.1 Giao diện chính ứng dụng 48
4.2 Chọn tuyến xe và lượt đi của tuyến 50
4.3 Hiển thị các trạm dừng nhà chờ trên tuyến xe 50
4.4 Hiển thị thông tin trạm dừng 51
4.5 Báo trạm dừng kế tiếp 52
4.6 Tìm các trạm xe buýt xung quanh 54
4.7 Lấy thông tin tuyến xe buýt 56
4.8 Tìm tuyến xe đi qua một tuyến đường 57
4.9 Báo thời gian xe buýt gần đến trạm 58
CHƯƠNG 5: TỔNG KẾT 60
5.1 Kết luận Error! Bookmark not defined 5.2 Hướng phát triển Error! Bookmark not defined TÀI LIỆU THAM KHẢO 62
Trang 74
Lời đầu tiên xin gửi lời cảm ơn sâu sắc đến quý thày cô trong Khoa Công Nghệ
Thông Tin trường Đại Học Mở TP Hồ Chí Minh đã tận tình dạy bảo em nhiều kiến
thức bổ ích trong suốt thời gian học tập tại trường Kính chúc quý thày cô luôn dồi
dào sức khoẻ và thành công trong cuộc sống
Đặc biệt, em xin chân thành cảm ơn thầy Lê Xuân Trường đã nhiệt tình hướng
dẫn em trong suốt quá trình thực hiện đề tài Đã hỗ trợ tạo điều kiện, cơ hội và tích
luỹ nhiều kiến thức trong suốt quá trình thực hiện đề tài, cũng như đóng góp nhiều ý
kiến quý báu để có thể hoàn thành tốt đề tài này
Xin cảm ơn bạn bè đã hỗ trợ và động viên tôi rất nhiều trong thời gian qua
Mặc dù đã cố gắng hết sức và thời gian không cho phép, đề tài còn có nhiều
thiếu sót Rất mong nhận được sợ góp ý của các thày cô và các bạn
Một lần nữa, em xin chân thành cảm ơn
TP Hồ Chí Minh, ngày Tháng năm 2012
Đỗ Hoàng Đạo
Lê Hoàng Minh Nhựt
Trang 85
Nội dung tổng thể của khoá luận là nghiên cứu phát triển ứng dụng trên
Smartphone giúp người đi xe buýt có được lịch trình lý tưởng, biết được thông tin
các trạm sẽ đến và báo trạm khi đến tránh tình trạng hành khách bị lỡ trạm làm cho
xe buýt bị điểm yếu khi đó là một trong những phương tiện lưu thông công cộng
hiện nay Nhờ vào ứng dụng người dùng sẽ xác định vị trí của mình và tìm các trạm
xe buýt xung quanh để có thể chọn cho mình một lộ trình thích hợp, bên cạnh đó
ứng dụng cung cấp thông tin đầy đủ về thời gian, lượt đi, lượt về, số chuyến…của
một tuyến xe nào đó trong thành phố
Ứng dụng được thiết kế theo mô hình Client - Server:
Ứng dụng thiết kế phía Client được viết bằng ngôn ngữ Java trên Eclipse và
được thực thi trên nền hệ điều hành Android Sử dụng giao thức truyền tải dữ liệu
SOAP để giao tiếp với Server Client sẽ chạy trên Smartphone chạy hệ điều hành
Android Khi người dùng đang trên một tuyến xe nào đó thì ứng dụng sẽ yêu cầu
người dùng cung cấp thông tin và tuyến xe và lượt đi, về từ đó ứng dụng sẽ hiển thị
đầy đủ các trạm trên suốt tuyến xe, và khi người dùng xác định vị trí của mình cũng
là vị trí xe buýt đang di chuyển sẽ gửi toạ độ lên Server và tuỳ theo toạ độ đó có gần
trạm xe buýt kế tiếp không sẽ hiển thị lên bản đồ thông tin trạm xe đó
Bên phía Server là một dịch vụ Web Service được viết bằng Microsoft Visual
C# 2005 Web Service có các hàm để Client có thể gọi và yêu cầu trả về cơ sở dữ
liệu tương ứng với lời gọi hàm đó Webservice chứa cơ sở dữ liệu đầy đủ thông tin,
các bảng, vị trí trạm xe bus, thông tin tuyến xe buýt khi Client yêu cầu Là một dịch
vụ mở và có thể chạy trên các môi trường khác nhau cung cấp thông tin cho các kêt
nối từ Client
Trang 96
T ừ viết tắt Ý ngh ĩa
GPS Global Positioning System – GPS Hệ thống định vị toàn cầu
SDK Software development kit gói phần mềm dùng phát triển ứng dụng
API Application Programming Interface là giao diện lập trình ứng dụng
XML eXtensible Markup Language là ngôn ngữ đánh dấu mở rộng
SOAP Simple Object Access Protocol là giao thức truyền tải dữ liệu
WSDL Web Services Description Language ngôn ngữ miêu tả dịch vụ web
Trang 10
7
Hình 2.1 : Mô hình kiến trúc các lớp Android 18
Hinh 2.2 :Cấu trúc một thông điệp theo dạng SOAP 24
Hình 3.1 : Vòng đời một ứng dụng Android 28
Hình 3.2 : Giao diện ứng dụng 30
Hình 3.3 : Mô hình lấy bản đồ từ google map services 32
Hình 3.4 : Mô hình lấy toạ độ GPS của thiết bị 33
Hình 3.5: Lưu đồ hiển thị tất cả các trạm trên tuyến xe 35
Hình 3.6: Lưu đồ xử lý báo trạm xe xắp đến và hiển thị lên bản đồ 36
Hình 3.7 : Lưu đồ hiển thị thông tin trạm khi chọn vào trạm xe 37
Hình 3.8 : Lưu đồ hiển thị các trạm xe buýt xung quanh vị trí GPS 38
Hình 3.9 : Lưu đồ lấy thông tin tuyến xe 40
Hình 3.10 : Báo thời gian xe buýt xắp đến trạm 41
Hình 3.11 : Mô hình kết nối giữa Cient – Server 42
Hình 3.12 : Danh sách các Method của Webservcies 43
Hình 4.1 : Giao diện chính ứng dụng 48
Hình 4.2 : Mên lựa chọn các chức năng 49
Hình 4.4 : Lựa chọn tuyến xe buýt và lượt đi về của tuyến 50
Hình 4.6 : Hiển thị các trạm dừng trên một tuyến xe 51
Hình 4.6 : Thông tin trạm xe trên tuyến 52
Hình 4.7 : Lấy vị trí hiện tại và chọn chức năng báo trạm 53
Hình 4.8 : Trạm xe Buýt được báo xắp đến trạm 54
Trang 118
Hình 4.7 : Tìm các trạm xung quanh vị trí GPS 55
Hình 4.8 : Tìm các trạm xe buýt xung quanh 1 điểm trên bản đồ 56
Hình 4.9 : Danh sách các tuyến xe và thông tin tuyến xe khi được chọn 57
Hình 4.10 : Nhập tên đường và tìm tuyến xe đi qua đường 58
Hình 4.11 : Báo thời gian xe buýt đến trạm 59
DANH M ỤC BẢNG : Hình 3.13 : Bảng thông tin Tuyến Xe Buýt 46
Hình 3.14 : Bảng Trạm dừng tuyến xe 47
Hình 3.15 : Bảng Thời gian xuất phát tuyến xe 47
Trang 129
1.1 Giới thiệu
Trong những năm gần đây khi mà hoạt động sản xuất phần mền trên điện thoại
di động phát triển mạnh mẽ, và có không ít phầm mền hữu ích phục vụ thiết thực
cho cuộc sống và nhu cầu càng cao của con người Cùng với sừ phát triển đó , các
nhà sản xuất điện thoại di động nắm bắt được nhu cầu ưa chuộng sản phẩm công
nghệ cao đã cho ra đời những mẫu mã điện thoại không chỉ là nghe gọi mà có thêm
nhiều chức năng mới đa dạng, phong phú nhằm phục vụ cho công việc và đời sống
Smartphone ra đời ngày càng nhiều với cấu hình ngày càng cao đã dẫn đến sự xuất
hiện không ngừng của các ứng dụng trên Smartphone góp phần vào việc giải trí,
học tập… đặc biệt là các dịch vụ tìm kiếm hữu ích
Bên cạnh sự phát triển đô thị là sự gia tăng dân số và mức sống của con người
ngày càng cao nên nhu cầu đi lại rất cần thiết Vì vậy hiện nay số lượng xe gắn máy,
ôtô lưu thông trong thành phố rất đông Do đó việc khuyến khích người dân di
chuyển bằng phương tiện công cộng như xe buýt là việc làm cần thiết
Khi nhu cầu đi lại bằng xe buýt phát sinh thì vấn đề tìm kiếm các trạm, các
tuyến xe đi qua, thời gian xe khởi hành, quãng đường đi ngắn nhất…được đặt ra
Một ứng dụng được lập trình trên Smartphone sẽ dễ dàng đáp ứng nhu cầu đó một
cách tiện lợi và nhanh chóng
Hiện nay, phần mềm trên điện thoại phát triển không ngừng với nhiều công
nghệ khác nhau nhưng đều đáp ứng nhu cầu cuộc sống hiện đại Bên cạnh đó điện
thoại Smartphone được phân phối rộng rãi với mức giá hợp lý, được rất nhiều người
tiêu dùng trong nước và trên thế giới ưa chuộng Hệ điều hành Android cũng được
nhiều hãng sản xuất điện thoại đưa vào phát triển Ứng dụng “Báo trạm xe buýt”
trên Smartphone sử dụng hệ điều hành Android là một ứng dụng cần thiết
1.2 Mục đích nghiên cứu
- Xây dựng hệ thống phần mềm chạy trên Smartphone giúp người dùng tìm ra
lộ trình di chuyển mà họ mong muốn một cách dễ dàng, nhanh chóng và tiện lợi
Các chức năng là báo trạm sắp đến tiếp theo, tìm kiếm các tuyến xe đi qua một
trạm, lộ trình của một tuyến xe…mà họ mong muốn
- Ứng dụng có thể giúp người dùng xác định vị trí của họ đang đứng trên bản
đồ, từ vị trí đó họ có thể tìm các trạm xe buýt xung quanh mà ứng dụng hỗ trợ
Ngoài ra, người dùng cũng có thể xem bản đồ thành phố khi cần đến
- Cung cấp thông tin về các tuyến xe lượt đi, lượt về, thời gian hoạt động để
người dụng có thể tự xác định tuyến xe mình sẽ đi
- Thông báo thời gian xe buýt sắp đến khi người dung đang đứng trên một trạm
mà tuyến xe sẽ đi qua
Trang 1310
1.3 Phương pháp nghiên cứu
Ứng dụng được viết dựa trên công nghệ mã nguồn mở cụ thể là hệ điều hành
Android trên nền tảng Linux
Nghiên cứu, xây dựng hệ thống sử dụng mã nguồn mở
o Nghiên cứu, sử dụng Eclipse SDK làm công cụ viết ứng dụng
o Nghiên cứu, sử dụng Android SDK Plugin trong Eclipse để tạo máy ảo
Android
o Nghiên cứu, sử dụng Packet Ksoap2 để kết nối với Webservices ngoài
Internet
o Nghiên cứu, sử dụng thư viện Google Map API để tải bản đồ và dữ liệu
Nghiên cứu Microsoft Visual C# 2005 tạo WebService cho ứng dụng
o Cơ sở dữ liệu được tạo và truy vấn bởi SQL server 2005
o Nghiên cứu, xây dựng các hàm trả kết quả khi dịch vụ web được Client
gọi và trả về dữ liệu khi truy vấn
Hiển thị bản đồ cho ứng dụng
o Nghiên cứu, sử dụng dữ liệu bản đồ của Google Map API và hiển thị trên
Android nhờ vào Class MapActivity thông qua MapView
o Để hiển thị bản đồ trên ứng dụng cần phải đăng ký một Google API key
o Đăng ký Google Api Key
Dùng KeyTool trong Java để lấy mã chứng thực MD5 cho ứng dụng
Truy cập vào địa chỉ:
http://code.google.com/android/maps-api-signup.html để nhập mã chừng thực và lấy Api Key
Lấy vị trí của người dùng trên xe buýt hay tại trạm xe buýt
o Nghiên cứu, sử dụng lớp LocationManager để lấy kinh độ và vĩ độ GPS
của thiết bị Dùng hàm requestLocationUpdate để yêu cầu cập nhật vị trí
GPS của thiết bị
o Listener thừa kế lớp LocationListener có 4 hàm:
onLocationChanged(): gọi khi vị trí thay đổi
Trang 1411
onProviderDisable(): gọi khi nhà cung cấp không kích hoạt
onProviderEnable(): gọi khi nhà cung cấp đã kích hoạt
onStatusChanged():gọi khi trạng thái nhà cung cấp thay đổi
Kết nối với dịch vụ WebServices theo mô hình Client- Server
o Dùng WebService làm Server, là một dịch vụ cung cấp cơ chế gọi các đối
tượng từ xa thông qua giao thức HTTP cùng với cơ chế truyền tải đối
tượng dưới dạng XML
o Dùng SOAP (Simple Object Access Protocol) làm một giao thức truyền
tải dữ liệu cho WebServices và Client SOAP cho phép truyền dữ liệu
bằng HTML với định dạng XML
Dùng giao thức này để gửi tọa độ GPS của thiết bị, các Mã tuyến xe,
Thời gian, Kinh độ, Vĩ độ…người dùng muốn tìm lên WebServices
WebServices tìm trong cơ sở dữ liệu những đối tượng phù hợp với yêu
cầu của ứng dụng client và gửi trả lại kết quả cho client
Hiển thị lộ trình các trạm trên một tuyến xe
o Người dùng chọn tuyến xe đang di chuyển và thông tin lượt đi về và gửi
lên Websevices dùng phương thức GetAllStationonRouter() được định
nghĩa trong Class GetAllStation
o Sử dụng lớp ItemizedOverlay để hiển thị các điểm lên bản đồ
o Khi server gửi thông tin về thì client sẽ đưa những thông tin cần thiết như
kinh độ, vĩ độ, tên, địa chỉ, vào các Array để dễ quản lý
o Thông tin kinh độ, vĩ độ được đưa vào các GeoPoint để ItemizedOverlay
hiển thị lên bản đồ
Lấy tọa độ một điểm bất kỳ trên bản đồ
o Sử dụng sự kiện onTouchEvent trong class ItemizedOverlay
Hiển thị tên và địa chỉ của trạm khi gần đến
o Sử dụng sự kiện onTapEvent trong class ItemizedOverlay
o Hiển thị Dialog Arlet thông báo trạm xắp đến trên MapView
Trang 1512
Lấy thông tin của từng tuyến xe
o Lấy toàn bộ thông tin một tuyến xe và hiển thị trên ScollView
o Sử dụng phương thức GetInfoRouter(int MST) trong Class GetRouter tự
định nghĩa để lấy thông tin về tuyến xe như Mã số tuyến, Tên tuyến, Lượt
đi, Lượt về…từ Webservice gửi về
Hiển thị các trạm xe buýt xung quanh vị trí
o Sử dụng Overlay để hiển thị các trạm xung quanh vị trí GPS
o Nhờ vào phương thức GetLocationStationAround(int Lat, int Long) từ
Class tự định nghĩa để gửi toạ độ của người dùng lên Webservices lấy về
toạ độ các trạm gần đó và hiển thị trên MapView
1.4 Đối tượng và phạm vi nghiên cứu
1.4.1 Đối tượng nghiên cứu
- Tìm hiểu về chức năng định vị GPS
- Tìm hiểu bản đồ Google Map
- Ứng dụng trên hệ điều hành Android
- Giao tiếp giữa Client – Server qua Internet
1.4.2 Phạm vi nghiên cứu
- Bản đồ nội thành thành phố Hồ Chí Minh
- Viết ứng dụng trên Android
- Một số tuyến xe buýt trợ giá trong thành phố Hồ Chí Minh
1.5 Ý nghĩa
1.5.1 Về mặt xã hội
- Cung cấp hệ thống phần mềm giúp cho người đi xe buýt dễ dàng tìm kiếm vị
trí các trạm trong thành phố một cách nhanh chóng và thuận lợi
- Cung cấp cho người dùng một ứng dụng công nghệ thông tin tiện lợi và chất
lượng, dễ dàng sử dụng
- Nâng cao chất lượng cuộc sống tiện ích và khuyến khích mọi người đi xe
buýt, giảm bớt tai nạn và ùn tắc giao thông như hiện nay
Trang 16- Xây dựng mô hình Client-Server với WebService sử dụng giao thức truyền
tải dữ liệu SOAP để giao tiếp với nhau
- Có thể cập nhật thông tin ngay lập tức khi Webservice thay đổi dữ liệu, tránh
tình trạng Client chạy độc lập không cập nhật dữ liệu khi có thay đổi, đây là ưu điểm
của mô hình Client- Server
1.6 Bố cục báo cáo
Chương 1: Tổng quan: Chương này giới thiệu về đề tài, mục tiêu, phương pháp
nghiên cứu, đối tượng và phạm vi nghiên cứu, ý nghĩa của đề tài
Chương 2: Cơ sở lý thuyết: Trình bày cơ sở lý thuyết về Android, GPS và
Webservices
Chương 3 :Thiết kế: Trình bày các vấn đề liên quan đến xây dựng và thiết kế
ứng dụng ứng dụng
Chương 4: Hiện thực: Trình bày kết quả đạt được khi chạy ứng dụng
Chương 5: Tổng kết: Trình bày kết luận, đưa ra hạn chế và hướng phát triển
mở rộng chương trình
Trang 1714
2.1 Giới thiệu GPS
2.1.1 Sơ lược về hệ thống GPS
GPS là hệ thống bao gồm các vệ tinh bay trên quỹ đạo, thu thập thông tin toàn
cầu và được xử lý bởi các trạm điều khiển trên mặt đất Ngày nay, hầu như tất các
các máy bay, con tàu hay các phương tiện thám hiểm đều có lắp đặt thiết bị nhận tín
hiệu từ vệ tinh
Hệ thống định vị toàn cầu (tiếng Anh: Global Positioning System - GPS) là hệ
thống xác định vị trí dựa trên các vệ tinh nhân tạo GPS được thiết kế và bảo quản
mọi điều kiện thời tiết, mọi nơi trên Trái Đất, 24 giờ một ngày Không mất phí thuê
bao hoặc mất tiền trả cho việc thiết lập sử dụng GPS
Các đặc điểm mà GPS thu hút nhiều người quan tâm và sử dụng như:
- Mức độ chính xác của vị trị đưa ra là tương đối cao, từ hàng mét đến hàng
milimet
- Có khả năng xác định được vận tốc vật trên mặt đất vào thời điểm chính
- Tín hiệu phát ra đến được người dùng tại khắp mọi nơi trên thế giới: trên
không, trên mặt đất, hay trên biển…
- Nó hoạt động trong mọi thời điểm, và trong mọi thời tiết
- Là hệ thống định vị mà người dùng không phải trả tiền sử dụng Ngoài ra các
yêu cầu về phần cứng có giá cũng không phải quá cao
- Thông tin vị trí mà GPS cung cấp là được miêu tả trong không gian 3 chiều,
các thông tin vị trí cung cấp như chiều dọc, chiều ngang, độ cao(hay còn gọi là kinh
độ, vĩ độ, cao độ)
2.1.2 Nghiên cứu các thành phần hệ thống GPS
2.1.2.1 Các thành phần hệ thống GPS
Hệ thống GPS gồm có 3 thành phần chính:
‐ Phần vũ trụ: Gồm các vệ tinh và sự truyền phát tín hiệu
‐ Phần điều khiển: Là các trạm trên mặt đất có nhiệm vụ nhận tín hiệu từ các vệ
tinh, từ đó kiểm tra các vệ tinh, tính toán quĩ đạo chuyển động và đưa ra các điều
chỉnh cần thiết để các vệ tinh luôn hoạt động chính xác
‐ Phần người dùng: Gồm người dùng và thiết bị thu GPS
2.1.2.2 Nguyên lý định vị GPS
Trang 1815
a Định vị tuyệt đối (point positioning)
Đây là trường hợp sử dụng máy thu GPS để xác định ngay toạ độ của điểm
quan sát trong hệ toạ độ WGS84 Đó có thể là các thành phần toạ độ vuông góc
không gian (X, Y, Z) hoặc các thành phần toạ độ mặt cầu (B, L, H)
Việc đo GPS tuyệt đối được thực hiện trên cơ sở sử dụng đại lượng đo là
khoảng cách giả từ vệ tinh đến máy thu theo nguyên tắc giao hội cạnh không gian từ
các điểm đã biết toạ độ là các vệ tinh
b Định vị tương đối (Relative Positioning)
Đo GPS tương đối là trường hợp sử dụng hai máy thu GPS đặt ở hai điểm quan
sát khác nhau để xác định ra hiệu toạ độ vuông góc không gian (∆X, ∆Y, ∆Z) hay
hiệu toạ độ mặt cầu (∆B, ∆L, ∆H) giữa chúng trong hệ toạ độ WGS 84
2.1.2.3 Các phương pháp đo GPS
Hiện nay, tuỳ từng tính chất công việc, độ chính xác các đại lượng cần tìm mà
người ta sử dụng phương pháp đo cho phù hợp Hiện nay trong thực tế có một số kỹ
thuật đo như sau:
a Đo cải chính phân sai DGPS (Code-based Differential GPS)
Hiện nay do nhu cầu định vị với độ chính xác cao từ vài mét đến vài dm, chính
vì vậy các nhà sản xuất đã đưa ra phương pháp đo sai phân Trong phương pháp này
cần một máy thu GPS được kết nối với một bộ điều biến để phát tín hiệu đặt tại
điểm gốc, một số máy khác (máy di động) đặt tại vị trí các điểm cần xác định toạ độ
Cả máy cố định và máy thu cùng thu tín hiệu vệ tinh như nhau Nếu thông tin từ vệ
tinh bị nhiễu thì kết quả xác định toạ độ của máy cố định và máy thu cùng bị sai lệch
như nhau Độ sai lệch này được xác định trên cơ sở so sánh toạ độ tính theo tín hiệu
và toạ độ của máy cố định đã biết trước Sai lệch đó được máy cố định phát qua
sóng vô tuyến để máy di động nhận được và hiệu chỉnh kết quả cho các điểm đo
Ngoài cách hiệu chỉnh toạ độ thì người ta còn tiến hành hiệu chỉnh khoảng cách
từ vệ tinh tới máy thu Cách hiệu chỉnh này đòi hỏi máy thu cố định có cấu tạo phức
tạp và tốn kém hơn, nhưng cho phép người sử dụng, xử lý chủ động và linh hoạt
hơn
Phương pháp này có hai cách xử lý số hiệu chỉnh tại điểm di động:
- Phương pháp xử lý tức thời (Real time)
- Phương pháp xử lý sau (post processing)
b Đo tĩnh (Static)
Đo tĩnh (Static) hay đo tĩnh nhanh (Fast-Static) là phương pháp đo tương đối,
sử dụng 2 hoặc nhiều máy thu đồng thời tín hiệu trong một thời gian dài để xác định
Trang 1916
ra hiệu toạ độ giữa các máy thu Các trạm đo đồng thời sẽ tạo thành các đoạn đo
(session)
Đo tĩnh là phương pháp đo có độ chính xác cao nhất, ở khoảng cách dài từ vài
chục đến vài trăm km thì người ta thường sử dụng máy đo hai tần số L1, L2 để khắc
phục sai số do tầng điện ly
c Đo động (Kinematic)
Cơ sở của định vị động là dựa trên sự khác nhau của trị đo giữa hai chu kỳ đo
(epoch), được nhận bởi một máy thu tín hiệu của chính vệ tinh nào đó chuyển đến
Sự thay đổi đó tương đương với sự thay đổi khoảng cách địa diện đến vệ tinh
Phương pháp đo động cũng được thực hiện theo hai chế độ là đo động xử lý
sau (Post Processing Kinematic- viết tắt là PPK) và đo động thời gian thực (Real
Time Kinematic- viết tắt là RTK) Trong phương pháp PPK, toạ độ sẽ được tính
toán xử lý trong phòng do vậy không cần đến Radio Link, nhưng với RTK thì thiết
bị đó không thể thiếu được, nó đóng vai trò trong việc truyền đi tín hiệu chứa các số
hiệu chỉnh về toạ độ từ trạm máy base
d Đo giả động (Pseudo-Kinematic)
Phương pháp đo giả động cho độ chính xác không cao bằng phương pháp đo
động Phương pháp này cho phép xác định vị trí tương đối của hàng loạt điểm so với
điểm đã biết trong khoảng thời gian đo khá nhanh
Máy cố định cũng phải tiến hành thu tín hiệu trong suốt chu kỳ đo, máy di
động được chuyển tới các điểm cần xác định và mỗi điểm thu tín hiệu 5-10 phút
Sau khi đo hết lượt máy di động quay trở về điểm xuất phát và đo lặp lại tất cả các
điểm theo đúng trình tự như trước, nhưng phải đảm bảo khoảng thời gian dãn cách
giữa hai lần đo tại mỗi điểm không ít hơn 1 tiếng đồng hồ Yêu cầu nhất thiết của
phương pháp này là phải có ít nhất 3 vệ tinh chung cho cả hai lần đo tại mỗi điểm
quan sát
Điều đáng chú ý nhất trong phương pháp này là máy di động không cần thu tín
hiệu vệ tinh liên tục trong suốt chu kỳ đo như phương pháp đo động, tại mỗi điểm
đo máy chỉ đo 5-10 phút sau đó có thể tắt máy trong lúc di chuyển đến điểm khác
Điều này cho phép áp dụng cả ở những khu vực có nhiều vật che khuất
2.1.2.4 Cách xác định vị trí trên mặt đất thông qua hệ thống GPS
Chúng ta biết, phần sử dụng trong hệ thống GPS bao gồm các thiết bị thu tín
hiệu từ vệ tinh Mỗi vệ tinh quay quanh trái đất 2 vòng một ngày đêm Quỹ đạo của
các vệ tinh được tính toán sao cho ở bất kỳ nơi nào trên trái đất, vào bất kỳ thời
điểm nào, cũng có thể “nhìn thấy” tối thiểu 4 vệ tinh Công việc của một máy thu
GPS là xác định vị trí của 4 vệ tinh hay hơn nữa, tính toán khoảng cách từ các vệ
Trang 2017
tinh và sử dụng các thông tin đó để xác định vị trí của chính nó Vì phải dựa vào ít
nhất là tín hiệu của 4 vệ tinh thì thông tin về vị trí mới chính xác cao
Các thiết bị thu GPS xác định quãng đường (S) từ vệ tinh đến nó, bằng cách:
lấy thời gian(T) nhân với vận tốc của ánh sáng (V = 3.108 m/s)
S = V.T Quá trình xác định vị trí dựa trên một nguyên lý toán học đơn giản
Áp dụng nguyên lý này vào không gian ba chiều, ta cũng có ba mặt cầu thay vì
ba đường tròn, giao nhau tại một điểm
Để thực hiện tính toán đo khoảng cách từ vệ tinh, máy thu GPS phải biết hai
thứ tối thiểu:
- Vị trí của ít nhất ba vệ tinh bên trên nó
- Khoảng cách giữa máy thu GPS đến từng vệ tinh nói trên
2.2 Tìm hiểu về Android
2.2.1 Giới thiệu về Android
Android là hệ điều hành trên điện thoại di động phát triển bởi Google và dựa
trên nền tảng Linux Trước đây, Android được phát triển bởi công ty liên
hợp Android, sau đó được Google mua lại vào năm 2005
Android là một môi trường phần mềm được xây dựng cho các thiết bị di động
Nó không là nền tảng vể phần cứng Android bao gồm một Linux kernel làm nền
cho hệ điều hành, một giao diện người dùng phong phú, các ứng dụng cho người
dùng cuối, thư viện hỗ trợ lập trình và nhiều hỗ trợ về truyền thông đa phương tiện
khác
Một trong những tính năng mạnh mẽ nhất của nền tảng Android là không có sự
khác biệt giữa các ứng dụng được xây dựng vận hành trên thiết bị và ứng dụng
người dùng được tạo ra bởi SDK Điều này có nghĩa là các ứng dụng đó có thể được
viết để khai tháo các tài nguyên có sẵn trên thiết bị
2.2.2 Kiến trúc của Android
Android là một kho phần mềm cho các thiết bị di động bao gồm một hệ điều
hành, middleware và các ứng dụng chính Android SDK cung cấp các công cụ và
giao diện người dùng cần thiết để bắt đầu phát triển ứng dụng cho nền tảng Android
sử dụng ngôn ngữ lập trình Java
Trang 2118
Hình 2.1 : Mô hình kiến trúc các lớp Android
2.2.2.1 Application
Có các ứng dụng được viết bằng ngôn ngữ Java Một số các chương trình đơn
giản bao gồm lịch, email client, SMS, bản đồ, trình duyệt web…Đây là tầng mà
người sử dụng bình thường sử dụng thường xuyên nhất là phần cơ bản cần phải có
của một ứng dụng, tất cả các tầng còn lại được sử dụng bởi người lập trình, các nhà
phát triển và các hãng sản xuất phần cứng
2.2.2.2 Application Framework
Đây là bộ khung mà tất cả các nhà phát triển Android phải làm theo Các nhà
phát triển có thể truy cập tất cả các API quản lý các chức năng cơ bản của điện thoại
như phân bổ nguồn tài nguyên, chuyển đổi giữa các tiến trình, chương trình hoặc các
ứng dụng điện thoại, lưu giữ vị trí địa lý của điện thoại
Các kiến trúc được thiết kế tốt để đơn giản hóa việc dùng lại các thành phần
Những khung ứng dụng (Application Framework) như là một bộ công cụ cơ bản mà
một nhà phát triển có thể sử dụng để xây dựng các công cụ phức tạp hơn
2.2.2.3. Libraries
Tầng này bao gồm các thư viện Android được viết bằng C, C + +,phục vụ cho
việc lập trình của các lập trình viên và được sử dụng bởi các hệ thống khác nhau
Các thư viện này sẽ cho các thiết bị biết làm thế nào để xử lý các loại dữ liệu khác
Trang 2219
nhau và cách tiếp xúc với các nhà phát triển Android thông qua khuôn khổ ứng dụng
Android Một số thư viện bao gồm các phương tiện truyền thông, đồ họa, 3d,
SQLite, thư viện trình duyệt web…
2.2.2.4 Runtime Android
Tầng này bao gồm tập hợp các thư viện cơ sở cần thiết cho thư viện java.Mỗi
ứng dụng Android được dành riêng một máy ảo Dalvik Dalvik đã được viết để cho
một thiết bị có thể chạy nhiều máy ảo một cách hiệu quả và nó thực thi tập tin thực
thi để tối ưu hóa cho bộ nhớ
2.2.2.5 Linux Kernel
Tầng này bao gồm các chương trình quản lý bộ nhớ của Android, thiết lập bảo
mật, phần mềm quản lý điện năng và một số trình điều khiển cho phần cứng, truy
cập hệ thống tập tin, mạng Kernel cũng hoạt động như một lớp trừu tượng giữa
phần cứng và phần còn lại của chồng phần mềm (software stack)
2.2.3 Công cụ cài đặt Android
Để lập trình Android thì mỗi bộ SDK của Google là không đủ, còn cần tích hợp
nó vào một IDE như Eclipse hay Netbeans Với Netbeans hiện nay thì plugin
cho Android vẫn chưa hoàn thiện, trong khi đó Eclipse có nhiều tính năng hỗ trợ lập
trình Google API Để sử dụng cho lập trình ứng dụng này nên xài Eclipse Để tải các
gói có thể xem thông tin của từng gói:
nhất một bản Bạn dùng bản nào thì check bản đó, có thể chọn nhiều bản cho tiện lập
trình
các lớp (phần này chắc chắn không thể thiếu rồi)
của Google (như Google Map nếu bạn muốn lập trình liên quan đến GPS)
dụng test bằng điện thoại thật
2.2.4 Các thành phần cấu tạo nên ứng dụng Android :
Một ứng dụng Android khi được xây dựng nên sẽ được đóng gói thành file cài
đặt dạng *.apk Bên trong của một ứng dụng gồm có các thành phần:
Trang 2320
động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi, hiển
thị màn hình giao diện của ứng dụng cho phép người dùng tương tác
nhật dữ liệu, đưa ra các cảnh báo(Notification) và không bao giờ hiển thị cho người
dùng thấy
quản lý và chia sẻ dữ liệu giữa các ứng dụng
thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong
muốn VD: Khi mở 1 trang web, bạn gửi 1 intent đi để tạo 1 activity mới hiển thị
trang web đó
Bạn viết 1 chương trình thay thế cho phần gọi điện mặc định của Android, khi đó
bạn cần 1 BR để nhận biết các Intent là các cuộc gọi tới
hoạt động
Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần
chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo
trong AndroidManifest
2.2.5 Cấu trúc một Project Android
Đầu tiên chúng ta cần biết cấu trúc và chức năng các tệp trong thư mục dự án
của một ứng dụng Android Khi bạn tạo một ứng dụng Android, cấu trúc thư mục
dự án sẽ như sau:
tả ứng dụng, các thông tin này rất quan trọng và hệ thống Android cần phải có nó
trước khởi chạy ứng dụng
mục nào đó, tương ứng với package tương ứng theo cấu trúc
/myPackagePath/ /MyClass.java B ạn phải có ít nhất một tệp java ở trong một
package nào đó
bạn Tài nguyên có thể là các tệp dữ liệu ở ngoài hay các tệp mô tả, và khi build ứng
dụng các tài nguyên này cũng sẽ được compile Các tệp ở trong thư mục khác nhau
thì sẽ được compile khác nhau, vì vậy bạn phải đặt đúng tài nguyên vào thư mục phù
Trang 2421
hợp Trong thư mục này sẽ có các thư mục con tương ứng với một kiểu tài nguyên
như sau:
tệp xml mô tả thông tin animation mà ứng dụng sử dụng
drawable/ (Có thể có hoặc không): Chứa các tệp ảnh (như some_picture.png,
some_stretchable.9.png, ), hoặc tệp XML (như some_background.xml, ) mô tả
thông tin thêm về ảnh Các tệp này được compile tới android.graphics.drawable
một phần màn hình ứng dụng, chẳng hạn như screen_1_layout.xml Mặc dù bạn có
thể tạo nó bằng lệnh của Java nhưng việc sử dụng tệp XML để mô tả sẽ dễ dàng và
đơn giản hơn nhiều
dimens.xml, strings.xml, styles.xml, values.xml để mô tả các tài nguyên thêm như
strings, colors, và styles Tên và số lượng các tệp này tùy ý bạn, không bắt buộc
nhưng tất nhiên bạn phải tuân theo chuẩn đặt tên
thể không cần
-raw/: Chứa tệp bất kỳ, các tệp này sẽ được copy trực tiếp lên thiết bị Thư mục
này cũng có thể hoặc không có
2.3 Webservice
2.3.1 Dịch vụ Web là gì ?
Theo định nghĩa của W3C (World Wide Web Consortium), dịch vụ Web là một
hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng
trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết
của nó được mô tả bằng XML Dịch vụ Web là tài nguyên phần mềm có thể xác
định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng
yêu cầu
Một dịch vụ Web được tạo nên bằng cách lấy các chức năng và đóng gói chúng
sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ
mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ dịch vụ Web khác Nó bao
gồm các module độc lập cho hoạt động của khách hàng và doanh nghiệp và bản thân
nó được thực thi trên server
2.3.2 Đặc điểm Webservice
2.3.2.1 Đặc điểm
Trang 2522
‐ Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả
trong những môi trường khác nhau
‐ Một Dịch vụ Web bao gồm có nhiều module và có thể công bố lên mạng
Internet
‐ Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server
Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP,
Oracle Application server hay Microsoft.Net…
2.3.2.2 Ưu và nhược điểm
Ưu điểm:
‐ Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần
mềm khác nhau chạy trên những nền tảng khác nhau
‐ Sử dụng các giao thức và chuẩn mở Giao thức và định dạng dữ liệu dựa trên
văn bản (text), giúp các lập trình viên dễ dàng hiểu được
‐ Nâng cao khả năng tái sử dụng
‐ Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các
tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web
‐ Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong
hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán
‐ Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt
động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh
nghiệp khác
‐ Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web,
giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu
các giao thức cho việc vận hành
‐ Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt
‐ Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật
2.3.3 Các thành phần của Webservice
2.3.3.1 XML – eXtensible Markup Language
‐ Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử
dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu
B2B Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗi trang web và
được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả mã nguồn
mở
Trang 2623
‐ Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử
dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp XML là công cụ
chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch
vụ Web, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML
2.3.3.2 WSDL – Web Service Description Language
WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML,
bao gồm các thông tin:
‐ Tên dịch vụ
‐ Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của Webservice
‐ Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của
dịch vụ Web cộng với tên cho giao diện này)
‐ Một WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phương
thức kết nối) và phần thi hành mô tả thông tin truy xuất CSDL Cả hai phần này sẽ
được lưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin thi
hành dịch vụ
‐ WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấp
dịch vụ Web qua Internet Một client khi kết nối tới dịch vụ Web có thể đọc WSDL
để xác định những chức năng sẵn có trên server Sau đó, client có thể sử dụng SOAP
để lấy ra chức năng chính xác có trong WSDL
2.3.3.3 Universal Description, Discovery, and Integration (UDDI)
UDDI định nghĩa một số thành phần cho phép các client truy tìm và nhận
những thông tin được yêu cầu khi sử dụng dịch vụ Web
Cấu trúc UDDI :
‐ Trang trắng – White pages: chứa thông tin liên hệ và các định dạng chính yếu
của dịch vụ Web, chẳng hạn tên giao dịch, địa chỉ, thông tin…
‐ Trang vàng – Yellow pages: chứa thông tin mô tả dịch vụ Web theo những
loại khác nhau
‐ Trang xanh – Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các
chức năng của dịch vụ Web
‐ Loại dịch vụ – tModel: chứa các thông tin về loại dịch vụ được sử dụng
2.3.3.4 SOAP – Simple Object Access Protocol
‐ SOAP là một giao thức giao tiếp có cấu trúc như XML Nó được xem là cấu
trúc xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và
các hệ điều hành khác nhau SOAP là giao thức thay đổi các thông điệp dựa trên
XML qua mạng máy tính, thông thường sử dụng giao thức HTTP
Trang 2724
SOAP envelope SOAP header Hearder block Hearder block SOAP body Body subelement
‐ Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi
những thông điệp trả lời tới client Cả SMTP và HTTP đều là những giao thức ở lớp
ứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày
nay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet
Hinh 2.2 :Cấu trúc một thông điệp theo dạng SOAP
Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao gồm
các phần tử sau:
Phần tử gốc – envelop: phần tử bao trùm nội dung thông điệp, khai báo văn bản
XML như là một thông điệp SOAP
Phần tử đầu trang – header: chứa các thông tin tiêu đề cho trang, phần tử này
không bắt buộc khai báo trong văn bản Header còn có thể mang những dữ liệu
chứng thực, những chứ ký số, thông tin mã hóa hay cài đặt cho các giao dịch khác
Phần tử khai báo nội dung chính trong thông điệp – body, chứa các thông tin
yêu cầu và thông tin được phản hồi
Phần tử đưa ra các thông tin về lỗi -fault, cung cấp thông tin lỗi xảy ra trong
qúa trình xử lý thông điệp
Có 3 kiểu thông báo sẽ được đưa ra khi truyền thông tin: request message(tham
số gọi thực thi một thông điệp), respond message (các tham số trả về, được sử dụng
khi yêu cầu được đáp ứng) và cuối cùng là fault message (thông báo tình trạng lỗi)
Kiểu truyền thông: Có 2 kiểu truyền thông
Remote procedure call (RPC): cho phép gọi hàm hay thủ tục qua mạng Kiểu
này được khai thác bởi nhiều dịch vụ Web
Document: được biết đến như kiểu hướng thông điệp, nó cung cấp giao tiếp ở
mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công sức hơn
Trang 2825
Cấu trúc dữ liệu: Cung cấp những định dạng và khái niệm cơ bản giống như
trong các ngôn ngữ lập trình khác như kiểu dữ liệu (int, string, date…) hay những
kiểu phức tạp hơn như struct, array, vector… Định nghĩa cấu trúc dữ liệu SOAP
được đặt trong namespace SOAP-ENC
Mã hóa: Giả sử service requester và service provider được phát triển
trong Java, khi đó mã hóa SOAP là làm thế nào chuyển đổi từ cấu trúc dữ
liệu Java sang SOAP XML và ngược lại, bởi vì định dạng cho Web Service chính là
XML
Trang 2926
3.1 Phân tích thực trạng
Ngày nay khi chiếc điện thoại di động được sử dụng rộng rãi hơn và phát triển
với công nghệ cao hơn thì nó góp phần không nhỏ giúp ích cho cuộc sống Cùng với
nó là sự ra đời của các phần mềm tiện ích phục vụ cho cuộc sống phải kể đến phần
mềm bản đồ và cụ thể hơn là các phần mềm phục vụ cho việc đi lại của người Việt
Trên thị trường đã có nhiều phần mềm bản đồ nhưng thường bị hạn chế về mặt dữ
liệu Mặt khác là bản đồ dành cho người Việt thể hiện các tỉnh thành của đất nước
cũng ít
Mặt khác phần mềm điện thoại thời xưa còn bị hạn chế về mặt dữ liệu ( thường
đi kèm theo chương trình) còn những phần mềm hoạt động theo mô hình Client-
Server còn ít do tốc độ truyền dữ liệu giữa Client và Server còn hạn chế Tuy nhiên,
với sự phát triển không ngừng của các nhà cung cấp dịch vụ đã đưa ra một công
nghệ đường truyền cao với dịch vụ 3G, 4G cho chất lượng đường truyền tốt hơn
Nắm bắt được thực tế thì ngày nay việc đi lại của người dân thành phố một
phần lớn là đi bằng xe buýt và khách du lịch cũng sử dụng nó Việc xây dựng phần
mềm báo trạm và tìm kiếm tuyến xe là rất có ích có thể thay thế được các bản đồ
giấy thông thường
3.2 Phân tích xác định yêu cầu
Dựa vào các yêu cầu của một ứng dụng cần thiết đưa ra các chức năng của ứng
dụng như sau :
Phía Client (Ứng dụng Anroid):
- Hiển thị bản đồ đường đi trực tuyến
- Menu lựa chọn chức năng ứng dụng
- Phóng to thu nhỏ bản đồ
- Di chuyển bản đồ
- Kết nối và lấy vị trí GPS
- Tìm kiếm thông tin các tuyến xe
- Hiển thị tất cả các trạm trên một tuyến xe
- Hiển thị thông tin từng trạm xe khi chọn trên bản đồ
- Lấy thông tin từng tuyến xe khi chọn 1 tuyến xe trên danh sách tuyến xe
Trang 3027
- Hiển thị các trạm xe bus xung quanh vị trí GPS hay một điểm khi chọn trên
bản đồ ứng dụng
- Báo cáo thời gian một tuyến xe buýt gần đến trạm người dùng đang đứng
Phía Server (Web servies):
- Tiếp nhận các kết nối từ Client và xử lý các giá trị thông số mà Client gửi
đến
- Có thể cập nhật các giá trị trong bảng Cơ sở dữ liệu
- Các hàm có các truy vấn để trả về giá trị tương ứng mà Client muốn truy
xuất
- Đảm bảo có thể cung cấp cho nhiều Client kết nối đến
Yêu cầu của ứng dụng :
- Hỗ trợ trên các thiết bị có chạy hệ điều hành Android từ các phiên bản thấp
nhất
- Tốc độ tải bản đồ về ứng dụng và tìm kiếm tuyến xe không quá chậm
- Lấy dữ liệu từ webservcies và có thể cập nhật dữ liệu từ server
- Hoạt động trên môi trường kết nối Internet và định vị GPS
3.3 Thiết kế ứng dụng
3.3.1 Xây dụng ứng dụng trên Android
3.3.1.1 Vòng đời của một ứng dụng Android
Trong một ứng dụng Android có nhiều thành phần, mỗi thành phần của ứng
dụng đều có một chu kỳ sống riêng Bắt đầu được tạo(OnCreate( )) cho đến khi kết
thúc(OnDestroy( )) Chúng có thể ở trạng thái hoạt động hay không hoạt động, được
hiển thị hoặc ẩn trên màn hình
Trong vòng đời thì Activity bao gồm 4 trạng thái(state):
‐ Active (running): Activity đang hiển thị trên màn hình(foreground)
‐ Paused: Activity vẫn hiển thị(visible) nhưng không thể tương tác(lost focus)
‐ Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái
Stop
‐ Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo
nguyên tắc ưu tiên Các Activity ở trạng thái Stop hoặc Paused cũng có thể bị giải
phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn
và phục hồi lại trạng thái trước đó
Trang 3128
Hình 3.1 : Vòng đời một ứng dụng Android
- onCreate(): được gọi khi Activity được khởi tạo lần đầu tiên
- onStart(): Được gọi trước khi một Activity visible với người dùng
- onResume(): được gọi trước khi Activity bắt đầu tương tác với người dùng
- onPause(): được gọi khi hệ thống đang resuming Activity khác
- onStop(): được gọi khi hệ thống không thuộc tầm nhìn của người dùng
Trang 3229
- onDestroy(): được gọi trước khi Activity bị hủy
3.3.1.2 Các bước tạo một Project Android
Sử dụng bộ công cụ SDK và trương chình Elipse để tạo ứng dụng
Ở màn hình Eclipse, bấm File New Project Android Android
Project Next
Ở màn hình kế nhập liệu vào các ô như sau:
- Project name: BusHCM (tên project hiển trị trên eclipse cũng sẽ là thư mục
chứ ứng dụng trong workspace)
- Application name: HelloWorld (tên ứng dụng sẽ hiện thị trên điện thoại)
- Create activity: HelloWorldActivity (tạo một lớp con của lớp Activity, dùng
để hiển thị một màn hình ở đây là màn hình HelloWorld của chúng ta)
- Min SDK version: 4 (tức SDK 1.6, ở đây chúng ta khai báo là ứng dụng này
có thể đáp ứng được phiên bản SDK cũ nhất là phiên bản nào)
Sau khi hoàn tất bấm Finish, project mới đã được tạo
- Để ứng dụng có thể truy cập vào Internet hay kết nối GPS trao đổi dữ liệu thì
cần cung cấp quyền cho ứng dụng Tất cả được thực hiện trong Android Mainfrest
- Cấp quyền cho ứng dụng truy cập internet ta chỉnh trong