You are on page 1of 62

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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 PROJECT ....................... 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
Page | 1
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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
Page | 2
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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

Page | 3
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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
Page | 4
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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 Java (Java
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 Java, tuy nhin thc thi c ng dng
ny trn Android th nh pht trin phi thc thi mt cng c c tn l dx. y l cng
c dng chuyn i bytecode sang mt dng gi l dex bytecode. "Dex" l t vit
tt ca "Dalvik executable" ng vai tr nh c ch o thc thi cc ng dng Android.
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.

Page | 5
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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 Java.
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,

Page | 6
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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, JPG, 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.

Android 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 Java. 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
Page | 7
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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

Page | 8
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

5. CC THNH PHN TRONG MT ANDROID PROJECT


5.1.

AndroidManifest.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 version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="dtu.k12tpm.pbs.activity"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name=".LoginActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainContactListActivity" />
<activity android:name=".RestoreContactActivity" />
</application>
<uses-sdk android:minSdkVersion="7" />
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
</manifest>

Application
Th <application>, bn trong th ny cha cc thuc tnh c nh ngha cho
ng dng Android nh:
Page | 9
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCOUNT_MANAGER"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.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.java

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 FILE.

DO NOT MODIFY.

This class was automatically generated by the


aapt tool from the resource data it found. It
should not be modified by hand.

Page | 10
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android


*/
package dtu.k12tpm.pbs.activity;
public final class R {
public static final class array {
public static final int array_timeout=0x7f050000;
}
public static final class attr {
}
public static final class drawable {
public static final int add=0x7f020000;
public static final int backup_icon=0x7f020001;
public static final int checkall=0x7f020002;
}
public static final class id {
public static final int Button01=0x7f070006;
public static final int Button02=0x7f070007;
public static final int CheckBox01=0x7f070017;
}
public static final class layout {
public static final int contact_list=0x7f030000;
public static final int content_sender=0x7f030001;
public static final int friend_list=0x7f030002;
}
public static final class menu {
public static final int context_menu=0x7f060000;
public static final int menu_options=0x7f060001;
public static final int options_menu=0x7f060002;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int context_menu_item_delete=0x7f04000b;
public static final int context_menu_item_edit=0x7f04000a;
}
}

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.
Page | 11
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

Activity 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

Page | 12
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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
Page | 13
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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
Page | 14
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.
Page | 15
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

Page | 16
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

ImageV
LearnAndroid.co
m

TextVi

Hnh 1-10 B tr cc widget trong FrameLayout

7.2.3. AbsoluteLayout
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.

Page | 17
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

7.2.4. RetaliveLayout
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.
Page | 18
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

thit k giao din vi mt button ta c 2 cch nh sau:


Thit k bng XML
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cmdButton1"
android:text="Touch me!"
android:onClick="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:
public void touchMe(View v){
Button me = (Button) v;
Me.setText(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:
Button cmdButton = new Button(this);
cmdButton.setText(Touch Me!);
cmdButon.setOnClickListener();

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


Page | 19
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

android:src = @drawable/icon thm hnh nh vo v khng c th text


<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cmdButton1"
android:src="@drawable/icon"
android:onClick="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:
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.icon);

<ImageView
android:id="@+id/ImageView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cmdButton1"

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.

Page | 20
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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:
TextView textView = (TextView)findViewById(R.id.textView);
CharSequence styledText =
Html.fromHtml("<i>This</i> is some <b>styled</b> <s>text</s>");
textView.setText(styledText);

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.
<EditText
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"

Page | 21
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android


android:textSize="20dip"
android:textColor="#000000"
android:text="Hello Android!"
android:singleLine="true"
android:inputType="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
android:id="@+id/CheckBox01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check me"
android:checked="true"/>

7.10.

MenuOptions

C 2 cch to mt MenuOptions:
To bng code:
public class Main extends Activity {
private int searchBtnId = Menu.FIRST;
private int scheduleBtnId = Menu.FIRST + 1;
private int playBtnId = Menu.FIRST + 2;
private int stopBtnId = Menu.FIRST + 3;
private int group1Id = 1;
private int group2Id = 2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {

Page | 22
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android


menu.add(group1Id,searchBtnId ,searchBtnId,"Search");
menu.add(group2Id,scheduleBtnId,scheduleBtnId,R.string.schedule);
menu.add(group2Id,playBtnId ,playBtnId,"Play");
menu.add(group2Id,stopBtnId ,stopBtnId,R.string.stop);
// the following line will hide search
// when we turn the 2nd parameter to false
menu.setGroupVisible(1, false);
return super.onCreateOptionsMenu(menu);
}
}

Hnh 1-16 Minh ho option menu

To bng XML
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:icon="@drawable/icon" android:title="Item1"
android:orderInCategory="1" android:id="@+id/item1">
<item android:title="Item 2" android:id="@+id/item2"
android:orderInCategory="2">
<menu>
<item android:id="@+id/item01" android:title="Sub item 1"
android:orderInCategory="1/>
<item android:title="Sub item 2" android:id="@+id/item02"
android:orderInCategory="2"/>
</menu>
</item>
</menu>
public boolean onCreateOptionsMenu(Menu menu) {
new MenuInflater(
getApplication()).inflate(R.menu.menu_options, menu);
return super.onCreateOptionsMenu(menu);
}

Page | 23
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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 onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)

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:
AdapterView.AdapterContextMenuInfo info;
try {
info = (AdapterView.AdapterContextMenuInfo) menuInfo;
} catch (ClassCastException e) {
return;
}
info.position

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
Page | 24
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

Activity & Intend

7.13.1. Activity
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:
Page | 25
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android


Intend intend =

new Intend(this, B.class);

startActivity(intend);

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:
Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
i.setData(Uri.withAppendedPath(
android.provider.Contacts.People.CONTENT_URI, "1));
startActivity(i);

Tnh lin lc gia 2 activity

Khi chuyn sang mt Activity khc ta c th gi km d liu trong intend nh


sau:
intend.putExtra(key1, value1);
intend.putExtra(key2, 23);

Bn pha Activity c khi ng hay c chuyn n, c th ly d liu c


gi nh sau:
getIntend().getExtra().getString(key1);
getIntend().getExtra().getInt(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

Page | 26
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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:
Intent dialIntent =
new Intent(Intent.ACTION_DIAL, Uri.parse("tel:123456"));
startActivity(dialIntent);

Page | 27
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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

Page | 28
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.
Page | 29
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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 onCreate()
void onStart(Intent intent)
void onDestroy()

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 onBind(Intent intent)
boolean onUnbind(Intent intent)
void onRebind(Intent intent)

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.

Page | 30
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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 onCreate();
protected void onDestroy();

Page | 31
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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:
timer.scheduleAtFixedRate(
new TimerTask() {
public void run() {
//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:
Intent svc = new Intent(this, MyService.class);

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.
TelephonyManager telMan =
(TelephonyManager)getSystemService(Context.TELEPHONY_SEVICE);

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
Page | 32
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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
Page | 33
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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 Java 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.
Gii 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 Java 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 Java 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 String number;
PhoneNumber(int code, String number){
this.code = code;
this.number = number;
}
public int getCode() {return code;}
public void setCode(int code) {this.code = code;}
public String getNumber() {return number;}
public void setNumber(String number) {this.number = number;}
}

To class Person:
public class Person {
private String firstName;

Page | 34
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android


private String lastName;
private PhoneNumber phone;
private PhoneNumber fax;
Person(String firstName, String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {return firstName;}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {return lastName;}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public PhoneNumber getPhone() {return phone;}
public void setPhone(PhoneNumber phone) {
this.phone = phone;
}
public PhoneNumber getFax() {return fax;}
public void setFax(PhoneNumber fax) {this.fax = fax;}
}

To class TestXStream:
import com.thoughtworks.xstream.XStream;
public class TestXStream {
public static void main(String[] args) {
XStream xstream = new XStream();
Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(110, "111-111-1111"));
joe.setFax(
new PhoneNumber(220, "222-221-2222"));
String xml = xstream.toXML(joe);
System.out.println("xml output:\n"+ xml);
Person newJoe = (Person)xstream.fromXML(xml);
//Xem thuc tnh trong bin s newJoe thuc lp Person
System.out.println("\nIn ra thng tin ca bin newJoe
vi First Name, Last Name and Phone:\n ");
System.out.println("First Name: " + newJoe.getFirstName());
System.out.println("Last Name: " + newJoe.getLastName());
System.out.println("Phone: " + newJoe.getPhone().getNumber());
}
}

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:
Page | 35
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android


<Person>
<firstName>Joe</firstName>
<lastName>Walnes</lastName>
<phone>
<code>110</code>
<number>111-111-1111</number>
</phone>
<fax>
<code>220</code>
<number>222-221-2222</number>
</fax>
</Person>

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 Result addUser(int from, String username, String
display_name)throws Exception {
String SOAP_ACTION = "http://tempuri.org/AddUsername";
String METHOD_NAME = "AddUsername";
String NAMESPACE = "http://tempuri.org/";
String URL = "http://10.0.2.2:1217/Service1.asmx?op=AddUsername";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("from", from);
request.addProperty("username", username);
request.addProperty("display_name", display_name);
SoapSerializationEnvelope envelope =
new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
Trans trans = new Trans(URL);
trans.call(SOAP_ACTION, envelope);
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
if (result.equals("-1")) {
return Result.EXCEPTION;
} else if (result.equals("0")) {
return Result.FAILED;
} else {
return Result.SUCCESSED;
}
}

Cc bin SOAP_ACTION, METHOD_NAME, NAMESPACE,


thc, port m webservice ang s dng,

URL

xc nh tn phng

Page | 36
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

Phng thc addProperty(String var_name, String value) 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 trans.call(SOAP_ACTION, envelope); th cc gi
tr truyn vo s c chuyn i thnh XML v truyn ln webservice.
Kt qu tr v thng qua i tng SoapPrimitive hoc SoapObject. 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 SoapObject 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 ArrayList<UserInfo> getListUsername(int userid)throws
Exception {
String SOAP_ACTION = "http://tempuri.org/GetListUsernameOf";
String METHOD_NAME = "GetListUsernameOf";
String NAMESPACE = "http://tempuri.org/";
String URL =
"http://10.0.2.2:1217/Service1.asmx?op=GetListUsernameOf";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("userid", userid);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
Trans trans = new Trans(URL);
trans.call(SOAP_ACTION, envelope);
SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
SoapObject a = (SoapObject) resultsRequestSOAP.getProperty(0);
int count = a.getPropertyCount();
ArrayList<UserInfo> bki = new ArrayList<UserInfo>();
for (int i = 0; i < count; i++) {
SoapObject so = (SoapObject) a.getProperty(i);
String us = so.getProperty("display_name").toString();
String rname = so.getProperty("username").toString();
String id = so.getProperty("id").toString();
bki.add(new UserInfo(id, us, rname));
}
return bki;
}

Page | 37
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.
Page | 38
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

XStream
SOAP, XML
Message

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.
ID + Account info
<<SOAP, XML>>
Phonebook XML content

Hnh 2-2. M t qu trnh revert phone book

Page | 39
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

Reveive 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.

XML content,
sender, receiver
<<SOAP, XML>>

Check new contact


Get new contact

Client A

Client B

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.
Page | 40
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

XStream
convert

Write file

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.

Read file

XStream

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:
Page | 41
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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:

1. Enter
email

2. require account
SOAP, XML
3. account
4. account

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.

Page | 42
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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

Page | 43
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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

Page | 44
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.
Page | 45
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

Page | 46
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

Page | 47
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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


Page | 48
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

Page | 49
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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.

Page | 50
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

15.7.

Biu Activity

15.7.1. Change password

Hnh 2-24

Page | 51
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

15.7.2. Export Contact to SD Card

Hnh 2-25

15.7.3. Upload phone book

Hnh 2-26

Page | 52
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

15.7.4. Send Contact

Hnh 2-27

15.7.5. Revert phone book

Hnh 2-28

Page | 53
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

15.7.6. Import Contact from SD Card

Hnh 2-29

16. C S D LIU WEB SERVICE

Hnh 2-30

Page | 54
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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)

Page | 55
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android


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

Page | 56
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

CHNG 3: DEMO NG DNG


17. MT VI HNH NH NG DNG

Hnh 3-1
Login

Hnh 3-4
Cc chc nng

Hnh 3-7
Send Contact

Hnh 3-2
ang Login

Hnh 3-5
Revert phonebook

Hnh 3-8
c Contact gi

Hnh 3-3
Sau Login

Hnh 3-6
Upload phonebook

Hnh 3-9
Nhn Contact

Page | 57
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

18. S LIN KT CC MN HNH V DIALOG


18.1.

Danh sch cc lin kt mn hnh mc 1&2


Mn hnh Login

Dialog to ti khon
mi

Mn hnh danh sch


cc Contact

Dialog khi phc ti


khon

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 thng bo
contact mi

Mn hnh Import
Contact

ProgressDialog Export
Contact

Mn hnh nhn contact


mi

Mn hnh Add Contact


mi

WarningDialog xo
Contact

Mn hnh Edit Contact

Panel tm kim
Contact

Mn hnh View Contact

18.2.

Danh sch lin kt cc mn hnh mc 3

18.2.1. Mn hnh View Contact


Mn hnh View
Contact

Mn hnh Edit Contact

18.2.2. Mn hnh danh sch cc Contact mi


Mn hnh danh sch
cc Contact mi

Mn hnh xem chi tit


Contact

18.2.3. Mn hnh danh sch phone bool upload


Mn hnh danh sch
phonebook upload

Mn hnh chi tit


phone book

Page | 58
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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

Page | 59
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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,

Page | 60
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

NH GI CA GIO VIN
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
..................................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
.............................................................................................................................
Page | 61
Sinh vin: Trn Hu Phc

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android

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

Page | 62
Sinh vin: Trn Hu Phc

You might also like