You are on page 1of 90

I HC NNG

TRNG I HC BCH KHOA

KHOA CNG NGH THNG TIN


Tel. (84-511) 736 949, Fax. (84-511) 842 771
Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn

LUN VN TT NGHIP K S
NGNH CNG NGH THNG TIN
M NGNH : 05115

TI :
XY DNG H THNG GPS TRACKER TRN THIT B DI
NG
M s : 06T3-147
Ngy bo v : 15-16/06/2011

SINH VIN : NG VN TRUNG


LP :
06T3
CBHD :
ThS. TRNH CNG DUY

NNG, 06/2011

Xy dng h thng Gps-Tracker trn thit b di ng

LI CM N
Ti xin chn thnh cm n cc thy c trong khoa Cng ngh thng tin,
trng i hc Bch khoa Nng truyn t nhng kin thc qu bu
cho ti trong nhng nm hc va qua v nht l to iu kin thun li
cho ti hc tp, thc hin ti tt nghip ny.
c bit, ti xin chn thnh cm n Thy gio ThS. Trnh Cng Duy
trc tip, tn tnh gip v hng dn chng ti trong sut thi gian
thc hin ti.
V c c kt qu nh ngy hm nay ti rt bit n gia nh ng
B, Cha M v nhng ngi thn trong gia nh ng vin, khch l, to
mi iu kin thun li nht v vt cht ln tinh thn trong sut qu trnh
hc tp cng nh qu trnh thc hin ti tt nghip ny.
Mc d c gng hon thnh n trong phm vi v kh nng cho
php nhng chc chn s khng trnh khi nhng thiu st. Ti rt mong
nhn c s thng cm, gp v tn tnh ch bo ca qu Thy C v cc
bn.
Mt ln na xin chn thnh cm n!
Nng, ngy 20 thng 05 nm 2011
Sinh vin thc hin
Ng Vn Trung

Xy dng h thng Gps-Tracker trn thit b di ng

LI CAM OAN
Ti xin cam oan :
1

Nhng ni dung trong lun vn ny l do ti thc hin di s hng dn


trc tip ca thy gio Ths.Trnh Cng Duy

Mi tham kho dng trong lun vn u c trch dn r rng tn


tc gi, tn cng trnh, thi gian, a im cng b.

Mi sao chp khng hp l, vi phm quy ch o to, hay gian tr,


ti xin chu hon ton trch nhim.
Sinh vin thc hin,
Ng Vn Trung

MC LC
DANH MC HNH..............................................................................................................7
.I BI CNH TI..................................................................................................8
.II MC CH V NGHA......................................................................................8
.III NHIM V THC HIN......................................................................................8
.IV PHNG PHP THC HIN..............................................................................8
C S L THUYT...........................................................................................................9
.I Gii thiu v Android.................................................................................................9
.I.1. Tnh nng m ca android..................................................................................9
.I.2. Cc thnh phn c bn ca Android.................................................................11
Cc th vin h tr trong android.........................................................................12
.I.2.1. Qu trnh thc thi mt chng trnh android..............................................13
.I.2.2. Cu trc ca mt ng dng android............................................................13
.II Nghin cu nn tng android..................................................................................14
.II.1. B khung ca mt ng dng android..............................................................14
.II.1.1. Android Activity..........................................................................................15
.II.1.2. Intent v Broadcast Receiver......................................................................20
.II.1.3. Android Service...........................................................................................23
.II.1.4. Content provider.........................................................................................25
.II.1.5. Android SQLite Database...........................................................................26
.II.2. Vng i ca mt ng dng android..............................................................30
.II.3. Cc cng c pht trin mt ng dng android................................................32
.II.3.1. B gi lp ca android...............................................................................32
.II.3.2. Nhng cng c pht trin Android dnh cho Eclipse IDE.........................37
.II.3.3. Dalvik Debug Monitor Service (ddms) ......................................................37
.II.3.4. Android Debug Bridge (adb) .....................................................................38
.II.3.5. Android Asset Packaging Tool (aapt) ........................................................38
.II.3.6. Android Interface Description Language (aidl) ........................................38
.II.3.7. sqlite3 .........................................................................................................38
.II.3.8. Traceview ...................................................................................................38
.II.3.9. mksdcard ....................................................................................................38
.II.3.10. dx ..............................................................................................................38
.II.3.11. activityCreator .........................................................................................39
.III Cc ch bo mt ca mt ng dng android....................................................39
.III.1. Truy cp tp tin v cc nh danh ca ngi dng........................................39
.III.2. Cc quyn ang c s dng.......................................................................40
.III.3. Cc quyn trong vic khai bo v c tnh bt but .......................................41
.III.4. Nhng quyn bt but c trong AndroidManifest.xml.................................42
.III.5. Vic tun theo cc quyn khi qung b cc intent.........................................44
.III.6. Cho php thc thi cc quyn khc.................................................................44
.III.7. Cc ti nguyn v quc t ha.......................................................................44
.IV Tm hiu v GPS...................................................................................................46
.IV.1. Khi nim GPS..............................................................................................46
.IV.2. Phn loi........................................................................................................47

NG VN TRUNG, LP 06T3

.IV.3. S hot ng ca Gps...................................................................................47


.IV.4. H thng v tinh Gps.....................................................................................48
.IV.4.1. Phn khng gian........................................................................................48
.IV.4.2. Phn kim sot...........................................................................................48
.IV.4.3. Phn s dng ............................................................................................49
.IV.5. Tn hiu Gps..................................................................................................49
.IV.6. Ngun li ca tn hiu GPS...........................................................................50
.IV.7. ng dng GPS trong dn dng.....................................................................51
.IV.7.1. ng dng trong lnh vc gio dc.............................................................51
.IV.7.2. ng dng gps trong lnh vc ti nguyn thin nhin................................52
.IV.7.3. ng dng GPS trong lnh vc Du & Kh t...........................................52
.IV.7.4. ng dng GPS trong C quan chnh ph..................................................53
PHN TCH V THIT K CHNG TRNH...........................................................54
.I KHO ST, M T BI TON...........................................................................54
.I.1. Xy dng biu use case...............................................................................54
.I.1.1. Cc tc nhn ca h thng...........................................................................54
.I.1.2. Phn tch cc Use Case................................................................................55
.I.2. Biu tun t.................................................................................................61
.I.3. Biu lp.......................................................................................................62
.I.3.1. Class gpsdevicesList.....................................................................................63
.I.3.2. Class gpsDevices..........................................................................................63
.I.3.3. Class gpsHistory...........................................................................................63
.II XY DNG C S D LIU.............................................................................65
CI T V TH NGHIM..........................................................................................68
.I Yu cu i vi h thng.........................................................................................68
.II Ci t Android v Eclipse.....................................................................................69
.II.1. Download Android SDK.................................................................................69
.II.2. Tch hp Android SDK vo Eclipse................................................................70
.II.3. Android Virtual Devices.................................................................................73
.II.4. Ci t chng trnh Gps_Tracker..................................................................74
.II.4.1. Ci t chng trnh trn Emulator...........................................................74
.II.4.2. Ci t chng trnh vo Eclipse...............................................................75
.III Kt qu Demo chng trnh..................................................................................77
.III.1. Kt qu client ( trn thit b android).........................................................77
.III.1.1. Mn hnh khi ng chng trnh.............................................................77
.III.1.2. Mn hnh About.........................................................................................78
.III.1.3. Mn hnh Login.........................................................................................79
.III.1.4. Mn hnh View Map...................................................................................80
.III.2. Kt qu trn server........................................................................................81
.III.2.1. Giao din chnh ca ngi s dng trn server........................................82
.III.2.2. Thm mi mt thit b mi ........................................................................82
.III.2.3. Xem li history ca thit b........................................................................83
.III.2.4. Xem li ng i ca thit b....................................................................83
.III.2.5. Xem v tr hin ti ca 1 thit b................................................................84
[1] W. Frank Ableson, Charlie Collins, Robin . Unlocking Android............................1
[2] Mark L. Murphy. Beginning Android.....................................................................1
[3] Mark L. Murphy. The Busy Coders Guide to Android Development..................1
NG VN TRUNG, LP 06T3

Xy dng h thng Gps-Tracker trn thit b di ng


[4]
[5]
[6]
[7]

ThS. Trnh Cng Duy. Sildes Android....................................................................1


Trang web : http://www.android.com/.....................................................................1
Trang web: http://vietandroid.com/.........................................................................1
V mt s din n android. ...................................................................................1

DANH MC HNH
HNH 1: GII THIU ANDROID.....................................................................................9
HNH 2: KIN TRC ANDROID...................................................................................11
HNH 3 : BIU M T ACTIVITY STATE.........................................................17
HNH 4: SERVICE LIFECYCLE...................................................................................24
HNH 5: V D CONTENT PROVIDER........................................................................26
HNH 6: CC TC NHN CA H THNG...............................................................54
HNH 7: USE CASE NGI S DNG CLIENT....................................................55
HNH 8: USE CASE NGI S DNG SERVER..................................................58
HNH 9: BIU TUN T NGI DNG CLIENT..........................................61
HNH 10: BIU TUN T NGI DNG SERVER.......................................62
HNH 11: BIU LP..................................................................................................62
HNH 12: C S D LIU..............................................................................................65
HNH 13: CI T SDK..................................................................................................69
HNH 14: TCH HP SDK VO ECLIPSE...................................................................71
HNH 15: CREATE V START 1 AVD.........................................................................74
HNH 16 : MN HNH KHI NG CHNG TRNH...........................................77
HNH 17 : MN HNH ABOUT .....................................................................................78
HNH 18 : MN HNH LOGIN.......................................................................................79
HNH 19 : MN HNH VIEW MAP ..............................................................................80
HNH 20 : MN HNH CONFIG.....................................................................................81
HNH 21 : GIAO DIN CHNH CA NGI S DNG TRN SERVER..............82
HNH 22 : FORM THM MI MT THIT B..........................................................82
HNH 23: TRANG XEM HISTORY CA THIT B...................................................83
HNH 24: TRANG XEM LI NG I CA THIT B.........................................83
HNH 25:: TRANG XEM V TR HIN THI CA MT THIT B......................84

NG VN TRUNG, LP 06T3

Xy dng h thng Gps-Tracker trn thit b di ng

M U

.I

BI CNH TI

Trong nhu cu thc t ca cuc sng, vic qun l v xc nh v tr cc thng tin ca


ngi s dng i vi cc lnh vc mnh cn qun l ngy cng ln. V d nh vic qun l cc
loi hang ha ang c vn chuyn, qun l con ci, qun l tin trnh, l trnh ca mt dch
v vn chuyn no nh EMS, DHL.
Vi s pht trin ca cc thit b di ng. t bit l thit b di ng chy trn h iu hnh
Android ca google. Android thu ht c s ch ca gii cng ngh khp ton cu khi
a con ca Google s s dng giy php m ngun m. l mt sn phm kt tinh t
tng ca Khi Lin minh thit b cm tay m do Google dn u, gm 34 thnh vin vi cc
cng ty hng u v cng ngh v di ng ton cu nh Qualcomm, Intel, Motorola, Texas
Instruments v LG Electronics, cc nh mng nh T-Mobile, Sprint Nextel, NTT DoCoMo v
China Mobile. Cc nh pht trin c th s dng min ph b Android Software Development
Kit (SDK) xy dng cc ng dng ca mnh.
Android l mt lnh vc cn kh mi Vit Nam, do phc v cho nhu cu thc t
trn v tm hiu cng ngh ca Android, em chn ti Gps Tracker

.II MC CH V NGHA
Lun vn nhm mc ch xy dng mt chng trnh chy trn h iu hnh Android
cung cp a ch hin thi ca ngi s dng ln Server. Ngi qun l cc thit b server
c th ng nhp xem v tr hin ti ca thit b mnh ang qun l ti v tr no, c th
xem li lch trnh, ng i ca thit b .

.III NHIM V THC HIN


Cn thc hin hai bc:

Bc 1: Xy dng chng trnh cho client ( cc thit b di ng s dng h iu


hnh android)

Bc 2: Xy dng mt web server hin th cc thng tin cho ngi qun l.

.IV PHNG PHP THC HIN


Nghin cu cc vn l thuyt c s ca andoid
Tm hiu v api google map xy dng h thng gps_tracker da vo Api ny ca
google
Xy dng chng trnh trn android thu thp v cp nht d liu cho server.
Xy dng trang web s dng nn tng Joomla hin th cc thng tin cp c cp nht
Nghin cu plugin google map ca joomla v bn v ng i ca cc thit b.

NG VN TRUNG, LP 06T3

Xy dng h thng Gps-Tracker trn thit b di ng

CHNG 1

C S L THUYT
.I

Gii thiu v Android

Hnh 1: Gii thiu android


Android l tn mt nn tng m cho thit b di ng ca Google (gm h iu hnh [linux
base], middleware v mt s ng dng c bn). Androind s ng u vi mt s h iu
hnh dnh cho thit b di dng khc ang hm nng th trng nh Windows Mobile, Symbian
v d nhin l c OS X (iPhone).
Android thu ht c s ch ca gii cng ngh khp ton cu khi a con ca
Google s s dng giy php m ngun m. l mt sn phm kt tinh t tng ca Khi
Lin minh thit b cm tay m do Google dn u, gm 34 thnh vin vi cc cng ty hng
u v cng ngh v di ng ton cu nh Qualcomm, Intel, Motorola, Texas Instruments v
LG Electronics, cc nh mng nh T-Mobile, Sprint Nextel, NTT DoCoMo v China Mobile.
Cc nh pht trin c th s dng min ph b Android Software Development Kit (SDK)
xy dng cc ng dng ca mnh

.I.1.

Tnh nng m ca android

Android c xy dng cho php cc nh pht trin to ra cc ng dng di ng hp


dn tn dng tt c mt chic in thoi cung cp. N c xy dng c thc s m.

NG VN TRUNG, LP 06T3

Xy dng h thng Gps-Tracker trn thit b di ng


V d, mt ng dng c th ku gi bt k chc nng li ca in thoi nh thc hin cuc
gi, gi tin nhn vn bn, hoc bng cch s dng my nh, cho php cc nh pht trin to
ra phong ph hn v nhiu hn na nhng kinh nghim c kt cho ngi dng. Android c
xy dng trn m Linux Kernel. Hn na, n s dng mt my o tu chnh c thit k
ti u ha b nh v ti nguyn phn cng trong mt mi trng di ng. Android l m
ngun m, n c th c liberally m rng. Nn tng ny s tip tc tin trin nh cng ng
nh pht trin cng vic cng nhau xy dng cc ng dng di ng sng to.
Android khng phn bit gia cc ng dng li ca in thoi v cc ng dng ca bn th
ba. H tt c c th c xy dng c th truy cp bng kh nng ca mt ngi cung cp
cho ngi s dng in thoi vi mt di rng cc ng dng v dch v. Vi cc thit b xy
dng trn H iu hnh Android, ngi dng c th hon ton thch ng vi in thoi n li
ch ca h. H c th trao i trn mn hnh ca in thoi, nhng phong cch ca dialer,
hoc bt k ng dng. H thm ch c th hng dn in thoi ca h s dng hnh nh
a thch ca h xem cc ng dng x l xem tt c cc hnh nh.
Android ph b ro cn xy dng cc ng dng mi v sng to. V d, mt nh pht
trin c th kt hp thng tin t cc trang web vi d liu trn in thoi di ng ca mt c
nhn v d nh a ch lin h ca ngi dng, lch, hoc v tr a l cung cp mt tri
nghim ngi dng c lin quan hn. Vi Android, mt nh pht trin c th xy dng mt
ng dng cho php ngi dng xem v tr ca bn b ca h v c cnh bo khi h ang c
trong vng ph cn cho h mt c hi kt ni.
Nn tng Android cho php xy dng cc ng dng da vo cc tnh cht sau:
- Khung ng dng (application framework): cho php dng li v thay th cc thnh phn.
- My o Dalvik: ty chn cho cc di ng.C ch hot ng ca n tng t nh my o
Java nhng n thc thi dex (dalvik executable) bytecode nh cng c dx chuyn i m
bytecode thnh dex bytecode.
- Trnh duyt c tch hp (integrated browser): da trn cng c ngun m WebKit.
- ha: c trang b bi cc th vin 2D thng thng, ha 3D da trn s c t
ca OpenGL ES 1.0 ( my chy nhanh hn c th ty chn phn cng).
- C s d liu SQLite: dng cho cu trc b lu tr d liu.

NG VN TRUNG, LP 06T3

10

Xy dng h thng Gps-Tracker trn thit b di ng


- Mi trng truyn thng: cung cp ting, hnh nh thng dng, v mt s nh dng nh
nh MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF.
- Mi trng pht trin y : cha mt thit b m phng, cc cng c pht hin li, b
nh, hin trng thc thi, v mt phn mm ci t dng IDE Eclipse.
Ngoi ra cn h tr cc ng dng tch hp cc cng ngh mi hin nay nh h thng
truyn thng di ng ton cu GMS, Bluetooth, EDGE, 3G, WiFi, Camera, GPS, compass, v
accelerometer (cc cng ngh ny khi dng cn ph thuc vo thit b).

.I.2.

Cc thnh phn c bn ca Android

Biu di y th hin cc thnh phn chnh ca h iu hnh Android:

Hnh 2: Kin trc android


Bn trong Android bao gm mt nhn Linux, tip n l cc th vin, chng l lp nm
trn nhn, trn na l cc framework v cui cng l nhng lp ng dng.
Lp th vin chnh l ni thc hin cc on m cho cc thc th nh b x l a
phng tin dng xem/ghi li m thanh v hnh nh, nhn ca trnh duyt Web, tin trnh bin
dch kiu ch, v b my c s d liu SQLite.
Qu trnh thc thi ca Android cng c thc hin ti lp th vin ny.

NG VN TRUNG, LP 06T3

11

Xy dng h thng Gps-Tracker trn thit b di ng


Nm trn th vin chnh l cc framework, l tp hp cc dch v c th dng li c
v nhng thnh phn chung phc v cho cc ng dng. V d, mt loi framework l thnh
phn cung cp ni dung cho bt k dch v no c lin quan n vic lu tr v truy xut d
liu. Giao din ng dng trong SQLite chnh l mt th d c th v trnh cung cp ni dung
ny.
Cc ng dng chy lp trn cng ca h iu hnh vi mt b cc nhn ng dng bao
gm th in t, lch lm vic, trnh duyt web...Khi nh pht trin vit mt ng dng dnh
cho Android, ta thc hin cc on m trong mi trng Java. Sau , cc on m ny s
c bin dch sang cc bytecode ca Java, tuy nhin thc thi c ng dng ny trn
Android th nh pht trin phi thc thi mt cng c c tn l dx. y l cng c dng
chuyn i bytecode sang mt dng gi l dex bytecode. "Dex" l t vit tt ca "Dalvik
executable" ng vai tr nh c ch o thc thi cc ng dng Android.

Cc th vin h tr trong android


Android cha mt tp cc th vin C/C++ c dng bi cc thnh phn khc nhau ca h
thng Android. Cc c tnh ny c nhn ra bi cc nh pht trin qua cc mu ng dng
Android. Mt s th vin chnh c lit k di y:
- Th vin h thng C: c ngun gc thc thi t th vin h thng chun C (libc), c
iu chnh cho ph hp i vi cc thit b nhng vo Linux.
- Qun l b mt (Surface Manager): qun l vic truy cp cch hin th h thng con v
vic ghp lin nt cc tng ha 2D v 3D t nhiu ng dng
- Cc th vin mi trng truyn thng: da trn OpenCORE ca PacketVideo, cc th
vin ny cung cp vic pht v ghi li ca cc nh dng ting v hnh thng dng, cng kh
hay nh cc tp tin hnh nh tnh, cha MPEG4, H.264, MP3, AAC, AMR, JPG, PNG.
- LibWebCore: mt b duyt web hin i cung cp ngun cho c hai trnh duyt trnh
duyt web ca Android v mt khung nhn web c th c nhng vo.
- SGL: phn di ca cng c ha 2D.
- Cc th vin 3D: mt s thc thi da trn cc giao din ng dng OpenGL ES 1.0; th
vin ny dng c phn cng 3D kh mnh cng nh phn mm to vch 3D ty chn mc
cao.
NG VN TRUNG, LP 06T3

12

Xy dng h thng Gps-Tracker trn thit b di ng


- FreeType: s biu din kiu ch ca bitmap v vector.
- SQLite: Mt cng c c s d liu c dung lng nh vi s tng tc v d liu kh
tt, h tr cho tt c cc ng dng thc hin vic lu tr d liu.

.I.2.1.

Qu trnh thc thi mt chng trnh android

Android cha mt tp cc th vin chnh cung cp hu ht cc chc nng sn c trong


ngn ng lp trnh Java.
Mi ng dng Android chy trn chnh tin trnh ca n, vi chnh thc th ca my o
Dalvik. Dalvik c vit vi mc ch l mt thit b c th chy hiu qu trn nhiu my o.
My o Dalvik thc thi cc tp tin trong Dalvik Executable(.dev), nh dng ny c ty
chn theo du b nh ti thiu. My o phi c ng k, sau mi c th chy cc nh
dng dex. nh dng ny c to ra bi cng c dx, cng c ny chuyn i t file .class
thnh file .dex. My o Dalvik da vo nhn Linux to cc chc nng nh to lung v
qun l b nh cp thp.

.I.2.2.

Cu trc ca mt ng dng android

Cc nh pht trin c ton quyn truy cp n cng cc khung giao din ng dng t cc
ng dng li. Kin trc ng dng c thit k nhm n gin vic dng li cc thnh phn,
bt c ng dng no u c th a ra cc dc tnh ca n v cc ng dng khc bt k sau
u c th dng li nhng c tnh ny (ty thuc vo cc rng buc an ton i hi t khung
ng dng). Ngi dng c quyn thay th cc thnh phn nu cng c ch ny.
di cc ng dng l tp cc dch v v h thng, hay ni cch khc th khung ng dng
bao gm cc thnh phn thng dng sau:
- C rt nhiu cc thnh phn c th m rng ca Views : c th c dng to mt ng
dng, gm cc list, grid, textbox, button, v ngay c vic nhng vo mt trnh duyt web.
- Trnh cung cp ni dung (Content Providers) : cho php cc ng dng truy cp d liu t
cc ng dng khc (nh Contacts), hay chia s chnh d liu ca ng dng .
- Trnh qun l ti nguyn (Resourse Manager) : cung cp s truy cp n cc ti nguyn
khng c m ha nh cc string ring l, ha, cc tp tin layout.

NG VN TRUNG, LP 06T3

13

Xy dng h thng Gps-Tracker trn thit b di ng


- Trnh qun l thng bo (Notification Manager) : cho php tt c cc ng dng hin th
cc cnh bo thng dng trn thanh trng thi.
- Trnh qun l hot ng (Activity Manager) : qun l vng i ca cc ng dng v cung
cp mt s iu hng thng dng khi thc thi Android c th nhn bit c danh sch
cc hot ng cn c to ra trong mt ng dng.
Ngoi ra cn c mt s dch v khc nh Package Manager, Window Manager, Telephony
Manager, Location Manager, XMPP Service.

.II Nghin cu nn tng android


.II.1. B khung ca mt ng dng android
to nn mt ng dng android th bao gm nhiu thnh phn. Cc thnh phn ny c
chia lm 6 loi c bn sau:

Activity: l nn ca 1 ng dng. Khi khi ng 1 ng dng Android no th bao


gi cng c 1 main Activity c gi, hin th mn hnh giao din ca ng dng cho
php ngi dng tng tc.

Service: thnh phn chy n trong Android. Service s dng update d liu, a
ra cc cnh bo (Notification) v khng bao gi hin th cho ngi dng thy.

Content provider: kho d liu chia s. Content Provider c s dng qun l


v chia s d liu gia cc ng dng.

Intent: nn tng truyn ti cc thng bo. Intent c s dng gi cc thng


bo i nhm khi to 1 Activity hay Service thc hin cng vic mong mun.
VD: khi m 1 trang web, th gi 1 intent i to 1 activity mi hin th trang web
.

Broadcast Receiver: thnh phn thu nhn cc Intent bn ngoi gi ti. VD: khi
vit 1 chng trnh thay th cho phn gi in mc nh ca Android, khi cn 1
BR nhn bit cc Intent l cc cuc gi ti.

NG VN TRUNG, LP 06T3

14

Xy dng h thng Gps-Tracker trn thit b di ng

Notification: a ra cc cnh bo m khng lm cho cc Activity phi ngng hot


ng.

Trong Activity, Service, Broadcast Receiver v Content Provider mi l nhng thnh


phn chnh cu thnh nn ng dng Android, bt buc phi khai bo trong AndroidManifest.

.II.1.1.

Android Activity

Cc Activity l hot ng c bn nht trong 4 khi xy dng nn mt ng dng Adroid.


Mt Activity l lun lun l mt mn hnh n trong ng dng. Mi Activity thc thi nh mt
lp n c dn xut t lp c s Activity. Lp ny s hin th giao din ngi dng cha
cc Views v phn hi li nhng s kin. Hu ht cc ng dng u c nhiu mn hnh. V d,
mt on tin nhn ng dng c kh nng hin th trn mt mn hnh s ch ra mt danh sch
ca cc contacts gi tin nhn, mn hnh th hai dng vit tin nhn theo cc contact
chn, cc mn hnh khc dng xem li cc tin nhn hoc thay i ch thit lp. Mi mn
hnh s c thc thi nh l mt Activity. Di chuyn ti mt mn hnh hin th khc khc vi
mn hnh hin hnh bng cch bt u mt hot ng mi, nhng mn hnh hin hnh phi
thc hin xong cc Activity ca n (iu ny c ngha l giao din ng dng ca Activity phi
c hon thnh). Trong mt s trng hp mt hot ng c th tr v mt gi tr cho hot
ng lin trc - v d, mt hot ng cho php ngi dng chn mt hnh nh s tr v
hnh nh c chn t i tng gi.
H iu hnh Android qun l Activity theo dng stack: khi mt Activity mi c khi
to, n s c xp ln u ca stack v tr thnh running activity, cc Activity trc s
b tm dng v ch hot ng tr li khi Activity mi c gii phng.
Mt Activity gm c 4 trng thi sau:

Active (running): Activity ang hin th trn mn hnh (foreground).

Paused: Activity vn hin th (visible) nhng khng th tng tc. VD: mt activity
mi xut hin hin th giao din ln trn activity c, nhng giao din ny nh hn
giao din ca activity c, do ta vn thy c 1 phn giao din ca activity c
nhng li khng th tng tc vi n.

Stop: Activity b thay th hon ton bi Activity mi s tin n trng thi stop

NG VN TRUNG, LP 06T3

15

Xy dng h thng Gps-Tracker trn thit b di ng

Killed: Khi h thng b thiu b nh, n s gii phng cc tin trnh theo nguyn tc
u tin. Cc Activity trng thi stop hoc paused cng c th b gii phng v khi
n c hin th li th cc Activity ny phi khi ng li hon ton v phc hi li
trng thi trc .

NG VN TRUNG, LP 06T3

16

Xy dng h thng Gps-Tracker trn thit b di ng

Biu m t activity state:

Hnh 3 : Biu m t activity state


C 3 looper chnh m bn c th quan tm gim st cc Activity ca mnh:

Ton b thi gian sng ca mt hot ng xy ra gia ln gi u tin


onCreat(Bundle) v ln gi cui cng onDestroy() (gia phng thc khi to v
xa b ca mt Activity). Mt hot ng khi to tt c cc trng thi ton cc
trong onCreat(), v gii phng tt c mi ti nguyn cn li trong onDestroy(). Cho
v d, nu c mt lung thread ang chy trn nn nhm ti d liu t mng, n c
th bt u thread trong onCreate() v sau dng thread trong onDestroy().

Thi gian sng chnh ca mt hot ng xy ra gia mt ln gi onStart() n khi


xut hin mt cuc gi tng ng n onStop(). Trong sut thi gian ny ngi

NG VN TRUNG, LP 06T3

17

Xy dng h thng Gps-Tracker trn thit b di ng


dng c th nhn thy Activity ny trn mn hnh, v tng tc trc tip vi n.
Gia hai phng thc bn c th duy tr ngun ti nguyn, iu l iu cn thit
hin th Activity n ngi s dng. Cho v d, bn c th ng k mt
IntentReceiver ti onStart() gim st cc thay i nh hng n giao din m
bn ang to ra, v khi bn khng ng k trn onStop() th ngi dng khng duy
tr c giao din m bn ang hin th theo mun ca h. Cc phng thc
onStart() v onStop() c th c gi nhiu ln, khi Activity l trc quan hay n
i i vi ngi s dng.

Tin cnh thi gian sng ca mt Activity xy ra gia mt cuc gi onResume()


trc khi c mt cuc gi tng ng n onPause(). Trong sut thi gian ny
Activity ny pha trc ca tt c nhng hot ng khc v nh hng n ngi
s dng. Mt Activity c th thng xuyn xy ra gia lc nhng trng thi hi
phc li v tm dng cho v d khi thit b ang ngh, khi l kt qu ca mt
Activity c sinh ra, t mt intent mi c to v th on m trong
nhng phng thc ny kh gn nh.

Ton b vng i ca mt Activity u c nh ngha bi nhng phng thc ca


Activity. Tt c cc phng thc ny u ring bit, bn c th ghi ln chng cho ph hp
khi Activity thay i trng thi. Tt c mi Activity u thc thi onCreate(Bundle) thc
hin thit lp lc ban u, i lc Activity s cng thc thi onPausse() gi cc thay i ca d
liu v mt khc phi chun b ngng tng tc vi ngi dng. Cng c nhiu hot ng
cng thc thi onFreeze() v thc hin vic ly li trng thi tng ng trong
onCreate(Bundle). Nhng phng thc khc c th thc thi khi cn. Bn nn lun lun gi
lp cha Activity khi thc thi nhng phng thc ny.

public class Activity extends ApplicationContext {


protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();

NG VN TRUNG, LP 06T3

18

Xy dng h thng Gps-Tracker trn thit b di ng

protected void onFreeze(Bundle outIcicle);


protected void onPause();
protected void onStop();
protected void onDestroy();
}

NG VN TRUNG, LP 06T3

19

Xy dng h thng Gps-Tracker trn thit b di ng

.II.1.2.

Intent v Broadcast Receiver

.1 Khi nim intent


Theo nh ngha ca Google, Intent l mt miu t v mt hot ng cn c thc hin.
Cn ni mt cch n gin v d hiu hn, Intent l mt c cu cho php truyn thng ip
gia cc thnh phn ca 1 ng dng v gia cc ng dng vi nhau.
.2 Cc thuc tnh ca intent

Action: l hnh ng c thc hin, vd : ACTION_VIEW, ACTION_MAIN

data: l d liu s c x l trong action, thng c din t l mt Uri


(Uniform Resource Identifier)

V d:
ACTION_VIEW content://contacts/people/1 hin th thng tin ngi dng vi
m danh l 1.
ACTION_DIAL content://contacts/people/1 Hin th mn hnh gi n ngi
c m danh l 1.
ACTION_DIAL tel:123 - Hin th mn hnh gi vi s gi l 123.

Category:

sung

thm

thng

tin

cho

action

ca

Intent.

VD:

CATEGORY_LAUNCHER thng bo s thm vo Launcher nh l mt ng dng


top-level.

Type: ch r kiu ca data.

component: ch r thnh phn s nhn v x l intent. Khi thuc tnh ny c xc


nh th cc thuc tnh khc s tr thnh thuc tnh ph.

Extras: mang theo i tng Bundle cha cc gi tr b sung.

.3 Phn loi intent


Intent c chia ra lm 2 loi:

NG VN TRUNG, LP 06T3

20

Xy dng h thng Gps-Tracker trn thit b di ng

Explicit Intents: intent c xc nh thuc tnh component, ngha l ch r


thnh phn s nhn v x l intent. Thng thng intent dng ny s khng b sung
thm cc thuc tnh khc nh action, data. Explicit Intent thng c s dng
khi chy cc activity trong cng 1 ng dng.

Implicit Intents: Intent khng ch r component x l, thay vo n b sung


thng tin trong cc thuc tnh. Khi intent c gi i, h thng s da vo nhng
thng tin ny quyt nh component no thch hp nht x l n.

VD:
ACTION_DIAL tel:123 thng thng s c h thng giao cho activity Phone
Dialer mc nh ca Android x l.

.4 Mt s action thng dng trong intent

ACTION_ANSWER - m Activity x l cuc gi ti, thng l Phone Dialer


ca Android.

ACTION_CALL - m 1 Phone Dialer (mc nh l PD ca Android) v ngay lp


tc thc hin cuc gi da vo thng tin trong data URI.

ACTION_DELETE - m Activity cho php xa d liu m a ch ca n cha


trong data URI.

ACTION_DIAL - m 1 Phone Dialer (mc nh l PD ca Android) v in thng


tin ly t a ch cha trong data URI.

ACTION_EDIT - m 1 Activity cho php chnh sa d liu m a ch ly t data


URI.

ACTION_SEND - m 1 Activity cho php gi d liu ly t data URI, kiu ca d


liu xc nh trong thuc tnh type.

ACTION_SENDTO - m 1 Activity cho php gi thng ip ti a ch ly t data


URI.

NG VN TRUNG, LP 06T3

21

Xy dng h thng Gps-Tracker trn thit b di ng

ACTION_VIEW - action thng dng nht, khi chy activity thch hp hin th
d liu trong data URI.

ACTION_MAIN - s dng khi chy 1 Activity.

.5 Intent Filter
Activity, Service v BroadCast Receiver s dng Intent Filter thng bo cho h thng
bit cc dng Implicit Intent m n c th x l. Ni cch khc, Intent Filter l b lc Intent,
ch cho nhng Intent c php i qua n.
Intent Filter m t kh nng ca component nh ngha n. Khi h thng bt c 1
Implicit Intent (ch cha 1 s thng tin chung chung v action, data v category...), n s s
dng nhng thng tin trong Intent ny, kim tra i chiu vi Intent Filter ca cc component
cc ng dng, sau quyt nh khi chy ng dng no thch hp nht x l Intent bt
c. Nu c 2 hay nhiu hn ng dng thch hp, ngi dng s c la chn ng dng
mnh mun.

NG VN TRUNG, LP 06T3

22

Xy dng h thng Gps-Tracker trn thit b di ng

VD:

<activity android:name=".Implicit_Examp"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL_BUTTON"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>

.II.1.3.

Android Service

Service l 1 trong 4 thnh phn chnh trong 1 ng dng Android ( Activity, Service,
BroadcastReceiver, ContentProvider) thnh phn ny chy trong hu trng v lm nhng
cng vic khng cn ti giao din nh chi nhc, download, x l tnh ton
Mt Service c th c s dng theo 2 cch:

N c th c bt u v c cho php hot ng cho n khi mt ngi no


dng n li hoc n t ngt. ch ny, n c bt u bng cch gi
Context.startService() v dng bng lnh Context.stopService(). N c th t
ngt bng lnh Service.stopSelf() hoc Service.stopSelfResult(). Ch cn mt lnh
stopService() ngng Service li cho d lnh startService() c gi ra bao
nhiu ln

Service c th c vn hnh theo nh c lp trnh vic s dng mt Interface


m n nh ngha. Cc ngi dng thit lp mt ng truyn ti i tng Service

NG VN TRUNG, LP 06T3

23

Xy dng h thng Gps-Tracker trn thit b di ng


v s dng ng kt ni thm nhp vo Service. Kt ni ny c thit lp
bng cch gi lnh Context.bindService() v c ng li bng cch gi lnh
Context.unbindService(). Nhiu ngi dng c th kt ni ti cng mt thit b.
Nu Service vn cha c khi chy, lnh bindService() c th ty khi chy n.
Hai ch ny th khng tch bit ton b. Bn c th kt ni vi mt Service m
n c bt u vi lnh startService().
Biu m t Service lifecycle

Hnh 4: Service lifecycle


Ging nh mt Activity, mt Service cng c cc phng thc chu k thi gian m bn c
th ci t kim sot nhng s thay i trong trng thi ca n. Nhng nhng phng thc
ca Service th t hn l ca Activity ch c 3- v chng th c s dng rng ri, khng
c bo v.

NG VN TRUNG, LP 06T3

24

Xy dng h thng Gps-Tracker trn thit b di ng


void onCreate()
void onStart(Intent intent)
void onDestroy()

Entire lifetime ca mt Service din ra gia thi gian onCreate() c gi ra v


thi gian m onDestroy() tr li. Ging nh mt Activity, mt Service li tit hnh
ci t ban u onCreate(), v gii phng tt c cc ti nguyn cn li
onDestroy().

Active lifetime ca mt Service bt u bng mt lnh ti onStart(). yl phng


thc c chuyn giao i tng Intent m c thng qua ti
startService().

Khng c callback tng ng no cho thi im service dng li, khng c


phng thc onstop(). Cc phng thc onCreate() v onDestroy() c gi cho
tt c cc Service d chng c c bt u bng Context.startService() hoc
Context.bindService() hay khng. Tuy nhin th, onStart() ch c gi ra i vi
cc Service bt u bng startService().Nu mt Service cho php nhng Service
khc kt ni vi n th s c thm cc phng thc callback dnh cho Service
thc hin.

.II.1.4.

Content provider

Mt Content Provider cung cp mt tp chi tit d liu ng dng n cc ng dng khc.


Thng c s dng khi chng ta mun to c s d liu di dng public ( cc ng dng
khc c th truy xut).
D liu thng c lu tr file h thng, hoc trong mt SQLite database.
n gin cc bn c th hnh dung nh : Danh b, Call log, cu hnh ci t...trn in
thoi l d liu di dng Content Provider.
Content Provider hin thc mt tp phng thc chun m cc ng dng khc c th truy
xut v lu tr d liu ca loi n iu khin.
Tuy nhin, nhng ng dng khng th gi cc phng thc trc tip. Hn th chng dng lp
Content Resolver v gi nhng phng thc .

NG VN TRUNG, LP 06T3

25

Xy dng h thng Gps-Tracker trn thit b di ng


Mt Content Resolver c th giao tip n nhiu content provider; n cng tc vi cc
provider qun l bt k giao tip bn trong lin quan.
V d mt ng dng nh ly tt c thng tin cu hnh load ln list view.

Hnh 5: V d content provider.

.II.1.5.

Android SQLite Database

Android s dng SQLite lm nn tng database cho vic truy xut v khai thc d liu,
SQLite vn l H CSDL quan h n gin d dng v gn nh, nn c s dng trn rt
nhiu nn tng di ng.
Cch to v s dng c s d liu SQLite. V d to mt c s d liu n gin user
gm 2 trng ID v name, ngoi ra cn c cc thao tc thm, sa, xa.

NG VN TRUNG, LP 06T3

26

Xy dng h thng Gps-Tracker trn thit b di ng

To c s d liu:
u tin 1 class DBAdapter x l tt c cc thao tc lin quan n
CSDL.

public static final String KEY_ID = "_id";


public static final String KEY_NAME = "name";

private DatabaseHelper mDbHelper;


private SQLiteDatabase mDB;

private static final String DATABASE_CREATE = "create table users


(_id integer primary key autoincrement, "
+ "name text not null);";
private static final String DATABASE_NAME = "Database_Demo";
private static final String DATABASE_TABLE = "users";
private static final int DATABASE_VERSION = 2;

private final Context mContext;

To

lp

bn

trong

DBAdapter

extend

lp

SQLiteOpenHelper, override 2 phng thc onCreate() v onUpgrade() qun l


vic to CSDL v version ca CSDL

private static class DatabaseHelper extends SQLiteOpenHelper{

public DatabaseHelper(Context context, String name,

NG VN TRUNG, LP 06T3

27

Xy dng h thng Gps-Tracker trn thit b di ng

CursorFactory factory, int version) {


super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
Log.i(TAG, "Upgrading DB");
db.execSQL("DROP TABLE IF EXISTS users");
onCreate(db);
}
}

M c s d liu

public DBAdapter open()


{
mDbHelper = new DatabaseHelper(mContext, DATABASE_NAME, null,
DATABASE_VERSION);
mDB = mDbHelper.getWritableDatabase();
return this;
}

NG VN TRUNG, LP 06T3

28

Xy dng h thng Gps-Tracker trn thit b di ng


Thm gi tr vo c s d liu
public long createUser(String name){
ContentValues inititalValues = new ContentValues();
inititalValues.put(KEY_NAME, name);
return mDB.insert(DATABASE_TABLE, null, inititalValues);
}

Truy vn c s d liu

public Cursor getAllUsers(){


return
mDB.query(DATABASE_TABLE,
KEY_NAME}, null, null, null, null, null);

new

String[]

{KEY_ID,

S dng c s d liu

public void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mDB = new DBAdapter(this);
mDB.open();
mDB.createUser("Ngo Van Trung");
getData();
}

private void getData(){

NG VN TRUNG, LP 06T3

29

Xy dng h thng Gps-Tracker trn thit b di ng

mCursor = mDB.getAllUsers();
startManagingCursor(mCursor);
String[] from = new String[]{DBAdapter.KEY_NAME};
int[] to = new int[] {R.id.text1};
SimpleCursorAdapter
users
=
R.layout.users_row, mCursor, from, to);

new

SimpleCursorAdapter(this,

setListAdapter(users);
}

.II.2. Vng i ca mt ng dng android


Trong hu ht cc trng hp, mi ng dng Android chy trn chnh tin trnh Linux.
Tin trnh ny c to ra khi ng dng chy, v vn s cn ang hot ng cho n khi n
khng cn thit na, khi h thng cn ci to b nh cho cc ng dng khc.
Mt im c trng ch yu ca Android l khong thi gian tn ti ca qu trnh khng
c iu khin ngay lp tc bi ng dng m chnh n to ra.V th, vng i c xc nh
bi h thng thng qua s kt hp cc phn ca ng dng t h thng ang chy, t nhng
vn quan trng i vi ngi dng, v t tt c b nh c sn dng trong h thng.
iu quan trng i vi nhng nh pht trin ng dng l hiu cc thnh phn ng dng
khc nhau nh th no (trong s ring bit ca Activity, Service, v IntentReceiver), c nh
hng th no n vng i ca qu trnh ng dng. Khi dng khng ph hp cc thnh

phn, kt qu c th chnh l h thng ang ph hy cc qu trnh ng dng trong


khi cc tin trnh ny ang lm nhng cng vic quan trng.
Ta ly v d, mt IntentReceiver bt u mt tuyn khi n nhn mt Intent qua phng
thc onReceiveIntent(), v sau quay tr li. Mt khi quay tr li, h thng xem
IntentReceive khng hot ng na.V nh vy s ng cc qu trnh khng cn thit na
( tr khi cc thnh phn ng dng khc hot ng trong n ). Theo cch , h thng c th
lm ph hy qu trnh ny bt c lc no c phc hi li b nh, chm dt s xut hin

NG VN TRUNG, LP 06T3

30

Xy dng h thng Gps-Tracker trn thit b di ng


ca tuyn ang chy trn n. Gii quyt vn ny phi bt u mt Service t
IntentReceiver, v th h thng c bit l vn ang tch cc x l qu trnh ny.
xc nh xem qu trnh no b ph hy khi b nh thp, Android t chng vo trong
h thng cp bc quan trng da trn cc thnh phn ang chy v trng thi ca cc thnh
phn. y l trnh t ca tm quan trng ny:

Forceground process: ang chy mt ng dng Activity trn u mn hnh m


ngi s dng ang tng tc vi n (khi phng thc onResume() c
gi) hay l mt IntentReceiver hin ti ang chy (phng thc onReceiveIntent()
ang thc thi). Ch c mt vi tin trnh trong h thng v cc tin trnh ny ch b
hy khi vic sp xp mi nht xy ra, cng l khi b nh qu thp n ni cc tin
trnh ny khng th thc thi. Thng thng lc ny thit b s tin hnh phn trang
b nh, v th m hnh ng ny c yu cu gi cho giao din ngi dng
phn hi.

Visible process: l qu trnh cha mt Activity hin th trn mn hnh ca ngi s


dng nhng khng ni bt ln (phng thc onPause() c gi). iu ny c
th xy ra, cho v d, nu hot ng trc va mi hin th vi hp thoi xut
hin cho php hot ng sau c th nhn thy pha sau n. Nu mt qu trnh
coi l v cng quan trng v s khng b ph hy tr khi cng vic ang lm l
yu cu gi cho tt c cc qu trnh forceground chy.

Service process: gi mt Service va mi bt u vi phng thc startService().


Du cho cc qu trnh khng lp tc thy c t ngi s dng, chng thc hin
nhng iu m ngi dng quan tm (nh l nn mp3 lp li hay nn h thng mng
d liu c upload hoc c download ), nn h thng s lun gi cho cc qu
trnh ny chy tr khi n khng b nh gi li tt c cc qu trnh
forceground v visible.

Background process: cha mt Activity tc m hin ti l khng trc quan vi


ngi s dng (phng thc onStop() c gi). Qu trnh ny khng nh
hng n kinh nghim ca ngi s dng. Cc tin trnh ny thc thi vng i
hot ng mt cch chnh xc, h thng c th ph hy nh cc qu trnh bt c lc
no phc hi b nh cho mt trong 3 loi qu trnh trc . Theo cch thng

NG VN TRUNG, LP 06T3

31

Xy dng h thng Gps-Tracker trn thit b di ng


thng c nhiu cc qu trnh ang chy, nn h thng gi chng trong mt
danh sch LRU bo m rng cc qu trnh hu ht gn y u c xem xt
bi ngi s dng ln cui cng c th ph hy cc qu trnh ny nu b nh
ch thp..

Empty process: l khng cha bt k thnh phn hot ng ng dng no. L do


gi li mt qu trnh ln cn nh l mt cache nhm ci thin thi gian khi ng
l thi gian k tip m mt thnh phn ca ng dng cn thit c th thc thi. Nh
l, h thng s thng ph hy cc tin trnh trong mt tng lp to nn s cn
bng bao gm tt c cc ti nguyn h thng gia cc ni lu tr cc qu trnh
cache rng v cache lu tr bn trong nhn

.II.3. Cc cng c pht trin mt ng dng android


Android SDK bao gm mt s a dng vi nhng cng c ty chn gip bn pht trin cc
ng dng trn mobile trn nn tng Adroid. Quan trng nht l Android Emulator v Android
Development Tools plugin dnh cho Eclipse, nhng ngoi ra SDK cn cha mt trong s
nhng cng c khc cho b g li, ng gi v khi to cc ng dng ca bn trn b gi lp.

.II.3.1.

B gi lp ca android

Mt thit b o dnh cho mobile c chy trn my tnh ca bn. Bn s s dng b gi


lp thit k, g li v kim tra cc ng dng ca bn trong mi trng thc thi ca Android
.
Android SDK cha mt b m phng in thoi mt thit b o chy trn my ca bn.
B ny cho bn mu ban u, s hng dn v kim tra cc ng dng ca Android m khng
cn n mt thit b tht.
B m phng ca Android bt chc cc chc nng c bn v cch hnh x ca mt thit
b in thoi, ngoi tr n khng nhn v t cc cuc gi. bn tri b m phng cung cp
mt s iu hng khc bit v cc phm iu khin, m bn c th "nhn" bng cch dng
chut hay bn phm ca my bn pht sinh cc s kin cho ng dng ca mnh. N cng
cung cp mt mn hnh ng dng bn hin th, cng vi bt k ng dng Android no khc
ang chy.

NG VN TRUNG, LP 06T3

32

Xy dng h thng Gps-Tracker trn thit b di ng


gip bn to m hnh v kim tra ng dng ca mnh, b m phng cho php ng dng
ca bn dng cc dch v ca nn tng Android kt ni vi cc ng dng khc, truy cp
mng, nghe nhc, xem phim, lu tr v truy lc d liu, thng bo cho ngi dng, hon tr
cc kiu chuyn i ha v giao din.
B m phng cng cha mt kh nng g li ring bit, nh l mt console m bn c th
ghi t kt qu hin th ca nhn, gi lp cc ngt ca ng dng (Nh l cc tin nhn SMS n
hay l cc cuc gi in thoi), gi lp cc nh hng ca gc tr v cc phm trn knh
truyn d liu
.1 Bt u v dng b m phng
bt u b m phng, thay i th mc tools/ ca SDK v a vo emulator hay
./emulator. iu ny l cng vic nhm khi to h thng Android, bn s thy ca s b m
phng xut hin trn mn hnh ca bn.
ngng b m phng, th ng ca s b m phng li.
.2 iu khin b m phng
Bn c th dng b m phng bt u cc cng on ty chn v thit lp nhng lnh
console iu khin cch hnh x v tiu biu chnh l mi trng c gi lp. Mt khi b
m phng chy, bn c th iu khin n bng cch dng con tr chut hay bn phm
"nhn" cc phm thit b c gi lp.

NG VN TRUNG, LP 06T3

33

Xy dng h thng Gps-Tracker trn thit b di ng

Bng di tm tt cc nh x gia cc phm ca b m phng v cc phm trn bn phm

Emulator Key

Keyboard Key

Back

ESC

Menu

F1 or PgUp

Star

F2 or PgDn

Call

F3

End Call

F4

----

F5, F6 unassigned

Power button

F7

Disable/enable all networking

F8

Start tracing

F9 (only with -trace flag)

Stop tracing

F10 (only with -trace flag)

Home

HOME

DPad left/up/right/down

Keypad 4/8/6/2

DPad center click

Keypad 5

Rotate skin

Keypad 7/9

Volume up/down

Keypad +/-

Onion alpha increase/decrease

Keypad * / /

NG VN TRUNG, LP 06T3

34

Xy dng h thng Gps-Tracker trn thit b di ng

Toggle Unicode/raw key mode

Ctrl-K

Bng 1 Bng nh x gia cc phm ca b m phng v bn phm


.3 Dng cc hnh dng ca b m phng
Bn c th chy b m phng vi bt k hnh thi no trong bn kiu c m t di bng
sau. xc nh mt hnh dng no , bn dng c php:
-skin <skinID> , khi bt u b m phng.
V d: emulator -skin HVGA-L
Ch rng bn phi nhp vo <skinID> vi cc k t hoa (Nu my bn phn bit dng
ch).

nh danh ca

S m t

Hnh dng

hnh dng

HVGA-L

480x320, nm ngang

NG VN TRUNG, LP 06T3

35

Xy dng h thng Gps-Tracker trn thit b di ng

HVGA-P

320x480, thng ng (mc


nh)

QVGA-L

320x240, nm ngang

QVGA-P

240x320, thng ng

Bng 2 Bng m t cc thit b gi lp (Emulator)

NG VN TRUNG, LP 06T3

36

Xy dng h thng Gps-Tracker trn thit b di ng

.II.3.2.

Nhng cng c pht trin Android dnh cho Eclipse IDE

ADT plugin thm chc nng vo mi trng tch hp Eclipse, c th khi to v g li


cc ng dng ca Android mt cch d hn v nhanh hn. Nu bn s dng Eclipse, ADT
plugin a ra cho bn mt s ni ting khng th tin c trong s pht trin cc ng dng
ca Android :

N gip bn c th truy cp n cc cng c pht trin khc ca Android t


bn trong Eclipse IDE. Cho v d, ADT cho php bn truy cp rt nhiu kh
nng ca cng c DDMS giao tip c vi screenshots, qun l portforwarding, thit lp cc im dng, v quan st tin trnh v qu trnh thng
tin trc tip t Eclipse.

N cung cp mt New Project Wizard, iu ny gip cho bn to mt cch


nhanh chng v ci t tt c nhng file c bn m bn cn cho mt ng dng
mi ca Android.

N t ng v n gin hn qu trnh ca vic bn ang xy dng ng dng


ca Android.

N cung cp mt trnh son tho m ha Android, do n gip bn vit sn


XML cho bn k khai Android ca bn v nhng file ti nguyn.

.II.3.3.

Dalvik Debug Monitor Service (ddms)

Tch hp vi my o Dalvik trn nn tng ca Android, cng c ny cho php bn qun l


trn mt b gi lp hoc thit b v s tr gip trong b g li. Bn c th s dng n ph
b qu trnh, chn mt qu trnh g li, pht sinh d liu trace, quan st heap, v xem
thng tin v cc tin trnh, nm bt screenshots ca b gi lp hoc thit b, v rt nhiu iu
na.
Cng vic g li vi cng c g li c gi l Dalvik Debug Monitor Service (DDMS),
cung cp s phc v pha trc cng, lu gi li hnh nh trn thit b, truyn thng tin v lu
thng tin trn thit b. DDMS nm trong th mc tools/ ca SDK DDMS s lm vic vi c
emulator v thit b, nu c hai kt ni v ang chy ng thi, DDMS mc nh l x l
emulator.

NG VN TRUNG, LP 06T3

37

Xy dng h thng Gps-Tracker trn thit b di ng


Bn c th thit lp mt s ca u tin ca DDMS trong File->Preferences. S u tin
c lu "$HOME/.ddmsrc".

.II.3.4.

Android Debug Bridge (adb)

Cng c adb cho php bn khi to nhng file .apk ca ng dng ca bn trn b gi lp
hoc thit b v truy xut ti b gi lp hoc thit b t mt dng lnh. Bn c th s dng file
ny lin kt ti b g li chun chy nhng on m ng dng trn b gi lp hoc thit b
ca Android.

.II.3.5.

Android Asset Packaging Tool (aapt)

Cng c aapt cho php bn to nhng file .apk cha nhng bng nh phn v ti nguyn ca
cc ng dng Android.

.II.3.6.

Android Interface Description Language (aidl)

Cho php bn pht sinh on m cho mt giao din bn trong qu trnh, nh l mt dch
v phi c s dng.

.II.3.7.

sqlite3

Cng c ny cho php bn truy cp nhng file d liu SQLite c to v c s


dng bi cc ng dng ca Android.

.II.3.8.

Traceview

Cng c ny a ra nhng cch nhn, cng nh s phn tch bng ha ca bn tin d


liu trace, v th bn c th pht sinh t ng dng ca Android.

.II.3.9.

mksdcard

Gip bn to mt a hnh bn c th s dng vi b gi lpv ti to li s c mt


ca th lu tr bn ngoi (nh l mt card SD).

.II.3.10. dx
Cng c dx vit li file .class bng cch m ha byte nm trong bytecode Android (c
lu tr trong nhng file .dex .)

NG VN TRUNG, LP 06T3

38

Xy dng h thng Gps-Tracker trn thit b di ng

.II.3.11. activityCreator
Mt tp lnh pht sinh nhng file xy dng nn Ant m bn c th s dng bin dch cc
ng dng Android.Nu bn ang pht trin trn Eclipse vi ADT plugin, bn s khng cn
s dng tp lnh ny.

.III Cc ch bo mt ca mt ng dng android


Tng s truy cp n cc c tnh v ti nguyn ca h thng mt cch an ton, khai bo
cc quyn x l truy cp n nhng c tnh an ton cho chnh bn. Nu c php truy cp
th khi ng dng mi c th truy cp n tng chc nng c cung cp bi cc ng dng
khc (chng hn xy dng cc ng dng c th thc hin vic gi in thoi).

.III.1. Truy cp tp tin v cc nh danh ca ngi dng


Mi gi tp tin ca Android (Android package: .apk) ci trn thit b c cho bi nh
danh ngi dng Linux duy nht ca chnh n, vic to mt sandbox dnh cho mi tp tin v
ngn n tip xc vi cc ng dng khc (hay cc ng dng khc tip xc vi n). nh danh
ngi dng ny c gn cho mi tp tin khi ng dng c ci trn thit b, v thng cn
li trong khi tp tin vn cn tn ti trn thit b.
Bi s tun theo ch bo mt xy ra cp tin trnh, m ca hai gi apk bt k khng
th t ng thc thi trong cng mt tin trnh, lc ny chng cn thc thi nh hai ngi dng
khc bit ca Linux. Bn c th dng thuc tnh sharedUserId trong th
AndroidManifest.xml ca tp tin manifest ca mi gi c th gn cho chng cng vi ID.
Lm nh vy, vi mc ch l bo mt hai gi sau khi xem xt l cng mt ng dng, vi cng
ID ca ngi dng v cc s chp nhn ca tp tin. Ch rng gi li s an ton, ch c hai
ng dng c gn vi cng k hiu (v yu cu cng sharedUserld) s c cho ging ID ca
ngi dng.
Bt k tp tin no c to ra bi mt ng dng s c gn cho ID ca ngi dng ng
dng, v khng th truy cp thng thng n cc gi khc.Khi to mt tp tin mi vi cc
phng thc getSharedPreferences(String, int), openFileOutput(String, int), hay

createDatabase(String, int, int, SQLiteDatabase.CursorFactory), bn c th dng c


MODE_WORLD_READABLE v/hoc c MODE_WORLD_WRITEABLE cho
php bt c gi no khc c/ghi cc tp tin. Khi thit lp nhng c ny, tp tin vn cn thuc

NG VN TRUNG, LP 06T3

39

Xy dng h thng Gps-Tracker trn thit b di ng


v ng dng nhng cc quyn c v/hoc ghi ton cc va mi c thit lp mt cch ph
hp bt k ng dng no khc c th xem n.

.III.2. Cc quyn ang c s dng


Mt ng dng Android c bn khng c cc quyn tng thch vi n, ngha l n khng
th lm bt c iu g gy bt li cho kinh nghim ca ngi dng hay bt c d liu no trn
thit b. gip bo v cc c tnh ca thit b, bn phi cha trong tp tin
AndroidManifest.xml mt hay nhiu hn cc th <uses-permission> khai bo cc s cho
php m ng dng ca bn cn.
V d, mt ng dng cn gim st cc tin nhn SMS n s xc nh:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.app.myapp" >
<uses-permission id="android.permission.RECEIVE_SMS" />
</manifest>
Ti thi im ci ng dng, cc quyn phi yu cu ng dng c chp nhn bi cc
gi ci t, da trn cc kim tra v tin cy ca bn quyn v s tng tc vi ngi dng.

Khng kim tra ngi dng lm g trong khi mt ng dng ang thc thi: qu trnh ny cng
c xc nhn l mt s cho php c bit to ln khi ci t, v c th dng c tnh ny khi
c yu cu ( ngh), hay s cho php ny khng c chp nhn v mi n lc dng
c tnh ny s bo li m khng xut hin du nhc dnh cho ngi dng.
Thng thng mt s cho php khng c thc hin nh mong i s a kt qu vo
trong mt bit l SecurityException c nm tr li cho ng dng.Tuy nhin, iu ny
khng m bo xy ra mi ni.V d, phng thc broadcastIntent (Intent) kim tra cc
quyn khi d liu c phn pht cho mi ngi nhn, sau khi phng thc gi tr v, v th
bn s khng nhn c mt bit l nu c cc li ca cc quyn.Trong hu ht tt c cc
trng hp, tuy nhin, mt li trong s cho php s c in ra cho h thng log.

NG VN TRUNG, LP 06T3

40

Xy dng h thng Gps-Tracker trn thit b di ng


Cc quyn c cung cp bi h thng Android c th c tm thy gi

Manifest.permission. Bt k ng dng no cng c th nh ngha v tun theo nhng s cho


php bi chnh n, v th y khng phi l danh sch y ca tt c cc quyn.
Mt s cho php thng thng c th b ngn cm ti mt nhm cc v tr trong sut thao
tc chng trnh ca bn khi:

Ti thi im mt cuc gi n h thng, ngn cn h thng thc thi cc chc


nng no .

Khi bt u mt hot ng, chng li tin trnh khi chy cc hot ng ca


nhng ng dng khc.

C vic gi v nhn intent pht b, iu khin ngi c th nhn pht b ca bn


hay ngi c th gi mt pht b cho bn.

Khi truy cp v thao tc trn mt trnh ni dung.

Kt ni hoc bt u mt dch v.

.III.3. Cc quyn trong vic khai bo v c tnh bt but


tun theo nhng iu cho php chnh bn a ra, u tin bn phi khai bo chng
trong tp tin AndroidManifest.xml, bn dng mt hay nhiu th <permission>.
V d mt ng dng mun iu khin ngi bt u mt trong cc hot ng c th khai
bo mt s cho php bi thao tc ny nh sau:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.app.myapp" >
<permission
id="com.google.android.app.myapp.permission.DEADLY_ACTIVITY"
android:label="@string/permlab_deadlyActivity"

NG VN TRUNG, LP 06T3

41

Xy dng h thng Gps-Tracker trn thit b di ng

android:description="@string/permdesc_deadlyActivity" />
</manifest>
Ch rng c nhn v phn m t s c p ng bi s cho php. Chui ti nguyn
hin th n ngi dng khi h ang xem mt danh sch cc quyn (android:label) hoc
nhng chi tit trn mt s cho php c lp (android:description). Nhn ny ngn, mt vi
t m t tng phn chnh v chc nng ca quyn c bo v. Phn m t ny s l mt cp
cu m t iu cho php ngi gi n thc hin. Theo quy c ca chng ta v phn m t l
hai cu, phn u l s cho php, phn th hai l khuyn co ngi dng v cc vn khng
hay c th xy ra nu mt ng dng c c cho l c cho php.
y l mt v d v mt nhn v s m t s cho php CALL_PHONE:

<string name="permlab_callPhone">Call Phone Numbers</string>


<string name="permdesc_callPhone">Allows application to call
phone numbers without your intervention. Bad applications may
cause unexpected calls on your phone bill.</string>

.III.4. Nhng quyn bt but c trong AndroidManifest.xml


Nhng quyn nm cp cao hn ch vic truy cp n cc thnh phn u vo ca h
thng hay ng dng c th c cung cp bi tp tin AndroidManifest.xml ca bn. Tt c
nhng yu cu ny u cha trong mt thuc tnh android:permission trn cc thnh phn
c ngh, vic t tn cho quyn s c dng iu khin truy cp n n.
Cc quyn Activity (cung cp th <activity>) hn ch nhng ai c th bt u hot ng
kt hp. Quyn ny c kim tra trong sut phng thc Context.startActivity() v phng
thc Activity.startSubActivity(); nu nhng cuc gi khng c yu cu ca s cho php th
bit l SecurityException s c nm i khi cuc gi.

NG VN TRUNG, LP 06T3

42

Xy dng h thng Gps-Tracker trn thit b di ng


Cc quyn Service (cung cp th <service>) hn ch nhng ai c th bt u hay kt ni
vi cc dch v kt hp. Quyn ny c kim tra qua cc phng thc

Context.startService(), Context.stopService() v phng thc Context.bindService(), nu


nhng cuc gi khng c s cho php th bit l SecurityException s c nm i khi
cuc gi.
Cc quyn IntentReceiver (cung cp th <receiver>) hn ch nhng ai c th qung b
cc i tng intent cho nhng ngi nhn lin quan. Quyn ny c kim tra sau khi
phng thc Context.broadcastIntent() tr v, khi h thng c gng phn pht cc intent
c chp nhn n nhng ngi nhn nht nh. Khi c kt qu, mt li ca quyn bi quyn
ny s khng tr li kt qu vo trong mt bit l c nm n cuc gi; n ch khng gii
phng intent. Theo cng cch , mt s cho php c th c cung cp bi phng thc

Context.registerReceiver() iu khin ngi c th qung b n mt ngi nhn


ng k chng trnh mt cch t ng. Theo cch khc, mt quyn c th c cung cp khi
gi phng thc Context.broadcastIntent() hn ch cc i tng IntentReceiver c
php nhn s qung b.
Cc phng thc ContentProvider (cung cp th <provider>) hn ch ai c th truy
cp d liu trong mt ContentProvider. Khng ging nh cc thnh phn khc, c hai thuc
tnh ring ca quyn m bn c th thit lp: android:readPermission hn ch ai c t
trnh cung cp; v android:writePermission hn ch ai c th ghi ln n. Ch rng mt
trnh cung cp l c bo v vi c quyn c v vit, ch qun l quyn ghi khng c ngha
l bn c th c t mt trnh cung cp. Cc quyn ny c kim tra khi ln u tin bn
nhn mt trnh cung cp(nu bn khng c quyn no,th mt bit l SecurityException s
c nm),v khi bn thc thi cc thao tc trn trnh ny.Dng phng thc

ContentResolver.query()

yu

cu

qun

quyn

vit;dng

cc

phng

thcContentResolver.insert(), ContentResolver.update(), ContentResolver.delete(), hay


phng thc Cursor.commitUpdates() yu cu quyn ghi.Trong tt c cc trng hp
ny,khng qun l cc kt qu ca quyn c yu cu trong mt bit l SecurityException
c nm i t cuc gi.

NG VN TRUNG, LP 06T3

43

Xy dng h thng Gps-Tracker trn thit b di ng

.III.5. Vic tun theo cc quyn khi qung b cc intent


S cho php tun theo i tng gi cc intent n mt IntentReceiver c ng k c
th xc nh mt quyn khi qung b mt intent. Bng cch gi phng thc

Context.broadcastIntent() vi mt s cho php dng String, bn nn ngh mt ng dng


ca bn nhn phi qun l cc quyn nhn intent ca bn.
Ch rng c bn nhn v bn qung b u c th yu cu cng mt s cho php. Khi
iu ny xy ra, s kim tra c hai quyn cho php u phi a n intent c phn
pht n ch kt ni.

.III.6. Cho php thc thi cc quyn khc


Ty tin chia nh s cho php c th bt but bt k cuc gi no n vo trong mt dch
v. N c hon thnh bi phng thc Context.checkCallingPermission(). Gi mt s
cho php yu cu dng String v n s tr v mt s nguyn nhm c th xem s cho php
ny l tin trnh gi tc thi. Ch rng iu ny ch c th c dng khi bn ang thc thi
mt cuc gi n t mt tin trnh khc, thng thng qua mt giao din IDL c to ra t
mt dch v hay theo mt s cch c cho bi cc tin trnh khc.
C mt vi cch hu dng kim tra nhng s cho php ny. Nu bn c pid ca tin
trnh khc, bn c th dng Context.checkPermission (String, int, int) ca phng thc
Context cho php kim tra ngc pid ny. Nu bn c tn gi ca ng dng khc, bn
dng iu khin PackageManager.checkPermission(String, String) ca phng thc
PackageManager loi ra nhng gi c th va mi c xem nh l mt s cho php mt
cch php r rng.

.III.7. Cc ti nguyn v quc t ha


Vic m t chi tit cc ng dng Android, c th l h thng qun l ti nguyn, (gm cch
n dng nhm mc ch quc t ha (internationalization) v cc b ha (localization)) bao
hm cch dng theo tng quc t v khu vc. "Ti nguyn" l cc ti sn ng dng (nh hnh
nh, cc chui c xc nh, cch th hin XML), ci cn c gii quyt lc thc thi. Trong
phn ny m t cch Android gii quyt nh th no i vi ti nguyn ly t chnh mt s la
chn ca chng, n cng tt nh khi to v s dng cc ti nguyn.

NG VN TRUNG, LP 06T3

44

Xy dng h thng Gps-Tracker trn thit b di ng


Ti nguyn v cc tp tin m rng (v v th n khng phi l tp tin ngun) thng c
dng trong m ngun v bin dch trong ng dng ca bn khi thc thi. Android cung cp mt
nhm cc loi tp tin ti nguyn khc nhau, gm c tp tin XML, PNG, JPEG. Tp tin XML
c rt nhiu nh dng khc nhau ph thuc vo th m n c m t.
Thng thng bn s lu tr cc ti nguyn ca mnh trong th mc tng ng sau:

Th mc

Cc loi ti nguyn

res/anim/

Cc tp tin XML c bin dch thnh cc i tng frame by


frame animation hay tweened animation objects
Cc tp tin dng .png, .9.png, .jpg c bin dch thnh cc kiu
res/drawable/ ph ca ti nguyn Drawable nh sau:
ly mt ti nguyn kiu ny ta dng phng thc:
Resource.getDrawable(id)

res/layout/
res/values/

bitmap files

9-patches (resizable bitmaps)

Cc tp tin XML c bin dch thnh cch b tr mn hnh(mt


phn ca mt mn hnh). Xem layouts
Cc tp tin XML c bin dch thnh nhiu loi ti nguyn.
Ch : khng nh cc th mc res/ khc,th mc ny c th gi
bt k nhm tp tin no c s m t v cc ti nguyn to ra
nhiu hn cc ti nguyn cho chnh chng.Cc kiu thnh phn
XML qun l ni cc ti nguyn c t vo di lp R.
Trong khi cc tp tin c th c t tn ty ,th y l nhng
tp tin tiu biu trong th mc ny(quy c t tn tp tin
sau khi kiu ca cc thnh phn c nh ngha c gii hn):

arrays.xml nh ngha cc mng.

colors.xml nh ngha color drawables v color string


values. Dng phng thc Resources.getDrawable() v
phng thc Resources.getColor(), respectively, tng
ng vi hai tp tin trn, ly cc ti nguyn ca chng.

dimens.xml nh ngha dimension value. Dng


Resources.getDimension() ly cc ti nguyn ny

NG VN TRUNG, LP 06T3

45

Xy dng h thng Gps-Tracker trn thit b di ng

strings.xml nh ngha cc gi tr ca string (hoc dng


phng thc Resources.getString hoc tt nht l phng
thc Resources.getText() ly cc ti nguyn ca
chng.Phng thc getText() s gi li cch to kiu ca
bt k vn bn y no ph hp vi cc chui giao din
ngi dng.

styles.xml nh ngha cc i tng style.


Cc tp tin XML ty c bin dch v c th c c ti
thi gian thc thi bng cch gi phng thc
Resources.getXML().
Cc tp tin ty sao chp trc tip n thit b.Chng c
thm vo m khng cn bin dch t cc tp tin nn cc ng
dng ca bn xy dng cc th tc. dng cc ti nguyn ny
trong
ng
dng
ca
bn,gi
phng
thc
Resources.openRawResource() vi ti nguyn ID, thuc lp
R.raw.somefilename.

res/xml/

res/raw/

Bng 3 Bng lu tr cc ti nguyn


Cc ti nguyn c bin dch thnh tp tin cui cng l APK. Android to ra cc lp bn
ngoi, gi l R, y l lp bn dng tham chiu n cc ti nguyn trn trong m ngun
ca bn. R cha cc lp con c t tn theo ng dn v tn tp tin ca tp tin ngun.
Cc ghi ch v ti nguyn ton cc:

Mt vi ti nguyn cho php bn nh ngha mu. Android chp nhn cc gi tr


mu c ghi trong cc nh dng ca kiu web khc bit, mt hng c c s 16
thuc mt trong cc nh dng sau: #RGB, #ARGB, #RRGGBB, #AARRGGBB.

Tt c cc gi tr mu h tr cho vic thit lp mt gi tr knh alpha, ni m hai s


u tin ca s c s 16 xc nh l 0(transparency).S 0 trong knh alpha c ngha
l trong sut(transparent).Gi tr mc nh ny l c(opaque).

.IV Tm hiu v GPS


.IV.1. Khi nim GPS
H thng nh v ton cu (ting Anh: Global Positioning System - GPS) l h thng xc
nh v tr da trn v tr ca cc v tinh nhn to. Trong cng mt thi im, mt v tr trn
mt t nu xc nh c khong cch n ba v tinh (ti thiu) th s tnh c to ca v
NG VN TRUNG, LP 06T3

46

Xy dng h thng Gps-Tracker trn thit b di ng


tr . GPS c thit k v qun l bi B Quc phng Hoa K, nhng chnh ph Hoa K
cho php mi ngi s dng n min ph, bt k quc tch.

.IV.2. Phn loi


H thng nh v ton cu ca M l h dn ng da trn mt mng li 24 qu v tinh
c B Quc phng Hoa K t trn qu o khng gian.
Cc h thng dn ng truyn thng hot ng da trn cc trm pht tn hiu v tuyn
in. c bit n nhiu nht l cc h thng sau: LORAN (LOng RAnge Navigation)
hot ng gii tn 90-100 kHz ch yu dng cho hng hi, hay TACAN (TACtical Air
Navigation) dng cho qun i M v bin th vi chnh xc thp VOR/DME VHF
(Omnidirectional Range/Distance Measuring Equipment) dng cho hng khng dn dng.
Gn nh ng thi vi lc M pht trin GPS, Lin X cng pht trin mt h thng tng
t vi tn gi GLONASS. Hin nay Lin minh Chu u ang pht trin h dn ng v tinh
ca mnh mang tn Galileo. Trung Quc th pht trin h thng nh v ton cu ca mnh
mang tn Bc u bao gm 35 v tinh.
Ban u, GPS v GLONASS u c pht trin cho mc ch qun s, nn mc d chng
dng c cho dn s nhng khng h no a ra s m bo tn ti lin tc v chnh xc.
V th chng khng tha mn c nhng yu cu an ton cho dn ng dn s hng khng
v hng hi, c bit l ti nhng vng v ti nhng thi im c hot ng qun s ca
nhng quc gia s hu cc h thng . Ch c h thng dn ng v tinh chu u Galileo
(ang c xy dng) ngay t u t mc tiu p ng cc yu cu nghim ngt ca dn
ng v nh v dn s.
GPS ban u ch dnh cho cc mc ch qun s, nhng t nm 1980 chnh ph M cho
php s dng trong dn s. GPS hot ng trong mi iu kin thi tit, mi ni trn Tri
t, 24 gi mt ngy. Khng mt ph thu bao hoc mt tin tr cho vic thit lp s dng
GPS nhng phi tn tin khng r mua thit b thu tn hiu v phn mm nhng h tr.

.IV.3. S hot ng ca Gps


Cc my thu GPS ngy nay cc k chnh xc, nh vo thit k nhiu knh hot ng song
song ca chng. Cc my thu 12 knh song song (ca Garmin) nhanh chng kha vo cc qu
v tinh khi mi bt ln v chng duy tr kt ni bn vng, thm ch trong tn l rm rp hoc

NG VN TRUNG, LP 06T3

47

Xy dng h thng Gps-Tracker trn thit b di ng


thnh ph vi cc to nh cao tng. Trng thi ca kh quyn v cc ngun gy sai s khc c
th nh hng ti chnh xc ca my thu GPS. Cc my thu GPS c chnh xc trung
bnh trong vng 15 mt.
Cc my thu mi hn vi kh nng WAAS (Wide Area Augmentation System) c th tng
chnh xc trung bnh ti di 3 mt. Khng cn thm thit b hay mt ph c c li
im ca WAAS. Ngi dng cng c th c chnh xc tt hn vi GPS vi sai (Differential
GPS, DGPS) sa li cc tn hiu GPS c chnh xc trong khong 3 n 5 mt. Cc
Phng v B bin M vn hnh dch v sa li ny. H thng bao gm mt mng cc i thu
tn hiu GPS v pht tn hiu sa li bng cc my pht hiu. thu c tn hiu sa
li, ngi dng phi c my thu tn hiu vi sai bao gm c n-ten dng vi my thu GPS
ca h.

.IV.4. H thng v tinh Gps


H thng gps chia lm 3 phn:

.IV.4.1.

Phn khng gian

Gm 24 qu v tinh (21 v tinh hot ng v 3 v tinh d phng) nm trn cc qu o


xoay quanh tri t. Chng cch mt t 12 nghn dm. Chng chuyn ng n nh, hai vng
qu o trong khong thi gian gn 24 gi. Cc v tinh ny chuyn ng vi vn tc 7 nghn
dm mt gi. Cc v tinh trn qu o c b tr sao cho cc my thu GPS trn mt t c
th nhn thy ti thiu 4 v tinh vo bt k thi im no.
Cc v tinh c cung cp bng nng lng Mt Tri. Chng c cc ngun pin d phng
duy tr hot ng khi chy khut vo vng khng c nh sng Mt Tri. Cc tn la nh
gn mi qu v tinh gi chng bay ng qu o nh.

.IV.4.2.

Phn kim sot

Mc ch trong phn ny l kim sot v tinh i ng hng theo qu o v thng tin thi
gian chnh xc. C 5 trm kim sot t ri rc trn tri t. Bn trm kim sot hot ng
mt cch t ng, v mt trm kim sot l trung tm. Bn trm ny nhn tn hiu lin tc t
nhng v tinh v gi cc thng tin ny n trm kim sot trung tm. Ti trm kim sot trung
tm, n s sa li d liu cho ng v kt hp vi hai an-ten khc gi li thng tin cho cc
v tinh.

NG VN TRUNG, LP 06T3

48

Xy dng h thng Gps-Tracker trn thit b di ng

.IV.4.3.

Phn s dng

Phn s dng l thit b nhn tn hiu v tinh GPS v ngi s dng thit b ny
Di y l mt s thng tin ng ch v cc v tinh GPS (cn gi l NAVSTAR, tn
gi chnh thc ca B Quc phng M cho GPS):

V tinh GPS u tin c phng nm 1978.

Hon chnh y 24 v tinh vo nm 1994.

Mi v tinh c lm hot ng ti a l 10 nm.

V tinh GPS c trng lng khong 1500 kg v di khong 17 feet (5 m) vi cc


tm nng lng Mt Tri m (c rng 7 m).

Cng sut pht bng hoc di 50 watts.

.IV.5. Tn hiu Gps


Cc v tinh GPS pht hai tn hiu v tuyn cng sut thp di L1 v L2. (di L l phn
sng cc ngn ca ph in t tri rng t 0,39 ti 1,55 GHz). GPS dn s dng tn s L1
1575.42 MHz trong di UHF. Tn hiu truyn trc th, c ngha l chng s xuyn qua my,
thu tinh v nha nhng khng qua phn ln cc i tng cng nh ni v nh.
L1 cha hai m "gi ngu nhin"(pseudo random), l m Protected (P) v m
Coarse/Acquisition (C/A). Mi mt v tinh c mt m truyn dn nht nh, cho php my thu
GPS nhn dng c tn hiu. Mc ch ca cc m tn hiu ny l tnh ton khong cch
t v tinh n my thu GPS.
Tn hiu GPS cha ba mu thng tin khc nhau m gi ngu nhin, d liu thin vn v
d liu lch. M gi ngu nhin n gin ch l m nh danh xc nh c qu v tinh no
l pht thng tin no. C th nhn s hiu ca cc qu v tinh trn trang v tinh ca my thu
Garmin bit n nhn c tn hiu ca qu no.
D liu thin vn cho my thu GPS bit qu v tinh u trn qu o mi thi im
trong ngy. Mi qu v tinh pht d liu thin vn ch ra thng tin qu o cho v tinh v
mi v tinh khc trong h thng.

NG VN TRUNG, LP 06T3

49

Xy dng h thng Gps-Tracker trn thit b di ng


D liu lch c pht u n bi mi qu v tinh, cha thng tin quan trng v trng thi
ca v tinh (lnh mnh hay khng), ngy gi hin ti. Phn ny ca tn hiu l ct li pht
hin ra v tr.

.IV.6. Ngun li ca tn hiu GPS


Nhng yu t c th lm gim tn hiu GPS v v th nh hng ti chnh xc bao gm:

Gi chm ca tng i lu v tng ion Tn hiu v tinh b chm i khi xuyn qua
tng kh quyn.

Tn hiu i nhiu ng iu ny xy ra khi tn hiu phn x t nh hay cc i


tng khc trc khi ti my thu.

Li ng h my thu ng h c trong my thu khng chnh xc nh ng h


nguyn t trn cc v tinh GPS.

Li qu o Cng c bit nh li thin vn, do v tinh thng bo v tr khng


chnh xc.

S lng v tinh nhn thy Cng nhiu qu v tinh c my thu GPS nhn thy
th cng chnh xc. Nh cao tng, a hnh, nhiu lon in t hoc i khi thm ch
tn l dy c th chn thu nhn tn hiu, gy li nh v hoc khng nh v c.
Ni chung my thu GPS khng lm vic trong nh, di nc hoc di t.

Che khut v hnh hc iu ny lin quan ti v tr tng i ca cc v tinh


thi im bt k. Phn b v tinh l tng l khi cc qu v tinh v tr to cc gc
rng vi nhau. Phn b xu xy ra khi cc qu v tinh trn mt ng thng hoc
cm thnh nhm.

S gim c ch tm tn hiu v tinh L s lm gim tn hiu c do s p t ca


B Quc phng M, nhm chng li vic i th qun s dng tn hiu GPS chnh
xc cao. Chnh ph M ngng vic ny t thng 5 nm 2000, lm tng ng k
chnh xc ca my thu GPS dn s. (Tuy nhin bin php ny hon ton c th
c s dng li trong nhng iu kin c th m bo gy ng khng p lng
ng. Chnh iu ny l tim n hn ch an ton cho dn ng v nh v dn s.)

NG VN TRUNG, LP 06T3

50

Xy dng h thng Gps-Tracker trn thit b di ng

.IV.7. ng dng GPS trong dn dng


Hin nay c nhiu ng dng gps c gi tr thc t cao. Sau y l 4 ng dng tiu biu ca
gps:

.IV.7.1.

ng dng trong lnh vc gio dc

Chng trnh thit b Bn & GIS Gio dc (Mapping & GIS Educator) gii thiu nhng
gii php n gin v a dng, to iu kin thun li nht cho cc t chc gio dc, thc hin
vic ging dy v cng ngh GPS v GIS cho hc vin da trn nhng cng ngh mi nht
ca Trimble.
Chng trnh h tr gio dc c thit k vi mc ch phc v cho cc t chc gio dc v
o to. Bng cch cn i nhu cu gia GPS/GIS cc t chc ny c th c hng rt
nhiu quyn li ca chng trnh, cng nh c hi la chn thit b phn cng v phn mm
vi gi u i c bit nhm tit kim nht cho ngun kinh ph u t.
c im chnh ca Chng trnh thit b Bn & GIS Gio dc:

La chn bn quyn s dng phn mm cho t 2 n 100 hc vin.

Nhiu gii php gim gi thit b phn cng.

B thit b cm tay Juno ST cho lp hc

NG VN TRUNG, LP 06T3

51

Xy dng h thng Gps-Tracker trn thit b di ng

Dch v h tr nhm m bo phn mm lun c cp nht.

o to cp chng ch chuyn nghip theo h thng Trimble

.IV.7.2.

ng dng gps trong lnh vc ti nguyn thin nhin

Th gii chng ta ang sng khng ngng thay i. Bo v mi trng v gi gn nhng


ngun ti nguyn thin nhin ngy nay ang tr thnh vn quan trng hn bao gi ht. y
cng chnh l l do ti sao rt nhiu cc c quan t chc v c nhn trn ton th gii la chn
s dng cc cng ngh GPS v GIS tin tin ca Trimble hng ngy, qun l mt cch c
hiu qu hn ngun ti nguyn thin nhin hin c. Hn 25 nm qua, nhng cng ngh GPS
v GIS cho php con ngi c th qun l mt cch c hiu qu hn, chi tit v c th hn
nhng ngun ti nguyn thin nhin m con ngi ang s hu.
T vic qun l bn vng h thng rng n cc hot ng tm kim thm d khai thc m,
nhng gii php GPS v GIS ca Trimble lm cho mi hot ng qun l tr nn d dng hn,
gip nhng nh qun l ti nguyn thin nhin trong tt c cc cng on t thu thp, lu tr,
x l phn tch v ng dng nhng khi d liu khng gian ln. Cc lnh vc m cng ngh
GPS v GIS c nhng nh hng mnh m phi k n l qun l mi trng, qun l
rng, quy hoch v pht trin nng nghip, iu tra v khai thc m. Mi ngy, cng ngh
GIS li h tr c lc hn cho con ngi trong vic gii quyt cc vn phc tp nh bo
tn ng vt hoang d, qun l nng sut nng nghip, kim sot cht lng ngun nc v
khng kh, dch bnh v s di chuyn cng nh pht trin ca cc thm ho tim tng.
Khng ph thuc vo lnh vc mi trng no m bn ang nghin cu hay khu vc phn b
ca chng, nhng gii php ca Trimble lun m bo gi tr gia tng cho bn thng qua cc
thit b n gin khi s dng, hiu qu, gi thnh hp l v phng thc ng dng s gi cho
s liu GIS ca bn lun c cp nht v c chnh xc cao

.IV.7.3.

ng dng GPS trong lnh vc Du & Kh t

Ngy nay, cc cng ty du v kh lun b t di p lc ln nht, tun th v ph hp vi


nhng yu cu v quy nh quc t cc cng ty lun phi duy tr s liu c th v h thng h
tng ng dn v cng phc tp ca h.
Hn bao gi ht, cc cng ty du v kh t lun l cc cng ty i u trong vic ng dng
cng ngh GPS v GIS trong vic thnh lp cc bn , thu thp gim st v phn tch s liu
thc a. Cc gii php cng ngh khng gian c th lm n gin i tt c t vic thnh lp
bn cc ti sn c nh nh h thng ng ng v cc u ni ng ng n vic s

NG VN TRUNG, LP 06T3

52

Xy dng h thng Gps-Tracker trn thit b di ng


dng chng cho duy tu bo dng, m rng hay trin khai cc chng trnh khc phc khi
c s c xy ra. Cc gii php ca Trimble c chnh xc ti mt vi ximt thc s l
nhng cng c t gi v hiu qu khi cc cng ty du kh mun xy dng bn hay xc
nh v tr ca cc ti sn ngm.
Hu ht cc cng ty du kh trn ton th gii u la chn s dng cng ngh v gii php
GPS v GIS tin tin ca Trimble phc v cho vic n gin ho cc bc x l trong qu
trnh thu thp, lu tr v phn tch cc dng s liu thc a quan trng. Vi s liu phn b
khng gian cc ti sn c nh rt chnh xc, cho php cc cng ty du kh hot ng hiu qu
hn, qun l n gin hn, gim chi ph v ra tng li nhun.

.IV.7.4.

ng dng GPS trong C quan chnh ph

Ngay t nhng ngy u tin pht trin cng ngh GPS, chnh ph vn lun dn u trong
vic khai thc v s dng. T cp trung ng n a phng, t th ti nng thn, GPS v
GIS to iu kin thc s thun li gip cc c quan cng quyn hon thnh tt nhim v
c giao.
C th bn ch l ngi duy nht trong b phn thnh lp bn ca mt t chc chnh ph
chuyn trch v phng chy cha chy, hay bn l thnh vin ca b lm nghip chuyn qun
l rng v cc khu bo tn thin nhin rng hng nghn hc ta, chng ti lun c gii php tt
nht dnh cho bn.
Nhng cng ngh thu thp s liu Bn v GPS/GIS ca Trimble lm cho cng vic ca cc
c quan chnh ph tr nn n gin hn rt nhiu m khng ph thuc vo kiu, khi lng s
liu c thu thp, lu tr, x l v phn tch cho d c th l mt lng s liu khng
gian rt ln. Cc sn phm Bn v GIS ca Trimble m bo cung cp gii php hon chnh
cho cc c quan thnh ph, cc n v qun s, cc cc bo v ti nguyn thin nhin v bt
k c quan chnh ph no c nhu cu qun l s liu nhm mc ch h tr vic ra cc quyt
nh nhanh chnh xc nht. Nu bn l nhn vin cng quyn ca chnh ph, khng cn phi lo
lng, Trimble v chng ti c gii php cng ngh GPS v GIS d s dng, gi thnh hp l
dnh ring cho bn.

NG VN TRUNG, LP 06T3

53

Xy dng h thng Gps-Tracker trn thit b di ng

Chng 2

PHN TCH V THIT K CHNG TRNH


.I

KHO ST, M T BI TON

.I.1.
.I.1.1.

Xy dng biu use case


Cc tc nhn ca h thng

Hnh 6: cc tc nhn ca h thng


H thng gm 3 tc nhn ngi dng: ngi dng client ( trn cc thit b android ),
ngi dng server, v qun tr vin.
.1 Ngi dng client
Ngi dng client l ngi s dng cc chc nng chnh ca h thng trn cc thit b
android. l cc chc nng ng nhp, cp nht trng thi, location ca mnh ln server.
Xem v tr hin ti ca mnh trn thit b.
.2 Ngi dng server
Ngi dng server l ngi s dng cc chc nng chnh ca h thng c xy dng
trn web. Ngi s dng c th qun thm mi mt hoc nhiu thit b, qun l cc thit b
gps thuc quyn s hu ca mnh. Xem li lch trnh, ng i ca cc thit b m mnh qun
l.
.3 Qun tr vin
Qun tr vin l ngi qun l h thng. C th sa cha tt thm, sa, xa cc thng tin
ca ngi dng server v ngi dng client.

NG VN TRUNG, LP 06T3

54

Xy dng h thng Gps-Tracker trn thit b di ng

.I.1.2.

Phn tch cc Use Case

.1 Use case ngi s dng client

Hnh 7: use case ngi s dng client


.1 Use case ng nhp
c t use case: Use case ng nhp
S hiu: USCDN01
Tm tt: Ngi s dng ng nhp s dng h thng.
Dng chy cc s kin: Khi mun s dng chc nng ca chng trnh h thng s yu
cu ng nhp
Dng Hot ng chnh:

Ngi dng ng nhp thng tin gps_id, username, password.

H thng kim tra c tnh hp l hay ko.

NG VN TRUNG, LP 06T3

55

Xy dng h thng Gps-Tracker trn thit b di ng

ng nhp thnh cng chuyn qua mn hnh view map.

Dng hot ng thay th:

Nhp sai cc thng tin: h thng thng bo v chi ngi dng nhp li.

iu kin thot:

Button cancel: ng nhp tht bi, khng mun thc hin tip chng trnh thot
khi chng trnh.

iu kin trc :

Ngi dng c cp cho 1 ti khon bao gm gps_id, username v password.

iu kin sau :

Thng tin ngi dng c lu gi Database trn server.

H thng c th kt ni c vi server

.2 Use case View Map


c t use case: User case view bn
S hiu: USCND02
Tm tt: Cho php ngi dng xem v tr ca mnh hin ti l ang u trn bn .
Dng chy cc s kin: Khi ngi dng touch ln 1 v tr trn mn hnh th trn mn hnh
s hin ln cc thng tin v v tr .
Dng hot ng chnh:

Ngi dng ng nhp vo h thng ( theo use case s USCND01)

Ngi dng c th touch ln bt k v tr no trn bn xem cc thng tin v


a ch ti v tr .

Dng hot ng thay th:

NG VN TRUNG, LP 06T3

56

Xy dng h thng Gps-Tracker trn thit b di ng

Khng th kt ni vi Internet sau 1 khong thi gian s thot khi chng trnh.

iu kin thot:

Ngi dng nhn vo menu Cancel

Khi khng th kt ni vi Internet sau 1 khong thi gian c nh.

.3 Use case gi Location


t t use case: User case gi ta ln server.
S hiu: USCND03
Tm tt: Gi ta hin ti ca thit b ln cho server.
Dng chy cc s kin: Sau 1 khong thi gian ( do mt nh, hoc do ngi s dng cu
hnh) thit b s ly ta gi ln server.
Hot ng chnh:

Ngi dng ng nhp vo h thng ( theo use case s USCND01)

Ngi dng cu hnh thi gian send location.

Hot ng thay th:

Mt kt ni vi server, sau 1 khong thi gian thot khi chng trnh.

iu kin thot:

Menu Cancel thot khi chng trnh.

NG VN TRUNG, LP 06T3

57

Xy dng h thng Gps-Tracker trn thit b di ng

.2 Use case ngi s dng Server

Hnh 8: Use case ngi s dng server.


.1 Use case ng nhp
c t use case: Use case ng nhp
S hiu: USCDN04

NG VN TRUNG, LP 06T3

58

Xy dng h thng Gps-Tracker trn thit b di ng


Tm tt: Ngi s dng ng nhp s dng h thng.
Dng chy cc s kin: Khi mun s dng chc nng ca chng trnh h thng s yu
cu ng nhp
Dng Hot ng chnh:

Ngi dng ng nhp thng tin username, password.

H thng kim tra c tnh hp l hay ko..

Dng hot ng thay th:

Nhp sai cc thng tin: h thng thng bo v chi ngi dng nhp li.

iu kin thot:

Button logout thot khi chng trnh

Ngi dng ri khi trang web qu lu

iu kin trc :

Ngi dng ng k 1 ti khon trn server.

iu kin sau :

Thng tin ngi dng c lu gi Database.

.2 Use case thm mi mt thit b


t t use case: Use case thm mi mt thit b gps
S hiu: USCND05
Tm tt: thm mi mt hoc nhiu thit b
Dng chy cc s kin:

Ngi dng ng nhp vo h thng ( theo use case USCND04 )

NG VN TRUNG, LP 06T3

59

Xy dng h thng Gps-Tracker trn thit b di ng

Ngi dng to thm 1 hoc nhiu thit b mi cho mnh qun l.

H thng kim tra tnh ng n ca d liu.

Dng hot ng thay th:

Thng tin khng hp l: h thng thng bo cho ngi s dng chnh sa.

iu kin thot

Button logout thot khi chng trnh.

Ngi dng ri khi trang web qu lu.

.3 Use case qun l cc thit b


t t use case: Use case qun l cc thit b.
S hiu: USCND06
Tm tt: qun l cc thit b gps thuc quyn s hu ca mnh.
Dng chy cc s kin: Ngi dng vo trang qun l cc thit b.
Dng hot ng chnh:

Ngi dng ng nhp vo h thng ( theo use case USCND04 )

Ngi dng la chn ti khon qun l.

Ngi dng chnh sa cc thng tin ca ti khon

Ngi dng xem li lch s ca ti khon.

Ngi dng xa i 1 hoc nhiu ti khon.

Ngi dng xem li ng i ca 1 ti khon.

iu kin thot:

NG VN TRUNG, LP 06T3

60

Xy dng h thng Gps-Tracker trn thit b di ng

.I.2.

Button logout thot khi chng trnh.

Ngi dng ri khi trang web qu lu.

Biu tun t

.1 Biu tun t ngi dng client.

Hnh 9: Biu tun t ngi dng client

NG VN TRUNG, LP 06T3

61

Xy dng h thng Gps-Tracker trn thit b di ng

.2 Biu tun t ngi dng server

Hnh 10: Biu tun t ngi dng server

.I.3.

Biu lp

Hnh 11: Biu lp

NG VN TRUNG, LP 06T3

62

Xy dng h thng Gps-Tracker trn thit b di ng

.I.3.1.

Class gpsdevicesList

Attributes:

Name: ch nh tn i din ca lp.

Method:

getAllGpsDevices: c tt c cc thit b c trong database c qun l bi ngi


dng.

deleteDevices: Xa mt thit b trong database.

updateDevices:: cp nht li thng tin ca mt thit b.

getDevice: ly thng tin ca mt thit b da vo id ca thit b .

getCoordinates: Ly ta ca mt thit b da vo gps_id.

getUsername: ly thng tin ca ngi dng client da vo id ca thit b.

getHistory: Ly thng tin history ca thit b.

formEdit: to mt form chnh sa thng tin ca thit b.

genKml: to file kml ly v ng i ca thit b trn map.

.I.3.2.

Class gpsDevices

Attributes:

Name: ch tn i din ca lp.

Method:

getEmail: ly thng tin v email ca thit b da vo gps_id.

insertGpsDevices: Thm mi mt thit b vo Database.

updateStatusOn: cp nht li trng thi l online ca thit b khi c tn hiu t client


gi ln.

updateStatusoff: cp nht trng thi l offline ca thit b khi c tn hiu t client


gi ln.

Random: Hm pht sinh gps_id.

formAddnew: to form ngi qun l thm mi mt thit b.

checkGpsName: kim tra tn ca thit b tn ti trong database hay cha.

.I.3.3.

Class gpsHistory

Attributes:

Name: ch tn i din ca lp.

NG VN TRUNG, LP 06T3

63

Xy dng h thng Gps-Tracker trn thit b di ng


Method:

insertHistory: Thm mi lch s ca thit b vo database.

getHistory: ly lch s ca thit b t database da vo gps_id.

getNumrowsHistory: m s dng ca history 1 thit b da vo gps_id.

NG VN TRUNG, LP 06T3

64

Xy dng h thng Gps-Tracker trn thit b di ng

.II XY DNG C S D LIU

Hnh 12: C s d liu


.1 Bng user
M t: Bng user cha thng tin, d liu ca ngi dng server.

Tn

Kiu

M t

Id

Number

Kha chnh. Mi user s c 1 ID nht nh.


Cc bng khc quan h vi bng ny thng
qua id ny.

Name

Varchar

Tn ca ngi dng.

Username

Varchar

Tn ng nhp ca ngi dng.

Email

Varchar

Dng ng k, xc thc v thng bo.

Password

Varchar

Dng xc thc khi dng nhp.

Usertype

Number

Xc nh user thuc loi user no: mt

NG VN TRUNG, LP 06T3

65

Xy dng h thng Gps-Tracker trn thit b di ng

user bnh thng hay l mt admin user.


registerDate

Date

Ngy user bt u ng k.

lastvistDate

Date

Ngy cui cng ngi s dng ng nhp


vo website.

.1 Bng gps_devices
M t: Bng gps_devices cha cc thng tin ng nhp v trng thi ca ngi s dng
client.
Tn

Kiu

M t

Id

Number

Kha chnh.

User_id

Number

Quan h n.. 1 vi bng user.

Gps_id

Number

Mi thit b gps s c cp mt gps_id


ny. Gps_id l 1 dy s gm 10 ch s v
khng lp li gia cc thit b khc nhau

Name

Varchar

Tn ng nhp ca ngi s dng client

Password

Varchar

Dng xc thc qu trnh ng nhp ca


ngi s dng client.

Email

Varchar

Dng ng k mt thit b mi, nhn cc


thng tin v thit b.

Decription

Text

Mi ngi dng c th c nhiu thit b cn


qun l. Decription l trng ghi ch cho cc
thit b phc v cho mc ich g ca ngi
s dng.

Gps_status

Number

C 2 trng thi:

0: thit b ang ofline.

1: Thit b ang online.

.2 Bng gps_history

NG VN TRUNG, LP 06T3

66

Xy dng h thng Gps-Tracker trn thit b di ng


M t: bng history cha cc thng tin v ta v a ch ca cc thit b gps.
Tn

Kiu

M t

Id

Number

Kha chnh

Gps_id

Number

Quan h n .. 1 vi bng
gps_devices

Time

DateTime

lu tr ngy gi ca thit
b.

Address

Text

Lu tr a ch ca thit b ti
1 thi im no .

Lat

Double

Lu tr v ca thit b ti
1 thi im.

Lng

Double

Lu tr kinh ca thit b
ti 1 thi im

NG VN TRUNG, LP 06T3

67

Xy dng h thng Gps-Tracker trn thit b di ng

Chng 3

CI T V TH NGHIM
.I

Yu cu i vi h thng
pht trin cc ng dng Android dng cc cng c v m ngun ca SDK hoc NDK

Android, bn cn mt b my tnh v mi trng pht trin ph hp, nh m t bn di.

Cc h iu hnh h tr:

Windows XP hay Vista

Mac OS X 10.4.8 hoc mi nht(ch h X86)

Linux (kim tra trn Linux Ubuntu Dapper Drake)

H tr cc mi trng pht trin:


Eclipse IDE (Mi trng pht trin tch hp Eclipse)

Eclipse 3.2, 3.3 (Europa)


Eclipse JDT plugin (cha nhiu nht trong cc gi Eclipse IDE)
WST (ty chn,nhng cn thit cho c tnh ca cc b son tho Android:

cha nhiu nht trong cc gi Eclipse IDE)

JDK 5 or JDK 6 (ch JRE l khng tha ng)


Khng tng thch vi b bin dch Gnu dnh cho Java(gcj)
Android Development Tools plugin (ty chn)

Cc mi trng pht trin hay cc mi trng pht trin tch hp khc

JDK 5 or JDK 6 (ch JRE l khng tha ng)

Khng tng thch vi b bin dch Gnu dnh cho Java(gcj)

NG VN TRUNG, LP 06T3

68

Xy dng h thng Gps-Tracker trn thit b di ng

Apache Ant 1.6.5 hay mi nht ca Linux v Mac,1.7 hay mi nht ca Windows

Ch : nu JDK va mi ci trn my ca bn, hy ch mt lt chc rng n nhn cc


yu cu ca phin bn c lit k bn di. C th, mt s s phn pht Linux c l cha
JDK 1.6 hay b bin dch Gnu dnh cho Java, c hai u khng h tr cho s pht trin ca
Android.

.II Ci t Android v Eclipse


.II.1. Download Android SDK
Android SDK thc cht l tp hp cc cng c v th vin pht trin cc ng dng trn
nn tng h iu hnh Android.
Bc 1: Vo trang http://developer.android.com/sdk/index.html ti Android
SDK Starter. Ty thuc vo h iu hnh m chn bn Mac, Linux hay Window.
y chn ti bn cho Window.

Hnh 13: Ci t SDK


Bc 2: Gii nn file zip va ti v. Chy SDK Setup.exe. C th gp thng bo li
Fetching https://dl-sl... Failed to fetch... Close thng bo ny li. Tip theo ca s
Choose Packages to Install xut hin. Nu ca s ny trng rng th chn Cancel.

Quay v ca s Android SDK and AVD manager -> Chn Setting, nh du


vo Force https://...

Chn Available Packages

Bc 3: nh du cc Packages bn mun ti: Documents chnh l phn Javadoc


m t hot ng ca cc phng thc v cc, Sample l cc on code mu, SDK
Platform ng vi cc phin bn h iu hnh (2.2 - API level 8, 2.1 - API level

NG VN TRUNG, LP 06T3

69

Xy dng h thng Gps-Tracker trn thit b di ng


7,...), v Google API pht trin cc phn mm lin quan n dch v ca Google
(nh Google Map nu mun lp trnh lin quan n GPS).
(lu USB drivers ch dnh cho ngi s dng Windows v mun pht trin ng
dng test bng in thoi tht). Sau chn install selected v i khong vi pht
hon thnh tin trnh download tt c cc gi.

.II.2. Tch hp Android SDK vo Eclipse


Bc 1: Ti Eclipse ti http://www.eclipse.org/downloads/ . C th chn 1 trong 2 bn sau
: Eclipse for Java Developers, hoc Eclipse for Java and Report Developers.
Bc 2: Khi chy Eclipse, vo Help chn Install new softwares.
Chn Add, g vo Name tn bn mun v Location g vo a ch ti v ADT: https://
dl-ssl.google.com/android/eclipse/ hoc http://dl-ssl.google.com/android/eclipse/ nu khng
h tr https.

NG VN TRUNG, LP 06T3

70

Xy dng h thng Gps-Tracker trn thit b di ng

Hnh 14: tch hp SDK vo eclipse

NG VN TRUNG, LP 06T3

71

Xy dng h thng Gps-Tracker trn thit b di ng


Bc 4: Eclipse -> Windows -> Preferences -> Android
Nhn nt Browse v chnh ng dn ti th mc ca Android SDK bn ti lc trc.
Chn Apply -> OK.

NG VN TRUNG, LP 06T3

72

Xy dng h thng Gps-Tracker trn thit b di ng

.II.3. Android Virtual Devices


AVD l my o cho developer pht trin ng dng. to 1 AVD bn vo Windows ->
Android SDK and AVD Manager -> Virtual Devices chn New.
-> Ca s Create new AVD hin ra, bn in thng tin cho AVD bn mun:
Name: Ty (nhng ch c s dng cc k t "a-z", "A-Z", ".-_", ngha l c khong
trng cng khng c
Target: Chn phin bn h iu hnh bn mun
SD Card: g vo Size SD card o cho AVD, hoc chnh ti file c sn. Nhiu AVD c th
dng chung 1 Sdcard (ch cn to ln u)
Skin: c th Default (HVGA) hoc chn kch c mn hnh bn mun. Ch cn quan tm ti
3 option: HVGA (phn gii 320-480 nh G1, G2, i5700...), QVGA (240-320 nh HTC
Wildfire...), WVGA854 (480-854 nh Milestone, NexusOne...)
-> Create AVD.

NG VN TRUNG, LP 06T3

73

Xy dng h thng Gps-Tracker trn thit b di ng

.II.4. Ci t chng trnh Gps_Tracker


.II.4.1.

Ci t chng trnh trn Emulator

Bc 1: Khi ng mt Emulator c Target l GoogleAPIs 2.1 Level 7. ( Vo Eclipse ->


Window/Adroid SDK and AVD Manage -> Chn AVD ph hp ri chn start.

Hnh 15: Create v start 1 AVD


Bc 2: a file gpstracker.apk vo th mc tool ca SDK. VD: C:\android-sdkwindows\tools -> Copy here.
Bc 3: M mt command shell v di chuyn n th mc c cha file .apk ny. V d:
Trong window vo Run g CMD, ri dng lnh CD chuyn n folder tools.
Bc 4: Nhp lnh adb install < tn file .apk>. V d: adb install gpstracker.apk.
Bc 5: Vo Emulator click vo icon biu tng ca ng dng chy chng trnh.

NG VN TRUNG, LP 06T3

74

Xy dng h thng Gps-Tracker trn thit b di ng

.II.4.2.

Ci t chng trnh vo Eclipse

Bc 1: Khi ng chng trnh Eclipse, vo menu file -> chn to new android project,
chn create project from exiting source. phn location, browes n folder cha th mc
source ca project. in y cc thng tin v phin bn android, packeg name, application
name.

NG VN TRUNG, LP 06T3

75

Xy dng h thng Gps-Tracker trn thit b di ng

Bc 2: Click chut phi ln project chn run as -> android application

NG VN TRUNG, LP 06T3

76

Xy dng h thng Gps-Tracker trn thit b di ng

.III Kt qu Demo chng trnh


.III.1. Kt qu client ( trn thit b android)
Giao din thn thin, d s dng, c xy dng h tr ti a cho ngi dng.

.III.1.1. Mn hnh khi ng chng trnh

Hnh 16 : Mn hnh khi ng chng trnh


Khi ngi dng chn vo biu tng about th s hin ra trang about cha cc thng tin v
phin bn ca phn mm, v cc thng tin khc c lin quan n phn mm.

NG VN TRUNG, LP 06T3

77

Xy dng h thng Gps-Tracker trn thit b di ng


Khi ngi dng click vo biu tng login th s hin ra trang login ngi dng c th ng
nhp v thc hin cc chc nng chnh ca chng trnh.

.III.1.2. Mn hnh About

Hnh 17 : Mn hnh About

NG VN TRUNG, LP 06T3

78

Xy dng h thng Gps-Tracker trn thit b di ng

.III.1.3. Mn hnh Login

Hnh 18 : Mn hnh Login


Mn hnh login cha cc texbox nhp d liu ng nhp, v mt check box lu li
thng tin ca gps id cho cc ln khi ng chng trnh sau.

NG VN TRUNG, LP 06T3

79

Xy dng h thng Gps-Tracker trn thit b di ng

.III.1.4. Mn hnh View Map

Hnh 19 : Mn hnh View Map


Sau khi login thnh cng th ngi s dng c chuyn qua mn hnh view map ny c
th xem c v tr ca mnh hin ti ang u bng cch touch vo mn hnh. Ti y c 1
option menu gm c 2 menu l cancle thot khi chng trnh v menu config cu hnh
thi gian cp nht location cho server.

NG VN TRUNG, LP 06T3

80

Xy dng h thng Gps-Tracker trn thit b di ng

Khi nhn vo menu config th s hin ln mt mn hnh cha cc thi gian cho ngi s
dng chn. Nu khng chn th thi gian mc nh cp nht location l 5s.

Hnh 20 : Mn hnh config

.III.2. Kt qu trn server


Server c xy dng da trn framework joomla 1.6. Sau khi ngi dng login thnh
cng th s vo c chc nng gps_manager.

NG VN TRUNG, LP 06T3

81

Xy dng h thng Gps-Tracker trn thit b di ng

.III.2.1. Giao din chnh ca ngi s dng trn server

Hnh 21 : Giao din chnh ca ngi s dng trn server


Giao din ngi s dng n gin, d qun l. Gm c 2 menu chnh l Manager v
Addnew Devices.
giao din ban u th l load tt c cc thit b v trng thi ca thit b do ngi s
dng ang login qun l.

.III.2.2. Thm mi mt thit b mi

Hnh 22 : Form thm mi mt thit b

NG VN TRUNG, LP 06T3

82

Xy dng h thng Gps-Tracker trn thit b di ng

.III.2.3. Xem li history ca thit b

Hnh 23: Trang xem history ca thit b

.III.2.4. Xem li ng i ca thit b

Hnh 24: Trang xem li ng i ca thit b

NG VN TRUNG, LP 06T3

83

Xy dng h thng Gps-Tracker trn thit b di ng

.III.2.5. Xem v tr hin ti ca 1 thit b

Hnh 25:: Trang xem v tr hin thi ca mt thit b

NG VN TRUNG, LP 06T3

84

Xy dng h thng Gps-Tracker trn thit b di ng

NG VN TRUNG, LP 06T3

85

PH LC

ii

NG VN TRUNG, LP 06T3

ii

iii

NG VN TRUNG, LP 06T3

iii

TI LIU THAM KHO


[1]
[2]
[3]
[4]
[5]
[6]
[7]

W. Frank Ableson, Charlie Collins, Robin . Unlocking Android.


Mark L. Murphy. Beginning Android.
Mark L. Murphy. The Busy Coders Guide to Android Development.
ThS. Trnh Cng Duy. Sildes Android

Trang web : http://www.android.com/


Trang web: http://vietandroid.com/
V mt s din n android. ...

TM TT LUN VN TT NGHIP
ti: Xy dng h thng gps_tracker trn cc thit b di ng.
Trong nhu cu thc t ca cuc sng, vic qun l v xc nh v tr cc thng tin
ca ngi s dng i vi cc lnh vc mnh cn qun l ngy cng ln. Do vic
pht trin mt chng trnh ng dng cho php qun l v tr ca cc i tng c
qun l l cn thit.
Bn cnh s pht trin ca cc thit b di ng ngy mt nhanh. hin nay s ra
i ca nhng chic in thoi cm tay, nh, gn, nhiu chc nng v lun i mi v
mu m lun l mt trong nhng thit b con ngi con tm hng u. Google, mt
nh qun l mnh nht v Internet gi y cng bt u xm nhp vo lng di ng
khi cho ra i nn tng Android vi cc phin bng ngy cng c ci thin mt cch
mnh m, h tr ngy cng nhiu cc chc nng cho nhng nh lp trnh.
Nhm tn dng tnh nng mi lc mi ni ca in thoi di ng v kh nng h
tr mnh m v api ca google cng vi nhu cu thc t trn ti chn v thc hin
ti ny.
xy dng h thng ti :
Nghin cu l thuyt, nn tng Android v SDK
Nghin cu v s dng api ca google.
Xy dng thnh cng chng trnh trn mobile cp nht ta v trng thi
ca thit b.
Tm hiu joomla 1.6 v cch xy dng component cho joomla.
Xy dng thnh cng web server vi framework joomla.
Xy dng mt component cho joomla hin th cc thng tin v loaction, cc
thit b qun l, v li ng i ca cc thit b, xem v tr hin ti ca thit
b..
Chng trnh c th c ng dng vo thc t trong cc trng hp: qun l vn
chuyn hng ha, qun l l trnh ca mt thit b no , hoc c th ng dng
qun l con ci...

Tn tac gia y, LP XXX

You might also like