xây dựng ứng dụng tra cứu thông tin tìm đường xe buýt kết hợp nhận diện giọng nói - Pdf 23

LỜI CẢM ƠN
Trong suốt quá trình học tập và hoàn thành luận văn này, tôi đã nhận được rất
nhiều sự quan tâm, sự hướng dẫn, giúp đỡ quý báu của quý Thầy, Cô, gia đình và bạn
bè.
Với lòng kính trọng và biết ơn sâu sắc, tôi xin được bày tỏ lời cảm ơn chân thành
tới Th.s Đặng Nhân Cách, người thầy kính mến đã hết lòng giúp đỡ, dạy bảo, hướng
dẫn và tạo mọi điều kiện thuận lợi cho tôi trong suốt quá trình nghiên cứu tìm hiểu để
hoàn thành luận văn.
Tiếp theo, tôi cũng xin chân thành cám ơn quý Thầy, Cô trong khoa Công Nghệ
Thông Tin, đặc biệt là chuyên nghành Mạng Máy Tính và Truyền Thông đã tạo rất
nhiều điều kiện để tôi học tập.
Cuối cùng con xin gửi lời biết ơn tới gia đình, nơi đã sinh thành, nuôi dưỡng và
động viên con rất nhiều trong thời gian qua.
Mặc dù tôi đã có nhiều cố gắng để hoàn thành luận văn bằng tất cả sự nhiệt tình
và năng lực của mình, tuy nhiên do trình độ lý luận cũng như kinh nghiệm thực tiễn
còn hạn chế nên bài báo cáo không thể tránh khỏi những thiếu sót, tôi rất mong nhận
được những đóng góp quý báu của quý Thầy, Cô để tôi có thể có thêm kinh nghiệm rút
ra cho bản thân.
TP.HCM, ngày 22 tháng 12 năm 2013
Sinh viên thực hiện
Đỗ Minh Tuấn
LỜI CAM ĐOAN
Tôi xin cam đoan rằng đây là luận văn tốt nghiệp của riêng tôi dưới sự hướng dẫn
trực tiếp của Th.S Đặng Nhân Cách. Những tài liệu và bảng biểu phục vụ cho việc
phân tích, nhận xét, đánh giá được tôi thu thập từ các nguồn khác nhau được trích dẫn
rõ ràng có ghi trong phần “Tài liệu tham khảo“ và không hề sao chép nội dung từ bất
kỳ đồ án nào khác.
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm trước
Hội đồng, cũng như kết quả luận văn của mình.
TP.HCM, ngày 22 tháng 12 năm 2013
Sinh viên thực hiện

Vấn đề ứng dụng tra cứu, tìm kiếm xe buýt đã xuất hiện trên nền tảng web như
trên trang của sở giao thông vận tải TP.HCM, tuy nhiên trên nền
tảng thiết bị di động Android thì vẫn còn ít và chưa đầy đủ các tính năng cần thiết.Ứng
dụng của chính Google thì dữ liệu xe buýt đã cũ, các tuyến mới chưa được cập nhật
nên đã gây khó khăn cho người sử dụng.
Điển hình ứng dụng trên nền tảng di động Android đó là ứng dụng Pbus của một
nhóm sinh viên Đại Học Bách Khoa TP.HCM. Trên nền tảng Ios thì có ứng dụng
IUBUS của sinh viên trường Đại Học Khoa Học Tự Nhiên TP.HCM.
6
3. Mục đích nghiên cứu:
Đề tài được xây dựng nhằm tạo ra một ứng dụng hữu ích, hỗ trợ đặc biệt cho sinh
viên, người dân khi đi xe buýt để đảm bảo những thông tin chính xác, nhanh chóng, tiết
kiệm chi phí, thời gian cho người dùng, đặc biệt có thể góp phần thu hút người dân đi
xe buýt.
Người dùng có thể chủ động thiết lập địa điểm để thông báo khi gần đến để tránh
đi quá lộ trình cần đi, đồng thời ứng dụng còn sử dụng hệ thống nhận diện giọng nói để
hỗ trợ người dùng khi không thể thao tác bằng tay.
4. Nhiệm vụ nghiên cứu:
- Khảo sát lộ trình của các tuyến xe buýt trong Thành Phố Hồ Chí Minh.
- Khảo sát tọa độ của từng trạm của các tuyến xe buýt.
- Tìm kiếm, lựa chọn và so sánh để đưa ra các tuyến đường tốt nhất.
- Hiển thị những cảnh báo khi người dùng gần tới hoặc khi đi xa địa điểm cần
thiết.
- Hỗ trợ nhận diện giọng nói cho người dùng khi không thể thao tác bằng tay.
5. Phương pháp nghiên cứu:
- Tham khảo dữ liệu các tuyến xe buýt, các trạm xe buýt cùng các tọa độ của các
trạm trên website của sở giao thông vân tải TP.HCM.
- Tham khảo tài liệu giấy từ nguồn luận văn của thư viện trường.
- Tham khảo các lý thuyết cơ bản của Android thông qua các API được Google
đưa lên chính website của mình.

Chương 4: Kết luận.
Nội dung chương 4 trình bày các kết quả đạt được của ứng dụng, ưu điểm và
nhược điểm của ứng dụng, hướng phát triển của ứng dụng.
9
CHƯƠNG 1: KIẾN THỨC NỀN TẢNG
1.1. Hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux thiết kế dành cho các thiết
bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng.
Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài
chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt
vào năm 2007 và chiếc điện thoại đầu tiên chạy Android được bán vào tháng 10 năm
2008
[2]
.
Android có mã nguồn mở và Google phát hành mã nguồn theo giấy phép Apache.
Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép
các nhà phát triển thiết bị mạng di động và các lập trình viên nhiệt huyết được điều
chỉnh và phân phối Android một cách tự do.
Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo, chuyên viết các
ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java.
Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android và số lượt tải ứng
dụng từ Google Play ước tính khoảng 25 tỷ lượt
[2]
.
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ
biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được các công ty công
nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, và
giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu.
Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và
những người đam mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản

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
Hình 1.1: Kiến trúc và các thành phần của hệ điều hành Android
[8]
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.
12
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. Các thư viện được tập hợp thành
một số nhóm như: System C Library, Media Libraries, LibWebCore, Surface Manager,
SGL, SQLite, Free Type, SSL, Open GL/EL.
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. Tầng này có 2 bộ phận bao gồm thư viện lõi (Core Library) và một máy ảo
java tên là Davik (Davik Virtual Machine).
Framework
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. 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, Content Provider, Resource Manager, Notification Manager,
Activity Manager.
Applications
Đây là lớp ứng dụng giao tiếp với người dùng. Các ứng dụng cho android cũng
như các ứng dụng được tải về và cài đặt từ AndroidMarket hay bất kỳ ứng dụng nào
được viết được tại tầng này.
Các ứng dụng phải viết bằng Java và có phần mở rộng là .apk. Khi mỗi ứng dụng
được chạy, nó có một máy ảo Davik được dựng lên để phục vụ cho nó.
1.1.4. Các khái niệm cơ bản trong lập trình Android

Broadcast Receive
Một Broadcast Receiver 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.
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.
Hình 1.4: Cấu trúc View trong Android
[7]
16
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.
1.2. Cơ sở dữ liệu SQLite
1.2.1. Khái niệm về SQLite
SQLite là hệ thống cơ sở dữ liệu quan hệ nhỏ gọn, hoàn chỉnh được Richard Hipp
viết dưới dạng thư viện bằng ngôn ngữ lập trình C.
SQLite là một bộ thư viện dùng trong lập trình để hiện thực một SQL Database
Engine có khả năng tự tổ chức quản lý dữ liệu, không cần server, không cần cấu hình
mà vẫn hỗ trợ đầy đủ các tính năng quản lý thao tác. SQLite hiện đang là SQL
Database Engine được sử dụng nhiều nhất trên thế giới do tính cơ động cao, dễ sử
dụng, gọn nhẹ, hiệu quả và tin cậy
[7]
.
1.2.2. Ưu điểm của SQLite
SQLite có các ưu điểm sau:
- Tin cậy : Các hoạt động transaction (chuyển giao) trong cơ sở dữ liệu được
thực

1.3.3. Phân loại Webservice
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 essaging.
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.
1.3.4. Ưu và nhược điểm Webservice
Ư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, 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 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.
19
Nhược điểm:
- 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.
1.4. Google Maps API Web Services
1.4.1. Khái niệm Google Map
Google Maps 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

dụng có chứa những dữ liệu nhạy cảm như tọa độ người dùng.
/>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. Điều này là đặc biệt quan trọng cho các thiết bị di động.
21
Nếu ứng dụng Google Maps 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.
Kết quả trả về
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 gở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.
1.4.4. Google Geocoding API
Mã hóa địa lý là gì
Mã hóa địa lý là quá trình chuyển địa chỉ sang tọa độ địa lý để đánh dấu trên bản
đồ. Có thể mô tả mã hóa địa lý giống như chuyển đổi từ “Ngã tư hàng xanh” qua tọa
độ địa lý bao gồm vĩ độ 10.802740 và kinh độ 106.695590.
Ngoài ra dich vụ Google Geocoding API còn cho phép giải mã từ tọa độ địa lý
sang địa chỉ cụ thể.
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.
Giới hạn sử dụng
Google Geocoding API giới hạn ở 2.500 truy vấn mỗi ngày. Nếu trả phí con số
này tăng lên 100.000 truy vẫn mỗi ngày. 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.
22
Geocoding API request

• INVALID_REQUEST: Thông báo chuỗi request URL không hợp lệ.
- Thẻ result có các trạng thái sau:
• type[]: Một tập thẻ type cho biết kiểu của kết quả trả về. Chứa một hay
nhiều kiểu của địa danh, ví dụ khi mã hóa địa lý Ngã tư hàng xanh sẽ trả
về hai giá trị type là political và locality.
• formatted_address: Địa chỉ bằng chữ.
• address_component[]: Chứa một mảng các thành phần địa lý.
- Mỗi thẻ address_component chứa:
• type[]: Kiểu của thành phần địa lý.
• long_name: Tên đầy đủ của thành phần địa lý.
• short_name: Tên viết tắt của thành phần địa lý.
24
- Các giá trị của type:
• street_address: Địa chỉ đường.
• route: Địa chỉ tuyến đường (chỉ có ở Mĩ).
• intersection: Ngã tư lớn, giao nhau giữa hai con đường chính.
• political: Địa chỉ hành chính.
• country: Quốc gia, là địa chỉ cấp cao nhất.
• administrative_area_level_1: Địa chỉ hành chính cấp 1 dưới cấp quốc gia,
ở Việt Nam là tỉnh hoặc các thành phố trực thuộc Trung ương, ở Mỹ là
bang.
• administrative_area_level_2: Địa chỉ hành chính cấp 2 dưới cấp quốc gia.
Ở Việt Nam là các quận của thành phố trực thuộc Trung ương.
• administrative_area_level_3: Địa chỉ hành chính cấp 3 dưới cấp quốc gia.
Chỉ có ở Mỹ và một số quốc gia.
• locality: Thành phố hoặc thị xã.
• sublocality: Địa chỉ hành chính dưới cấp locality.
• neighborhood: Khu phố.
• premise: Một địa điểm được đặt tên, thường là một tòa nhà hoặc một cụm
các tòa nhà được đặt chung tên.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status