You are on page 1of 62

sinhvienit.

net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 1
Sinh vin: Trn Hu Phc
MC LC
CHNG 1: C S L THUYT ..................................................................... 4
1. LCH S ANDROID .................................................................................. 4
2. DELVING VI MY O DALVIK ........................................................... 5
3. KIN TRC CA ANDROID .................................................................... 5
3.1. Tng ng dng .................................................................................... 6
3.2. Application framework ........................................................................ 6
3.3. Library ................................................................................................ 7
3.4. Android Runtime ................................................................................. 7
3.5. Linux kernel ........................................................................................ 8
4. ANDROID EMULATOR ........................................................................... 8
5. CC THNH PHN TRONG MT ANDROID PROJ ECT ....................... 9
5.1. AndroidManifest.xml .......................................................................... 9
5.2. File R.java ......................................................................................... 10
6. CHU K NG DNG ANDROID ........................................................... 11
6.1. Chu k sng thnh phn .................................................................... 12
6.2. Activity Stack .................................................................................... 12
6.3. Cc trng thi ca chu k sng .......................................................... 13
6.4. Chu k sng ca ng dng ................................................................ 13
6.5. Cc s kin trong chu k sng ca ng dng ..................................... 14
6.6. Thi gian sng ca ng dng ............................................................. 14
6.7. Thi gian hin th ca Activity .......................................................... 14
6.8. Cc phng thc ca chu k sng ..................................................... 14
7. CC THNH PHN GIAO DIN TRONG ANDROID ........................... 16
7.1. View.................................................................................................. 16
7.2. ViewGroup ........................................................................................ 16
7.2.1. LinearLayout ............................................................................. 16
7.2.2. FrameLayout ............................................................................. 17
7.2.3. AbsoluteLayout ......................................................................... 17
7.2.4. RetaliveLayout .......................................................................... 18
7.2.5. TableLayout .............................................................................. 18
7.3. Button ............................................................................................... 18
7.4. ImageButton ...................................................................................... 19
7.5. ImageView ........................................................................................ 20
7.6. ListView ........................................................................................... 20
7.7. TextView .......................................................................................... 21
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 2
Sinh vin: Trn Hu Phc
7.8. EditText ............................................................................................ 21
7.9. CheckBox.......................................................................................... 22
7.10. MenuOptions ................................................................................. 22
7.11. ContextMenu ................................................................................. 24
7.12. Quick Search Box .......................................................................... 24
7.13. Activity & Intend........................................................................... 25
7.13.1. Activity...................................................................................... 25
7.13.2. Intent ......................................................................................... 26
8. CONTENT PROVIDER V URI .............................................................. 28
9. BACKGROUND SERVICE ..................................................................... 29
10. TELEPHONY ........................................................................................... 32
11. SQLITE .................................................................................................... 32
12. ANDROID & WEBSERVICE .................................................................. 33
12.1. Khi nim Web service v SOAP .................................................. 33
12.2. Gii thiu v XStream ................................................................... 34
12.3. Thao tc vi web service trong Android ........................................ 36
CHNG 2: PHN TCH V THIT K H THNG ............................... 38
13. C T BI TON................................................................................. 38
14. C T CHC NNG ............................................................................ 38
14.1. Upload phone book........................................................................ 38
14.2. Revert phone book ......................................................................... 39
14.3. Send contact .................................................................................. 40
14.4. Reveive contact ............................................................................. 40
14.5. Export contact ti SD Card ............................................................ 40
14.6. Import contact t SD Card ............................................................. 41
14.7. Account Manager .......................................................................... 41
14.7.1. Login ......................................................................................... 41
14.7.2. Change password ....................................................................... 41
14.7.3. Restore account ......................................................................... 41
14.7.4. Create account ........................................................................... 42
15. CC BIU H THNG ..................................................................... 42
15.1. Biu Usercase ........................................................................... 42
15.1.1. Restore account ......................................................................... 43
15.1.2. Export Contact vo SD Card ...................................................... 43
15.1.3. Import Contact t SD Card ........................................................ 43
15.1.4. Login ......................................................................................... 44
15.2. Biu Class................................................................................. 44
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 3
Sinh vin: Trn Hu Phc
15.2.1. Biu Class gia cc thnh phn giao din ............................. 44
15.3. Biu Class Contact.................................................................... 44
15.4. Biu Class ContactProvider ...................................................... 44
15.5. Class Webservice .......................................................................... 45
15.6. Biu Sequence .......................................................................... 45
15.6.1. Login ......................................................................................... 45
15.6.2. Create new account .................................................................... 46
15.6.3. Restore account ......................................................................... 47
15.6.4. Upload phone book .................................................................... 48
15.6.5. Revert phone book ..................................................................... 48
15.6.6. Export Contact to SD Card ........................................................ 49
15.6.7. Import Contact from SD Card .................................................... 49
15.6.8. Send Contact ............................................................................. 49
15.7. Biu Activity ............................................................................ 51
15.7.1. Change password ....................................................................... 51
15.7.2. Export Contact to SD Card ........................................................ 52
15.7.3. Upload phone book .................................................................... 52
15.7.4. Send Contact ............................................................................. 53
15.7.5. Revert phone book ..................................................................... 53
15.7.6. Import Contact from SD Card .................................................... 54
16. C S D LIU WEB SERVICE ............................................................ 54
CHNG 3: DEMO NG DNG ................................................................... 57
17. MT VI HNH NH NG DNG ........................................................ 57
18. S LIN KT CC MN HNH V DIALOG ................................. 58
18.1. Danh sch cc lin kt mn hnh mc 1&2 .................................... 58
18.2. Danh sch lin kt cc mn hnh mc 3 ......................................... 58
18.2.1. Mn hnh View Contact ............................................................. 58
18.2.2. Mn hnh danh sch cc Contact mi ......................................... 58
18.2.3. Mn hnh danh sch phone bool upload................................. 58
19. NH GI NG DNG ......................................................................... 59
20. HNG PHT TRIN TRONG TNG LAI......................................... 59
21. KT LUN............................................................................................... 60
NH GI CA GIO VIN
TI LIU THAM KHO
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 4
Sinh vin: Trn Hu Phc
CHNG 1: C S L THUYT
1. LCH S ANDROID
Ban u, Android l h iu 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. Cc thnh vin ch cht ti
Android Inc. gm c: Andy Rubin, Rich Miner, Nick Sears, and Chris White.
Hnh 1-1 Android timeline
V sau tip, vo cui nm 2007, thuc v Lin minh Thit b Cm tay M Ngun
m (Open Handset Alliance) gm cc thnh vin ni bt trong ngnh vin thng v
thit b cm tay nh:
Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell
Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint
Nextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc,
Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group,
Mc tiu ca Lin minh ny l nhanh chng i mi p ng tt hn cho nhu
cu ngi tiu dng v kt qu u 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 m cho 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 th tng tc c vi nhau v c th s dng li cc
thnh phn t nhng ng dng khc. Vic ti s dng khng ch c p dng cho
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 5
Sinh vin: Trn Hu Phc
cho cc dch v m 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 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 h
iu 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 h iu hnh ny.
c hai phin bn 1.0 v 1.1 Android cha h tr soft-keyboard m i hi cc thit
b phi s dng bn phm vt l. Android c nh vn ny bng cch pht hnh
SDK 1.5 vo thng T nm 2009, cng vi mt s tnh nng khc. Chng hn nh
nng cao kh nng ghi m truyn thng, vt dng, v cc live folder.
2. DELVING VI MY O DALVIK
Dalvik l my o gip cc ng dng java chy c trn cc thit b ng
Android. N chy cc ng dng c chuyn i thnh mt file thc thi Dalvik
(dex). nh dng ph hp cho cc h thng m thng b hn ch v b nh v tc
x l. Dalvik c thit k v vit bi Dan Bornstein, ngi t tn cho n sau
khi n thm mt ngi lng nh c nh c tn l Dalvk o Eyjafjrur, ni m
mt s t tin ca ng sinh sng.
T gc nhn ca mt nh pht trin, Dalvik trng ging nh my o J ava (J ava
Virtual Machine) nhng thc t th hon ton khc. Khi nh pht trin vit mt ng
dng dnh cho Android, anh ta thc hin cc on m trong mi trng Java. Sau ,
n s c bin dch sang cc bytecode ca J ava, 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.
3. KIN TRC CA ANDROID
M hnh sau th hin mt cch tng qut cc thnh phn ca h iu hnh
Android. Mi mt phn s c c t mt cch chi tit di y.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 6
Sinh vin: Trn Hu Phc
Hnh 1-2 Cu trc stack h thng Android
3.1. Tng ng dng
Android c tch hp sn mt s ng dng cn thit c bn nh: contacts,
browser, camera, Phone, Tt c cc ng dng chy trn h iu hnh Android u
c vit bng J ava.
3.2. Application framework
Bng cch cung cp mt nn tng pht trin m, Android cung cp cho cc nh
pht trin kh nng 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.
Nh pht trin c th truy cp vo cc API cng mt khun kh c s dng bi
cc ng dng li. Cc kin trc ng dng c thit k n gin ha vic s dng
li cc thnh phn; bt k ng dng c th xut bn kh nng ca mnh v ng dng
no khc sau c th s dng nhng kh nng (c th hn ch bo mt c thc thi
bi khun kh). C ch ny cho php cc thnh phn tng t s c thay th bi
ngi s dng.
C bn tt c cc ng dng l mt b cc dch v v cc h thng, bao gm:
Mt tp hp rt nhiu cc View c kh nng k tha ln nhau dng thit
k phn giao din ng dng nh: gridview, tableview, linearlayout,
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 7
Sinh vin: Trn Hu Phc
Mt Content Provider cho php cc ng dng c th truy xut d liu t
cc ng dng khc (chng hn nh Contacts) hoc l chia s d liu gia
cc ng dng .
Mt Resource Manager cung cp truy xut ti cc ti nguyn khng phi
l m ngun, chng hn nh: localized strings, graphics, and layout files.
Mt Notifycation Manager cho php tt c cc ng dng hin th cc
custom alerts trong status bar.
Activity Maanager c dng qun l chu trnh sng ca ng dng v iu
hng cc activity.
3.3. Library
Android bao gm mt tp hp cc th vin C/C++ c s dng bi nhiu thnh
phn khc nhau trong h thng Android. iu ny c th hin thng qua nn tng
ng dng Android. Mt s cc th vin c bn c lit k di y:
System C library: a BSD-derived implementation of the standard C system
library (libc), tuned for embedded Linux-based devices.
Media Libraries - based on PacketVideo's OpenCORE; the libraries support
playback and recording of many popular audio and video formats, as well as
static image files, including MPEG4, H.264, MP3, AAC, AMR, J PG, and PNG
Surface Manager Qun l vic truy xut vo h thng hin th
LibWebCore - a modern web browser engine which powers both the Android
browser and an embeddable web view.
SGL - the underlying 2D graphics engine.
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries
use either hardware 3D acceleration (where available) or the included, highly
optimized 3D software rasterizer.
FreeType - bitmap and vector font rendering.
SQLite - a powerful and lightweight relational database engine available to all
applications.
3.4. Androi d Runtime
Android bao gm mt tp hp cc th vin c bn m cung cp hu ht cc chc
nng c sn trong cc th vin li ca ngn ng lp trnh J ava. Tt c cc ng dng
Android u chy trong tin trnh ring. My o Dalvik c vit cho mt thit
b c th chy nhiu my o hiu qu. Cc VM Dalvik thc thi cc tp tin thc thi
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 8
Sinh vin: Trn Hu Phc
Dalvik (dex). nh dng c ti u ha cho b nh ti thiu. VM l da trn
register-based, v chy cc lp c bin dch bi mt trnh bin dch Java
chuyn i thnh cc nh dng dex. Cc VM Dalvik da vo nhn Linux cho cc
chc nng c bn nh lung v qun l b nh thp.
3.5. Linux kernel
Android da trn Linux phin bn 2.6 cho h thng dch v ct li nh security,
memory management, process management, network stack, and driver model. Kernel
Linux hot ng nh mt lp tru tng ha gia phn cng v phn cn li ca phn
mm stack.
4. ANDROID EMULATOR
Android SDK v Plugin Eclipse c gi l mt Android Deverloper Tool (ADT).
Cc Android coder s cn phi s dng cng c IDE (Integrated Development
Enveronment) ny pht trin, debugging v testing cho ng dng. Tuy nhin, cc
coder cng c th khng cn phi s dng IDE m thay vo l s dng command
line bin dch v tt nhin l vn c Emulator nh thng.
Android Emulator c trang b y hu ht cc tnh nng ca mt thit b tht.
Tuy nhin, mt s b gii hn nh l kt ni qua cng USB, camera v video, nghe
phone, ngun in gi lp v bluetooth.
Android Emulator thc hin cc cng vic thng qua mt b x l m ngun m,
cng ngh ny c gi l QEMU (http://bellard.org/qemu/) c pht trin bi
Fabrice Bellard.
Hnh 1-3 Android emulator
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 9
Sinh vin: Trn Hu Phc
5. CC THNH PHN TRONG MT ANDROID PROJECT
5.1. Androi dManifest.xml
Trong bt k mt project Android no khi to ra u c mt file
AndroidManifest.xml, file ny c dng nh ngha cc screen s dng, cc
permission cng nh cc theme cho ng dng. ng thi n cng cha thng tin v
phin bn SDK cng nh main activity s chy u tin.
File ny c t ng sinh ra khi to mt Android project. Trong file manifest bao
gi cng c 3 thnh phn chnh l: application, permission v version.
Di y l ni dung ca mt file AndroidManifest.xml
<?xml ver si on=" 1. 0" encodi ng="ut f - 8"?>
<mani f est xml ns: andr oi d=" ht t p: / / schemas. andr oi d. com/ apk/ r es/ andr oi d"
package=" dt u. k12t pm. pbs. act i vi t y"
andr oi d: ver si onCode=" 1"
andr oi d: ver si onName=" 1. 0" >
<appl i cat i on andr oi d: i con="@dr awabl e/ i con"
andr oi d: l abel =" @st r i ng/ app_name">
<act i vi t y andr oi d: name=". Logi nAct i vi t y"
andr oi d: l abel =" @st r i ng/ app_name">
<i nt ent - f i l t er >
<act i on andr oi d: name="andr oi d. i nt ent . act i on. MAI N" / >
<cat egor y andr oi d: name=" andr oi d. i nt ent . cat egor y. LAUNCHER" / >
</ i nt ent - f i l t er >
</ act i vi t y>
<act i vi t y andr oi d: name=". Mai nCont act Li st Act i vi t y" / >
<act i vi t y andr oi d: name=". Rest or eCont act Act i vi t y" / >
</ appl i cat i on>
<uses- sdk andr oi d: mi nSdkVer si on=" 7" / >
<uses- sdk andr oi d: mi nSdkVer si on="7" / >
<uses- per mi ssi on andr oi d: name=" andr oi d. per mi ssi on. I NTERNET" / >
<uses- per mi ssi on andr oi d: name=" andr oi d. per mi ssi on. CALL_PHONE" / >
</ mani f est >
Application
Th <application>, bn trong th ny cha cc thuc tnh c nh ngha cho
ng dng Android nh:
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 10
Sinh vin: Trn Hu Phc
android:icon = drawable resource y t ng dn n file icon
ca ng dng khi ci t. VD: android:icon =@drawable/icon.
android:name = string thuc tnh ny t tn cho ng dng
Android. Tn ny s c hin th ln mn hnh sau khi ci t ng dng.
android:theme = drawable theme thuc tnh ny t theme cho
ng dng. Cc theme l cc cch hin th giao din ng dng.
Ngoi ra cn nhiu thuc tnh khc
Permission
Bao gm cc thuc tnh ch nh quyn truy xut v s dng ti nguyn ca
ng dng. Khi cn s dng mt loi ti nguyn no th trong file manifest ca
ng dng cn phi khai bo cc quyn truy xut nh sau:
<uses- per mi ssi on andr oi d: name=" andr oi d. per mi ssi on. READ_PHONE_STATE" / >
<uses- per mi ssi on andr oi d: name=" andr oi d. per mi ssi on. ACCOUNT_MANAGER"/ >
<uses- per mi ssi on andr oi d: name=" andr oi d. per mi ssi on. VI BRATE" / >
<uses- per mi ssi on andr oi d: name=" andr oi d. per mi ssi on. CALL_PHONE" / >
SDK version
Th xc nh phin bn SDK c khai bo nh sau:
<uses-sdk android:minSdkVersion="7" />.
y ch ra phin bn SDK nh nht m ng dng hin ang s dng.
5.2. File R.j ava
File R.java l mt file t ng sinh ra ngay khi to ng dng, file ny c s
dng qun l cc thuc tnh c khai bo trong file XML ca ng dng v cc ti
nguyn hnh nh.
M ngun ca file R.java c t ng sinh khi c bt k mt s kin no xy xa
lm thay i cc thuc tnh trong ng dng. Chng hn nh, bn ko v th mt file
hnh nh t bn ngoi vo project th ngay lp tc thuc tnh ng dn n file
cng s c hnh thnh trong file R.java hoc xo mt file hnh nh th ng dn
tng ng n hnh nh cng t ng b xo.
C th ni file R.java hon ton khng cn phi ng chm g n trong c qu
trnh xy dng ng dng.
Di y l ni dung ca mt file R.java:
/ * AUTO- GENERATED FI LE. DO NOT MODI FY.
*
* Thi s cl ass was aut omat i cal l y gener at ed by t he
* aapt t ool f r omt he r esour ce dat a i t f ound. I t
* shoul d not be modi f i ed by hand.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 11
Sinh vin: Trn Hu Phc
*/
package dt u. k12t pm. pbs. act i vi t y;
publ i c f i nal cl ass R {
publ i c st at i c f i nal cl ass ar r ay {
publ i c st at i c f i nal i nt ar r ay_t i meout =0x7f 050000;
}
publ i c st at i c f i nal cl ass at t r {
}
publ i c st at i c f i nal cl ass dr awabl e {
publ i c st at i c f i nal i nt add=0x7f 020000;
publ i c st at i c f i nal i nt backup_i con=0x7f 020001;
publ i c st at i c f i nal i nt checkal l =0x7f 020002;
}
publ i c st at i c f i nal cl ass i d {
publ i c st at i c f i nal i nt But t on01=0x7f 070006;
publ i c st at i c f i nal i nt But t on02=0x7f 070007;
publ i c st at i c f i nal i nt CheckBox01=0x7f 070017;
}
publ i c st at i c f i nal cl ass l ayout {
publ i c st at i c f i nal i nt cont act _l i st =0x7f 030000;
publ i c st at i c f i nal i nt cont ent _sender =0x7f 030001;
publ i c st at i c f i nal i nt f r i end_l i st =0x7f 030002;
}
publ i c st at i c f i nal cl ass menu {
publ i c st at i c f i nal i nt cont ext _menu=0x7f 060000;
publ i c st at i c f i nal i nt menu_opt i ons=0x7f 060001;
publ i c st at i c f i nal i nt opt i ons_menu=0x7f 060002;
}
publ i c st at i c f i nal cl ass st r i ng {
publ i c st at i c f i nal i nt app_name=0x7f 040001;
publ i c st at i c f i nal i nt cont ext _menu_i t em_del et e=0x7f 04000b;
publ i c st at i c f i nal i nt cont ext _menu_i t em_edi t =0x7f 04000a;
}
}
6. CHU K NG DNG ANDROID
Mt tin trnh Linux gi gn mt ng dng Android c to ra cho ng dng
khi codes cn c run v s cn chy cho n khi:
N khng ph thuc.
H thng cn ly li b nh m n chim gi cho cc ng dng khc
Mt s khc thng v c tnh c bn ca Android l thi gian sng ca tin trnh
ng dng khng c iu khin trc tip bi chnh n. Thay vo , n c xc
nh bi h thng qua mt kt hp ca:
Nhng phn ca ng dng m h thng bit ang chy
Nhng phn quan trng nh th no i vi ngi dng
Bao nhiu vng nh chim lnh trong h thng.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 12
Sinh vin: Trn Hu Phc
6.1. Chu k sng thnh phn
Cc thnh phn ng dng c mt chu k sng, tc l mi thnh phn t lc bt u
khi to v n thi im kt thc. Gia , i lc chng c th l active hoc
inactive, hoc l trong trng hp activies n c th visible hoc invisible
Hnh 1-4
6.2. Acti vi ty Stack
Bn trong h thng cc activity c qun l nh mt activity stack. Khi mt
Activity mi c start, n c t nh ca stack v tr thnh activity ang chy
activity trc s bn di activity mi v s khng thy trong sut qu trnh activity
mi tn ti.
Nu ngi dng nhn nt Back th activity kt tip ca stack s di duyn ln v tr
thnh active.
Hnh 1-5 Activity stack
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 13
Sinh vin: Trn Hu Phc
6.3. Cc trng thi ca chu k sng
Hnh 1-6 Chu k sng ca Activity
Mt Activity ch yu c 3 chu k chnh sau:
Active hoc running: Khi Activity l c chy trn mn hnh. Activity ny tp
trung vo nhng thao tc ca ngi dng trn ng dng.
Paused: Activity l c tm dng (paused) khi mt focus nhng ngi dng
vn trng thy. C ngha l mt Activity mi trn n nhng khng bao ph
y mn hnh. Mt Activity tm dng l cn sng nhng c th b kt thc bi
h thng trong trng hp thiu vng nh.
Stopped: Nu n hon ton bao ph bi Activity khc. N vn cn trng thi v
thng tin thnh vin trong n. Ngi dng khng thy n v thng b loi b trong
trng hp h thng cn vng nh cho tc v khc.
6.4. Chu k sng ca ng dng
Trong mt ng dng Android c cha nhiu thnh phn v mi thnh phn u c
mt chu trnh sng ring. V ng dng ch c gi l kt thc khi tt c cc thnh
phn trong ng dng kt thc. Activity l mt thnh phn cho php ngi dng giao
tip vi ng dng. Tuy nhin, khi tt c cc Activity kt thc v ngi dng khng
cn giao tip c vi ng dng na nhng khng c ngha l ng dng kt thc.
Bi v ngoi Activity l thnh phn c kh nng tng tc ngi dng th cn c cc
thnh phn khng c kh nng tng tc vi ngi dng nh l Service, Broadcast
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 14
Sinh vin: Trn Hu Phc
receiver. C ngha l nhng thnh phn khng tng tc ngi dng c th chy
background di s gim st ca h iu hnh cho n khi ngi dng t tt chng.
6.5. Cc s kin trong chu k sng ca ng dng
Nu mt Activity c tm dng hoc dng hn, h thng c th b thng tin khc
ca n t vng nh bi vic finish() (gi hm finish() ca n), hoc n gin git tin
trnh ca n. Khi n c hin th ln na vi ngi dng, n phi c hon ton
restart v phc hi li trng thi trc. Khi mt Activity chuyn qua chuyn li gia
cc trng thi, n phi bo vic chuyn ca n bng vic gi hm transition.
Hnh 1-7
Tt c cc phng thc l nhng mc ni m bn c th override lm tng
thich cng vic trong ng dng khi thay i trng thi. Tt c cc Activity bt buc
phi c onCreate() khi to ng dng. Nhiu Activity s cng hin thc onPause()
xc nhn vic thay i d liu v mt khc chun b dng hot ng vi ngi
dng.
6.6. Thi gian sng ca ng dng
By phng thc chuyn tip nh ngha trong chu k sng ca mt Activity. Thi
gian sng ca mt Activity din ra gia ln u tin gi onCreate() n trng thi cui
cng gi onDestroy(). Mt Activity khi to ton b trng thi ton cc trong
onCreate(), v gii phng cc ti nguyn ang tn ti trong onDestroy().
6.7. Thi gian hin th ca Activity
Visible lifetime ca mt activity din ra gia ln gi mt onStart() cho n khi gi
onStop(). Trong sut khong thi gian ny ngi dng c th thy activity trn mn
hnh, c ngha l n khng b foreground hoc ang tng tc vi ngi dng. Gia 2
phng thc ngi dng c th duy tr ti nguyn hin th activity n ngi dng.
6.8. Cc phng thc ca chu k sng
Phng thc: onCreate()
c gi khi activity ln u tin c to
y bn lm tt c cc ci t tnh -- to cc view, kt ni d liu n list
v .v.v
Phng thc ny gi qua mt i tngBundle cha ng t trng thi
trc ca Activity
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 15
Sinh vin: Trn Hu Phc
Lun theo sau bi onStart()
Phng thc: onRestart()
c gi sau khi activity c dng, ch mt khong ang khi ng
ln na (stared again)
Lun theo sau bi onStart()
Phng thc: onStart()
c gi trc khi mt activity visible vi ngi dng.
Theo sau bi onResume() nu activity n trng thi foreground hoc
onStop() n n tr nn n.
Phng thc: onResume()
c gi trc khi activity bt u tng tc vi ngi dng
Ti thi im ny activity trn dnh ca stack activity.
Lun theo sau bi onPause()
Phng thc: onPause()
c gi khi h thng ang resuming activity khc.
Phng thc ny l in hnh vic gi li khng i d liu.
N nn c din ra mt cch nhanh chng bi v activity k tip s khng
c resumed ngay cho n khi n tr li.
Theo sau bi onResume nu activity tr v t trc, hoc bi onStop nu
n tr nn visible vi ngi dng.
Trng thi ca activity c th b git bi h thng.
Phng thc: onStop()
c gi khi activity khng thuc tm nhn ca ngi dng.
N c th din ra bi v n ang b hy, hoc bi v activity khc va c
resumed v bao ph n.
c theo sau bi onRestart() nu activity ang li tng tc vi
ngi dng, hoc onDestroy() nu activity ang b.
Trng thi ca activity c th b git bi h thng.
Phng thc: onDestroy()
c gi trc khi activity b hy.
l ln gi cui cng m activity ny c nhn.
N c gi khc bi v activity ang hon thnh, hoc bi v h thng tm
thi b hy dit tit kim vng nh.
Bn c th phn bit gia 2 kch bn vi phng isFinshing().
Trng thi ca activity c th c git bi h thng.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 16
Sinh vin: Trn Hu Phc
7. CC THNH PHN GIAO DIN TRONG ANDROID
7.1. View
Trong mt ng dng Android, giao din ngi dng c xy dng t cc i
tng View v ViewGroup. C nhiu kiu View v ViewGroup. Mi mt kiu l mt
hu du ca class View v tt c cc kiu c gi l cc Widget.
Tt c mi widget u c chung cc thuc tnh c bn nh l cch trnh by v tr,
background, kch thc, l, Tt c nhng thuc tnh chung ny c th hin ht
trong i tng View.
Trong Android Platform, cc screen lun c b tr theo mt kiu cu trc phn
cp nh hnh di. Mt screen l mt tp hp cc Layout v cc widget c b tr c
th t. th hin mt screen th trong hm onCreate ca mi Activity cn phi c
gi mt hm l setContentView(R.layout.main); hm ny s load giao din t file
XML ln phn tch thnh m bytecode.
Hnh 1-8 Cu trc mt giao din ng dng Android
7.2. ViewGroup
ViewGroup thc ra chnh l View hay ni ng hn th ViewGroup chnh l cc
widget Layout c dng b tr cc i tng khc trong mt screen. C mt s
loi ViewGroup nh sau:
7.2.1. LinearLayout
LinearLayout c dng b tr cc thnh phn giao din theo chiu ngang hoc
chiu dc nhng trn mt line duy nht m khng c xung dng.
LinearLayout lm cho cc thnh phn trong n khng b ph thuc vo kch thc
ca mn hnh. Cc thnh phn trong LinearLayout c dn theo nhng t l cn
xng da vo cc rng buc gia cc thnh phn.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 17
Sinh vin: Trn Hu Phc
Hnh 1-9 B tr cc widget s dng LinearLayout
7.2.2. FrameLayout
FrameLayout c dng b tr cc i tng theo kiu ging nh l cc Layer
trong Photoshop. Nhng i tng no thuc Layer bn di th s b che khut bi
cc i tng thuc Layer nm trn. FrameLayer thng c s dng khi mun to
ra cc i tng c khung hnh bn ngoi chng hn nh contact image button.
Hnh 1-10 B tr cc widget trong FrameLayout
7.2.3. Absol uteLayout
Layout ny c s dng b tr cc widget vo mt v tr bt k trong layout
da vo 2 thuc tnh to x, y. Tuy nhin, kiu layout ny rt t khi c dng bi v
to ca cc i tng lun c nh v s khng t iu chnh c t l khong
cch gia cc i tng. Khi chuyn ng dng sang mt mn hnh c kch thc vi
mn hnh thit k ban u th v tr ca cc i tng s khng cn c chnh xc
nh ban u.
Learn-
Android.co
m
ImageV
TextVi
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 18
Sinh vin: Trn Hu Phc
7.2.4. Retali veLayout
Layout ny cho php b tr cc widget theo mt trc i xng ngang hoc dc.
t c ng v tr th cc widget cn c xc nh mt mi rng buc no vi
cc widget khc. Cc rng buc ny l cc rng buc tri, phi, trn, di so vi mt
widget hoc so vi layout parent. Da vo nhng mi rng buc m
RetaliveLayout cng khng ph thuc vo kch thc ca screen thit b. Ngoi ra, n
cn c u im l gip tit kim layout s dng nhm mc ch gim lng ti
nguyn s dng khi load ng thi y nhanh qu trnh x l.
Hnh 1-11 B tr widget trong RetaliveLayout
7.2.5. TableLayout
Layout ny c s dng khi cn thit k mt table cha d liu hoc cn b tr
cc widget theo cc row v column. Chng hn nh, giao din ca mt chic my tnh
n gin hoc mt danh sch d liu.
Hnh 1-12 B tr widget trong TableLayout
7.3. Button
S d widget button c gii thiu u tin trong s cc widget khc l v y l
i tng c th ni l c dng nhiu nht trong hu ht cc ng dng Android.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 19
Sinh vin: Trn Hu Phc
thit k giao din vi mt button ta c 2 cch nh sau:
Thit k bng XML
<But t on
andr oi d: l ayout _wi dt h="wrap_content"
andr oi d: l ayout _hei ght ="wrap_content"
andr oi d: i d="@+id/cmdButton1"
andr oi d: t ext ="Touch me!"
andr oi d: onCl i ck="touchMe"/ >
Thuc tnh android:onClick="touchMe" c dng nm bt s kin
click vo button. Khi s kin click button xy ra th phng thc touchMe
c khai bo trong th thuc tnh s c gi. Nu trng hp phng thc
touchMe cha c khai bo trong file m ngun tng ng th s pht sinh
mt exception. Ngc li, phng thc touchMe s nhn c mt i tham
bin l i tng View ni pht sinh ra s kin. i tng View ny c th
p kiu trc tip sang kiu Button v thc cht n l mt button.
VD: trong file m ngun khai bo mt hm nh sau:
publ i c voi d t ouchMe( Vi ew v) {
But t on me = ( But t on) v;
Me. set Text ( Touched) ;
}
Thit k bng code
Thc ra m ni th nu khng phi i hi phi custom li mt widget th
khng cn phi s dng ti code. Trong mt s trng hp bt buc chng ta
phi custom cc widget cho ph hp vi hon cnh. Chng hn nh trong
game, cc menu hay cc nt iu khin,
khai bo mt Button trong code ta lm nh sau:
But t on cmdBut t on = new But t on( t hi s) ;
cmdBut t on. set Text ( Touch Me! ) ;
cmdBut on. set OnCl i ckLi st ener ( ) ;
custom mt widget no ta phi to mt class k tha t class Widget
mun custom, sau s dng hm draw v li widget nh mt Canvas.
VD: canvas.drawPicture(Picture.createFromStream(...));
7.4. ImageButton
Cng tng t nh Button, ImageButton ch c thm mt thuc tnh
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 20
Sinh vin: Trn Hu Phc
android:src = @drawable/icon thm hnh nh vo v khng c th text
<I mageBut t on
andr oi d: l ayout _wi dt h="wrap_content"
andr oi d: l ayout _hei ght ="wrap_content"
andr oi d: i d=" @+i d/ cmdBut t on1"
andr oi d: sr c="@dr awabl e/ i con"
andr oi d: onCl i ck="touchMe"/ >
Hnh 1-13 ImageButon
7.5. ImageView
c dng th hin mt hnh nh. N cng ging nh ImageButton, ch khc l
khng c hnh dng ca mt ci button.
Code:
I mageVi ew i v = new I mageVi ew( this) ;
i v. set I mageResour ce( R. dr awabl e. icon) ;
Hnh 1-14 ImageView v ImageButton
7.6. ListView
c s dng th hin mt danh sch cc thng tin theo tng cell. Mi cell
thng thng c load ln t mt file XML c c nh trn s lng thng
tin v loi thng tin cn c th hin.
th hin c mt list thng tin ln mt screen th cn phi c 3 yu t chnh:
Data Source: Data Source c th l mt ArrayList, HashMap hoc bt k
mt cu trc d liu kiu danh sch no.
<I mageVi ew
andr oi d: i d="@+id/ImageView01"
andr oi d: l ayout _wi dt h="wrap_content"
andr oi d: l ayout _hei ght ="wrap_content"
<I mageBut t on
andr oi d: l ayout _wi dt h="wrap_content"
andr oi d: l ayout _hei ght ="wrap_content"
andr oi d: i d="@+id/cmdButton1"
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 21
Sinh vin: Trn Hu Phc
Adapter: Adapter l mt class trung gian gip nh x d liu trong Data
Source vo ng v tr hin th trong ListView. Chng hn, trong Data
Source c mt trng name v trong ListView cng c mt TextView
th hin trng name ny. Tuy nhin, ListView s khng th hin th d
liu trong Data Source ln c nu nh Adapter khng gn d liu vo
cho i tng hin th.
ListView: ListView l i tng hin th cc thng tin trong Data
Source ra mt cch trc quan v ngi dng c th thao tc trc tip trn
.
Hnh 1-15 Minh ho cho mt ListView
7.7. TextView
TextView ngoi tc dng l hin th vn bn th n cn cho php nh dng ni
dung bng th html.
VD:
Text Vi ew t ext Vi ew = ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew) ;
Char Sequence st yl edText =
Ht ml . f r omHt ml ( "<i >Thi s</ i > i s some <b>st yl ed</ b> <s>t ext </ s>") ;
t ext Vi ew. set Text ( st yl edText ) ;
Ni dung TextView cng c th c nh dng bng th html ngay trong XML.
7.8. EditText
Trong Android i tng EditText c s dng nh mt TextField hoc mt
TextBox.
<Edi t Text
andr oi d: i d="@+id/EditText01"
andr oi d: l ayout _wi dt h="wrap_content"
andr oi d: l ayout _hei ght ="wrap_content"
andr oi d: t ext St yl e="bold"
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 22
Sinh vin: Trn Hu Phc
andr oi d: t ext Si ze="20dip"
andr oi d: t ext Col or ="#000000"
andr oi d: t ext ="Hello Android!"
andr oi d: si ngl eLi ne="true"
andr oi d: i nput Type="textCapWords"/ >
Cc thuc tnh cn ch s dng EditText l:
android:inputType = s dng xc nh phng thc nhp cho
EditText. Chng hn nh khi bn mun mt nhp password hay mt
nhp Email th thuc tnh ny s lm iu .
android:singleLine =true EditText ca bn s tr thnh mt TextField, ngc li
s l TextBox.
7.9. CheckBox
Nhn 2 gi tr true hoc false. i tng CheckBox cho php chn nhiu item
cng mt lc.
Khai bo: CheckBox cb =new CheckBox(Context );
XML:
<CheckBox
andr oi d: i d=" @+i d/ CheckBox01"
andr oi d: l ayout _wi dt h="wrap_content"
andr oi d: l ayout _hei ght ="wrap_content"
andr oi d: t ext ="Check me"
andr oi d: checked="true"/>
7.10. MenuOptions
C 2 cch to mt MenuOptions:
To bng code:
publ i c cl ass Mai n ext ends Act i vi t y {
pr i vat e i nt sear chBt nI d = Menu. FI RST;
pr i vat e i nt schedul eBt nI d = Menu. FI RST + 1;
pr i vat e i nt pl ayBt nI d = Menu. FI RST + 2;
pr i vat e i nt st opBt nI d = Menu. FI RST + 3;
pr i vat e i nt gr oup1I d = 1;
pr i vat e i nt gr oup2I d = 2;
@Over r i de
publ i c voi d onCr eat e( Bundl e savedI nst anceSt at e) {
super . onCr eat e( savedI nst anceSt at e) ;
t hi s. set Cont ent Vi ew( R. l ayout . mai n) ;
}

@Over r i de
publ i c bool ean onCr eat eOpt i onsMenu( Menu menu) {
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 23
Sinh vin: Trn Hu Phc
menu. add( gr oup1I d, sear chBt nI d , sear chBt nI d, " Sear ch") ;
menu. add( gr oup2I d, schedul eBt nI d, schedul eBt nI d, R. st r i ng. schedul e) ;
menu. add( gr oup2I d, pl ayBt nI d , pl ayBt nI d, " Pl ay") ;
menu. add( gr oup2I d, st opBt nI d , st opBt nI d, R. st r i ng. st op) ;
/ / t he f ol l owi ng l i ne wi l l hi de sear ch
/ / when we t ur n t he 2nd par amet er t o f al se
menu. set Gr oupVi si bl e( 1, f al se) ;
r et ur n super . onCr eat eOpt i onsMenu( menu) ;
}
}
Hnh 1-16 Minh ho option menu
To bng XML
<?xml ver si on="1.0" encodi ng="utf-8"?>
<menu xml ns: andr oi d="http://schemas.android.com/apk/res/android">
<i t emandr oi d: i con="@drawable/icon" andr oi d: t i t l e="Item1"
andr oi d: or der I nCat egor y="1" andr oi d: i d="@+id/item1">
<i t emandr oi d: t i t l e="Item 2" andr oi d: i d="@+id/item2"
andr oi d: or der I nCat egor y="2">
<menu>
<i t emandr oi d: i d="@+id/item01" andr oi d: t i t l e="Sub item 1"
andr oi d: or der I nCat egor y="1/>
<i t emandr oi d: t i t l e="Sub item 2" andr oi d: i d="@+id/item02"
andr oi d: or der I nCat egor y="2"/>
</ menu>
</ i t em>
</ menu>

public boolean onCr eat eOpt i onsMenu( Menu menu) {
new MenuI nf l at er (
get Appl i cat i on( ) ) . i nf l at e( R. menu. menu_options, menu) ;
return super. onCr eat eOpt i onsMenu( menu) ;
}
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 24
Sinh vin: Trn Hu Phc
7.11. ContextMenu
ContextMenu c s dng hin th cc tu chn khi ngi dng nhn di vo
mt cell no trong ListView. to mt ContextMenu ta cng c 2 cch ging
nh to MenuOptions trn ch khc tn phng thc.
Khi nhn di vo mt cell trong ListView th phng thc:
public void onCr eat eCont ext Menu( Cont ext Menu menu, Vi ew v,
Cont ext MenuI nf o menuI nf o)
s c gi v truyn vo 3 tham s l:
ContextMenu: i tng add cc context menu item
View: i tng ni m xy ra s kin
ContextMenuInfo: Cho bit v tr xy ra s kin trong ListView. bit c v tr
xy ra s kin ta lm nh sau:
Adapt er Vi ew. Adapt er Cont ext MenuI nf o i nf o;
try {
i nf o = ( Adapt er Vi ew. Adapt er Cont ext MenuI nf o) menuI nf o;
} catch ( Cl assCast Except i on e) {
return;
}
i nf o. posi t i on
Hnh 1-17 Minh ho context menu
7.12. Quick Search Box
Mt trong nhng tnh nng mi trong phin bn Android 1.6 l Quick Search
Box. y l khun kh tm kim mi trn ton h thng Android, iu ny lm cho
ngi dng c th nhanh chng tm kim bt c th g c trn chic in thoi
Android ca h v c cc ti nguyn trn web khi h ang online. N tm kim v
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 25
Sinh vin: Trn Hu Phc
hin th kt qu tm kim ngay khi bn ang g. N cng cung cp cc kt qu t cc
gi tm kim web, danh sch doanh nghip a phng, v thng tin khc t Google,
chng hn nh bo gi c phiu, thi tit, v tnh trng chuyn bay. Tt c iu ny c
sn ngay t mn hnh ch, bng cch khai thc trn Quick Search Box (QSB).
Hnh 1-18 Minh ho Quick Search Box
7.13. Acti vi ty & Intend
7.13.1. Acti vi ty
Activity l mt thnh chnh ca mt ng dng Android, c dng hin th mt
mn hnh v nm bt cc hot ng xy ra trn mn hnh . Khi lm vic vi Activity
cn nm bt c mt s kin thc c bn nh sau:
Chu k sng ca mt Activity
(Xem chu k ng dng ca Android mc 1.6)
To menu v dialog
Khi ng mt Activity
khi ng mt Activity ta s dng Intend s tm hiu k hn phn b. Tuy
nhin, trong phn ny ti s hng dn cch chuyn gia cc Intend theo 2 loi:
Khai bo khng tng minh:
Cung cp chnh xc thng tin ca activity cn gi bng cch truyn vo tn class
ca Activity
VD: T Activity A mun chuyn qua Activity B ta khai bo mt Intend trong
Activity A:
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 26
Sinh vin: Trn Hu Phc
I nt end i nt end = new I nt end( t hi s, B. cl ass) ;
st ar t Act i vi t y( i nt end) ;
Khai bo khng tng minh
Cung cp cc thao tc cn lm g vi loi d liu no, h thng s tm n
activity tng ng khi ng.
VD: xem thng tin mt contact no trong Activity ca ng dng Contact
trong Android ta ch n d liu contact v ch n Activity View contact nh sau:
I nt ent i = new I nt ent ( ) ;
i . set Act i on( I nt ent . ACTION_VIEW) ;
i . set Dat a( Ur i . withAppendedPath(
andr oi d. pr ovi der . Cont act s. Peopl e. CONTENT_URI, "1) ) ;
st ar t Act i vi t y( i ) ;
Tnh lin lc gia 2 activity
Khi chuyn sang mt Activity khc ta c th gi km d liu trong intend nh
sau:
i nt end. put Ext r a( key1, val ue1) ;
i nt end. put Ext r a( key2, 23) ;
Bn pha Activity c khi ng hay c chuyn n, c th ly d liu c
gi nh sau:
get I nt end( ) . get Ext r a( ) . get St r i ng( key1) ;
get I nt end( ) . get Ext r a( ) . get I nt ( key2) ;
Task
Android l mt h iu hnh a tin trnh. Khi lp trnh trn nn tng Android th
tin trnh l mt vn cn phi c ch nhiu nht. Mc d Android h tr a
tin trnh nhng trn mt thit b di ng vi cu hnh thp m chng ta qu lm dng
tin trnh th s rt tn b x l iu ny cng ng ngha vi vic bn ang bin ng
dng ca bn tr thnh mt th phn mm tiu th in nng.
7.13.2. Intent
Khi nim Intend:
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. Intent chnh 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
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 27
Sinh vin: Trn Hu Phc
ging nh vic di chuyn qua li gia cc Forms trong lp trnh Windows
Form.
Hnh 1-19 Truyn d liu gia 2 Activity
D liu ca Intend:
Intent v c bn l mt cu trc d liu, c m t trong lp
android.content.Intent
Cc thuc tnh ca mt i tng Intend:
Hnh 1-20 Cc thuc tnh ca Intend
Cc Action c nh ngha sn:
Di y l nhng hng String c nh ngha sn trong lp Intent.
i km vi n l cc Activity hay Application c xy dng sn s c
triu gi mi khi Intent tng ng c gi (tt nhin khi c cung cp
ng data). VD: Gi ti mt s in thoi:
I nt ent di al I nt ent =
new I nt ent ( I nt ent . ACTI ON_DI AL, Ur i . par se( "t el : 123456" ) ) ;
st ar t Act i vi t y( di al I nt ent ) ;
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 28
Sinh vin: Trn Hu Phc
Hnh 1-21 Cc Action c nh ngha sn trong Intend
8. CONTENT PROVIDER V URI
Trong h thng Android tt c cc ti nguyn ng Contact, SMS, u c lu
tr vo CSDL SQLite ca h thng. Cng nh cc CSDL khc, CSDL m h thng
Android s dng lu tr thng tin cng cho php chng ta truy vn d liu nh mt
CSDL MSSQL thng thng. Tuy nhin, trong h thng chng ta khng cn phi
thao tc bng lnh SQL nhiu truy xut d liu m thay vo Android c
trang b mt API cho php ngi lp trnh c th d dng truy xut d liu. gi l
ContentProvider. ContentProvider cung cp cho chng ta mt i tng con tr gip
chng ta c th d dng ly c bt c d liu lu tr no ch cn cung cp mt
ng dn ng n d liu . ng dn ny cn c gi l Uri.
To mt Uri:
Uri uri =Uri.parse(content://com.android.contacts/contacts);
Cu trc gm c 4 phn chnh nh sau:
Phn A: y l tin t ch ra d liu c iu khin bi Content Provider v n
khng bao gi thay i.
Phn B: Phn ny ch n ni lu tr d liu. Cng ging nh cu trc ca mt s
in thoi th ci ny c th hnh dung n nh l m quc gia hoc cng c th coi n
nh l tn ca CSDL.
Phn C: Phn ny ch ra loi d liu. Chng hn nh, d liu contact, d liu
SMS, Phn ny c th coi n nh l tn ca mt table
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 29
Sinh vin: Trn Hu Phc
Phn D: Phn ny ch n ng v tr ca d liu, c th coi phn ny nh l ID
ca row trong table hoc mt d liu no dng truy vn.
VD: Uri ch n contact th 0 trong CSDL l
content://contacts/people/0
c th thc hin truy vn n vng d liu c ch ra bi mt Uri ta cn c 2
i tng con tr c cung cp bi Activity l: Cursor v ContentResolver.
ly c 2 i tng ny th trong Activity s dng hm
getContentResolver() tr v i tng ContentResolver.
getContentResolver().query(Uri uri); tr v i tng Cursor.
9. BACKGROUND 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 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(). V
d, mt Service nghe nhc ch nn c th c bt u bng cch gi lnh
startService() cng vi mt i tng Intent m nh dng c m nhc
chi. Ch sau , c th l khi ngi s dng mun kim sot trnh chi nhc
hoc bit thm thng tin v bi ht hin ti ang chi, th s c mt Activity to
lp mt ng truyn ti Service bng cch gi bindService(). Trong trng
hp nh th ny, stopService() s khng thc s ngng Service cho n khi
lin kt cui cng c ng li.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 30
Sinh vin: Trn Hu Phc
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. Service ch
c 3 phng thc c gi n trong chu trnh sng l:
void onCr eat e( )
void onSt ar t ( Intent i nt ent )
void onDest r oy( )
Bng vic thc hin nhng phng thc ny, bn c th gim st 2 vng lp ca
chu k thi gian ca mi Service 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() V d, mt Service pht li nhc c th to ra mt
lung v bt u chi nhc onCreate(),v sau lung chi nhc s dng li
onCreate(), 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() Service m nhc s m i tng Intent quyt nh xem s chi loi
nhc no v bt u pht nhc. Khng c callback tng ng no cho thi im
Service ngng 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, 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.
IBinder onBi nd( Intent i nt ent )
boolean onUnbi nd( Intent i nt ent )
void onRebi nd( Intent i nt ent )
Hm callback onBind() thng qua i tng Intent oc truyn n bindService
v onUnbind() c chuyn giao i tng m c chuyn n. Nu Service
ang c ch nh (binding), onBind() quay tr li knh thng tin m ngi dng s
dng tng tc vi Service. Phng thc onUnbind() c th yu cu onRebind()
c gi nu mt ngi dng kt ni vi Service.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 31
Sinh vin: Trn Hu Phc
Biu di y minh ha cho cc phng thc callback ginh cho mt Service.
Hnh 1-22 Chu trnh sng ca mt Service
Mc d, n phn tch cc Service c to ra thng qua startService vi cc
Service m c to ra bng bindService(). Hy nh rng bt k Service no, cho d
n c khi to nh th no th n vn c th cho php cc ngi dng kt ni ti n
mt cch hiu qu nht, cho nn bt k Service no cng c th c ch nh thng
qua cc cc phng thc onBind()v onUnbind().
hiu hn v Service chng ta hy lm mt v d nh sau:
u tin, m file AndroidManifest.xml v to mt tham chiu n class Service
<service android:name=".myservice.MyService"/>
Tip theo, to mt file MyService.java k tha t class Service:
Trong file MyService.java bt buc phi override phng thc:
public Ibinder onBinder(Intend intent);
c th start v stop Service th cng cn override 2 phng thc l:
protected void onCr eat e( ) ;
protected void onDest r oy( ) ;
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 32
Sinh vin: Trn Hu Phc
Thm mt bin ton cc: private Timer timer =new Timer();
Timer thc cht cng l mt Thread. Vic bn s dng Timer v Thread hon ton
khng c s khc bit g. Bin Timer ny s c ci t vo bn trong hm onCreate
nh sau:
t i mer . schedul eAt Fi xedRat e(
new Ti mer Task( ) {
publ i c voi d r un( ) {
//Do somthing
}
}, 0, 5000) ;
Khi mun dng Service li th ch cn hu Thread Timer bng hm timer.cancel();
Cui cng l khi ng Service t Activity:
I nt ent svc = new I nt ent ( t hi s, MySer vi ce. cl ass) ;
startService(svc, Bundle.EMPTY);
10. TELEPHONY
Telephony l mt trong 4 thnh phn chnh ca mt h thng Android. N cho
php ngi lp trnh c th ly cc thng tin ca h thng nh thng tin SIM, thng
tin thit b, thng tin mng, Ngoi ra, chng ta cng c th ci t cc thng s cho
thit b nu cc thng s c th thay i c. Tt c nhng iu c qun l
bi mt class TelephonyManager trong Android.
Tel ephonyManager t el Man =
( Tel ephonyManager ) get Syst emSer vi ce( Cont ext . TELEPHONY_SEVI CE) ;
Vd:
Ly thng tin ID thit b
telMan.getDeviceId();
Ly thng tin s serial SIM
telMan.getSimSerialNumber();
11. SQLITE
SQLite l mt dng CSDL tng t nh Mysql, PostgreSQL... c im ca
SQLite l gn, nh, n gin. Chng trnh gm 1 file duy nht vn vn cha n
500kB, khng cn ci t, khng cn cu hnh hay khi ng m c th s dng ngay.
D liu database cng c lu mt file duy nht. Khng c khi nim user,
password hay quyn hn trong SQLite database.
SQLite khng thch hp vi nhng h thng ln nhng quy m va tm th
SQLite pht huy uy lc v khng h yu km v mt chc nng hay tc . Vi cc
c im trn SQLite c s dng nhiu trong vic pht trin, th nghim v..v.. v l
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 33
Sinh vin: Trn Hu Phc
s la chn ph hp cho nhng ngi bt u hc database. Hin nay th SQLite
c ng dng vo smartphone nh iPhone v Android lu tr d liu.
c th d dng thao tc vi SQLite chng ta c th s dng trnh duyt FireFox
v ti v plugin SQLite ti link sau:
http://code.google.com/p/sqlite-manager/
Sau khi ti v file xpi, ko file ny vo ca s firefox ci t plugin.
Sau khi ci t plugin xong th vo Menu_tools trong firefox s c chc nng
SQLite Manager. Giao din ca SQLite manager trong firefox nh sau:
Hnh 1-23 SQLite Manager
12. ANDROID & WEBSERVICE
12.1. Khi nim Web service v SOAP
Webservice l mt dch v cung cp c ch triu gi cc i tng t xa thng qua
giao thc HTTP cng vi c ch truyn ti nh dng i tng theo cng ngh XML.
Chnh v s dng giao thc HTTP ca Web nn gi y cc li gi tr nn n gin
v thng qua c cc ro cn v tng la. m bo iu ny, mt giao thc mi
l SOAP (Simple Object Access Protocol) ra i h tr cho Web services. SOAP
c nh ngha da trn giao thc chun HTTP, SOAP cho php d liu chuyn i
bng HTTP v nh dng theo chun XML. Cc li gi hm tham s truyn hm, d
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 34
Sinh vin: Trn Hu Phc
liu tr v t hm, tt c u c chuyn sang dng XML v c th d dng x l bi
tt c cc ngn ng. Mt th mnh khc l nu cc i tng phn tn xy dng
trn m hnh Web services s c th triu gi ln nhau, bt chp i tng c
vit trn ngn ng J ava ca Sun hay .NET ca Microsoft. Hin ti, SOAP c coi l
mt s thay i ln k t khi COM, RMI, CORBA ra i.
12.2. Gi i thiu v XStream
XStream l mt cng c gip chuyn cc i tng hay nhng th hin
ca nhng lp Java qua dng XML hay ngc li. N l mt m ngun m, c thit
lp t thng ging nm 2004.
Trong mt n IT i khi bn cn phi chuyn cc i tng ca cc lp J ava c
cha thng tin v a n qua dng XML. Vic lm ny gip mang thng tin t h
thng ny qua h thng khc bng nhng gi hay tp tin XML (gi s cc h thng
ny vit bng ngn ng Java). N cng gip bn trnh c nhiu phin toi nh
cch sp t chuyn kiu cho hai d liu gia hai h thng. Do dng dng XML
nh l phng tin trao i d liu gia hai h thng l cch hu hiu nht. Sau khi
h thng nhn c d liu nm dng XML ri, th vic k tip l ngi lp trnh
ch chuyn chng v cc i tng Java ph hp vi ngn ng m h thng
ang dng. Cng c XStream gip bn thc hin c gii php va ni trn. Nu
bn khng dng XML nh l phng tin trao i d liu, th trong J ava cng c cch
a i tng Java t ni ny sang ni khc l dng Serialize. Bi ny khng ni n
Serialize, m ch ni n cng c XStream. Tt nhin, ngoi XStream ra cng c mt
cng c na c chc nng tng cn c bit n vi ci tn Castor.
Th vin XStream c th ti ti http://xstream.codehaus.org/index.html
Cch s dng th vin XStream:
To class PhoneNumber:
public class PhoneNumber {
private int code;
private St r i ng number ;
PhoneNumber ( int code, St r i ng number ) {
this. code = code;
this. number = number ;
}
public int get Code( ) {return code; }
public void set Code( int code) {this. code = code; }
public St r i ng get Number ( ) {return number ; }
public void set Number ( St r i ng number ) {this. number = number ; }
}
To class Person:
public class Per son {
private St r i ng f i r st Name;
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 35
Sinh vin: Trn Hu Phc
private St r i ng l ast Name;
private PhoneNumber phone;
private PhoneNumber f ax;
Per son( St r i ng f i r st Name, St r i ng l ast Name) {
this. f i r st Name = f i r st Name;
this. l ast Name = l ast Name;
}
public St r i ng get Fi r st Name( ) {return f i r st Name; }
public void set Fi r st Name( St r i ng f i r st Name) {
this. f i r st Name = f i r st Name;
}
public St r i ng get Last Name( ) {return l ast Name; }
public void set Last Name( St r i ng l ast Name) {
this. l ast Name = l ast Name;
}
public PhoneNumber get Phone( ) {return phone; }
public void set Phone( PhoneNumber phone) {
this. phone = phone;
}
public PhoneNumber get Fax( ) {return f ax; }
public void set Fax( PhoneNumber f ax) {this. f ax = f ax; }
}
To class TestXStream:
import com. t hought wor ks. xst r eam. XSt r eam;
public class Test XSt r eam{
public static void mai n( St r i ng[ ] ar gs) {
XSt r eamxst r eam= new XSt r eam( ) ;
Per son j oe = new Per son( " J oe" , "Wal nes" ) ;
j oe. set Phone( new PhoneNumber ( 110, " 111- 111- 1111") ) ;
j oe. set Fax(
new PhoneNumber ( 220, "222- 221- 2222" ) ) ;
St r i ng xml = xst r eam. t oXML( j oe) ;
Syst em. out. pr i nt l n( "xml out put : \ n"+ xml ) ;
Per son newJ oe = ( Per son) xst r eam. f r omXML( xml ) ;
/ / Xemt huc tnh trong bi n s newJoe thuc lp Person
Syst em. out. pr i nt l n( "\ nI n r a t hng t i n ca bin newJoe
vi First Name, Last Name and Phone:\ n ") ;
Syst em. out. pr i nt l n( " Fi r st Name: " + newJ oe. get Fi r st Name( ) ) ;
Syst em. out. pr i nt l n( " Last Name: " + newJ oe. get Last Name( ) ) ;
Syst em. out. pr i nt l n( "Phone: " + newJ oe. get Phone( ) . get Number ( ) ) ;
}
}
Kt Qu:
Khi ta cho chy th chng trnh TestXStream.java, kt qu thu c l mt
dng XML c to ra m trong n c cu trc ch s lin h gia Person v
PhoneNumber nh sau:
Cho ra dng xml l:
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 36
Sinh vin: Trn Hu Phc
<Per son>
<f i r st Name>J oe</ f i r st Name>
<l ast Name>Wal nes</ l ast Name>
<phone>
<code>110</ code>
<number >111- 111- 1111</ number >
</ phone>
<f ax>
<code>220</ code>
<number >222- 221- 2222</ number >
</ f ax>
</ Per son>
12.3. Thao tc vi web service trong Android
Cch gi hm t webservice dotNet trong Android nh sau:
Input: cc tham s kiu String
Output: gi tr kiu String
public static Resul t addUser ( int f r om, St r i ng user name, St r i ng
di spl ay_name) throws Except i on {
St r i ng SOAP_ACTI ON = "ht t p: / / t empur i . or g/ AddUser name" ;
St r i ng METHOD_NAME = "AddUser name";
St r i ng NAMESPACE = "ht t p: / / t empur i . or g/ ";
St r i ng URL = "ht t p: / / 10. 0. 2. 2: 1217/ Ser vi ce1. asmx?op=AddUser name";
SoapObj ect r equest = new SoapObj ect ( NAMESPACE, METHOD_NAME) ;

r equest . addPr oper t y( " f r om", f r om) ;
r equest . addPr oper t y( " user name", user name) ;
r equest . addPr oper t y( " di spl ay_name", di spl ay_name) ;

SoapSer i al i zat i onEnvel ope envel ope =
new SoapSer i al i zat i onEnvel ope( SoapEnvel ope. VER11) ;
envel ope. dot Net = true;
envel ope. set Out put SoapObj ect ( r equest ) ;
Tr ans t r ans = new Tr ans( URL) ;
t r ans. cal l ( SOAP_ACTI ON, envel ope) ;
SoapPr i mi t i ve r esul t = ( SoapPr i mi t i ve) envel ope. get Response( ) ;
if ( r esul t . equal s( " - 1") ) {
return Resul t . EXCEPTION;
} else if ( r esul t . equal s( "0") ) {
return Resul t . FAILED;
} else {
return Resul t . SUCCESSED;
}
}
Cc bin SOAP_ACTI ON, METHOD_NAME, NAMESPACE, URL xc nh tn phng
thc, port m webservice ang s dng,
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 37
Sinh vin: Trn Hu Phc
Phng thc addPr oper t y( St r i ng var _name, St r i ng val ue) c 2 tham i.
Tham i th nht l tn bin cn truyn tham tr vo v tham i th 2 l gi tr ca
tham bin.
Sau khi thc hin lnh gi hm t r ans. cal l ( SOAP_ACTI ON, envel ope) ; th cc gi
tr truyn vo s c chuyn i thnh XML v truyn ln webservice.
Kt qu tr v thng qua i tng SoapPr i mi t i ve hoc SoapObj ect . i vi gi
tr tr v l mt kiu chui th c th thc hin p kiu trc tip nhng cn i vi gi
tr tr v l mt kiu danh sch th i tng SoapObj ect cho php ta c th duyt ti
tng phn t trong danh sch. Thc cht l mt qu trnh m ho v gii m mt
ni dung XML m c SOAP h tr.
Phng thc di y s m t cch nhn v d liu kiu danh sch t webservice:
public static Ar r ayLi st <User I nf o> get Li st User name( int user i d) throws
Except i on {
St r i ng SOAP_ACTI ON = "ht t p: / / t empur i . or g/ Get Li st User nameOf " ;
St r i ng METHOD_NAME = "Get Li st User nameOf ";
St r i ng NAMESPACE = "ht t p: / / t empur i . or g/ ";
St r i ng URL =
"ht t p: / / 10. 0. 2. 2: 1217/ Ser vi ce1. asmx?op=Get Li st User nameOf ";
SoapObj ect r equest = new SoapObj ect ( NAMESPACE, METHOD_NAME) ;
r equest . addPr oper t y( " user i d", user i d) ;
SoapSer i al i zat i onEnvel ope envel ope = new SoapSer i al i zat i onEnvel ope(
SoapEnvel ope. VER11) ;
envel ope. dot Net = true;
envel ope. set Out put SoapObj ect ( r equest ) ;
Tr ans t r ans = new Tr ans( URL) ;
t r ans. cal l ( SOAP_ACTI ON, envel ope) ;
SoapObj ect r esul t sRequest SOAP = ( SoapObj ect ) envel ope. bodyI n;
SoapObj ect a = ( SoapObj ect ) r esul t sRequest SOAP. get Pr oper t y( 0) ;
int count = a. get Pr oper t yCount ( ) ;
Ar r ayLi st <User I nf o> bki = new Ar r ayLi st <User I nf o>( ) ;
for ( int i = 0; i < count ; i ++) {
SoapObj ect so = ( SoapObj ect ) a. get Pr oper t y( i ) ;
St r i ng us = so. get Pr oper t y( " di spl ay_name") . t oSt r i ng( ) ;
St r i ng r name = so. get Pr oper t y( "user name" ) . t oSt r i ng( ) ;
St r i ng i d = so. get Pr oper t y( " i d") . t oSt r i ng( ) ;
bki . add( new User I nf o( i d, us, r name) ) ;
}
return bki ;
}
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 38
Sinh vin: Trn Hu Phc
CHNG 2: PHN TCH V THIT K H THNG
13. C T BI TON
i vi mi chic in thoi di ng Contact l ng dng khng th thiu, dng
qun l danh b in thoi, thng tin ca nhng c nhn cn lin lc trong danh b.
Trong Android trn phin bn mi nht l 2.1 hin nay cng c h tr ng dng
Contact vi nhiu chc nng c bn ging cc ng dng thng thng khc trn cc
in thoi di ng. Ngoi ra, cn c mt s chc nng ni tri nh:
- H tr kt ni vi ng dng Map, c th nh v ngi cn lin lc thng qua
a ch c lu trong Contact.
- Cho php lu tr nhiu s in thoi, email, address ca ngi dng trong
Contact.
- Cho php ng b ho gia cc contact trong in thoi v trong ti khon
Gmail v ti khon trn mng x hi facebook.
Mc d, ng dng contact ca Android cung cp kh nhiu chc nng nhng
ng dng ny vn cn nhiu hn ch, c bit thiu nhiu chc nng c bn nh qun
l Group, xc lp li s in thoi chnh hay Email chnh. Ngoi ra, vi mt s ngi
s dng th thng tin lu trong Contact cng rt quan trng. phng mt in thoi
hay trnh ngi khc truy cp vo nhng thng tin khc c lu trong in thoi
hoc khi b mt cc contact do cc tc ng ngoi cnh hoc khi thay s thu bao. Do
, ng dng PhoneBookSafeManager pht trin trn nn tng ng dng Contact sn
c trong Android, s p ng nhu cu bo mt thng tin c nhn c lu trong
Contact, ng thi ci tin mt vi chc nng khc cn hn ch ca ng dng Contact
trong Android nhm gip cho ngi dng c th yn tm contact ca h c bo v
an ton.
Kt lun: bi ton t ra cho chng ta l: Xy dng mt ng dng cho php ngi
s dng in thoi Android qun l cc contact ca h mt cch an ton, hiu qu, d
dng chia s, d dng qun l v tm kim.
14. C T CHC NNG
14.1. Upload phone book
M t chc nng:
Chc nng upload phone book cho php ngi dng lu tr ton b s contact ca
h vo ti khon online. Tuy nhin, mt s thng tin t s dng s c lc b bt
nhm gim kch thc ca ni dung XML khi ng gi.
M t hot ng:
1. c tt c cc thng tin trong phone book v lu vo mt list cc contacts.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 39
Sinh vin: Trn Hu Phc
2. Phn tch list cc contact thnh ni dung XML da vo k thut
XStream.
3. Kt ni ti webservice v gi ni dung XML km theo cc thng tin ti
khon ngi dng cn thit.
4. Webservice lu ni dung XML vo ng ti khon ngi dng.
5. Webservice tr v mt thng ip thng bo l lu hoc nu khng lu
c.
Hnh 2-1. Qu trnh upload ni dung XML ti Webserver bng giao thc SOAP.
14.2. Revert phone book
M t chc nng:
Cho php ngi dng c th ly li cc bn phone book m tng upload trc
y.
M t hot ng:
1. Ngi dng chn phin bn cn upload.
2. ng dng gi ID ca phin bn v thng tin v ti khon ngi dng ti
webservice.
3. Webservice chu trch nhim tm kim d liu tng ng vi ID m ngi
dng gi.
4. ng dng nhn d liu tr v t webservice v phn tch ni dung XML
thnh mt list contact.
5. Cnh bo ngi dng trc khi thay th phone book.
6. Ghi cc d liu trong phin bn ly v vo in thoi.
Hnh 2-2. M t qu trnh revert phone book
XStream
SOAP, XML
Message
ID +Account info
<<SOAP, XML>>
Phonebook XML content
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 40
Sinh vin: Trn Hu Phc
14.3. Send contact
M t chc nng:
Cho php ngi dng gi mt hoc nhiu contact ti mt hoc nhiu ngi khc
cng c ti khon ca ng dng.
M t hot ng:
1. Chuyn i cc contact cn gi thnh ni dung XML.
2. Gi yu cu ti webservice km theo ni dung XML, thng tin ti khon v
cc thng tin cn thit khc.
Webservice gi ni dung XML vo contact box ca ngi nhn v tr v thng
ip nu gi thnh cng.
14.4. Revei ve contact
M t chc nng:
Thng bo ti ngi dng nu c ai gi contact ti ti khon ca h bng mt
thng ip. ng thi, ngi dng cng c th xem, lu cc contact hoc g b
chng.
Hnh 2-3 Qu trnh gi v nhn contact
14.5. Export contact ti SD Card
M t chc nng:
Chc nng export to an SD Card cho php ngi dng chia s hoc backup cc
contact ca h vo th nh di dng XML. Khi ngi dng cn chia s h c th trao
i thng qua th nh hoc c th gi file XML ny i bt k u v ngi nhn c
th phn tch file XML ny thnh cc contact nh c.
<<SOAP, XML>>
XML content,
sender, receiver
Check new contact
Get new contact
Client A
Client B
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 41
Sinh vin: Trn Hu Phc
Hnh 2-4 Qu trnh lu contact xung SD Card
14.6. Import contact t SD Card
M t chc nng:
Ngc li vi chc nng export to SD Card th chc nng ny c dng phn
tch ngc li t mt file XML thnh cc contact.
Hnh 2-5 Qu trnh c contact t SD Card
14.7. Account Manager
14.7.1. Login
M t chc nng:
Chc nng login khng phi c thit k bo v h thng m ch yu l s
dng qun l ngi dng v d liu ngi dng trn server. Khi ngi dng login
th username and password s c lu li lm cha kho lin lc vi server, m
bo rng d liu c an ton v d dng truy xut. Hay ni cch khc mi username
l mt nh danh gip server qun l c d liu ca h.
14.7.2. Change password
M t chc nng:
Chc nng ny gip ngi dng qun l an ton hn ti khon ca h. s dng
c chc nng ny bt buc ngi dng phi ng nhp vo ti khon c.
Sau ngi dng touch chn passowrd mi th ng dng s gi password mi v
cc thng tin ngi dng ln web service v web service s thc hin vic thay i
password. Chc nng ny s c m t k hn chng 2.
14.7.3. Restore account
M t chc nng:
XStream
convert
Write file
Read file
XStream
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 42
Sinh vin: Trn Hu Phc
Khi qun username hoc password th ngi dng c th s dng chc nng ny
khi phc li ti khon ca h. ng dng s bt buc ngi dng phi nhp mt
email d phng trong khi to ti khon ng dng c th gi ti khon ca h vo
email .
Di y l qui trnh khi phc ti khon ca ngi dng:
Hnh 2-6 Qu trnh khi phc ti khon ngi dng
14.7.4. Create account
Thay v phi to ti khon trn mt trang web, iu ny s khng m bo an ton
v thc s l mt phin phc khng cn thit. Do , ng dng cung cp chc nng
to ti khon ngay trn mn hnh ng nhp ca ng dng nhm to iu kin thun
li nht i vi ngi dng. to ti khon ngi dng cn nhp cc thng tin:
Username, Password, Confirm password, Email.
15. CC BIU H THNG
15.1. Biu Usercase
M hnh usercase di y th hin cho s lng chc ca h thng m ngi
dng c th tng tc c trc tip.
1. Enter
email
SOAP, XML
2. require account
3. account
4. account
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 43
Sinh vin: Trn Hu Phc
Hnh 2-7 S Usercase tng qut
15.1.1. Restore account
Hnh 2-8 Usercase khi phc ti khon
15.1.2. Export Contact vo SD Card
Hnh 2-9 Usercase Import contact t sd card
15.1.3. Import Contact t SD Card
Hnh 2-10 Usercase Import contact t sd card
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 44
Sinh vin: Trn Hu Phc
15.1.4. Login
Hnh 2-11 Usercase chc nng Login
15.2. Biu Class
15.2.1. Biu Class gia cc thnh phn giao din
Hnh 2-12 Biu class Contact
15.3. Biu Class Contact
Hnh 2-13 Biu class Contact
15.4. Biu Class ContactProvider
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 45
Sinh vin: Trn Hu Phc
ContactProvider l mt Class dng c/ghi trn phone book.
Hnh 2-14 Biu class ContactProvider
15.5. Class Webservice
Class Webservice c dng kt ni v trao i d liu vi web service.
Hnh 2-15
15.6. Biu Sequence
15.6.1. Login
Hnh 2-16 Biu sequence chc nng Login
Bc 1: Ngi dng nhp username, password v nhn nt login
Bc 2: Chc nng Login thc hin triu gi hm CheckLogin trn webservice v
truyn cc tham s username, password vo.
Bc 3: Hm CheckLogin truy vn vo CSDL kim tra username v password
c tn ti hay khng.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 46
Sinh vin: Trn Hu Phc
Bc 4, 5, 6: Tr v kt qu valid, invalid hoc exception do li kt ni.
15.6.2. Create new account
Hnh 2-17. Biu tun t chc nng to ti khon mi
Bc 1: Ngi dng nhp username, password, confirm password, email.
Bc 2: Kim tra thng tin nhp vo c hp l hay khng.
Bc 3: Triu gi hm to ti khon trn web service. ng thi, gi ln cc tham
s tng ng.
Bc 4: Hm to ti khon trn web service s thc hin lnh SQL insert thng
tin ti khon mi vo.
Bc 5, 6: Tr v kt qu ca qu trnh to ti khon cho ngi dng bng mt
message.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 47
Sinh vin: Trn Hu Phc
15.6.3. Restore account
Hnh 2-18. Biu tun t chc nng khi phc ti khon
Bc 1: Ngi dng nhp a ch email d phng c nhp trong qu trnh to
ti khon trc y.
Bc 2: Kim tra biu thc email c chnh xc hay khng. Bc ny nhm mc
ch gim thi gian kim tra trn server nu nh email khng chnh xc.
Bc 3: Triu gi t xa hm RestoreAccount trn web service.
Bc 4: Thc hin truy vn ly v thng tin ti khon trong CSDL.
Bc 5, 6: Tr thng tin ti khon v Client.
Bc 7: Client s thc hin gi thng tin ti khon vo email d phng ca ngi
dng. Ngi dng s truy cp email d phng ca h xem li thng tin ti khon v
c th ng nhp li i thng tin ti khon.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 48
Sinh vin: Trn Hu Phc
15.6.4. Upload phone book
Hnh 2-19. Biu tun t chc nng upload phone book
Bc 1,2 : c tt c cc Contact trong phone book v lu vo mt list
Bc 3: Chuyn i Contact list thnh XML
Bc 4, 5: Triu gi hm BackupConatct trn Webservice v truyn vo cc tham
s l cc thng tin upload, UserID, hm ny s thc hin chn d liu vo CSDL
tng ng vi ti khon ca ngi dng.
Bc 6, 7: Tr v kt qu l upload thnh cng hay khng.
15.6.5. Revert phone book
Hnh 2-20. Biu tun t chc nng khi phc phone book
Bc 1,2 : c tt c cc Contact trong phone book v lu vo mt list
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 49
Sinh vin: Trn Hu Phc
Bc 3: Chuyn i Contact list thnh XML
Bc 4, 5: Triu gi hm BackupConatct trn Webservice v truyn vo cc tham
s l cc thng tin upload, UserID, hm ny s thc hin chn d liu vo CSDL
tng ng vi ti khon ca ngi dng.
Bc 6, 7: Tr v kt qu l upload thnh cng hay khng.
15.6.6. Export Contact to SD Card
Hnh 2-21. Biu tun t chc nng Export contact vo sd card
15.6.7. Import Contact from SD Card
Hnh 2-22. Biu tun t chc nng import contact t sd card
Bc 1, 2: c file t SD Card.
Bc 3, 4: Convert ni dung XML c c t file thnh Contact list v ghi
cc Contact vo phone book trong in thoi Android.
15.6.8. Send Contact
Biu sequence send Contact th hin mc h thng qu trnh gi cc Contact
ti mt ti khon no cng c qun l bi h thng.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 50
Sinh vin: Trn Hu Phc
tit kim b nh, khi hin th mt Contact list no th ch nhng thng tin
cn hin th c load vo b nh cn nhng thng tin khc th khng c load. V
vy, gi cc Contact ti mt ngi dng no ng dng s thc hin qua cc
bc nh biu c m t chi tit sau:
Hnh 2-23. Biu tun t chc nng send contact
Bc 1,2,3,4: c cc thng tin y ca cc Contact c chn v tr v
mt Contact list.
Bc 5,6: Convert Contact list thnh ni dung XML v triu gi t xa hm
SendContact t web service. ng thi truyn vo cc tham s l ni dung cn gi v
cc thng tin cn thit nh ngi gi, ngi nhn, ngy gi,
Bc 7: Add ni dung gi v cc thng tin gi vo mt table. T table ny tt c
cc ngi dng s truy cp vo v ly cc d liu ca h.
Bc 8,9: Tr v mt thng ip thng bo cho ngi dng bit l gi c hay
cha cng nh cc trng hp li.
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 51
Sinh vin: Trn Hu Phc
15.7. Biu Activity
15.7.1. Change password
Hnh 2-24
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 52
Sinh vin: Trn Hu Phc
15.7.2. Export Contact to SD Card
Hnh 2-25
15.7.3. Upload phone book
Hnh 2-26
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 53
Sinh vin: Trn Hu Phc
15.7.4. Send Contact
Hnh 2-27
15.7.5. Revert phone book
Hnh 2-28
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 54
Sinh vin: Trn Hu Phc
15.7.6. Import Contact from SD Card
Hnh 2-29
16. C S D LIU WEB SERVICE
Hnh 2-30
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 55
Sinh vin: Trn Hu Phc
Bng ACCOUNTS:
c dng lu tr thng tin ti khon ngi dng.
Thuc tnh ca cc field nh sau:
Field Name Type
USERNAME nvarchar(50)
PASSWORD nvarchar(50)
EMAIL nvarchar(100)
USERID bigint, primary key
Bng 2-1
Bng BACKUP_CONTACT
c dng lu tr cc phin bn phone book ca ngi dng
Thuc tnh:
Field Name Type
CONTENT_BACKUP xml
USERID bigint
NOTE nvarchar(MAX), allow null
DATE nvarchar(30)
TIME nvarchar(30)
VERSION_ID bigint, primary key
Bng 2-2
Bng MYUSERNAME
c dng lu tr tn ti khon ca nhng ngi bn c s dng h thng
phone book safe. Cng ging nh khi chat yahoo hoc skype th u c mt contact
list nhm gip bn d dng qun l v tm kim khi cn.
Thuc tnh:
Field Name Type
USERID bigint
DISPLAY_NAME nvarchar(100), allow null
USERNAME nvarchar(50)
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 56
Sinh vin: Trn Hu Phc
IMAGE image, allow null
ID bigint
Bng 2-3
Bng SHARE
Khi mt user no gi d liu ti mt ngi khc th d liu km cc thng
tin lin quan s c lu vo bng ny. Cc ng dng s t ng truy cp vo bng
ny ly d liu ca user tng ng.
Thuc tnh:
Field Name Type
USERID bigint
SENDER nvarchar(50)
RECEIVER nvarchar(50)
CONTENT_SENT xml
DATE nvarchar(30)
TIME nvarchar(30)
NOTE nvarchar(MAX), allow null
ID bigint
Bng 2-3
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 57
Sinh vin: Trn Hu Phc
CHNG 3: DEMO NG DNG
17. MT VI HNH NH NG DNG
Hnh 3-1
Login
Hnh 3-2
ang Login
Hnh 3-3
Sau Login
Hnh 3-4
Cc chc nng
Hnh 3-5
Revert phonebook
Hnh 3-6
Upload phonebook
Hnh 3-7
Send Contact
Hnh 3-8
c Contact gi
Hnh 3-9
Nhn Contact
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 58
Sinh vin: Trn Hu Phc

18. S LIN KT CC MN HNH V DIALOG
18.1. Danh sch cc l i n kt mn hnh mc 1&2
18.2. Danh sch lin kt cc mn hnh mc 3
18.2.1. Mn hnh View Contact
18.2.2. Mn hnh danh sch cc Contact mi
18.2.3. Mn hnh danh sch phone bool upl oad

Mn hnh Login
Mn hnh danh sch
cc Contact
Dialog nhp ch thch
upload phone book
Mn hnh danh sch
phonebook upload
Mn hnh qun l danh
sch ti khon
Dialog change
password
Mn hnh danh sch ti
khon ng dng
Dialog to ti khon
mi
Dialog khi phc ti
khon
Dialog thng bo
contact mi
Mn hnh nhn contact
mi
ProgressDialog Export
Contact
Mn hnh Import
Contact
Mn hnh Add Contact
mi
WarningDialog xo
Contact
Mn hnh Edit Contact
Panel tmkim
Contact
Mn hnh View Contact
Mn hnh View
Contact
Mn hnh Edit Contact

Mn hnh danh sch
phonebook upload
Mn hnh chi tit
phone book
Mn hnh danh sch
cc Contact mi
Mn hnh xemchi tit
Contact
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 59
Sinh vin: Trn Hu Phc
19. NH GI NG DNG
Mc tiu t c
Cc chc nng chnh Hon thnh
Upload Contact 100%
Revert Contact 100%
Export Contact to SDCard 100%
Import Contact from SDCard 100%
Send Contact 100%
Receive Contact 100%
Change Password 100%
Create new account 100%
Friends Android manager 100%
Cc issue v bug cha gii quyt
Cha upload c hnh nh ln server (issue)
L do: Trong Android tt c cc hnh nh khi c vo b nh u c m
ho thnh i tng Bitmap. i tng ny khng th tip tc m ho lu
vo file XML. Mt khc, webservice l mt k thut cho php triu gi cc
hm t xa, lin lc gia client v server u thng qua XML. Do , cc i s
phc tp hoc kiu Stream u khng c chp nhn.
Hng gii quyt: S dng k thut JSON. y cng l mt k thut gip
lin lc gia client vi web service. Tuy nhin, k thut ny cho php chng ta
duy tr c kt ni vi server thng qua giao thc http. V vy, d liu c th
c truyn ln server theo Stream.
ListView cun khng mt (issue)
L do: Mi ln xy ra s kin cun th Adapter s refresh lin tc v
cng l lc ng dng chim nhiu ti nguyn CPU nht. iu ny lm cho
ListView b git mi ln cun.
Hng gii quyt: cha c.
20. HNG PHT TRIN TRONG TNG LAI
Chc nng gi v nhn tin nhn thng qua wifi
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 60
Sinh vin: Trn Hu Phc
Chc nng ny s c pht trin trong tng lai nhm mc ch gip nhng
ngi thng xuyn c kt ni wifi c th gi tin nhn m khng mt tin. Tin nhn
n s c thng bo bng dialog ngay trn mn hnh desktop v k c khi dang s
dng ng dng khc.
Chc nng gi th thoi thng qua wifi
Chc nng ny s tn dng chc nng thu m c trang b trong cc my
Android. D liu s c ng gi v truyn ln ti khon ngi nhn.
Chc nng hu d liu
Khi b mt in thoi th iu m ngi dng lo lng nht chnh l nhng d liu
c nhn trong . Chc nng ny s t ng hu cc d liu c ch nh sn trong
th nh hoc b nh my khi nhn c yu cu thng qua tin nhn hoc wifi. Ngoi
ra ngi dng cn c th thit lp c ch hu d liu t ng khi khng c thc
hin mt s kin no trong mt khong thi gian no .
21. KT LUN
Sau khi thc hin xong project ny em nm bt c qui trnh lm mt d n
phn mm trn mobile ni chung ng thi hiu thm c nhiu kin thc v
Android v cc cng ngh lin quan nh l XML, XStream, Web service v SOAP,
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 61
Sinh vin: Trn Hu Phc
NH GI CA GIO VIN
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
..................................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
sinhvienit.net
Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android
Page | 62
Sinh vin: Trn Hu Phc
TI LIU THAM KHO
[1] Copyright 2008 by Chris Haseman. Android Essentials. Appres


[2] Copyright 2009 by Mark L. Murphy. Beginning Android. Appress

[3] Copyright 2009 by Sayed Y. Hashimi and Satya Komatineni. Pro
Android. Appress


[4] Copyright 2008 by The McGraw-Hill Companies. Android A
Programmers Guide

[5] Copyright 2008 by Ed Burnette. Hello, Android. (Introducing Googles
Mobile Development Platform)
[6] Copyright 2009 by W. FRANK ABLESON, CHARLIE COLLINS,
ROBI SEN. Unlocking Android
http://www.google.com.vn

You might also like