Hiện nay, dị ch vụ Google Maps đã cung cấp dị ch vụ thông tin giao thông qua bản đồ cho nhiều thành phố lớn trên thế giới. Ở Việt Nam, mặc dù vấn đề ùn tắc giao thông đang rất câp thiết nhưng chưa có d ị ch vụ nào tương tự. Em xin đề xuất chủ đề khóa luận là “Hỗ trợ phát hiệ n và thông báo ùn tắc giao thông trên Android”. Mục tiêu của khóa luậ n là mô phỏng giải pháp cung cấp thông tin giao thông qua môi trường Internet và các thiết bị di động. Giải pháp được chọn là kết hợp Web Server chạy trên nền ASP.NET và phần mềm chạy trên thiết bị điện thoại di động Android.
59 trang |
Chia sẻ: vietpd | Lượt xem: 1516 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Luận văn Hỗ trợ phát hiện và thông báo ùn tắc giao thông trên android, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đậu Thanh Hải
HỖ TRỢ PHÁT HIỆN VÀ THÔNG BÁO
ÙN TẮC GIAO THÔNG TRÊN ANDROID
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Phần Mềm
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đậu Thanh Hải
HỖ TRỢ PHÁT HIỆN VÀ THÔNG BÁO
ÙN TẮC GIAO THÔNG TRÊN ANDROID
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Phần Mềm
Cán bộ hướng dẫn: TS. Trương Anh Hoàng
Cán bộ đồng hướng dẫn: TS. Đặng Đức Hạnh
HÀ NỘI - 2010
LỜI CẢM ƠN
Em xin chân thành cám ơn khoa Công nghệ thông tin, Bộ môn Công nghệ phần
mềm, trƣờng Đại học Công Nghệ đã tạo điều kiện thuận lợi cho em thực hiện đề tài
này.
Em cũng xin đƣợc gửi lời cảm ơn chân thành nhất đến thầy giáo Trƣơng Anh
Hoàng và thầy Đặng Đức Hạnh, ngƣời đã tận tình chỉ bảo và hƣớng dẫn em thực hiện
đề tài này.
Bên cạnh đó, em xin gửi lời cảm ơn đến các thầy cô giáo, những ngƣời đã giảng
dạy, tạo điều kiện cho em tích lũy đƣợc những kiến thức quý báu trong những năm học
qua.
Ngoài ra, em cũng xin gửi lời cảm ơn đến những ngƣời bạn trong lớp
K51CNPM, và lớp K51CC trƣớc đây, những ngƣời đã chia sẻ những kiến thức trong
quá trình học tập và thực hiện khóa luận tốt nghiệp.
Cuối cùng, em xin gửi lòng biết ơn sâu sắc đến cha mẹ, gia đình, bạn bè, những
ngƣời đã luôn bên cạnh, chăm sóc, ủng hộ, động viên em trong suốt thời gian học tập
và nghiên cứu.
Dù đã cố gắng hoàn thành khóa luận đúng yêu cầu, nhƣng chắc chắn sẽ có
những thiếu sót không tránh khỏi. Em mọng đƣợc sự thông cảm và tận tình chỉ bảo của
các thầy cô và các bạn.
Hà Nội, tháng 5 năm 2010
Sinh viên
Đậu Thanh Hải
TÓM TẮT NỘI DUNG
Hiện nay, dịch vụ Google Maps đã cung cấp dịch vụ thông tin giao thông qua
bản đồ cho nhiều thành phố lớn trên thế giới. Ở Việt Nam, mặc dù vấn đề ùn tắc giao
thông đang rất câp thiết nhƣng chƣa có dịch vụ nào tƣơng tự. Em xin đề xuất chủ đề
khóa luận là “Hỗ trợ phát hiện và thông báo ùn tắc giao thông trên Android”. Mục tiêu
của khóa luận là mô phỏng giải pháp cung cấp thông tin giao thông qua môi trƣờng
Internet và các thiết bị di động. Giải pháp đƣợc chọn là kết hợp Web Server chạy trên
nền ASP.NET và phần mềm chạy trên thiết bị điện thoại di động Android.
Nội dung báo cáo này đƣợc chia thành 4 phần nhƣ sau:
- Chƣơng 1. Tổng quan: Giới thiệu bối cảnh, lý do thực hiện đề tài cũng nhƣ các
giải pháp hiện thời có thể liên quan, từ đó rút ra hƣơng tiếp cận thực hiện đề tài.
- Chƣơng 2. Các kỹ thuật sử dụng: Trình bày sơ lƣợc về kỹ thuật lập trình trên
Android, ASP.NET, và Google Maps APIs.
- Chƣơng 3. Phân tích, thiết kế: Tài liệu phân tích và thiết kế chƣơng trình theo
phƣơng pháp hƣớng đối tƣợng.
- Chƣơng 4. Cài đặt, thử nghiệm: Một số điểm nét chính khi thực hiện cài đặt
và thử nghiệm Web Server và chƣơng trình giả lập điện thoại Android
- Chƣơng 5. Đánh giá và tổng kết: Nêu đánh giá toàn bộ đề tài, trình bày những
kết quả đạt đƣợc cũng nhƣ các hạn chế của đề tài từ đó đề xuất hƣớng nghiên
cứu trong tƣơng lai.
Mục lục
Chƣơng 1. TỔNG QUAN .................................................................................. 1
1.1 Yêu cầu và lý do thực hiện đề tài............................................................. 1
1.2 Mục tiêu của đề tài: .................................................................................. 2
1.3 Hƣớng tiếp cận của luận văn: .................................................................. 2
Chƣơng 2. CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG ............................................. 3
2.1 Giới thiệu về Android .............................................................................. 3
2.1.1 Phát triển ứng dụng trên Android ..................................................... 3
2.1.1.1 Cấu trúc của các tầng phần mềm trên Android .......................... 3
2.1.1.2 Kiến trúc ứng dụng trên Android ............................................... 5
2.1.1.3 Các thƣ viện trên Android .......................................................... 5
2.1.1.4 Các thành phần của ứng dụng Android ...................................... 7
2.1.1.4.1 Activity ................................................................................ 7
2.1.1.4.2 Service ................................................................................. 8
2.1.1.4.3 Broadcast receiver ............................................................... 9
2.1.1.4.4 Content Provider ............................................................... 10
2.1.1.4.5 Manifest file ...................................................................... 10
2.1.1.4.6 Các thành phần khác ......................................................... 10
2.2 Giới thiệu về ASP.NET MVC ............................................................... 10
2.2.1 ASP.NET ......................................................................................... 10
2.2.1.1 Đặc điểm của ASP.NET........................................................... 10
2.2.1.2 Một số khái niệm mới trong ASP.NET 3.5.............................. 12
2.2.1.2.1 ASP.NET AJAX ............................................................... 12
2.2.1.2.2 LINQ ................................................................................. 12
2.2.2 ASP.NET MVC .............................................................................. 13
2.2.2.1 Khái niệm MVC ....................................................................... 13
2.2.2.2 Một vài chi tiết về ASP.NET MVC ......................................... 14
2.2.2.2.1 Cấu trúc một dự án trong Visual Studio ........................... 14
2.2.2.2.2 Truyền dữ liệu từ Controller sang View ........................... 15
2.2.2.2.3 Dữ liệu động trong View của MVC .................................. 15
2.3 Giới thiệu về Google Maps .................................................................... 16
Chƣơng 3. PHÂN TÍCH THIẾT KẾ................................................................ 18
3.1.1 Phân tích .......................................................................................... 18
3.1.1.1 Phân tích dịch vụ Google Maps ............................................... 18
3.1.1.2 Phân tích yêu cầu ..................................................................... 18
3.1.1.2.1 Yêu cầu ngƣời dùng .......................................................... 18
3.1.1.2.2 Yêu cầu hệ thống............................................................... 18
3.1.2 Xây dựng biểu đồ ca sử dụng .......................................................... 19
3.1.2.1 Xác định Actor và ca sử dụng .................................................. 19
3.1.2.1.1 Tác nhân ............................................................................ 19
3.1.2.1.2 Ca sử dụng......................................................................... 19
3.1.2.2 Biểu đồ ca sử dụng ................................................................... 20
3.1.2.3 Đặc tả sơ đồ ca sử dụng ........................................................... 20
3.1.2.3.1 Xem theo bản đồ ............................................................... 20
3.1.2.3.2 Xem theo danh sách .......................................................... 20
3.1.2.3.3 Gửi thông báo .................................................................... 21
3.1.2.3.4 Thêm mới dữ liệu đƣờng................................................... 21
3.1.2.3.5 Chỉnh sử dữ liệu đƣờng ..................................................... 22
3.1.2.3.7 Xem trạng thái theo tên đƣờng.......................................... 22
3.1.2.3.8 Tạo trạng thái mới ............................................................. 22
3.1.2.3.9 Cập nhật trạng thái ............................................................ 23
3.1.2.3.10 Kết thúc trạng thái ........................................................... 23
3.1.3 Biểu đồ tuần tự ................................................................................ 24
3.1.3.1 Xem theo bản đồ ...................................................................... 24
3.1.3.2 Xem theo danh sách ................................................................. 25
3.1.3.3 Thông báo trạng thái ................................................................ 25
3.1.3.4 Xem thông tin trạng thái đƣờng ............................................... 26
3.1.3.5 Tạo trạng thái mới .................................................................... 26
3.1.3.6 Cập nhật trạng thái ................................................................... 27
3.1.3.7 Kết thúc trạng thái .................................................................... 28
3.1.4 Biểu đồ lớp ...................................................................................... 29
3.1.5 Biểu đồ hoạt động ........................................................................... 30
3.1.5.1 Xem theo bản đồ ...................................................................... 30
3.1.5.2 Xem theo danh sách ................................................................. 31
3.1.5.3 Thông báo tình trạng giao thông .............................................. 32
3.1.5.4 Xem thông tin trạng thái theo đƣờng ....................................... 33
3.1.5.5 Thêm trạng thái mới ................................................................. 34
3.1.5.6 Cập nhật trạng thái ................................................................... 35
3.1.5.7 Kết thúc trạng thái .................................................................... 36
3.1.6 Biểu đồ thành phần ......................................................................... 36
3.1.7 Biểu đồ triển khai ............................................................................ 37
3.1.8 Thiết kế giao diện ............................................................................ 38
3.1.8.1 Màn hình chính chƣơng trình trên Android ............................. 38
3.1.8.2 Giao diện xem bản đồ .............................................................. 39
3.1.8.3 Giao diện xem theo danh sách ................................................. 40
3.1.8.4 Gửi thông báo ........................................................................... 41
3.1.8.5 Màn hình hƣớng dẫn ................................................................ 42
3.1.8.6 Màn hình điều khiển trạng thái ................................................ 43
3.1.8.7 Màn hình chỉnh sửa thông tin .................................................. 44
Chƣơng 4. CÀI ĐẶT VÀ THỬ NGHIỆM ...................................................... 45
4.1 Cài đặt .................................................................................................... 45
4.1.1 Cài đặt server .................................................................................. 45
4.1.2 Cài đặt Client .................................................................................. 47
4.2 Thử nghiệm ............................................................................................ 47
Chƣơng 5. ĐÁNH GIÁ TỔNG KẾT ............................................................... 48
Danh mục bảng
Bảng 3.1 Ca sử dụng Xem theo bản đồ .............................................................. 20
Bảng 3.2 Ca sử dụng Xem theo danh sách ......................................................... 20
Bảng 3.3 Ca sử dụng Gửi thông báo .................................................................. 21
Bảng 3.4 Ca sử dụng Thêm mới dữ liệu đƣờng ................................................. 21
Bảng 3.5 Ca sử dụng Chỉnh sửa dữ liệu đƣờng .................................................. 22
Bảng 3.6 Ca sử dụng Xem trạng thái tên đƣờng ................................................ 22
Bảng 3.7 Ca sử dụng Tạo trạng thái mới ............................................................ 22
Bảng 3.8 Ca sử dụng Cập nhật trạng thái ........................................................... 23
Bảng 3.9 Ca sử dụng Kết thúc trạng thái............................................................ 23
Bảng 4.1 Các file cài đặt phần server ................................................................. 45
Bảng 4.2 Các file cài đặt trên Client................................................................... 47
Danh mục hình
Hình 2.1 Cấu trúc của các tầng phần mềm trên Android .................................... 4
Hình 2.2 Sơ đồ chuyển trạng thái của Activity ................................................... 8
Hình 2.3 Sơ đồ chuyển trạng thái của Service .................................................... 9
Hình 2.4 Vị trí của ASP.NET trong .NET Framework ..................................... 11
Hình 2.5 Cấu trúc LINQ .................................................................................... 13
Hình 2.6 Cấu trúc của mô hình MVC trên môi trƣờng Web ............................. 14
Hình 2.7 Cấu trúc dự án ASP.NET MVC trong Visual Studio 2008 ................ 14
Hình 3.1 Biểu đồ ca sử dụng ............................................................................. 20
Hình 3.2 Biểu đồ tuần tự xem theo bản đồ ........................................................ 24
Hình 3.3 Biểu đồ tuần tự xem theo danh sách ................................................... 25
Hình 3.4 Biểu đồ tuần tự thông báo trạng thái .................................................. 26
3.5 Biểu đồ tuần tự xem trạng thái theo tên đƣờng ............................................ 26
Hình 3.6 Biểu đồ tuần tự tạo trạng thái mới ...................................................... 26
Hình 3.7 Biểu đồ tuần tự cập nhật trạng thái ..................................................... 27
Hình 3.8 Biểu đồ tuần tự kết thúc trạng thái ..................................................... 28
Hình 3.9 Biểu đồ lớp ......................................................................................... 29
Hình 3.10 Biểu đồ hoạt đông Xem theo bản đồ ................................................ 30
Hình 3.11 Biểu đồ hoạt động Xem theo danh sách ........................................... 31
Hình 3.12 Biểu đồ hoạt động Thông báo tình trạng giao thông ........................ 32
Hình 3.13 Biểu đồ hoạt động Xem thông tin trạng thái theo đƣờng ................. 33
Hình 3.14 Biểu đồ hoạt động Thêm trạng thái mới ........................................... 34
Hình 3.15 Biểu đồ hoạt đông Cập nhật trạng thái ............................................. 35
Hình 3.16 Biểu đồ hoạt động Kết thúc trạng thái .............................................. 36
Hình 3.17 Biểu đồ thành phần ........................................................................... 36
Hình 3.18 Biểu đồ triển khai ............................................................................. 37
Hình 3.19 Màn hình chính chƣơng trình trên Android ..................................... 38
Hình 3.20 Xem thông tin trạng thái của điểm trên bản đồ ................................ 39
Hình 3.21 Giao diện xem theo danh sách .......................................................... 40
Hình 3.22 Giao diện màn hình gửi thông báo ................................................... 41
Hình 3.23 Màn hình hƣớng dẫn......................................................................... 42
Hình 3.24 Giao diện điều khiển trạng thái giao thông ...................................... 43
Hình 3.25 Màn hình Thêm trạng thái mới ......................................................... 44
Hình 3.26 Màn hình chỉnh sửa thông tin trạng thái đƣờng ............................... 44
Bảng thuật ngữ và từ viết tắt
STT Thuật ngữ Định nghĩa
1 Server Máy chủ
2 Client Máy trạm
3 Use case Ca sử dụng
4 API
Application Programming Interface
Giao diện lập trình
5 MVC Model-View-Controller
6 ASP Active Server Page
7 JSON Javascript Object Notation
1
Chương 1. TỔNG QUAN
1.1 Yêu cầu và lý do thực hiện đề tài
Hiện nay, tắc đƣờng đang là vấn đề chung của các thành phố lớn nhƣ Hồ Nội và
Thành phố Hồ Chí Minh. Tắc đƣờng không chỉ gây thiệt hại về kinh tế mà còn kéo
theo nhiều hậu quả xã hội nghiêm trọng. Các cơ quan chức năng đã có nhiều cố gắng
đề ra các giải pháp chống tắc đƣờng. Từ các giải pháp kỹ thuật nhƣ là phân làn đƣờng,
bịt các ngã tƣ, tăng cƣờng ngƣời chỉ huy ở các nút giao thông hay bị ùn tắc đến giải
pháp tận dụng sức mạnh cộng đồng nhƣ là thực hiện chƣơng trình VOV giao thông,
tăng cƣờng giáo dục, tuyên truyền, kêu gọi ý thức của ngƣời tham gia giao thông. Tuy
nhiên, do mật độ tham gia giao thông quá lớn, cơ sở hạng tầng không đủ đáp ứng
đƣợc, một phần ý thức của ngƣời tham gia giao thông chƣa cao, nên các biện pháp đề
ra chƣa mang lại hiệu quả nhƣ mong muốn.
Thực tế, hiện tƣợng tắc đƣờng chỉ thƣờng xuyên xảy ra ở một số điểm cố định
vào các giờ cao điểm. Nếu chúng ta có cách thông báo cho mọi ngƣời tham gia giao
thông biết đƣợc đoạn đƣờng nào đang bị ùn tắc thì có thể giảm đƣợc số điểm ùn tắc.
Trong thời gian qua, chƣơng trình VOV giao thông của đài tiếng nói Việt Nam
đã ra đời và nhận đƣợc sự hƣởng ứng tích cực của mọi ngƣời. Cách làm của chƣơng
trình VOV giao thông đó là cùng với ngƣời tham gia giao thông và các cộng tác viên
tại các điểm hay xảy ra ùn tác phát hiện và thông báo tình trạng giao thông qua làn
sóng radio. Tuy nhiên, nhƣợc điểm của VOV giao thông là vì sử dụng chƣơng trình
phát thanh nên thông tin chỉ đến đƣợc với số ít ngƣời tham gia giao thông, thông tin
đƣợc truyền tải dƣới dạng âm thanh nên ít trực quan, giảm bớt tính hiệu quả của thông
tin.
Hƣớng đến một cách tiếp cận khác đó là thông qua môi trƣờng Internet và các
thiết bị di động, em đã chọn đề tài khóa luận “Hỗ trợ phát hiện và thông báo ùn tắc
giao thông trên nền Android“. Bài toán đƣợc giải quyết chủ yếu dựa vào dịch vụ
Google Map và các thiết bị sử dụng hệ điều hành Android. Google Maps là dịch vụ đã
phổ biến trên thế giới cũng nhƣ ở Việt Nam. Ở các thành phố lớn trên thế giới,
Google Maps có tích hợp thông tin giao thông vào bản đồ ở chế độ Traffic View. Tuy
nhiên, ở Việt Nam, dịch vụ này không hỗ trợ cũng nhƣ chƣa có dịch vụ nào tƣơng tự.
Android cũng là hệ điều hành mã nguồn mở của Google. Hệ điều hành di động này có
thể cài đặt trên nhiều thiết bị, có các giao diện lập trình tích hợp với dịch vụ Google
Maps.
Chƣơng 1: TỔNG QUAN
2
1.2 Mục tiêu của đề tài:
Mục tiêu của đề tài là nhằm đƣa ra một giải pháp bổ sung, khả thi cùng với các
phƣơng tiện khác nhƣ VOV giao thông đƣa thông tin giao thông đến cho ngƣời sử
dụng Internet di động trên các điện thoại, cụ thể là Android.
1.3 Hướng tiếp cận của luận văn:
Giải pháp đƣa ra là sử dụng cùng nguồn thông tin nhƣ VOV Giao thông, có thể
là các cộng tác viên, những ngƣời tham gia giao thông để phát hiện ra điểm tắc đƣờng,
chỉ định điểm tắc đƣờng cụ thể trên bản đồ, có mô tả về thời gian tắc, thời gian dự kiến
kết thúc. Phần mềm thực hiện hai nhiệm vụ chính là xác định điểm tắc đƣờng trên bản
đồ, công việc này đƣợc xử lý ở Server, truy cập và hiển thị lại thông tin trên các thiết
bị di động, phần này đƣợc thực hiện ở Client.
Các công việc chính của đề tài bao gồm:
o Tìm hiểu và cài đặt Server trên nền ASP.NET MVC.
o Tìm hiệu dịch vụ Google Map, và các giao diện lập trình đƣợc hỗ trợ để
tích hợp với phần Server và Client.
o Tìm hiểu và cài đặt Client trên nền điện thoại di động Android.
3
Chương 2. CÁC KỸ THUẬT ĐƯỢC SỬ DỤNG
2.1 Giới thiệu về Android
Android đƣợc phát triển bởi tập đoàn Google, phiên bản đầu tiên ra đời năm
2008. Đƣợc xây dựng trên ột nền tảng mở, và một bộ thƣ viện đa năng, mạnh mẽ với
nguyên lý mở, Android đã nhanh chóng đƣợc cộng đồng lập trình viên di động hƣởng
ứng mạnh mẽ. Nền tảng Android tích hợp nhiều tính năng nổi bật:
- Android là một hệ điều h