You are on page 1of 62

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

MC LC
CH NG 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 s ng .......................................................... 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 th c ca chu k s ng ..................................................... 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

sinhvienit.net

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 CH NG 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

sinhvienit.net

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 CH NG 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 m c 1&2 .................................... 58 18.2. Danh sch lin kt cc mn hnh m c 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

sinhvienit.net

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 d ng 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, thu c v Lin minh Thit b Cm tay M Ngu n m (Open Handset Alliance) gm cc thnh vin n i 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 m i p ng tt hn cho nhu cu ngi tiu dng v kt qu u tin ca n chnh l n n 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, h ng 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 m t 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 m t trong s cc m c tiu trong kin trc c a 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

sinhvienit.net

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 ph n 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 ch y c cc ng d ng Android m khng b rng bu c vo cc nh cung cp mng in tho i di ng. Mc tiu c a thit b ny l cho php cc nh pht trin thc hin cc cu c th nghim trn mt thit b th c c th chy h iu hnh Android m khng ph i k m t bn hp ng no. Vo khong cng th i gian th Google cng cho pht hnh mt phin vn v li 1.1 c a 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 m t 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 ch y 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 c a m t 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 ph i thc thi mt cng c c tn l dx. y l cng c dng chuyn i bytecode sang mt dng g i 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 m t cch chi tit di y.

Page | 5
Sinh vin: Trn Hu Phc

sinhvienit.net

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 m t s ng dng cn thit c bn nh: contacts, browser, camera, Phone, Tt c cc ng dng ch y 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 ch y 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 d ng c th xut bn kh nn g ca mnh v ng dng no khc sau c th s dng nhng kh nng (c th hn ch bo m t 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

sinhvienit.net

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, ch ng h n 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 c a 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 ph n khc nhau trong h thng Android. iu ny c th hin thng qua n n 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 Qu n 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 m t tp hp cc th vin c bn m cung cp hu ht cc ch c nng c sn trong cc th vin li ca ngn ng lp trnh Java. Tt c cc ng dng Android u ch y trong tin trnh ring. My o Dalvik c vit cho m t 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

sinhvienit.net

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 d a vo nhn Linux cho cc chc nng c bn nh lung v qun l b nh th p. 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 m t lp tru tng ha gi a phn cng v ph n cn li ca ph n 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 ph i 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 h u ht cc tnh nng c a mt thit b tht. Tuy nhin, mt s b gii h n nh l kt n i qua cng USB, camera v video, nghe phone, ngun in gi lp v bluetooth. Android Emulator th c hin cc cng vic thng qua m t b x l m ngun m, cng ngh ny c g i l QEMU (http://bellard.org/qemu/) c pht trin bi Fabrice Bellard.

Hnh 1-3 Android emulator

Page | 8
Sinh vin: Trn Hu Phc

sinhvienit.net

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 ch a thng tin v phin bn SDK cng nh main activity s ch y 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

sinhvienit.net

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

android:icon = drawable resource y t ng d n 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 xu t v s dng ti nguyn c a ng dng. Khi cn s dng mt lo i ti nguyn no th trong file manifest c a ng dng cn ph i khai bo cc quyn truy xu t 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 b n 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 qu n 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 d n n file cng s c hnh thnh trong file R.java hoc xo m t file hnh nh th ng d n tng ng n hnh nh cng t ng b xo. C th ni file R.java hon ton khng cn ph i 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

sinhvienit.net

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

sinhvienit.net

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, t c l mi thnh phn t lc bt u kh i to v n thi im kt thc. Gia , i lc chng c th l active ho c inactive, ho c 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 m t 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 t n ti. Nu ngi dng nhn nt Back th activity k t tip c a stack s di duyn ln v tr thnh active.

Hnh 1-5 Activity stack

Page | 12
Sinh vin: Trn Hu Phc

sinhvienit.net

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 m t 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 th y 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 m t ng dng Android c cha nhiu thnh ph n v mi thnh phn u c mt chu trnh sng ring. V ng d ng ch c gi l kt thc khi tt c cc thnh ph n 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 ph n khng c kh nng tng tc vi ngi dng nh l Service, Broadcast Page | 13
Sinh vin: Trn Hu Phc

sinhvienit.net

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

receiver. C ngha l nhng thnh ph n 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 d ng 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 n a vi ngi dng, n ph i c hon ton restart v phc h i li trng thi trc. Khi mt Activity chuyn qua chuyn li gia cc trng thi, n ph i 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 d ng khi thay i trng thi. Tt c cc Activity bt buc ph i c onCreate() khi to ng d ng. Nhiu Activity s cng hin thc onPause() xc nhn vic thay i d liu v m t khc chun b dng hot ng vi ngi dng. 6.6. Thi gian sng ca ng dng

By phng thc chuyn tip nh ngh a trong chu k s ng ca mt Activity. Thi gian sng c a m t Activity din ra gia ln u tin gi onCreate() n trng thi cu i cng g i 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 gi a ln gi mt onStart() cho n khi gi onStop(). Trong su t khong thi gian ny ngi dng c th th y activity trn mn hnh, c ngha l n khng b foreground ho c 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 ch a ng t trng thi trc ca Activity Page | 14
Sinh vin: Trn Hu Phc

sinhvienit.net

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

Lun theo sau b i onStart() Phng thc: onRestart() c gi sau khi activity c dng, ch mt khong ang khi ng ln na (stared again) Lun theo sau b i 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 b i 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, ho c 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

sinhvienit.net

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 m t ng dng Android, giao din ngi dng c xy dng t cc i tng View v ViewGroup. C nhiu kiu View v ViewGroup. M i m t kiu l mt hu du ca class View v tt c cc kiu c g i 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 m t 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 m t screen th trong hm onCreate ca mi Activity cn ph i c g i 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 m t giao din ng dng Android

7.2.

ViewGroup

ViewGroup th c ra chnh l View hay ni ng hn th ViewGroup chnh l cc widget Layout c dng b tr cc i tng khc trong m t 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 m t 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 ph n trong LinearLayout c dn theo nhng t l cn x ng da vo cc rng bu c gia cc thnh phn.

Page | 16
Sinh vin: Trn Hu Phc

sinhvienit.net

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 thu c 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 d a vo 2 thu c 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 th c 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

sinhvienit.net

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 m t mi rng buc no vi cc widget khc. Cc rng buc ny l cc rng bu c tri, phi, trn, di so vi m t 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 nh m 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 d ng khi cn thit k m t table cha d liu hoc cn b tr cc widget theo cc row v column. Ch ng h n nh, giao din ca m t chic my tnh n gin ho c m t 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

sinhvienit.net

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 b ng XML


<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cmdButton1" android:text="Touch me!" android:onClick="touchMe"/>

Thu c 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 th c touchMe cha c khai bo trong file m ngun tng ng th s pht sinh mt exception. Ngc li, phng th c 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 th c cht n l m t 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 b ng code Thc ra m ni th nu khng phi i h i phi custom li mt widget th khng cn phi s dng ti code. Trong mt s trng hp bt buc chng ta ph i custom cc widget cho ph hp vi hon cnh. Ch ng 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 th a 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 thu c tnh Page | 19


Sinh vin: Trn Hu Phc

sinhvienit.net

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 m t 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 ph i 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

sinhvienit.net

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 n i 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);

N i 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

sinhvienit.net

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 d ng EditText l: android:inputType = s dng xc nh phng thc nh p cho EditText. Ch ng hn nh khi bn mun mt nh p password hay m t nhp Email th thuc tnh ny s lm iu . android:singleLine = true EditText ca b n s tr thnh mt TextField, ngc li s l TextBox. 7.9. CheckBox

Nh n 2 gi tr true ho c false. i tng CheckBox cho php chn nhiu item cng m t 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 m t 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

sinhvienit.net

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

sinhvienit.net

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 nh n di vo mt cell no trong ListView. to m t ContextMenu ta cng c 2 cch ging nh to MenuOptions trn ch khc tn phng thc. Khi nh n 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

sinhvienit.net

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 h n nh bo gi c phiu, th i 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 m t thnh chnh ca mt ng dng Android, c dng hin th m t mn hnh v nm bt cc hot ng xy ra trn mn hnh . Khi lm vic vi Activity cn nm b t c mt s kin th c c bn nh sau: Chu k sng ca mt Activity (Xem chu k ng d ng ca Android mc 1.6) To menu v dialog Khi ng mt Activity khi ng m t 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 b ng cch truyn vo tn class ca Activity VD: T Activity A mun chuyn qua Activity B ta khai bo m t Intend trong Activity A: Page | 25
Sinh vin: Trn Hu Phc

sinhvienit.net

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 c a 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 m t 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 m t h iu hnh a tin trnh. Khi lp trnh trn nn tng Android th tin trnh l mt vn cn phi c ch nhiu nh t. 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 ngh a vi vic bn ang bin ng dng c a b n tr thnh mt th phn m m tiu th in nng. 7.13.2. Intent Khi nim Intend: L m t cu trc d liu m t cch thc, i tng th c hin ca m t Activity L cu ni gia cc Activity: ng dng Android thng bao gm nhiu Activity, mi Activity ho t ng c lp vi nhau v th c hin nh ng 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

sinhvienit.net

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 m t cu trc d liu, c m t trong lp android.content.Intent Cc thuc tnh c a mt i tng Intend:

Hnh 1-20 Cc thuc tnh ca Intend

Cc Action c nh ngh a sn: Di y l nhng h ng String c nh ngha sn trong lp Intent. i km vi n l cc Activity hay Application c xy d ng sn s c triu gi mi khi Intent tng ng c gi (tt nhin khi c cung cp ng data). VD: G i 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

sinhvienit.net

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 ph i 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 xu t 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 g i 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 b i Content Provider v n khng bao gi thay i. Phn B: Ph n 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 qu c gia hoc cng c th coi n nh l tn ca CSDL. Phn C: Ph n ny ch ra lo i d liu. Chng h n 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

sinhvienit.net

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 ho c mt d liu no dng truy vn. VD: Uri ch n contact th 0 trong CSDL l content://contacts/people/0 c th th c 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 ch y trong h u trng v lm nh ng 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 b t u v c cho php ho t ng cho n khi mt ngi no dng n li hoc n t ngt. ch ny, n c b t u bng cch gi Context.startService() v dng bng lnh Context.stopService(). N c th t ngt b ng lnh Service.stopSelf() ho c Service.stopSelfResult(). Ch cn mt lnh stopService() ngng Service li cho d lnh startService() c g i 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 kh i chy, lnh bindService() c th ty khi chy n. Hai ch ny th khng tch bit ton b. Bn c th kt n i 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 ho c 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

sinhvienit.net

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 th i 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 b t 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 nh c s m i tng Intent quyt nh xem s chi loi nh c 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 nh ng Service khc kt ni vi n th s c thm cc phng thc callback d nh 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

sinhvienit.net

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 n o th n vn c th cho php cc ngi dng kt ni ti n mt cch hiu qu nht, cho n n 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 m t tham chiu n class Service <service android:name=".myservice.MyService"/> Tip theo, to m t file MyService.java k tha t class Service: Trong file MyService.java b t bu c 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

sinhvienit.net

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 d ng 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 m t trong 4 thnh ph n 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 m ng, 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 qu n l bi m t 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 m t d ng CSDL tng t nh Mysql, PostgreSQL... c im c a SQLite l g n, 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 v a 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

sinhvienit.net

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

s la chn ph hp cho nhng ngi bt u h c 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 d ch 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 c a Web nn gi y cc li g i 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 d a 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

sinhvienit.net

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. M t th m nh khc l nu cc i tng phn tn xy dng trn m hnh Web services s c th triu gi ln nhau, bt ch p i tng c vit trn ngn ng Java c a 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 nh n 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

sinhvienit.net

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 ch y 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 d ng xml l: Page | 35
Sinh vin: Trn Hu Phc

sinhvienit.net

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 g i 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

sinhvienit.net

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 th c 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 ch t 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

sinhvienit.net

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

CHNG 2: PHN TCH V THIT K H TH NG


13. C T BI TON i vi m i chic in tho i di ng Contact l ng dng khng th thiu, dng qu n 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 n i 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 tho i, 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 tho i hay trnh ngi khc truy cp vo nh ng thng tin khc c lu trong in thoi ho c khi b m t cc contact do cc tc ng ngo i cnh hoc khi thay s thu bao. Do , ng d ng PhoneBookSafeManager pht trin trn n n tng ng dng Contact sn c trong Android, s p ng nhu cu bo m t thng tin c nhn c lu trong Contact, ng thi ci tin mt vi chc nng khc cn hn ch c a 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 c a h mt cch an ton, hiu qu, d dng chia s, d dng qun l v tm kim. 14. C T CHC NNG Upload phone book M t chc nng: Ch c nng upload phone book cho php ngi dng lu tr ton b s contact c a h vo ti kho n online. Tuy nhin, mt s thng tin t s dng s c lc b bt nh m 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

14.1.

sinhvienit.net

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

2. Phn tch list cc contact thnh n i dung XML da vo k thu t XStream. 3. Kt ni ti webservice v gi ni dung XML km theo cc thng tin ti kho n 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 n u khng lu c.

XStream SOAP, XML Message

Hnh 2-1. Qu trnh upload ni dung XML ti Webserver bng giao thc SOAP.

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 g i 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 nh n 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 tho i.
ID + Account info <<SOAP, XML>> Phonebook XML content

14.2.

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

Page | 39
Sinh vin: Trn Hu Phc

sinhvienit.net

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

Send contact M t chc nng: Cho php ngi dng gi mt ho c 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 g i thnh n i dung XML. 2. Gi yu cu ti webservice km theo n i dung XML, thng tin ti khon v cc thng tin cn thit khc. Webservice g i ni dung XML vo contact box ca ngi nh n v tr v thng ip nu g i 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.

14.3.

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

Check new contact Get new contact

Client A

Client B

Hnh 2-3 Qu trnh g i v nhn contact

14.5.

Export contact ti SD Card M t chc nng:

Ch c nng export to an SD Card cho php ngi dng chia s hoc backup cc contact c a 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

sinhvienit.net

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 m t 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: Ch c nng login khng phi c thit k b o 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 qu n l c d liu ca h. 14.7.2. Change password M t chc nng: Ch c 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 th c 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

sinhvienit.net

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 ph c li ti khon ca h. ng dng s bt buc ngi dng phi nh p m t email d phng trong khi to ti khon ng dng c th g i ti khon ca h vo email . Di y l qui trnh khi phc ti kho n 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 kho n trn mt trang web, iu ny s khng m bo an ton v thc s l mt phin ph c 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

sinhvienit.net

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 ph c 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

sinhvienit.net

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

sinhvienit.net

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 nh p username, password v nhn nt login Bc 2: Chc nng Login thc hin triu g i 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

sinhvienit.net

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 n i. 15.6.2. Create new account

Hnh 2-17. Biu tun t chc nng to ti khon mi

Bc 1: Ngi dng nh p 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 th c hin lnh SQL insert thng tin ti kho n mi vo. Bc 5, 6: Tr v kt qu ca qu trnh to ti khon cho ngi dng bng m t message.

Page | 46
Sinh vin: Trn Hu Phc

sinhvienit.net

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 nh p 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 khn g. 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 kho n trong CSDL. Bc 5, 6: Tr thng tin ti khon v Client. Bc 7: Client s th c hin g i thng tin ti kho n 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 kho n.

Page | 47
Sinh vin: Trn Hu Phc

sinhvienit.net

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 ch c nng upload phone book

Bc 1,2 : c tt c cc Contact trong phone book v lu vo m t 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 kho n 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 ch c nng khi ph c phone book

Bc 1,2 : c tt c cc Contact trong phone book v lu vo m t list Page | 48


Sinh vin: Trn Hu Phc

sinhvienit.net

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 kho n 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 ch c nng Export contact vo sd card

15.6.7. Import Contact from SD Card

Hnh 2-22. Biu tun t ch c 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 m t ti khon no cng c qu n l bi h thng.

Page | 49
Sinh vin: Trn Hu Phc

sinhvienit.net

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 d ng s thc hin qua cc bc nh biu c m t chi tit sau:

Hnh 2-23. Biu tun t ch c 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 n i dung XML v triu g i t xa hm SendContact t web service. ng thi truyn vo cc tham s l n i dung cn gi v cc thng tin cn thit nh ngi gi, ngi nhn, ngy gi, Bc 7: Add n i dung gi v cc thng tin g i 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 h p li.

Page | 50
Sinh vin: Trn Hu Phc

sinhvienit.net

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

sinhvienit.net

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

sinhvienit.net

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

sinhvienit.net

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

sinhvienit.net

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. Thu c tnh ca cc field nh sau: Field Name USERNAME PASSWORD EMAIL USERID Type nvarchar(50) nvarchar(50) nvarchar(100) bigint, primary key
B ng 2-1

Bng BACKUP_CONTACT c dng lu tr cc phin b n phone book ca ngi dng Thu c tnh: Field Name CONTENT_BACKUP USERID NOTE DATE TIME VERSION_ID xml bigint nvarchar(MAX), allow null nvarchar(30) nvarchar(30) bigint, primary key
B ng 2-2

Type

Bng MYUSERNAME c dng lu tr tn ti kho n 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 qu n l v tm kim khi cn. Thu c tnh:
Field Name USERID DISPLAY_NAME USERNAME bigint nvarchar(100), allow null nvarchar(50) Type

Page | 55
Sinh vin: Trn Hu Phc

sinhvienit.net

Tm hiu v xy dng ng dng Phone Book Safe Manager trn Android IMAGE ID image, allow null bigint B ng 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. Thu c tnh: Field Name USERID SENDER RECEIVER Type bigint nvarchar(50) nvarchar(50)

CONTENT_SENT xml DATE TIME NOTE ID nvarchar(30) nvarchar(30) nvarchar(MAX), allow null bigint
B ng 2-3

Page | 56
Sinh vin: Trn Hu Phc

sinhvienit.net

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

Page | 57
Sinh vin: Trn Hu Phc

sinhvienit.net

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

18. S LIN KT CC M N 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

sinhvienit.net

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 Upload Contact Revert Contact Export Contact to SDCard Hon thnh 100% 100% 100%

Import Contact from SDCard 100% Send Contact Receive Contact Change Password Create new account Friends Android manager 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 t c m ho lu vo file XML. Mt khc, webservice l mt k thut cho php triu g i cc hm t xa, lin lc gia client v server u thng qua XML. Do , cc i s ph c tp ho c kiu Stream u khng c chp nh n. Hng gii quyt: S dng k thut JSON. y cng l m t k thut gip lin lc gia client vi web service. Tuy nhin, k thut ny cho php chng ta duy tr c kt n i 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: M i 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 g i v nh n tin nhn thng qua wifi 100% 100% 100% 100% 100%

Page | 59
Sinh vin: Trn Hu Phc

sinhvienit.net

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

Ch c nng ny s c pht trin trong tng lai nhm mc ch gip nhng ngi thng xuyn c kt n i wifi c th gi tin nh n m khng m t 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 g i th thoi thng qua wifi Ch c 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 m t 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 nh n ho c 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 th c hin xong project ny em nm b t c qui trnh lm mt d n ph n 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

sinhvienit.net

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

sinhvienit.net

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

sinhvienit.net

You might also like