Tải bản đầy đủ (.pdf) (59 trang)

Hỗ trợ phát hiện và thông báo ùn tắc giao thông trên android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.87 MB, 59 trang )

ĐẠ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

KHỐ 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

KHỐ 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
q 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 đã ln 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 hồn thành khóa luận đúng 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á tồ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

Định nghĩa

Thuật ngữ


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


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, tun 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 tố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.

1


Chƣơng 1: TỔNG QUAN
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.

2


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ành nhân Linux, đảm bảo sự tƣơng tác với các phần
cứng, quản lý bộ nhớ, điều khiển các tiến trình tối ƣu cho các thiết bị di động.

-

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

-

Máy ảo Dalvik đƣợc tối ƣu cho các thiết bị di động, chạy các ứng dụng lập trình

trên ngơn ngữ Java.

-

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

-

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

-

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

-

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

2.1.1 Phát triển ứng dụng trên Android
2.1.1.1 Cấu trúc của các tầng phần mềm trên Android
Cấu trúc của Android đƣợc chia theo tầng các phần mềm bao gồm tầng ứng
dụng (Application Layer), Ứng dụng khung (Application Framework), Các thƣ viện
(Libraries), Android Runtime và nhân Linux (Linux Kernel).

3



Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG

Hình 2.1 Cấu trúc của các tầng phần mềm trên Android1

-

Android Runtime: Bao gồm máy ảo Dalvik và các thƣ viện Android.
o Các thư viện cơ bản: Các ứng dụng Android đƣợc phát triển trên môi
trƣờng Java, nhƣng Dalvik lại không phải là một Java VM. Các thƣ viện
cơ bản của Android cung cấp hầu hết các chức năng có trong thƣ viên cơ
bản của Java cũng nhƣ là thƣ viện riêng của Android.
o Máy ảo Dalvik: Dalvik là máy ảo để chạy các ứng dụng trên Android,
đã đƣợc tối ƣu để đảm bảo rằng một thiết bị có thể chạ đƣợc nhiều
Instance một cách hiệu quả. Nó dựa vào nhân Linux để thực hiện đa
luồng và quản lý bộ nhớ cấp thấp.

-

Tầng ứng dụng khung: Cung cấp các lớp đƣợc sửa dụng để tạo ra các ứng
dụng trong Android. Nó cũng cung cấp các lớp trừu tƣợng truy cập phần cứng
và quản lý tài nguyên của ứng dụng.
1

Nguồn: Reto Meier. Professional Android™ Application Development. Indiana : Wiley Publishing,
Inc., 2008, trang 13.

4


Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG

-

Tầng ứng dụng: Tất cả các ứng dụng, bao gồm ứng dụng sẵn có và ứng dụng
từ nhà cung cấp thứ 3 đƣợc xếp vào tầng Ứng dụng với cùng một thƣ viện các
giao diện lập trình(API). Tầng ứng dụng chạy trong Android Runtime (Dalvik)
sử dụng các lớp và dịch vụ có sẵn trong lớp Ứng dụng khung.

2.1.1.2 Kiến trúc ứng dụng trên Android
Kiến trúc của Android khuyến khích khái niệm Thành phần sử dụng lại, cho
phép công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác với
quyền truy cập đƣợc quản lý bởi khai báo.
Cơ chế đó cho phép ngƣời lập trình tạo ra một trình quản lý danh bạ hoặc trình
quay số điện thoại mà có các thành phần ngƣời khác có thể tạo mới giao diện và mở
rộng chức năng thay vì tạo lại chúng.
Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả các ứng
dụng, cung cấp một framework cho mọi mọi phần mềm đƣợc xây dựng:
-

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

-

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

-

Notification Mamager: Cung cấp một cơ chế cố định và quy củ cho việc gửi
các thông báo đến ngƣời dùng.


-

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

-

Resource Manager: Hỗ trợ các thành phần không thuộc mã nguồn nhƣ là
chuỗi ký tự, đồ họa đƣợc đặt bên ngoài.

2.1.1.3 Các thư viện trên Android
Android cung cấp một số các APIs cho phát triển ứng dụng. Danh sách các API
cơ bản sau đƣợc cung cấp bởi tất cả các thiết bị trên nền Android:
-

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

-

android.os Gói hệ điều hành cung cấp truy cập đến các dịch vụ cơ bản nhƣ là
chuyển tin nhắn, thông tin chéo, đồng hồ và gỡ lỗi.

-

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

-

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

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


Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG
-

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

-

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

-

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

-

com.google.android.maps bộ API mức cao cung cấp truy cập đến điều khiển
bản đồ sẵn trong Androif từ ứng dụng đƣợc xây dựng. Bao gồm cả lớp
MapView cũng nhƣ Overlay và MapController để tƣơng tác với bản đồ bên
trong ứng dụng.


-

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

-

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

-

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

-

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

-

Cùng với các API của Android, cịn có một tập các thƣ viện C/C++ nhƣ:
o OpenGL Thƣ viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn

OpenGLES 1.0 API
o FreeType Hỗ trợ xử lý bitmap và font vector
o GGL Thƣ viện cơ bản, dùng để cung cấp các engine đồ họa 2D
o Libc Thƣ viện C chuẩn, đƣợc tối ƣu cho các thiết bị Linux-based
o SQLite Engine cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lƣu trữ dữ liệu
của ứng dụng

6


Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG
o SSL Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer trong bảo
mật truyền thơng Internet
-

Ngồi các thƣ viện chuẩn của Android, để đáp ứng tiêu chí phù hợp với nhiều
thiết bị khác nhau, Android cịn có thể có các API phụ thuộc thiết bị nhƣ
android.location, android.media, android.opengl, android.hardware,
android.bluetooth, android.net.wifi, và android.telephony. [1]

2.1.1.4 Các thành phần của ứng dụng Android
2.1.1.4.1 Activity
Một Activity là đại diện cho một giao diện ngƣời dùng, tiếp nhận tƣơng tác
ngƣời dùng với ứng dụng. Ví dụ một Activity có thể là một danh sách các mục mà
ngƣời dùng có thể chọn lựa hoặc là một của sổ trình diễn ảnh với các thơng tin khác.
Một ứng dụng có thể có một hoặc nhiều Activity. Việc di chuyển giữa các
Activity đƣợc thực hiện bằng cách từ Activity hiện tại mở ra Activity mới
Giao diện của Activity đƣợc quy định bởi một đối tƣợng View có trật tự. Một
View là một vùng hình chữ nhật bên trong cửa sổ màn hình. Một View cũng có thể
chứa nhiều View khác. View có thể đƣợc tạo mới thơng qua việc thừa kế lớp View

hoặc khai báo thông qua file XML.
Một activity có 3 trạng thái chính:
-

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

-

Paused khi Activity khơng cịn là trọng tâm trên màn hình nhƣng vẫn hiện thị
trƣớc ngƣời dùng.

-

Stopped Khi một activity hoàn tồn bị che khuất, nó sẽ rơi vào trạng thái
Stopped. Tuy nhiên, nó vẫn cịn lƣu trữ tồn bộ thơng tin trạng thái. Và nó
thƣờng bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ.
Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với các
bƣớc chuyển:
void
void
void
void
void
void
void

onCreate(Bundle savedInstanceState)
onStart()
onRestart()

onResume()
onPause()
onStop()
onDestroy()

7


Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG
Sơ đồ chuyển trạng thái đƣợc biểu diễn nhƣ hình dƣới.

Hình 2.2 Sơ đồ chuyển trạng thái của Activity2

2.1.1.4.2 Service
Một Service khơng có giao diện và chạy ngầm trong khoảng thời gian không
xác định. Ví dụ, một Service có thể chơi nhạc ở chế độ ngầm khi ngƣời dùng chuyển
ra khỏi trình nghe nhạc. Mỗi Service đề đƣợc mở rộng từ lớp cơ sở là Service trong gói
android.app. Có thể kết nối tới hoặc kích hoạt một Service thơng qua interface mà
Service đƣa ra.

2

Nguồn:
fundamentals.html

Application

Fundamentals,

20/5/2010,


/>
8


Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG
Cũng giống nhƣ Activity và cũng và những thành phần khác, các dịch vụ chạy
trong luồng chính của ứng dụng.
Vịng đời của một service

Hình 2.3 Sơ đồ chuyển trạng thái của Service3

2.1.1.4.3 Broadcast receiver
Một Broadcast receiver là một thành phần mà không làm gì khác ngồi việc
nhận các thơng báo đƣợc broadcast.
Một ứng dụng có thể có nhiều broadcast receiver để đáp lại những thông báo
đƣợc phát đến. Tất cả các broadcast receiver đƣợc thừa kế từ lớp cơ sở
BroadcastReceiver.
Một Broadcast receiver không có giao diện nhƣng nó có thể thực hiện gọi một
Activity hay là sử dụng NotificationManager để thông báo cho ngƣời dùng.
3

Nguồn: Application Fundamentals, 20/5/2010, />
9


Chƣơng 2: CÁC KỸ THUẬT ĐƢỢC SỬ DỤNG
2.1.1.4.4 Content Provider
Một Content Provider tạo ra một tập các dữ liệu cụ thể nào đó của ứng dụng
cung cấp cho các ứng dụng khác. Các lớp Content Provider thừa kế từ cơ sở

ContentProvider để cài đặt một số hàm tiêu chuẩn cho phép ứng dụng khác nhận và
lƣu trữ dữ liệu.
2.1.1.4.5 Manifest file
File AndroidManifest.xml là file có cấu trúc XML đƣợc dùng để khai báo các
thành phần trong ứng dụng Android. Nó cũng là nơi để khai báo các quyền truy cập
của ứng dụng cũng nhƣ các thƣ viện cần thiết.
2.1.1.4.6 Các thành phần khác
Ngồi các thành phần chính ở trên, cịn có các thành phần khác nhƣ Resource
bao gồm các file đồ họa, âm thanh, string,… và các thƣ viện do nhà cung cấp thứ 3.
Tham khảo thêm về các thành phần trong [2].
2.2 Giới thiệu về ASP.NET MVC
2.2.1 ASP.NET
2.2.1.1 Đặc điểm của ASP.NET
ASP.NET có tên đầy đủ là Active Server Page .NET. ASP.NET là mơ hình phát
triển ứng dụng Web hợp nhấ bao gồm nhiều dịch vu cho phép xây dựng các ứng dụng
Web tiên tiến với số code nhỏ nhất. ASP.NET là một phần của .NET Framework, khi
lập trình với ASP.NET ngƣời lập trình có thể sử dụng các thự viện của .NET
Framework. ASP.NET hỗ trợ lập trình với nhiều ngôn ngữ nhƣ là MS Visual Basic,
C#, Jscript .NET và J#, các ngơn ngữ này đều phải tƣơng thích với “Common
Language Runtime” (CLR). Các ngôn ngữ đều đƣợc dịch ra mã IL.
ASP.NET là ngơn ngữ lập trình hƣớng đối tƣợng sử dụng các ngơn ngữ .NET.
Nó cung cấp bộ các đối tƣợng nhỏ và thực sự là một tầng làm việc trên nguyên lý của
HTTP và HTML. Mã nguồn khơng đƣợc truy cập tồn bộ các đối tƣợng trong .NET
Framework nhƣng có thể khai thác tất cả các quy ƣớc của một môi trƣờng OOP
(Object Oriented Programming). Thiết kế hƣớng đối tƣợng giúp tạo các lớp, giao diện,
kế thừa các lớp.

10




×