baocao ttcn
TRANSCRIPT
-
8/22/2019 BaoCao TTCN
1/37
1
MC LC
LI CM N...................................................................................................................... 3LI NI U ..................................................................................................................... 4CHNG 1: TNG QUAN V ANDROID ..................................................................... 5
I. Android v lch spht trin ................................................................................. 5II. Kin trc Android ................................................................................................ 6
1. L inux Kernel...................................................................................................... 62. L ibrary vAndroid Runtime............................................................................. 83. Framework......................................................................................................... 94. Application....................................................................................................... 10
III. Cc thnh phn ca Android............................................................................ 111. Thnh phn ca 1 chng trnh Android...................................................... 112. Cc thnh phn giao din Widget................................................................... 173. Bt skin trong Android............................................................................... 174. Menu................................................................................................................. 18
CHNG 2: PHN TCH XML TRONG ANDROID ................................................... 20I. Tng quan v XML ............................................................................................... 20
1. Khi nim......................................................................................................... 20
2.
c im ca XML .......................................................................................... 20
3. Cu trc ca XML ........................................................................................... 21II. RSS ...................................................................................................................... 22III. Cc lp, giao din phn tch XML trong Android.......................................... 22
-
8/22/2019 BaoCao TTCN
2/37
2
1. Giao din DOM................................................................................................ 232. Giao din SAX.................................................................................................. 233. Giao din XSLT............................................................................................... 24
IV. Phn tch ni dung XML trong Android sdng SAX ................................. 241. S lc v SAX................................................................................................ 242. u im ca SAX............................................................................................ 253. Cc khi nim dng trong SAX...................................................................... 25
CHNG 3: DEMO NG DNG .................................................................................. 27I. Phn tch chng trnh ......................................................................................... 27II. Ni dung chng trnh ...................................................................................... 28
1. C sdl iu.................................................................................................... 312. Cc lp trong chng trnh............................................................................. 313. Hot ng......................................................................................................... 32
LI NHN XT ............................................................................................................... 34KT LUN V HNG PHT TRIN......................................................................... 35TI LIU THAM KHO ................................................................................................. 37
-
8/22/2019 BaoCao TTCN
3/37
3
LI CM N
Sau mt thng tm hiu ti Tm hiu Android v xy dng ng dng c tin tc
online, em hon thnh tin d kin. t c kt quny, em n lc
thc hin v ng thi cng nhn c rt nhiu sgip , quan tm, ng h ca cc
thy c bn b v gia nh.
Em xin chn thnh cm n gio vin hng dn: thy T Hu Nguyn B mn
Cng ngh phn mm - trng i hc Cng ngh thng tin v Truyn thng - i
hc Thi Nguyn tn tnh gip em hon thnh thc tp chuyn ngnh ny.
Em xin chn thnh cm n cc thy c v ban lnh o trng i hc Cng ngh
thng tin v Truyn thng - i hc Thi Nguyn nhit tnh ging dy v truynt kin thc qu bu v b ch trong sut qu trnh em hc tp ti trng.
Em xin chn thnh cm n cc thy, c gio thuc b mn Cng ngh phn mm
trang b cho em nhng kin thc chuyn ngnh rt hu ch em hon thnh ti v
phc v cho cng vic ca em sau ny.
V thi gian c hn nn khng th trnh khi nhng thiu st, em rt mong c s
ng gp kin t thy c v cc bn. Em xin chn thnh cm n!
-
8/22/2019 BaoCao TTCN
4/37
4
LI NI U
Mng in thoi di ng xut hin ti Vit Nam tu nhng nm 1990 v theo thi
gian slng cc thu bao cng nh cc nh cung cp dch vi ng ti Vit Nam
ngy cng tng. Do nhu cu trao i thng tin ngy cng tng v nhu cu s dng sn
phm cng ngh cao nhiu tnh nng, cu hnh cao, cht lng tt, kiu dng mu m
p, phong ph nn nh cung cp phi lun lun ci thin, nng cao nhng sn phm
ca mnh. Do vic xy dng cc ng dng cho in thoi di ng ang l mt
ngnh cng nghip mi y tim nng v ha hn nhiu s pht trin vt bc ca
ngnh khoa hc k thut.
Cng vi s pht trin ca thtrng in thoi di ng l s pht trin mnh m ca
xu hng lp trnh phn mm ng dng cho cc thit bdi ng. Phn mm, ng dng
cho in thoi di ng hin nay rt a dng v phong ph trn cc hiu hnh di
ng cng pht trin mnh mv ang thay i t ngy. Cc h iu hnh J2ME,
Android, IOS, Hybrid, Web based Mobile Application c rt pht trin trn th
trng truyn thng di ng.
Trong vi nm trli y, hiu hnh Android ra i vi s k tha nhng u vit
ca cc hiu hnh ra i trc v s kt hp ca nhiu cng ngh tin tin nht
hin nay, c nh pht trin cng ngh rt ni ting hin nay l Google. Android
nhanh chng l i th cnh tranh mnh m vi cc hiu hnh trc v ang
l hiu hnh di ng ca tng lai v c nhiu ngi a chung nht.
Ngy nay, vi s pht trin nhanh chng ca x hi, nhu cu cp nht tin tc x hi
mi lc mi ni l rt cn thit, v vy em chn ti Tm hiu Android v xy
dng ng dng c tin tc online vi mc ch nghin cu, tm hiu v hiu hnh
Android v xy dng ng dng c tin tc online c thp ng c nhu cu cp
nht tin tc x hi hin nay mt cch nhanh chng v tin li.
-
8/22/2019 BaoCao TTCN
5/37
5
CHNG 1: TNG QUAN V ANDROID
I. Android v lch spht trinAndroid l 1 nn tng phn mm da trn m ngun mLinux OS (Kernel 2.6) cho
my di ng, my tnh bng v nhng phn mm trung gian (middleware). N khng
n thun l 1 hiu hnh, 1 cng c lp trnh hay 1 phn mm trung gian m n
gm tt c.
Ban u, Android l hiu hnh cho cc thit b cm tay da trn li Linux do cng
ty Android Inc. (California, M) thit k. Cng ty ny sau c Google mua li
vo nm 2005 v bt u xy dng Android Platform.
V sau tip, vo cui nm 2007, thuc v Lin minh thit b cm tay m ngun m
(Open Handset Alliance). Mc tiu ca lin minh ny l nhanh chng i mi p
ng tt hn cho nhu cu ngi tiu dng v kt quu tin ca n chnh l nn tng
Android. Android c thit k phc v nhu cu ca cc nh sn xut thit, cc
nh khai thc v cc lp trnh vin thit b cm tay.
Phin bn SDK ln u tin pht hnh vo thng 11 nm 2007, hng T-Mobile cng
cng b chic in thoi Android u tin l chic T-Mobile G1, chic smartphone
u tin da trn nn tng Android. Mt vi ngy sau , Google li tip tc cng b
s ra mt phin bn Android SDK release Candidate 1.0.Trong thng 10 nm 2008,
Google c cp giy php m ngun mcho Android Platform.
Khi Android c pht hnh th mt trong s cc mc tiu trong kin trc ca n l
cho php cc ng dng c thtng tc c vi nhau v c th s dng li cc thnh
phn t nhng ng dng khc. Vic ti s dng khng chc p dng cho cho cc
dch vm n cn c p dng cho c cc thnh phn d liu v giao din ngi
dng.
Vo cui nm 2008, Google cho pht hnh mt thit b cm tay c gi l Android
Dev Phone 1 c th chy c cc ng dng Android m khng b rng buc vo cc
-
8/22/2019 BaoCao TTCN
6/37
6
nh cung cp mng in thoi di ng. Mc tiu ca thit b ny l cho php cc nh
pht trin thc hin cc cuc th nghim trn mt thit b thc c th chy hiu
hnh Android m khng phi k mt bn hp ng no. Vo khong cng thi gian
th Google cng cho pht hnh mt phin vn v li 1.1 ca hiu hnh ny. chai phin bn 1.0 v 1.1 Android cha h trsoft-keyboard m i hi cc thit b
phi s dng bn phm vt l. Android cnh vn ny bng cch pht hnh SDK
1.5 vo thng T nm 2009, cng vi mt stnh nng khc. Chng hn nh nng cao
khnng ghi m truyn thng, vt dng, v cc live folder.
II. Kin trc AndroidM hnh tng qut cc thnh phn ca hiu hnh Android:
1.L inux KernelHiu hnh android c pht trn da trn ht nhn linux, c th l ht nhn linux
phin bn 2.6, iu c th hin lp di cng ny. Tt c mi hot ng ca
in thoi mun thi hnh c th u c thc hin mc cp thp lp ny bao
-
8/22/2019 BaoCao TTCN
7/37
7
gm qun l b nh (memory management), giao tip vi phn cng (driver model),
thc hin bo mt (security), qun l tin trnh (process).
Tuy c pht trin da vo nhn linux nhng thc ra nhn linux c nng cp
v sa i rt nhiu ph hp vi tnh cht ca nhng thit b cm tay nh hn ch
v b vi x l, dung lng b nh, kch thc mn hnh, nhu cn kt ni mng khng
dy...
Cc thnh phn ca nhn Linux:
- Display Driver : iu khin vic hin th ln mn hnh cng nh thu nhnnhng iu khin ca ngi dng ln mn hnh (di chuyn, cm ng...).
- Camera Driver : iu kin hot ng ca camera, nhn lung d liu tcamera tr v.
- Bluetooth Driver : iu khin thit b pht v thu sng Bluetooth.- USB driver : Qun l hot ng ca cc cng giao tip USB.- Keypad driver : iu khin bn phm.- Wifi Driver : Chu trch nhim v vic thu pht sng wifi.- Audio Driver : iu khin cc b thu pht m thanh, gii m cc tnh hiu dng
audio thnh tn hiu sv ngc li.
- Power Madagement : Gim st vic tiu thin nng.- M-System Driver : Qun l vic c ghi... ln cc thit b nh nh th SD,
flash.
-
8/22/2019 BaoCao TTCN
8/37
8
- Binder IPC Driver : Chu trch nhim v vic kt ni v lin lc vi mng vtuyn nh CDMA, GSM, 3G, 4G, E m bo nhng chc nng truyn
thng c thc hin.
2.L ibrary vAndroid Runtime
Phn ny c 2 thnh phn l phn Library v Android Runtime
2.1LibraryThnh phn ny c nhiu th vin c vit bng C/C++ cc phn mm c th s
dng, cc th vin c tp hp thnh mt snhm nh:
- Th vin h thng (System C library)(Libc) : th vin da trn chun C,c s dng ch bi hiu hnh.
- Th vin Media (Media Libraries) : C nhiu codec h tr vic pht vghi cc loi nh dng m thanh, hnh nh, video thng dng.
- Th vin web (LibWebCore) : y l thnh phn xem ni dung trnweb, c s dng xy dng phn mm duyt web (Android Browse) cng
nh cc ng dng khc c th nhng vo. N cc k mnh, h trc
nhiu cng ngh mnh m nh HTML5, JavaScript, CSS, DOM, AJAX..
- Surface Manage: qun l hin th 2D v 3D.- SGL cng ngh 2D- SQLite : qun l database ca ng dng.- Free Type : dng cho hin thnh, font.
-
8/22/2019 BaoCao TTCN
9/37
9
- SSL(Secure Socket Layer): Tng thit lp giao dch an ton trn 2 ng dngtrn 1 cng (socket).
- Open GL/EL: h trth vin ty chn 3D tnh v ng.2.2
Android runtime
Phn ny cha cc th vin m mt chng trnh vit bng ngn ng Java c th
hot ng. Phn ny c 2 b phn tng tnh m hnh chy Java trn my tnh
thng. Th nht l cc th vin li (Core Library) , cha cc lp nh JAVA IO,
Collections, File Access. Th hai l mt my o java (Dalvik Virtual Machine).
Mc d cng c vit t ngn ngJava nhng mt ng dng Java ca hiu hnh
android khng c chy bng JRE(Java Runtime Environment) ca Sun (nay l
Oracle) (JVM) m l chy bng my o Dalvik (my o dalvik c t tn sau khi 1
nh pht trin phn mm ca google to ra n sau khi i thm 1 ngi lng ni t tin
ng sinh sng) do Google pht trin. my o davik thc thi ci tp tin davik(dex),
khc vi java l chuyn sang dng bytecode. nh dng ny c ti u ha cho b
nhti thiu.
3.FrameworkBng cch cung cp mt nn tng pht trin m, Android cung cp cho cc nh phttrin khnng xy dng cc ng dng cc k phong ph v sng to. Nh pht trin
c t do tn dng cc thit b phn cng, thng tin a im truy cp, cc dch v
chy nn, thit lp h thng bo ng, thm cc thng bo cc thanh trng thi, v
nhiu, nhiu hn na.
-
8/22/2019 BaoCao TTCN
10/37
10
Nh pht trin c th truy cp vo cc API cng mt khun khc s dng bi cc
ng dng li. Cc kin trc ng dng c thit kn gin ha vic s dng li
cc thnh phn. C bn tt c cc ng dng l mt b cc dch v v cc h thng,
bao gm:- View Manage:Mt tp hp rt nhiu cc View c khnng k tha ln nhau
dng thit k phn giao din ng dng nh: gridview, tableview,
linearlayout
- Activity Manager : Qun l cc chu k sng ca mt ng dng cng nh cungcp cng ciu khin cc Activity.
- Telephony Manager : Cung cp cng c thc hin vic lin lc nh gi inthoi.
- Location Manager : Cho php xc nh v tr ca in thoi thoi da voh thng nh v ton cu GPS v Google Maps.
- Window Manager : Qun l vic xy dng v hin th cc giao din ngidng cng nh t chc qun l cc giao din gia cc ng dng.
- Notication Manager : Qun l vic hin thcc thng bo (nh bo c tin nhn,c e-mail mi)
- Resource Manager : Qun l ti nguyn tnh ca cc ng dng bao gm ccfile hnh nh, m thanh, layout, string. (Nhng thnh phn khng c vit bi
ngn ng lp trnh).
- Content Provider: cho php cc ng dng c th truy xut d liu t cc ngdng khc (chng hn nh Contacts) hoc l chia s d liu gia cc ng dng
.
4.Application
y l lp ng dng giao tip vi ngi dng, bao gm cc ng dng nh: Cc ng
dng c bn, c ci t i lin vi h iu hnh l gi in(phone), qun l danh
b(Contacts), duyt web (Browser),nhn tin(SMS),lch lm vic (Calendar), c e-
mail (Email-Client), bn (Map), quay phim chp nh (camera)... Cc ng dng
-
8/22/2019 BaoCao TTCN
11/37
11
c ci thm nh cc phn mm chng khon (Stock), cc tr chi (Game), tin,
cc widget cc ng dng ca bn th3
Cc ng dng vit s c nhng c tnh sau:
- Vit bng Java, phn mrng l .apk.- Khi mi ng dng c chy, n c mt phin bn Virtual Machine c dng
ln phc v cho n. N c th l mt Active Program: Chng trnh c giao
din vi ngi s dng hoc l mt background: chng trnh chy nn hay l
dch v.
- Android l h iu hnh a nhim, iu c ngha l trong cng mt thiim, c th c nhiu chng trnh cng chy mt lc, tuy nhin, vi mi ng
dng th c duy nht mt thc th (instance) c php chy m thi. iu
c tc dng hn ch s lm dng ti nguyn, gip h thng hot ng tt
hn. Cc ng dng c phn quyn v t h thng s kill nu mc u tin
thp.
- Cc ng dng c gn s ID ca ngi s dng nhn phn nh quyn hnkhi s dng ti nguyn, cu hnh phn cng v h thng.
- Android l mt hiu hnh c tnh m, khc vi nhiu hiu hnh di ngkhc, android cho php mt ng dng ca bn thba c php chy nn. Cc
ng dng ch c mt hn ch nh l n khng c php s dung qu
5~10% cng sut CPU, iu nhn trnh c quyn trong vic s
dng CPU.
III. Cc thnh phn ca Android1.Thnh phn ca 1 chng trnh Android1.1 Activity v IntentActivity:
Mt activity th hin mt giao din ha ngi dng. V d mt activity c th biu
din mt danh sch cc menu item ngi dng c th chn v c th hin thnh
cng vi tiu . Mt ng dng gi tin nhn vn bn c th c mt hot ng l hin
-
8/22/2019 BaoCao TTCN
12/37
12
th mt danh sch cc lin h gi tin nhn ti, hot ng th hai l vit tin nhn ti
lin hc chn, cc hot ng khc na l xem li tin nhn c hay thay i ci t.
Mc d chng lm vic cng nhau to thnh mt giao din ngi dng, mi
activity c lp vi nhng ci khc. Mi activity l mt lp con ca lp c sActivity.
Mt ng dng c th gm ch mt activity hay nhiu activity. Thng thng, mt
trong s cc activity c nh du nh l activity u tin phi c trnh din ti
ngi dng khi ng dng c khi ng. Chuyn t mt activity sang activity khc
c hon thnh bng cch cho activity hin thi khi ng activity k tip.
Mi activity c a ra mt ca s mc nh vvo. Thng thng, ca s s lp
y mn hnh, nhng n c th nhhn mn hnh v nm trn cc ca s khc. Mt
activity c th s dng ca s b sung - v dnh mt pop-up dialog gi cho mt p
ng ngi dng gia ca activity, hay mt ca s biu din nhng cho ngi dng
vi thng tin quan trng khi h chn mt item c th trn mn hnh.
Ni dung trc quan ca ca sc cung cp bi mt cy phn cp cc i tng
view dn xut t lp View. Mi view iu khin mt khong hnh ch nht c th bn
trong ca s. View cha cha v t chc b cc cc view con. Cc view l v tronghnh ch nht m chng iu khin v p ng li cc hnh ng ngi dng trc tip
khong trng ny. Do , cc view l ni m cc tng tc ca activity vi ngi
dng din ra. V d mt view c th hin th mt hnh nh nh v khi to mt hot
ng khi ngi dng nhn vo hnh nh . Android c mt sview xy dng sn
m bn c th s dng gm c cc buttons, text fields, scroll bars, menu items,
check boxes
Mt cy phn cp view c t trong mt ca s ca activity bng phng thc
Activity.setContentView(). Content view l i tng View gc ca cy phn cp.
Class c sActivity nh ngha mt lot cc s kin m iu chnh vng i ca mt
hot ng. Class Activity nh ngha cc s kin sau y:
-
8/22/2019 BaoCao TTCN
13/37
13
- onCreate():c gi khi hot ng c to ra ln u tin.- onStart(): c gi khi hot ng trnn hu hnh so vi ngi dng.- onResume(): c gi khi hot ng bt u tng tc vi ngi s dng.-
onPause(): c gi dng cc hot ng hin ti v ni li cc hot ngtrc .
- onStop(): c gi khi hot ng khng cn hin th vi ngi dng.- onDestroy(): c gi trc khi hot ng b ph hy bi h thng (bng tay
hoc bng h thng bo tn b nh).
- onRestart(): c gi khi h thng c dng li v khi ng li mt lnna.
http://developer.android.com/images/activity_lifecycle.png -
8/22/2019 BaoCao TTCN
14/37
14
Intent:
L mt cu trc d liu m t cch thc, i tng thc hin ca mt Activity. L cu
ni gia cc Activity: ng dng Android thng bao gm nhiu Activity, mi
Activity hot ng c lp vi nhau v thc hin nhng cng vic khc nhau. Intentchnh l ngi a th, gip cc Activity c th triu gi cng nh truyn cc d liu
cn thit ti mt Activity khc. iu ny cng ging nh vic di chuyn qua li gia
cc Forms trong lp trnh Windows Form.
1.2 ServiceMt service khng c giao din trc quan, n chy trn nn trong mt khong thi
gian khng xc nh. V d mt service c thchi nhc nn, hay n np d liu trnmng hay tnh ton ci g v cung cp kt qu cho activity cn n n. Mi service
mrng t lp c sService.
Mt v d cin l media player chi cc bi ht t mt danh sch. ng dng player
c th c mt hay hai activity cho php ngi dng chn bi ht v bt u chi. Tuy
nhin, music playback khng tn c x l bi mt activity bi v ngi dng s
mong mun chi tip nhc khi h ri khi player v lm ci g khc. tip tc
chi nhc, media player activity c th khi ng mt service chy trn nn. H thng
s gi cho music playback service chy thm ch khi activity khi ng n ri khi
mn hnh.
-
8/22/2019 BaoCao TTCN
15/37
15
Trong khi kt ni, bn c th giao tip vi dch v thng qua giao din m service
trng ra. V dnh trong music service, giao din ny c th cho php ngi dng
pause, rewind, stop v restart li playback.
Ging nh cc activity v cc thnh phn khc khc, service chy trong thread chnhca tin trnh ng dng. V th chng khng th chn nhng thnh phn khc hay giao
din ngi dng, chng thng to ra cc thead khc cho cc nhim v hao tn thi
gian.
1.3
Broadcast Reveive
Mt Broadcast Rreceiver l mt thnh phn khng lm g ngoi vic nhn v p li
cc thng bo broadcast. Nhiu broadcast khi u trong m h thng - v d nh
thng bo mi gi thay i, pin yu, nh c chp, hay ngi dng thay i
ngn ng Cc ng dng c th to ra cc broadcast, chng hn ng dng khc
bit c mt s d liu c ti v thit b v sn sng cho vic s dng chng.
Mt ng dng c th c mt sBroadcast Receiver p li bt c thng bo no
m n cho l quan trng. Tt c cc receiver mrng t lp c sBroadcastReceiver.
Broadcast Receiver khng hin th mt giao din ngi dng. Tuy nhin chng c th
bt u mt activity p li thng tin m chng nhn, hay chng c th s dng
NotificationManager cnh bo ngi dng. Notifications c th ly s ch ca
-
8/22/2019 BaoCao TTCN
16/37
16
ngi dng bng nhiu cch, le sng n sau, rung, to ra m thah, vn vn. Chng
thng ly mt biu tng bn vng trong thanh trng thi, ci m ngi dng c th
m ly thng ip.
1.4 Content ProviderMt content provider to ra mt tp c th cc d liu ca ng dng kh dng cho cc
ng dng khc. D liu c thc lu tr trong h thng file, trong mt c sd
liu SQLite, hay trong mt cch khc no . Content provider m rng lp c s
ContentProvider ci t mt tp cc chun cc phng thc cho php cc ng dng
khc t c v lu tr d liu ca kiu m n iu khin. Tuy nhin, cc ng dng
khng gi trc tip cc phng thc ny, chng s dng mt i tng
ContentResolver v gi cc phng thc ca n. Mt ContentResolver c th ni
chuyn vi bt c content provider no, chng cng tc vi provider qun l giao
tip lin tin trnh.
1.5 Manifest FileTrc khi Android c th khi ng mt thnh phn ng dng, n phi bit rng
thnh phn tn ti. V vy, ng dng khai bo nhng thnh phn ca mnh trong
mt manifest file c gn vo Android package, file .apk ny cng gi cha m ca
ng dng v cc ti nguyn.
Manifest file l mt file XML c cu trc v thng c t tn l
AndroidManifest.xml cho mi ng dng. N thc hin mt s bsung khai bo
cc thnh phn ca ng dng, nh l nu tn cc th vin ng dng cn n, v xc
nh cc quyn hn ca ng dng mun c cp.
V dnh n khai bo cc Activity trong chng trnh ca chng ta, khi khi ngchng trnh th Activity no sc thc hin u tin, cc quyn truy cp Internet,
SDCard, hay cc vn v gi nhn tin nhn, cuc gi...
1.6 Giao din ngi dng trong Android
-
8/22/2019 BaoCao TTCN
17/37
17
Trong mt ng dng Android, giao din ngi dng c xy dng bng cch s
dng View v ViewGroup i tng. C nhiu loi quan im v cc nhm view, mi
mt trong s l hu du ca lp View. View objects l cc n vc bn ca biu
hin giao din ngi dng trn nn tng Android. Cc class xem nh l c sphc vcho class con c gi l "widget", trong cung cp y cc i tng thc hin
giao din, ging nh cc lnh vc vn bn v nt. Class ViewGroup phc vnh l c
scho lp con c gi l " layouts", cung cp cc loi khc nhau ca kin trc b
tr, nh linear, tabular v relative.
2.Cc thnh phn giao din WidgetC rt nhiu cch b tr giao din. S dng nhiu hn v cc loi khc nhau ca cc
view group, bn c th cu trc views con v view groups trong v scch. Xc nh
cc nhm xem c cung cp bi Android (gi l layouts) bao gm LinearLayout,
RelativeLayout, TableLayout, GridLayout v khc. Mi cung cp mt b duy nht
ca cc thng s btr c s dng xc nh v tr ca views con v c cu layout
tm hiu v mt s cc loi khc nhau ca cc view group c s dng cho mt
layout, c Giao din i tng thng gp.
Widget l mt object View phc vnh mt giao din tng tc vi ngi dng.Android cung cp mt tp cc widgets thc hin y , ging nh cc button,
Checkbox, v text-entry , do bn c th nhanh chng xy dng giao din ngi
dng ca bn. Mt swidgets c cung cp bi Android phc tp hn, ging nh
mt date picker, clock, v zoom controls. Nhng n khng gii hn trong cc loi
widgets c cung cp bi cc nn tng Android.
3.Bt skin trong AndroidKhi thm mt sViews/widgets n giao din. c thng bo v UI events
ngi dng, cn phi lm mt trong hai iu: Xc nh mt s kin nghe v ng k
n vi cc View. y l cch lng nghe s kin. Cc class View c mt phng php
gi l On().
-
8/22/2019 BaoCao TTCN
18/37
18
V d: View.OnClickListener( x l "nhp chut" trn mt
View), View.OnTouchListener ( x l cc s kin mn hnh cm ng trong mt
View), v View.OnKeyListener( x l thit b p quan trng trong mt View). V
vy nu mun View c thng bo khi n l " clicked" (chng hn nh khi mt ntc chn), thc hin v xc nh OnClickListener ca n gi method onClick() (ni
thc hin cc hnh ng sau khi nhp chut), v ng k n vo Xem vi
setOnClickListener().
Ghi mt callback method hin cho View. y l nhng g nn lm g khi thc
hin lp View ca ring bn v mun lng nghe cho cc s kin c th xy ra trong
n. V d v cc s kin c th x l bao gm mn hnh l
touched onTouchEvent() khi trackball l di chuyn onTrack ballEvent() hoc khi mt
phm trn thit bc nhn onKeyDown(). iu ny cho php xc nh cc hnh vi
mc nh cho tng s kin bn trong tu chnh View v xc nh xem s kin ny cn
c thng qua ngy View con khc. Mt ln na, y l nhng callbacks View
class, do , c hi duy nht ca bn xc nh l khi bn xy dng mt phn ty
chnh.
4.Menu
Menu n c mt phn quan trng ca giao din ngi dng trong mt ng dng.
Menus cung cp mt giao din ng tin cy cho thy rng cc chc nng ng dng v
ci t. Trong trnh n ng dng ph bin nht l tit l bng cch bm phm MENU
trn thit b. Tuy nhin, cng c th thm Context Menus, c th hin thkhi ngi s
dng my nhn v nm gi phm trn mt mc. Thc n cng c h thng phn
cp cu trc bng cch s dng mt xem, nhng bn khng xc nh cu trc ny cho
mnh.
Thay vo , xc nh onCreateOptionsMenu() or onCreateContext Menu() gi
method cho hot ng ca mnh v tuyn b cc mc m mnh mun bao gm trong
-
8/22/2019 BaoCao TTCN
19/37
19
menu ca mnh. Trong mt thi gian thch hp, Android s tng to ra h thng
View phn cp cn thit cho menu, v rt ra mi trong mi menu items .
-
8/22/2019 BaoCao TTCN
20/37
20
CHNG 2: PHN TCH XML TRONG ANDROID
I. Tng quan v XML1.Khi nimXML (vit tt t ting Anh Extensible Markup Language, Ngn ngnh du M
rng) l ngn ngnh du vi mc ch chung do W3C ngh, to ra cc ngn
ngnh du khc. y l mt tp con n gin ca SGML, c khnng m t nhiu
loi d liu khc nhau. Mc ch chnh ca XML l n gin ha vic chia s d liu
gia cc h thng khc nhau, c bit l cc h thng c kt ni vi Internet. Cc
ngn ng da trn XML (th d: RDF, RSS, MathML, XHTML, SVG, v cXML)
c nh ngha theo cch thng thng, cho php cc chng trnh sa i v kim
tra hp l bng cc ngn ng ny m khng cn c hiu bit trc v hnh thc ca
chng.
2.c im ca XMLXML cung cp mt phng tin dng vn bn (text) m t thng tin v p dng
mt cu trc kiu cy cho thng tin . Ti mc cn bn, mi thng tin u th hin
di dng text, chen gia l cc thnh du (markup) vi nhim v k hiu s phn
chia thng tin thnh mt cu trc c th bc ca cc d liu k t, cc phn t dng
cha d liu, v cc thuc tnh ca cc phn t. V mt , XML tng t vi
cc biu thc S (S-expression) ca ngn ng lp trnh LISP chchng u m t
cc cu trc cy m trong mi nt c th c mt danh sch tnh cht ca ring
mnh.
n vc sca XML l cc k ttheo nh ngha ca Universal Character Set (B
k t ton cu). Cc k tc kt hp theo cc t hp chui hp l to thnh mtti liu XML. Ti liu ny gm mt hoc nhiu thc th, mi thc ththng l mt
phn no ca cc k t thuc ti liu, c m ha di dng mt chui cc bit v
lu tr trong mt tp vn bn (text file).
-
8/22/2019 BaoCao TTCN
21/37
21
S ph bin ca cc phn mm son tho vn bn (word processor) h trvic
son tho v bo tr ti liu XML mt cch nhanh chng. Trc XML, c rt t ngn
ng m t d liu vi cc c im a nng, thn thin vi giao thc Internet, d hc
v d to. Thc t, a scc nh dng trao i d liu thi u chuyn dng, ctnh c quyn, v c nh dng nh phn (chui bit thay v chui k t) kh dng
chung gia cc ng dng phn mm khc nhau hay gia cc h nn (platform) khc
nhau. Vic to v bo tr trn cc trnh son tho thng dng li cng kh khn.
Bng cch cho php cc tn d liu, cu trc th bc c php, v ngha ca cc
phn t v thuc tnh c tnh cht mv c thc nh ngha bi mt gin ty
bin c, XML cung cp mt c sc php cho vic to lp cc ngn ngnh du
da XML theo yu cu. C php chung ca cc ngn ng l cnhcc ti liu
phi tun theo cc quy tc chung ca XML, bo m rng tt c cc phn mm hiu
XML t ra cng phi c kh nng c (phn tch c php parse) v hiu b cc
tng i ca thng tin trong cc ti liu . Gin ch b sung mt tp cc rng
buc cho cc quy tc c php. Cc gin thng hn ch tn ca phn t v thuc
tnh v cc cu trc th bc c php, v d, ch cho php mt phn t tn ngy
sinh cha mt phn t tn ngy v mt phn tc tn thng, mi phn t phi
cha ng mt k t. y l im khc bit gia XML v HTML. HTML c mt b
cc phn t v thuc tnh khng mm do, ch c mt tc dng v ni chung l khng
th dng cho mc ch khc.
XML khng hn ch v vic n c s dng nh th no. Mc d XML vc bn l
dng text, cc phn mm vi chc nng tru tng ha n thnh cc nh dng khc
giu thng tin hn nhanh chng xut hin, qu trnh tru tng ha ny c thc
hin ch yu qua vic s dng cc gin nh hng kiu d liu (datatype-orientedschema) v khun mu lp trnh hng i tng (m trong , mi ti liu XML
c thao tc nh l mt i tng). Nhng phn mm nh vy c thcoi XML nh
l dng text c tun t ha ch khi n cn truyn d liu qua mng.
3.Cu trc ca XML
-
8/22/2019 BaoCao TTCN
22/37
22
C php XML c bn cho mt phn t l:
ni dung
V d:
Jindo
NXB tre
14000
Conan
NXB Kim Dong14000
7 vien ngoc rong
NXB Kim Dong
10000
II.RSSRSS l mt dng file XML c cung cp bi hu ht cc trang bo in t ngy nay
vi mc ch cho php ngi dng c th ly ni dung bi vit s dng vi cc
mc ch khc nhau.
III. Cc lp, giao din phn tch XML trong AndroidJava API forXML Processing, hay JAXP, l mt trong cc API cho lp trnh Java
XML. N cung cp kh nng kim chng v phn tch cc ti liu XML. Hai loi giaodin (interface) phn tch c bn l:
- Giao din phn tch dngM hnh i tng ti liu (Document ObjectModel), vit tt l DOM
http://vi.wikipedia.org/wiki/XMLhttp://vi.wikipedia.org/wiki/Giao_di%E1%BB%87n_l%E1%BA%ADp_tr%C3%ACnh_%E1%BB%A9ng_d%E1%BB%A5nghttp://vi.wikipedia.org/w/index.php?title=Java_XML&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=Java_XML&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=Java_XML&action=edit&redlink=1http://vi.wikipedia.org/wiki/XMLhttp://vi.wikipedia.org/wiki/XMLhttp://vi.wikipedia.org/wiki/DOMhttp://vi.wikipedia.org/wiki/DOMhttp://vi.wikipedia.org/wiki/DOMhttp://vi.wikipedia.org/wiki/DOMhttp://vi.wikipedia.org/wiki/DOMhttp://vi.wikipedia.org/wiki/DOMhttp://vi.wikipedia.org/wiki/XMLhttp://vi.wikipedia.org/w/index.php?title=Java_XML&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=Java_XML&action=edit&redlink=1http://vi.wikipedia.org/wiki/Giao_di%E1%BB%87n_l%E1%BA%ADp_tr%C3%ACnh_%E1%BB%A9ng_d%E1%BB%A5nghttp://vi.wikipedia.org/wiki/XML -
8/22/2019 BaoCao TTCN
23/37
23
- Giao din phn tchAPI n gin dnh cho XML (Simple API for XML) - vittt l SAX
- StAX, API dn lung cho XML (the Streaming API for XML).Cng vi cc giao din phn tch, API ny cn cung cp mt giao din XSLT cungcp vic chuyn i d liu v cu trc t mt ti liu XML sang mt dng khc.
1.Giao din DOMGiao din DOM c l l mt giao din d hiu nht. N phn tch ton b ti liu
XML v kin thit mt cu trc hon chnh i din cho bn ti liu, trong b nh,
bng cch dng cc lp m hnh ha cc khi nim ghi trongTi liu chi tit
c t k thut ca Document Object Model(DOM) Cp 2.B phn tch DOM c gi l DocumentBuilder, v n to nn mt hnh thc i
din cho Document trong b nh. javax.xml.parsers.DocumentBuilderc to nn
bijavax.xml.parsers.DocumentBuilderFactory. DocumentBuilderto ra mttrng
hpca org.w3c.dom.Document, tc mt cu trc cy cha ccnttrong Ti liu
XML. Mi nt cy trong cu trc thc hin mt giao din org.w3c.dom.Node. C
nhiu loi nt cy i din cho loi d liu tm thy trong bn ti liu XML. Loi nt
quan trng nht l:
- Nt phn t. Loi ny c th c cc thuc tnh nm bn trong.- Nt vn bn. Loi ny i din cho phn vn bn nm gia th mv th
ng ca mt phn t ti liu.
2.Giao din SAXB phn tch SAX c gi l SAXParserv c to
bng javax.xml.parsers.SAXParserFactory. Khc vi b phn tch DOM, b
SAXParser khng to ra mt hnh thc i din ca ti liu XML trong b nh v v
th n hot ng nhanh hn, t tn b nh hn. Thay vo , b phn tch SAXParser
thng bo cho cc trnh khch cu trc ca ti liu XML bng cch gi cc
http://vi.wikipedia.org/wiki/SAXhttp://vi.wikipedia.org/wiki/SAXhttp://vi.wikipedia.org/wiki/SAXhttp://vi.wikipedia.org/wiki/StAXhttp://vi.wikipedia.org/wiki/Giao_di%E1%BB%87n_l%E1%BA%ADp_tr%C3%ACnh_%E1%BB%A9ng_d%E1%BB%A5nghttp://vi.wikipedia.org/wiki/XMLhttp://vi.wikipedia.org/wiki/Giao_di%E1%BB%87n_l%E1%BA%ADp_tr%C3%ACnh_%E1%BB%A9ng_d%E1%BB%A5nghttp://vi.wikipedia.org/wiki/XSLThttp://vi.wikipedia.org/wiki/XMLhttp://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113http://vi.wikipedia.org/wiki/SAXhttp://vi.wikipedia.org/wiki/DOMhttp://vi.wikipedia.org/wiki/DOMhttp://vi.wikipedia.org/wiki/DOMhttp://vi.wikipedia.org/wiki/SAXhttp://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113http://vi.wikipedia.org/wiki/XMLhttp://vi.wikipedia.org/wiki/XSLThttp://vi.wikipedia.org/wiki/Giao_di%E1%BB%87n_l%E1%BA%ADp_tr%C3%ACnh_%E1%BB%A9ng_d%E1%BB%A5nghttp://vi.wikipedia.org/wiki/XMLhttp://vi.wikipedia.org/wiki/Giao_di%E1%BB%87n_l%E1%BA%ADp_tr%C3%ACnh_%E1%BB%A9ng_d%E1%BB%A5nghttp://vi.wikipedia.org/wiki/StAXhttp://vi.wikipedia.org/wiki/SAX -
8/22/2019 BaoCao TTCN
24/37
24
hm callbacks, ngha l, bng cch gi ccphng phpcatrng hp bn
mu:Javadoc:SE c cung cp cho b phn tch.
Lp DefaultHandlernm trong gi org.xml.sax.helpers. Lp nythc hin cc giao
din ContentHandler, ErrorHandler, DTDHandler, vEntityResolver. i b phncc trnh khch ch quan tm n nhngphng phpc nh ngha trong giao
din ContentHandler m thi.
Ccphng phpca giao din ContentHandler, c DefaultHandlerthc hin,
c gi n khi b phn tch SAX bt gp nhng phn t tng ng trong bn ti
liu XML. Nhngphng phpch yu trong giao din ny bao gm:
- Phng thc startDocument(): c gi khi bt u ti liu.- Phng thc endtDocument(): c gi kt thc ti liu.- Phng thc startElement(): c gi khi bt u mt th.- Phng thc endElement(): c gi khi kt thc mt th.- Phng thc characters(): c gi sau khi gi phng thc startElement(),
phn tch ni dung bn trong th .
Cc trnh khch cung cp mtphn lpca DefaultHandler. Phn lp ny c s
dng ln quynnhng phng php trn v x l d liu. Qutrnh ny c th bao
gm vic lu tr d liu vo trong c s d liu, hoc vit chng ra mt lung(d
liu).
3.Giao din XSLTNgn ng tp tin nh dng XML dnh cho vic chuyn i -
(The XML Stylesheet Language for Transformations, hay XSLT) cho php bin imt bn ti liu XML sang cc dng thc d liu khc.
IV.Phn tch ni dung XML trong Android s dng SAX1.S lc v SAX
http://vi.wikipedia.org/w/index.php?title=B%E1%BA%A3n_m%E1%BA%ABu:Javadoc:SE&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=B%E1%BA%A3n_m%E1%BA%ABu:Javadoc:SE&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=B%E1%BA%A3n_m%E1%BA%ABu:Javadoc:SE&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=B%E1%BA%A3n_m%E1%BA%ABu:Javadoc:SE&action=edit&redlink=1http://vi.wikipedia.org/wiki/XSLThttp://vi.wikipedia.org/wiki/XSLThttp://vi.wikipedia.org/wiki/XMLhttp://vi.wikipedia.org/wiki/XMLhttp://vi.wikipedia.org/wiki/XSLThttp://vi.wikipedia.org/w/index.php?title=B%E1%BA%A3n_m%E1%BA%ABu:Javadoc:SE&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=B%E1%BA%A3n_m%E1%BA%ABu:Javadoc:SE&action=edit&redlink=1 -
8/22/2019 BaoCao TTCN
25/37
25
SAX (Simple API for XML), gm c 2 interface chnh: XMLReader l interface dng
c XML v ContentHandlerdng nhn v x l d liu t XML. Hai
interface ny gii quyt 90% nhu cu ca ngi dng vi SAX.
SAX (Simple API for XML) c pht minh vo cui nm 1998 khi Peter, Murray-Rust v mt s tc gi phn tch c php XML c vit bng Java nhn ra rng s
khng hp l khi dng qu nhiu cc b APIkhc nhau cho chung 1 mc ch l c
XML . Murray-Rust l ngi u tin xut nhng g ng gi l "YAXPAPI". L
do Murray-Rust mun t tn l Yet Another XML Parser API v ng hon
ton b mt mi v phi dng nhiu hm API phn tch c php XML cho ng
dng JUMBO. Thay vo , ng mun c mt API chun tt c mi ngi c th
ng . Sau mt thi gian ngn beta SAX 1.0 c pht hnh vo ngy 11 thng nm
1998.
2.u im ca SAX- n gin- S dng t b nh- Tc x l nhanh- Tp trung vo d liu hin hnh- D s dng lc d liu- Tuy nhin SAX c cc nhc im sau:- Khng th tc ng ln d liu XML- Ch lu tr trng thi phc tp- Kh khn khi phn tch cu trc XML ln
3.Cc khi nim dng trong SAXParsing: l qu trnh c file XML v ly d liu ca XML a vo chng trnh
ng thi check li c php ca XML.
Callback Interface: SAX s dng cc i tng Observer c d liu trong
file XML. Lp trnh vin JAVA quen thuc vi kin trc lp trnh theo s kin
-
8/22/2019 BaoCao TTCN
26/37
26
ca AWT v Swing. V d nh khi chng ta vit 1 class thc thi
t interfaceMouseListener, class ny s mc nhin c cc s kin ca interface ny.
Sau chng ta ng k class ny vo cho 1 object v d nh l button, button ny c
th nhn cc s kin lin quan n thao tc ca con tr. SAX cng hot ng theo cutrc . Tuy nhin im khc bit ln nht gia Swing v SAX l SAX khng cho
php gn nhiu hn 1 s kin cho cng 1 object
-
8/22/2019 BaoCao TTCN
27/37
27
CHNG 3: DEMO NG DNG
I. Phn tch chng trnhCc tc nhn:
- Ngi s dng.- Trang Web cung cp RSS
Cc Use Case:
- View Feeds & Articles: c cc mc RSS v cc bi vit trong mc .- Delete Feed: Xa 1 mc RSS- Add Feed: Thm mi mt mc RSS
c t h thng:
Ngi dng chn cc tc v ca chng trnh thc hin.
Nu trong c sd liu c cc trang tin chng trnh sload ra cc trang ly tin t
cc trang , ngi dng chn mt trong s cc trang tin c sn sau khi chn chng
trnh gi n browser thc hin view trang cn xem.
Nu trong c sd liu khng c tin chn addArticle ri nhp ng dn n trang cnc dng RSS, add xong trang tin sc trong c sd liu mi khi ngi dng chng
trnh.
xa trang tin trong c sd liu ngi dng chn deleteArticle chn vo trang tin cn
xa xa.
-
8/22/2019 BaoCao TTCN
28/37
28
Biu Use Case:
Biu trnh t
Biu trnh t xem tin
-
8/22/2019 BaoCao TTCN
29/37
29
Biu trnh t thm trang tin
Biu trnh t xa trang tin
-
8/22/2019 BaoCao TTCN
30/37
30
Biu trng thi
Biu trng thi xem tin
Biu trng thi thm trang tin
-
8/22/2019 BaoCao TTCN
31/37
31
Biu trng thi xa trang tin
II. Ni dung chng trnh1.C sdl iuChng trnh s dng 2 bng:
- feeds(feed_id, title, url): lu tr cc ngun RSS ngi dng nhp vo.- articles(article_id, feed_id, title, url): Lu tr cc bi vit tng ng vi cc
RSS.
2.Cc lp trong chng trnhChng trnh bao gm 7 lp:
- Article: dng lu tr cc gi tr mt bi vit- Feed: dng lu tr cc gi tr ca 1 feed.- RssReaderDemoDB: X l cc thao tc vi c sd liu.
-
8/22/2019 BaoCao TTCN
32/37
32
- RSSHandler: phn tch mt mc RSS ri lu ni dung cc th cn thit vo csd liu.
- ArticlesList: Hin th cc bi vit.-
FeedsList: Hin th cc mc RSS- URLEditor: Cho php ngi dng nhp vo v thm mi mt mc RSS
3.Hot ngKhi bt u chy, chng trnh s thc thi phng thc onCreate() trong lp
FeedsList, ly cc ngun RSS trong sd liu v hin th ln cho ngi dng la
chn. ng dng cho php ty chn thm mi hoc xa mt ngun RSS:
- Khi ngi dng la chn mt ngun RSS, mn hnh s hin ra cc bi vit caRSS , v ngi dng la chn bi vit c
- Khi la chn xa ngun RSS: chng trnh s thc hin xa RSS ang lachn khi c sd liu.
- Khi ngi dng chn Add Feed: mn hnh s hin th cho php ngi dngnhp vo URL ca RSS ri thc hin thm vo c sd liu.
-
8/22/2019 BaoCao TTCN
33/37
33
Giao din nhp thm trang tin
-
8/22/2019 BaoCao TTCN
34/37
34
LI NHN XT
-
8/22/2019 BaoCao TTCN
35/37
35
KT LUN V HNG PHT TRIN
Sau mt thi gian tm hiu ti Tm hiu v Android v xy dng ng dng c tin tc
online em thc hin c ti ca mnh theo nh d kin.Vi mc ch l tm hiu
v h iu hnh Android, hiu bit v ngn ng lp trnh mi cho in thoi di ng v
tm hiu cc ng dng ca h iu hnh Android trongth gii di ng ngy nay. Thng
qua vic tm hiu v nm bt l thuyt v h iu hnh Android bc u tm hiu ng
dng c tin tc onlinetrn nn h iu hnh Android cho in thoi di ng.
Trong qu trnh tm hiu l thuyt v h iu hnh Android v tm hiu ng dng c tin
tccho thit b di ng em thu c kt qu bc u nh sau:
- Sau qu trnh tm hiu v nghin cu ti, em bc u hiu v h iuhnh Android chy trn in thoi. Bit v nm vng qu trnh to mt file
project trong lp trnh trn nn Android.
- Hiu v s dng c cc lp i tng, phng thc h tr lp trnh trn nnh iu hnh Android.
- Hiu c c ch lm vic vi Webservice ly v cp nht d liu chonhng ng dng cn thng tin nhanh chng, thng xuyn v chnh xc.
Do thi gian ngn cng vi kin thc ca bn thn cn hn ch nn em cha tm hiu su
v cc kin thc lin quan ti h iu hnh Android nn chng trnh vn cn rt nhiu
hn ch, em s c gng pht trin thm chng trnh thn thin, d s dng v nhiu
chc nng hn.
Hng pht trin ca ti:
Xy dng ng dngc tin tc, xem gi vng, thng tin chng khon, xem d bo thitit cho cc thit b di ng trn h iu hnh Android.
Nghin cu v tm hiu su cc kin thc lin quan ti h iu hnh Android c th
xy dng thm mt s ng dng khc trn h iu hnh Android cho in thoi di ng
nh l: chat, gi tin nhn c hnh MMS, gi video, gi file, nghe nhc, chi game, mail.
-
8/22/2019 BaoCao TTCN
36/37
36
Trong qu trnh thc hin ti em c gng tm hiu ti liu qua nhiu phng thc
tng hp kin thc, hc hi t thy c v bn b hon thnh. Em xin chn thnh
cm n cc thy c cng cc bn gip em hon thnh.Trong bi bo co cn c
thiu st mong thy c v cc bn gp em hon thin hn.Em xin chn thnh cm n!
Thi Nguyn, thng 09 nm 2011
-
8/22/2019 BaoCao TTCN
37/37
TI LIU THAM KHO
1. http://diendan.vietandroid.com/forum.php2. http://developer.android.com/reference/android/util/Log.html3. Pragmatic - Hello Android (2008) - Ed Bunette4. http://www.anddev.org/5. http://marakana.com/forums/android/
http://diendan.vietandroid.com/forum.phphttp://developer.android.com/reference/android/util/Log.htmlhttp://developer.android.com/reference/android/util/Log.htmlhttp://diendan.vietandroid.com/forum.php