Khóa luận Hỗ trợ phát hiện và thông báo ùn tắc giao thông trên Android

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Đậu Thanh Hi  
HTRPHÁT HIN VÀ THÔNG BÁO  
ÙN TC GIAO THÔNG TRÊN ANDROID  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công NghPhn Mm  
HÀ NI - 2010  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Đậu Thanh Hi  
HTRPHÁT HIN VÀ THÔNG BÁO  
ÙN TC GIAO THÔNG TRÊN ANDROID  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công NghPhn Mm  
Cán bộ hướng dẫn: TS. Trương Anh Hoàng  
Cán bộ đồng hướng dẫn: TS. Đặng Đức Hnh  
HÀ NI - 2010  
LI CẢM ƠN  
Em xin chân thành cám ơn khoa Công nghthông tin, Bmôn Công nghphn  
mm, trƣờng Đại hc Công Nghệ đã tạo điều kin thun li cho em thc hiện đề tài  
này.  
Em cũng xin đƣợc gi li cảm ơn chân thành nhất đến thầy giáo Trƣơng Anh  
Hoàng và thầy Đặng Đức Hnh, ngƣời đã tn tình chbảo và hƣớng dn em thc hin  
đề tài này.  
Bên cạnh đó, em xin gi li cảm ơn đến các thy cô giáo, nhng ngƣời đã giảng  
dy, tạo điều kiện cho em tích lũy đƣợc nhng kiến thc quý báu trong những năm học  
qua.  
Ngoài ra, em cũng xin gi li cảm ơn đến nhng ngƣời bn trong lp  
K51CNPM, và lớp K51CC trƣớc đây, những ngƣời đã chia snhng kiến thc trong  
quá trình hc tp và thc hin khóa lun tt nghip.  
Cui cùng, em xin gi lòng biết ơn sâu sắc đến cha mẹ, gia đình, bn bè, nhng  
ngƣời đã luôn bên cạnh, chăm sóc, ng hộ, động viên em trong sut thi gian hc tp  
và nghiên cu.  
Dù đã cố gng hoàn thành khóa luận đúng yêu cầu, nhƣng chc chn scó  
nhng thiếu sót không tránh khi. Em mọng đƣợc sthông cm và tn tình chbo ca  
các thy cô và các bn.  
Hà Nội, tháng 5 năm 2010  
Sinh viên  
Đậu Thanh Hi  
TÓM TT NI DUNG  
Hin nay, dch vụ Google Maps đã cung cấp dch vthông tin giao thông qua  
bản đồ cho nhiu thành phln trên thế gii. Vit Nam, mc dù vấn đề ùn tc 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 đề xut chủ đề  
khóa luận là “Hỗ trphát hin và thông báo ùn tắc giao thông trên Android”. Mc tiêu  
ca khóa lun là mô phng gii pháp cung cp 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 chn là kết hp Web Server chy trên  
nn ASP.NET và phn mm chy 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. Tng quan: Gii thiu bi cnh, lý do thc hiện đề tài cũng nhƣ các  
gii pháp hin thi có thliên quan, từ đó rút ra hƣơng tiếp cn thc hiện đề tài.  
- Chƣơng 2. Các kthut sdng: Trình bày sơ lƣợc vkthut lp trình trên  
Android, ASP.NET, và Google Maps APIs.  
- Chƣơng 3. Phân tích, thiết kế: Tài liu 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, thnghim: Mt số điểm nét chính khi thc hin cài đặt  
và thnghim Web Server và chƣơng trình giả lập điện thoi Android  
- Chƣơng 5. Đánh giá và tng kết: Nêu đánh giá toàn bộ đề tài, trình bày nhng  
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.  
Mc lc  
Danh mc bng  
Danh mc hình  
Bng thut ngtviết tt  
STT  
Thut ngữ  
Định nghĩa  
1
Server  
Client  
Máy chủ  
2
3
4
5
6
7
Máy trm  
Use case  
API  
Ca sdng  
Application Programming Interface  
Giao din lp trình  
MVC  
ASP  
Model-View-Controller  
Active Server Page  
JSON  
Javascript Object Notation  
Chương 1. TNG QUAN  
1.1 Yêu cu và lý do thc hiện đề tài  
Hin nay, tắc đƣờng đang là vấn đề chung ca các thành phlớn nhƣ Hồ Ni và  
Thành phHChí Minh. Tắc đƣờng không chgây thit hi vkinh tế mà còn kéo  
theo nhiu hu quxã hi nghiêm trọng. Các cơ quan chức năng đã có nhiều cgng  
đề ra các gii pháp chng tắc đƣờng. Tcác gii pháp kthuật nhƣ là phân làn đƣờng,  
bịt các ngã tƣ, tăng cƣờng ngƣời chhuy các nút giao thông hay bùn tắc đến gii  
pháp tn dng sc mnh cộng đồng nhƣ là thực hiện chƣơng trình VOV giao thông,  
tăng cƣờng giáo dc, tuyên truyn, kêu gi ý thc 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ở hng tầng không đủ đáp ứng  
đƣợc, mt phn ý thc 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 hiu quả nhƣ mong muốn.  
Thc tế, hiện tƣợng tắc đƣờng chỉ thƣờng xuyên xy ra mt 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 tc thì có thgiảm đƣợc số điểm ùn tc.  
Trong thời gian qua, chƣơng trình VOV giao thông của đài tiếng nói Vit Nam  
đã ra đời và nhận đƣợc sự hƣởng ng tích cc ca mi 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 cng tác viên  
tại các điểm hay xy ra ùn tác phát hin và thông báo tình trng giao thông qua làn  
sóng radio. Tuy nhiên, nhƣợc điểm ca VOV giao thông là vì sdụng chƣơng trình  
phát thanh nên thông tin chỉ đến đƣợc vi số ít ngƣời tham gia giao thông, thông tin  
đƣợc truyn tải dƣới dng âm thanh nên ít trc quan, gim bt tính hiu quca thông  
tin.  
Hƣớng đến mt 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 “Htrphát hin và thông báo ùn tc  
giao thông trên nn Android“. Bài toán đƣợc gii quyết chyếu da vào dch vụ  
Google Map và các thiết bsdng hệ điều hành Android. Google Maps là dch vụ đã  
phbiến trên thế giới cũng nhƣ ở Vit Nam. các thành phln trên thế gii,  
Google Maps có tích hp thông tin giao thông vào bản đồ ở chế độ Traffic View. Tuy  
nhiên, Vit Nam, dch vnày không htrợ cũng nhƣ chƣa có dịch vụ nào tƣơng tự.  
Android cũng là hệ điều hành mã ngun mca Google. Hệ điều hành di động này có  
thể cài đặt trên nhiu thiết b, có các giao din lp trình tích hp vi dch vGoogle  
Maps.  
1
   
Chƣơng 1: TNG QUAN  
1.2 Mc tiêu của đề tài:  
Mc tiêu của đề tài là nhằm đƣa ra một gii pháp bsung, khthi cùng vi 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 thoi, cthlà Android.  
1.3 Hướng tiếp cn ca luận văn:  
Giải pháp đƣa ra là sử dng cùng nguồn thông tin nhƣ VOV Giao thông, có thể  
là các cng 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 cthtrên bản đồ, có mô tvthi gian tc, thi gian dkiến  
kết thúc. Phn mm thc hin hai nhim vụ chính là xác định điểm tắc đƣờng trên bn  
đồ, công việc này đƣợc xServer, truy cp và hin thli thông tin trên các thiết  
bị di động, phần này đƣợc thc hin Client.  
Các công vic chính của đề tài bao gm:  
o Tìm hiểu và cài đặt Server trên nn ASP.NET MVC.  
o Tìm hiu dch vGoogle Map, và các giao din lập trình đƣợc htrợ để  
tích hp vi phn 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 KTHUẬT ĐƯỢC SDNG  
2.1 Gii thiu vAndroid  
Android đƣợc phát trin bi tập đoàn Google, phiên bản đầu tiên ra đời năm  
2008. Đƣợc xây dng trên t nn tng m, và mt bộ thƣ viện đa năng, mạnh mvi  
nguyên lý mở, Android đã nhanh chóng đƣợc cộng đồng lập trình viên di động hƣởng  
ng mnh m. Nn tng Android tích hp nhiều tính năng nổi bt:  
- Android là mt hệ điều hành nhân Linux, đảm bo sự tƣơng tác với các phn  
cng, qun lý bnhớ, điều khin các tiến trình tối ƣu cho các thiết bị di động.  
- Bộ ứng dng khung cho phép sdng li và thay thế các thành phn riêng l.  
- Máy ảo Dalvik đƣợc tối ƣu cho các thiết bị di động, chy các ng dng lp trình  
trên ngôn ngJava.  
- Các thƣ viện cho phát trin ng dng mã ngun mbao gm SQLite, WebKit,  
OpenGL và trình quản lý đa phƣơng tiện.  
- Htrcác chuẩn đa phƣơng tiện phbiến, thoi trên nn GSM, Bluetooth  
EDGE, 3G và Wifi  
- Htrợ Camera, GPS, la bàn, máy đo gia tốc…  
- Bphát trin ng dụng SDK đầy đủ gm thiết bgilp, công csa li, tích  
hp vi Eclipse SDK.  
2.1.1 Phát trin ng dng trên Android  
2.1.1.1 Cu trúc ca các tng phn mm trên Android  
Cu trúc của Android đƣợc chia theo tng các phn mm bao gm tng ng  
dng (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 KTHUẬT ĐƢỢC SDNG  
Hình 2.1 Cu trúc ca các tng phn mm trên Android1  
- Android Runtime: Bao gm 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 trin trên môi  
trƣờng Java, nhƣng Dalvik lại không phi là một Java VM. Các thƣ viện  
cơ bản ca Android cung cp hu hết các chức năng có trong thƣ viên cơ  
bn của Java cũng nhƣ là thƣ viện riêng ca Android.  
o Máy o Dalvik: Dalvik là máy ảo để chy các ng dng trên Android,  
đã đƣợc tối ƣu để đảm bo rng mt thiết bcó thchạ đƣợc nhiu  
Instance mt cách hiu qu. Nó dựa vào nhân Linux để thc hiện đa  
lung và qun lý bnhcp thp.  
- Tng ng dng khung: Cung cp các lp đƣợc sa dụng để to ra các ng  
dụng trong Android. Nó cũng cung cấp các lp trừu tƣợng truy cp phn cng  
và qun lý tài nguyên ca ng dng.  
1
Ngun: Reto Meier. Professional Android™ Application Development. Indiana : Wiley Publishing,  
Inc., 2008, trang 13.  
4
 
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
- Tng ng dng: Tt ccác ng dng, bao gm ng dng sn có và ng dng  
tnhà cung cp thứ 3 đƣợc xếp vào tng ng dng vi cùng một thƣ viện các  
giao din lp trình(API). Tng ng dng chy trong Android Runtime (Dalvik)  
sdng các lp và dch vcó sn trong lp ng dng khung.  
2.1.1.2 Kiến trúc ng dng trên Android  
Kiến trúc ca Android khuyến khích khái nim Thành phn sdng li, cho  
phép công bvà chia scác Activity, Service, dliu, vi các ng dng khác vi  
quyn truy cập đƣợc qun lý bi khai báo.  
Cơ chế đó cho phép ngƣời lp trình to ra mt trình qun lý danh bhoc trình  
quay số điện thoi mà có các thành phần ngƣời khác có thto mi giao din và mở  
rng chức năng thay vì tạo li chúng.  
Nhng dch vsau là nhng dch vkiến trúc cơ bản nht ca tt ccác ng  
dng, cung cp mt framework cho mi mi phn mềm đƣợc xây dng:  
- Actitvity Manager: Điều khiển vòng đời ca các Activity bao gm cqun lý  
các tng Activity.  
- Views: Đƣợc sdụng để to lp cá giao diện ngƣời dùng cho các Activity  
- Notification Mamager: Cung cp một cơ chế cố định và quy ccho vic gi  
các thông báo đến ngƣời dùng.  
- Content Provider: Cho phép ng dng chia sdliu gia các ng dng.  
- Resource Manager: Htrcác thành phn không thuc mã nguồn nhƣ là  
chui ký tự, đồ họa đƣợc đặt bên ngoài.  
2.1.1.3 Các thư viện trên Android  
Android cung cp mt scác APIs cho phát trin ng dng. Danh sách các API  
cơ bản sau đƣợc cung cp bi tt ccác thiết btrên nn Android:  
- android.util: Gói tiện ích cơ bản bao gm nhiu lp mc thấp nhƣ là các lớp  
quản lý (List, Stack…) lp xlý chui, lp xlý XML  
- android.os Gói hệ điều hành cung cp truy cập đến các dch vụ cơ bản nhƣ là  
chuyn tin nhắn, thông tin chéo, đồng hvà gli.  
- android.graphics Cung cp các lớp đồ ha mc thp thc hin các chức năng  
đồ ha, màu, vẽ cơ bản.  
- android.text Công chin thvà xử lý văn bản  
- android.database Cung cp các lp mc tht bt buc cho việc điều khin  
cursor khi làm vic với các cơ sở dliu  
5
   
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
- android.content Các giao tiếp lp trình nội dung đƣợc dùng để qun lý truy  
cp dliu và xut bn bng cách cung cp các dch vthao tác vi tài nguyên,  
Content Provider, và các gói  
- android.view View là lp giao diện ngƣời dùng cơ bản nht. Tt cgiao din  
ngƣời dùng đƣợc tạo ra đều phi sdng mt tập các View để cung cp cho các  
thành phần tƣơng tác ngƣời dùng.  
- android.widget Xây dng da trên gói View. Nhng lp Widget nhng thành  
phn giao diện đƣợc to sẵn đƣợc sdụng để to nên giao diện ngƣời dùng. Các  
Widget bao gm danh sách, nút bm, hp nhp, các kiu trình bày(layout)  
- com.google.android.maps bAPI mc cao cung cp truy cập đến điều khin  
bản đồ sn trong Androif từ ứng dụng đƣợc xây dng. Bao gm clp  
MapView cũng nhƣ Overlay và MapController để tƣơng tác với bản đồ bên  
trong ng dng.  
- android.app Một gói thƣ viện bc cao, cung cp truy cập đến dliu ca ng  
dng. Gói ng dụng cũng bao gồm lp Activity và Service là thành phần cơ bản  
ca mi ng dng Android.  
- Android.provider Để to thun lợi cho ngƣời phát trin truy cập đến các  
Content Provider tiêu chuẩn(nhƣ là dữ liu danh b), gói Cung cp(Provider)  
bao gm các lp cho phép truy cập đến cơ sở dliu chun trong tt ccác bn  
phân phi Android.  
- Android.telephony Các API điện đàm cung cấp khả năng tƣơng tác trực tiếp  
vi tầng điện thoi trong các thiết b, cho phép to, nhn, theo dõi các cuc gi,  
tình trng các cuc gi và tin nhn SMS.  
- android.webkit Gói WebKit cung cấp các API để làm vic vi các ni dung  
Web-based bao gm một lơp WebView để to ra giao diên web, nhúng trong  
ng dng và mt trình qun lý cookie.  
- Cùng vi các API ca Android, còn có mt tập các thƣ viện C/C++ nhƣ:  
o OpenGL Thƣ viện dùng để tạo ra các đồ ha 3D da vào chun  
OpenGLES 1.0 API  
o FreeType Htrxlý bitmap và font vector  
o GGL Thƣ viện cơ bản, dùng để cung cấp các engine đồ ha 2D  
o Libc Thƣ viện C chuẩn, đƣợc tối ƣu cho các thiết bLinux-based  
o SQLite Engine cơ sở dliu quan hgn nhẹ, dùng để lƣu trữ dliu  
ca ng dng  
6
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
o SSL Htrsdng giao thc mã hóa Secure Sockets Layer trong bo  
mt truyn thông Internet  
- Ngoài các thƣ viện chun của Android, để đáp ứng tiêu chí phù hp vi nhiu  
thiết bkhác nhau, Android còn có thcó các API phthuc thiết bị nhƣ  
android.location, android.media, android.opengl, android.hardware,  
android.bluetooth, android.net.wifi, android.telephony. [1]  
2.1.1.4 Các thành phn ca ng dng Android  
2.1.1.4.1 Activity  
Mt Activity là đại din cho mt giao diện ngƣời dùng, tiếp nhận tƣơng tác  
ngƣi dùng vi ng dng. Ví dmt Activity có thlà mt danh sách các mc mà  
ngƣi dùng có thchn la hoc là mt ca strình din nh vi các thông tin khác.  
Mt ng dng có thcó mt hoc nhiu Activity. Vic di chuyn gia các  
Activity đƣợc thc hin bng cách tActivity hin ti mra Activity mi  
Giao din của Activity đƣợc quy định bi một đối tƣợng View có trt t. Mt  
View là mt vùng hình chnht bên trong ca smàn hình. Một View cũng có thể  
cha nhiu View khác. View có thể đƣợc to mi thông qua vic tha kế lp View  
hoc khai báo thông qua file XML.  
Mt activity có 3 trng thái chính:  
- Active hoc running khi nó trên nht 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 hin thị  
trƣớc ngƣời dùng.  
- Stopped Khi mt activity hoàn toàn bche khut, nó sẽ rơi vào trạng thái  
Stopped. Tuy nhiên, nó vẫn còn lƣu trữ toàn bthông tin trng thái. Và nó  
thƣờng bhthống đóng lại khi có tình trng thiếu bnh.  
Khi chuyn gia các trng thái, ng dng sgi các hàm callback ng vi các  
bƣớc chuyn:  
void onCreate(Bundle savedInstanceState)  
void onStart()  
void onRestart()  
void onResume()  
void onPause()  
void onStop()  
void onDestroy()  
7
   
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
Sơ đồ chuyn trạng thái đƣợc biu diễn nhƣ hình dƣới.  
Hình 2.2 Sơ đồ chuyn trng thái ca Activity2  
2.1.1.4.2 Service  
Mt Service không có giao din và chy ngm trong khong thi gian không  
xác định. Ví d, mt Service có thể chơi nhạc chế độ ngầm khi ngƣời dùng chuyn  
ra khi trình nghe nhc. Mi Service đề đƣợc mrng tlớp cơ sở Service trong gói  
android.app. Có thkết ni ti hoc kích hot mt Service thông qua interface mà  
Service đƣa ra.  
2
fundamentals.html  
8
   
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
Cũng giống nhƣ Activity và cũng và những thành phn khác, các dch vchy  
trong lung chính ca ng dng.  
Vòng đời ca mt service  
Hình 2.3 Sơ đồ chuyn trng thái ca Service3  
2.1.1.4.3 Broadcast receiver  
Mt Broadcast receiver là mt thành phn mà không làm gì khác ngoài vic  
nhận các thông báo đƣợc broadcast.  
Mt ng dng có thcó nhiu broadcast receiver để đáp lại nhng thông báo  
đƣợc phát đến. Tt cả các broadcast receiver đƣợc tha kế tlp cơ sở  
BroadcastReceiver.  
Mt Broadcast receiver không có giao diện nhƣng nó có thể thc hin gi mt  
Activity hay là sdụng NotificationManager để thông báo cho ngƣời dùng.  
fundamentals.html  
9
   
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
2.1.1.4.4 Content Provider  
Mt Content Provider to ra mt tp các dliu cthể nào đó của ng dng  
cung cp cho các ng dng khác. Các lp Content Provider tha kế từ cơ sở  
ContentProvider để cài đặt mt shàm tiêu chun cho phép ng dng khác nhn và  
lƣu trdliu.  
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 phn trong ng dụng Android. Nó cũng là nơi để khai báo các quyn truy cp  
ca ng dụng cũng nhƣ các thƣ viện cn thiết.  
2.1.1.4.6 Các thành phn khác  
Ngoài các thành phn 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 cp th3.  
Tham kho thêm vcác thành phn trong [2].  
2.2 Gii thiu vASP.NET MVC  
2.2.1 ASP.NET  
2.2.1.1 Đặc điểm ca ASP.NET  
ASP.NET có tên đầy đủ là Active Server Page .NET. ASP.NET là mô hình phát  
trin ng dng Web hp nhbao gm nhiu dch vu cho phép xây dng các ng dng  
Web tiên tiến vi scode nhnht. ASP.NET là mt phn ca .NET Framework, khi  
lp trình với ASP.NET ngƣời lp trình có thsdng các thvin ca .NET  
Framework. ASP.NET htrlp trình vi nhiu 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 dch ra mã IL.  
ASP.NET là ngôn nglập trình hƣớng đối tƣợng sdng các ngôn ng.NET.  
Nó cung cp bộ các đối tƣợng nhvà thc slà mt tng làm vic trên nguyên lý ca  
HTTP và HTML. Mã nguồn không đƣợc truy cp toàn bộ các đối tƣợng trong .NET  
Framework nhƣng có thể khai thác tt cả các quy ƣớc ca một môi trƣờng OOP  
(Object Oriented Programming). Thiết kế hƣớng đối tƣợng giúp to các lp, giao din,  
kế tha các lp.  
10  
           
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
Hình 2.4 Vtrí ca ASP.NET trong .NET Framework4  
Mt ng dụng ASP.NET luôn luôn đƣợc biên dch, nó không chy bng mã ca  
C# hoặc Visual Basic mà không đƣợc biên dịch trƣớc. Mt ng dng ASP.NET thc  
sự đƣợc biên dịch thông qua 2 giai đoạn:  
-
Giai đoạn đầu tiên nhng các mã (C#, Visual Basic hoc ngôn ng.NET khác)  
đƣợc dch bi Microsoft Intermediate Language (MSIL). Giai đoạn dch này  
đƣợc dch tự động khi trang web đầu tiên yêu cu. Các file đƣợc dch thành mã  
IL (Intermediate Language Code).  
-
Giai đoạn tiếp theo đƣợc dịch trƣớc khi trang Web đƣợc thc thi. Tại giai đoạn  
này mã IL đƣợc dch thành bản mã máy (Native Machine Code). Giai đoạn này  
đƣợc gi là Just-In-Time (JIT).  
Khía cnh quang trng nht ca công cASP.NET là nó chy trong môi trƣờng  
thi gian thc (Runtime) ca CLR (Common Language Runtime). CLR là máy o  
4 Ngun: .NET Framework, 20/5/2010, http://en.wikipedia.org/wiki/.NET_Framework  
11  
 
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
(virtual machine) trong Microsoft .NET, do có ngôn ngtrung gian IL nên vic phát  
trin ng dng trên .NET skhông bphthuc vào thiết bị, có nghĩa là ứng dng  
.NET có thchy trên bt kthiết bnào có .NET Framework. Tt ccác namespace,  
các ng dng, các lp trong bộ .NET Framework đƣợc gi tt là bqun lý mã. CLR  
cũng cung cấp các dch vquan trọng khác nhƣ:  
- Qun lý bnhớ  
- Thu nht rác trong bnhớ  
- Qun lý các lung  
- Xlý ngoi lệ  
- Bo mt  
Mi sự cài đặt .NET Framework đều cung cp các lớp nhƣ nhau. Để trin khai  
ng dng ASP.NET chcn sao chép các tập tin vào thƣ mục o trên máy ch(server)  
và máy chchcn có .NET Framework.  
Vic cu hình dễ dàng đơn giản không phthuc vào IIS (Internet Information  
Services). Cấu hình trong ASP.NET đƣợc đặt trong file web.config. File web.config  
đƣợc để cùng với thƣ mực cha trang web. File web.config không bao gibkhóa, Nó  
có thtruy cp bt klúc nào, vic sa file này hoàn toàn dng vì chúng đƣợc lƣu  
dƣới dng XML.  
2.2.1.2 Mt skhái nim mi trong ASP.NET 3.5  
2.2.1.2.1 ASP.NET AJAX  
Trong ASP.NET 2.0, ASP.NET AJAX đƣợc cài đặt thêm vào. Tuy nhiên trong  
ASP.NET 3.5, ASP.NET AJAX đã đƣợc tích hp. vào trong .NET Framework, do đó  
quá trình xây dng giao diện ngƣời dùng đƣợc ddàng và trc quan. ASP.NET AJAX  
Control Extenders đã đƣợc tích hp ToolBox ca Visual Studio 2008.  
2.2.1.2.2 LINQ  
LINQ (Language Integrated Query) đƣa ra khả năng lập trình mi trong  
.NET. Gii pháp lp trình hp nhất, đem đến khả năng truy vấn dliu theo cú pháp  
SQL trc tiếp trong C# hay VB.NET, áp dng cho tt ccác dng dliu từ đối tƣợng  
đến Cơ sở dliu quan hvà XML.  
12  
     
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
Hình 2.5 Cu trúc LINQ5  
2.2.2 ASP.NET MVC  
2.2.2.1 Khái nim MVC  
MVC là một phƣơng pháp cài đặt chia mt ng dng thành 3 phn vi vai trò  
khác nhau : Model, View, Controller.  
- Model trong mt ng dng MVC là thành phn gia vai trò qun lý các trng  
thái ca ng dng. Trng thái này thƣờng đƣợc lƣu trữ bên trong một cơ sở dữ  
liu(ví d: mt lớp Product đại din cho dliu trong bng Products ca mt  
server SQL).  
- View là thành phần đảm nhn chức năng hiển thgiao diện ngƣời dùng ca ng  
dng. Giao diện này thƣờng đƣợc to ra tdliu ca Model(ví dụ nhƣ chúng  
ta có thto ra mt màn hình chnh sửa là “Edit Product” có các textbox,  
dropdown, và checkbox biu thtrng thái hin thi ca mt Product)  
-
Controller là thành phần đáp lại những tƣơng tác ngƣời dùng, thao tác vi  
model và cui cùng chn mt View phù hợp để trình bày kết qu. Trong mt  
5
What-LINQ.aspx  
13  
     
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
ng dng MVC, View chhin ththông tin, còn Controller mi thao tác vi  
các dliệu do ngƣời dùng nhp vào.  
Hình 2.6 Cu trúc ca mô hình MVC trên môi trường Web6  
Li ích to ln của phƣơng pháp MVC là giúp chia chƣơng trình ra thành các  
phn riêng l, to ra sminh bch gia dliệu, điều khin, và hin thị. Điều này  
khiến cho vic kim th, bo trì mt hthng MVC ddàng và tiết kiệm hơn  
nhiu.  
2.2.2.2 Mt vài chi tiết vASP.NET MVC  
2.2.2.2.1 Cu trúc mt dán trong Visual Studio  
Mt project ASP.NET MVC trong Visual Studio có cấu trúc nhƣ sau:  
Hình 2.7 Cu trúc dán ASP.NET MVC trong Visual Studio 2008  
6 Ngun: S. Sanderson, 2009, Pro ASP.NET, trang 41  
14  
       
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
- /App_Data thƣờng dùng để cha các file dliệu, thƣờng là các file *.mdf  
hoặc *.mdb, cũng có thể là cái file dliu dng xml.  
- /bin. Thƣ mục chứa các file đã đƣợc biên dịch cũng nhƣ các thƣ viện tham  
chiếu ca ng dng  
- /Content thƣờng đƣợc dùng để chứa các file tĩnh nhƣ là đồ ha, âm thanh  
hoc CSS.  
- /Controllers Lƣu trữ các lp Controller (Các lp tha kế tlớp cơ sơ là  
Controller hoặc cài đặt giao din IController).  
- /Models Thƣ mục cha các lp model  
- /Views. Đây là nơi lƣu trữ các file View có phn mrng là *.aspx, *.ascx.  
Mỗi file đều đƣợc chứa trong thƣ mục con tƣơng ứng vi tên ca Controller.  
- /Views/Shared: cha các file template và không thuc mt Controller cthể  
nào c, ví dụ nhƣ file master page, file 404.html…  
- Default.aspx: không thc hin mt chức năng hiển thnào c, chỉ đơn giản là  
file mặc định để chỉ định vào cu hình URL ca ng dng  
- Global.asax Lƣu trữ các chdẫn map URL, cũng nhƣ là cài đặt các quy định  
khởi động, tt ng dng khi cn thiết.  
- Web.config Là file có cấu trúc XML, lƣu trữ toàn bcác cu hình ca ng  
dng.  
2.2.2.2.2 Truyn dliu tController sang View  
Vic truyn Model tController sang View có ththc hin theo nhiu cách.  
Đơn giản là thc hin gi hàm:  
return View("MyView", modelObject);  
Nếu cn truyn nhiu dliu khác, có thsdng Mng ViewData trong  
Controller để truyn dliu:  
ViewData[“dataname”] = modelObject;  
ViewData sẽ đƣợc truyn qua View và sdng trli bng cách ly giá trca  
ViewData[“dataname”].  
2.2.2.2.3 Dliệu động trong View ca MVC  
Các View đƣợc khai báo theo định dng HTML. Vì thế không skhông có  
đƣợc nhng ng dng tt nếu nhƣ chỉ làm vic vi các dliệu tĩnh. Có nhiều cách để  
15  
   
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
thêm dliệu động trong View ca MVC. Có thsdng Inline Code, HTML helpers,  
Server controls, Partial views, và phƣơng thức Html.RenderAction(). Trong đó sử  
dng Inline code cho nhng phn nhỏ đƣợc khuyến khích trong ASP.NET MVC.  
Inline code đƣợc đặt khai báo bng th<% %>. Ví dkhi viết mã trong HTML là:  
<h1>Information about <%= Model.Name %></h1>.  
2.3 Gii thiu vGoogle Maps  
Hin ti, có nhiu nhà cung cp dch vbản đồ trc tuyến miễn phí nhƣ là  
Google, Yahoo, Microsoft, và Amazon… Google là hãng cung cp dch vtt nht vi  
sn phm Google Maps vi nhiu chức năng bản đồ cũng nhƣ cung cấp các APIs m.  
Nhiu hn chế trong các sn phm bản đồ nn Web-based đã đƣợc Google Maps khác  
phc. Để hiu làm cách nào mà công nghnày có khả năng thay đổi cách thc to bn  
đồ schúng ta stìm hiu qua cách tiếp cn cổ điển trong xut bn bản đồ môi trƣờng  
Web. Bản đồ Web cổ điển dựa vào cơ sở htng phc tp ca dliu, phn cng,  
phn mm và ngun lực con ngƣời.  
Dliu trong ng dng bản đồ Web cổ điển có thchia làm 2 danh mc riêng  
bit: dliệu cơ sở và dliu ca ng dng. Dliệu cơ sở, hay dliu nền thƣờng bao  
gm dliệu địa lý và thƣờng có nhiu lớp nhƣ là lớp khí quyn, ảnh, đƣờng và các  
đƣờng biên lãnh th. Dliu cthca ng dng bao gm các tng dliu cthcho  
ng dụng đƣợc phát trin. Ví d, mt ng dng bản đồ Web cho mt thành phthì sẽ  
có các lớp nhƣ là các vùng trực thuc, vị trí các trƣờng hc, các công trình công cng,  
và nhiu lp khác. Mi lp dliu này phải đƣợc định vị và lƣu trữ trên máy chbi  
chính tchức đó và nó cần đƣợc cp nhật định k. Vi Google Maps, skhông còn  
phải định vvà qun lý dliệu cơ sở na. Dliệu vùng, đƣờng đã đi kèm trong  
Google Maps. Tuy nhiên, ngƣời sdụng cũng cần phi qun lý ng dng ca mình  
bng dliu XML hoặc là các định dng khác.  
Không chcó các yêu cu dliu phc tp, các ng dng bản đồ cổ điển còn có  
các vấn đề vi phn cng phn mm và sc lực con ngƣời. Phi mua thêm phn cng  
và phn mềm, cũng nhƣ cần có squn lý của con ngƣời để cài đặt bo trì, qun trị  
phn mm, lp trình to ra ng dng. Tuy không hoàn toàn loi bcác yêu cu phn  
cng và phn mềm, nhƣng chúng đã đƣợc gim thiểu đáng kể vi Google Maps. Vn  
cn phn cứng để trin khai ng dụng nhƣng yêu cầu phn mềm thì đã đƣợc hn chế  
mt cách tối đa. Google Maps là sản phm min phí, không cần cài đặt, hay qun lý.  
Sn phm htrợ các APIs để to ra các chức năng tùy biến ca ng dng.  
16  
 
Chƣơng 2: CÁC KTHUẬT ĐƢỢC SDNG  
Google Maps htrcác dch vụ nhƣ định vị, tìm đƣờng, thêm dliu cá nhân,  
các điều khin làm cho vic ng dng bản đồ trong ng dng Web trnên ddàng và  
thun tiện hơn bao giờ hết.  
17  
Chương 3. PHÂN TÍCH THIT KẾ  
3.1.1 Phân tích  
3.1.1.1 Phân tích dch vGoogle Maps  
Dch vbản đsGoogle Maps có htrmt schức năng nhƣ: tìm đƣờng đi  
giữa 2 điểm, ƣớc lƣợng khoảng cách, xác định tọa độ ca một điểm theo tên đƣợc nhp  
vào, hoc ly tọa độ tmột điểm trên bản đồ. Tuy nhiên Google Maps li không htrợ  
xác định điểm đầu và điểm cui ca một con đƣờng theo tên, phố. Ngƣợc li, vic  
qun lý giao thông thì li phải căn cứ vào tên đƣờng ph. Vì thế cần có thêm cơ sở dữ  
liệu để quản lý tên đƣờng phlà bt buc vi ng dụng trong đề tài này.  
3.1.1.2 Phân tích yêu cu  
3.1.1.2.1 Yêu cầu người dùng  
Xây dng phn mm “Hỗ trphát hin và thông báo ùn tc giao thông trên  
nn Android” phải thc hiện đƣợc các chức năng sau:  
- Chức năng biên tập, dành cho ngƣi biên tp có thể đặt các trng thái bng cách  
thao tác trc tiếp trên bản đồ.  
- Chức năng xem thông tin dành cho ngƣời dùng dch vcó thbiết trng thái  
các điểm đƣợc thông báo.  
3.1.1.2.2 Yêu cu hthng  
- Mt nút giao thông có thcó nhiu trạng thái nhƣ tắc đƣờng, cấm đƣờng, có  
công trình thi công, hoc là có tai nn giao thông. Nhng trng thái này có thể  
đƣợc thêm vào hoc sửa đổi cho phù hp.  
- Dliệu đƣng phố, vùng địa lý thc tế có thbị thay đi, vì thế ngui biên tp  
có thcp nhật đƣợc cơ sở dliệu đƣng ph, qun huyn khi cn thiết để đảm  
bo tính chính xác.  
- Chức năng báo tắc đƣờng phi chỉ định đƣợc tọa độ, tên đƣờng, tên trng thái  
ca nút giao thông trên bản đồ.  
- Ngƣi dùng thiết bị di động nn Android có thxem các trạng thái đó trên điện  
thoi chế độ bản đồ hoc theo danh sách.  
- Ngƣời dùng cũng có thể thông báo một con đƣờng đang bị tc vi mô tvà gi  
lên cho Server.  
18  
           
Chƣơng 3: PHÂN TÍCH THIT KẾ  
- Client có thtự động cp nht các trng thái sau mt khong thời gian nào đó.  
Ngƣời dùng cũng có thcp nht bằng tay để có nhng thông tin cp nht nht.  
- Phần Server đƣợc lp trình trên nn Web phi htrợ các thao tác nhƣ bấm  
chut phải để đặt trạng thái. Ngƣời biên tp thao tác trc tiếp trên bản đồ vì thế  
yêu cu Trạng thái đƣợc đặt cn phải đúng với một con đƣờng nào đó trên bản  
đồ.  
3.1.2 Xây dng biểu đồ ca sdng  
3.1.2.1 Xác định Actor và ca sdng  
3.1.2.1.1 Tác nhân  
- Nguoi dung: Ngƣời dùng điện thoi Android và phn mm.  
- Nguoi bien tap: Ngƣời cp nht thông tin trng thái giao thông.  
3.1.2.1.2 Ca sdng  
- Xem ban do: Ngƣi dùng thc hin xem các thông tin giao thông trên bản đồ.  
- Xem theo danh sach: Ngƣời dùng xem các thông tin giao thông chế độ danh  
sách.  
- Cap nhat: thc hin li các vic gi yêu cu lên hthống để ly thông tin. Các  
- Gui thong bao: Ngƣời dùng gi thông báo các trng thái giao thông cho hệ  
thng.  
- Xem trang thai theo duong: Ngƣời biên tp chn một đƣờng trong danh sách  
để xem thông tin trạng thái đƣờng đó.  
- Tao trang thai: Ngƣời biên tp thông báo mt trng thái mi qua một điểm  
trên bản đồ.  
- Cap nhat trang thai: Ngƣời biên tp thc hin cp nht trng thái tại điểm.  
Mục đích cập nhật là thay đổi mô t, hoc thi gian dkiến kết thúc.  
- Ket thuc trang thai: Ngƣời biên tp kết thúc mt trng thái sớm hơn thời gian  
dkiến, thông tin vtrng thái skhông đƣc gửi đến cho ngƣời dùng na.  
19  
       
Chƣơng 3: PHÂN TÍCH THIT KẾ  
3.1.2.2 Biểu đồ ca sdng  
Hình 3.1 Biểu đồ ca sdng  
3.1.2.3 Đặc tả sơ đồ ca sdng  
3.1.2.3.1 Xem theo bản đồ  
Bng 3.1 Ca sdng Xem theo bản đồ  
Tên ca sdng  
Tác nhân  
Xem theo bản đồ  
Ngƣi dùng  
Skin kích hot  
Ngƣi dùng chn nút Xem theo bản đồ  
trong phn Client  
Lung skin chính:  
1. Khi to Map Activity, chuyển đến vtrí của ngƣời dùng  
2. To lung mi truy vn dliu ththng chdliu trvề  
3. Hin thlên bản đồ  
Lung skin ph:  
3.1. Không liên lạc đƣợc vi hthng, Kết thúc lung truy vn, chthi gian cp  
nht li  
3.1.2.3.2 Xem theo danh sách  
Bng 3.2 Ca sdng Xem theo danh sách  
Tên ca sdng  
Tác nhân  
Xem theo danh sách  
Ngƣi dùng  
Skin kích hot  
Ngƣi dùng chn nút Xem theo danh sách  
trong phn Client  
20  
             

Tải về để xem bản đầy đủ

pdf 59 trang yennguyen 11/04/2025 150
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Hỗ trợ phát hiện và thông báo ùn tắc giao thông trên Android", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_ho_tro_phat_hien_va_thong_bao_un_tac_giao_thong_tr.pdf