xay dung phan mem contact

Upload: ngotuannghia1

Post on 05-Apr-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Xay Dung Phan Mem Contact

    1/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 1Sinh vin: Tr n H u Ph c

    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. Tngng 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 ksng thnh phn .................................................................... 12 6.2. Activity Stack .................................................................................... 12 6.3. Cc trng thi ca chu k sng .......................................................... 13 6.4. Chu ksng ca ng dng ................................................................ 13 6.5. Cc s kin trong chu ksng ca ng dng ..................................... 14 6.6. Th i gian sng ca ng dng ............................................. ................ 14

    6.7. Th i gian hin th ca Activity .......................................................... 14 6.8. Cc ph ng thc ca chu ksng ..................................................... 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

  • 7/31/2019 Xay Dung Phan Mem Contact

    2/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 2Sinh vin: Tr n H u Ph c

    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. Gi i thiu vXStream ................................................................ ... 34 12.3. Thao tc v i 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 CH C 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 t i 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

  • 7/31/2019 Xay Dung Phan Mem Contact

    3/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 3Sinh vin: Tr n H u Ph c

    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 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 m i ......................................... 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 VINTI LIU THAM KHO

  • 7/31/2019 Xay Dung Phan Mem Contact

    4/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 4Sinh vin: Tr n H u Ph c

    CHNG1: 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 muali vo nm 2005 v bt u xy dng Android Platform. Cc thnh vin ch cht ti Android Inc. gm c: AndyRubin, Rich Miner, Nick Sears, and ChrisWhite.

    Hnh 1-1 Android timeline

    V sau tip, vo cui nm 2007, thuc vLin minh Thit b Cm tay M Ngunm (Open Handset Alliance) gm cc thnh vin ni bt trong ngnh vin thng vthit b cm tay nh:

    Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, MarvellTechnology 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 nhucu ng i 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 cclp trnh vin thit b cm tay.

    Phin bn SDK ln u tin pht hnh vo thng 11 nm 2007, hng T-Mobilecng cng bchic in thoi Android u tin l chic T-Mobile G1, chicsmartphone u tin da trn nn tng Android. Mt vi ngy sau , Google li tiptc cng b s ra mt phin bn Android SDK release Candidate 1.0. Trong thng 10nm 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 nl cho php ccng dng c th tng tc c v i nhau v c th s dng li ccthnh phn t nhng ng dng khc. Vic ti s dng khng ch c p dng cho

  • 7/31/2019 Xay Dung Phan Mem Contact

    5/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 5Sinh vin: Tr n H u Ph c

    cho cc dch vm n cn c p dng cho c cc thnh phn d liu v giao dinng i dng.

    Vo cui nm 2008, Google cho pht hnh mt thit b cm tay c gi lAndroid Dev Phone 1 c thchy c ccng 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 phpcc 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 th igian 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 htr soft-keyboard m i hi cc thitb phi s dng bn phm vt l. Android c nh vn ny bng cch pht hnhSDK 1.5 vo thng T nm 2009, cng v i mt s tnh nng khc. Chng hn nhnng cao kh nng ghi m truyn thng, vt dng, v cc live folder.

    2. DELVING VI MY O DALVIK

    Dalvik l myo gip ccng dng java chy c trn cc thit b ngAndroid. N chy ccng dng c chuyn i thnh mt file thc thi Dalvik(dex). nh dng ph h p cho cc h thng m th ng b hn chvbnh v tc x l. Dalvik c thit kv vit b i Dan Bornstein, ngi t tn cho n saukhi n thm mt ngi lngnh c nhc tn l Dalvk o Eyjafjrur, ni mmt s t tin ca ng sinh sng.

    T gc nhn ca mt nh pht trin, Dalvik trng ging nh my o Java (JavaVirtual Machine)nhng thc t th hon ton khc. Khi nh pht trin vit mt ngdng 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, tuynhin thc thi c ng dngny trn Android th nh pht trin phi thc thi mt cng c c tn l dx. y l cngc dng chuyn i bytecode sang mt dng gi l dex bytecode. "Dex" l t vittt ca "Dalvik executable" ng vai tr nh c ch o thc thi ccng dng Android.3. KIN TRC CA ANDROID

    M hnh sau thhin mt cch tng qut cc thnh phn ca h iu hnhAndroid. Mi mt phn s c c tmt cch chi tit di y.

  • 7/31/2019 Xay Dung Phan Mem Contact

    6/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 6Sinh vin: Tr n H u Ph c

    Hnh 1-2 C u trc stack h th ng Android

    3.1. Tng ng dng Android c tch h p sn mt s ng dng cn thit c bn nh: contacts,

    browser, camera, Phone, Tt c ccng dng chy trn h iu hnh Android u c vit bng Java.

    3.2. Application frameworkBng cch cung cp mt nn tng pht trin m , Android cung cp cho cc nh

    pht trin kh nng xy dng ccng dng cc k phong ph v sng to. Nh phttrin c t do tn dng cc thit b phn cng, thng tin a im truy cp, cc dchv 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 b iccng dng li. Cc kin trcng dng c thit k n gin ha vic s dngli cc thnh phn; bt k ng dng c th xut bn kh nng ca mnh vng dngno khc sau c ths dng nhng kh nng (c thhn chbo mt c thc thib i khun kh). C chny cho php cc thnh phn tng ts c thay th b ing i s dng.

    C bn tt c ccng dng l mt bcc dch v v cc h thng, bao gm: Mt tp h p rt nhiu cc View c kh nng ktha ln nhau dng thit

    kphn giao din ng dng nh: gridview, tableview, linearlayout,

  • 7/31/2019 Xay Dung Phan Mem Contact

    7/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 7Sinh vin: Tr n H u Ph c

    Mt Content Provider cho php ccng dng c th truy xut d liu t ccng dng khc (chng hn nh Contacts) hoc l chia sd liu giaccng dng .

    Mt Resource Manager cung cp truy xut t i cc ti nguyn khng phi

    l m ngun, chng hn nh:localized strings, graphics, and layout files. Mt Notifycation Manager cho php tt c ccng dng hin th cc

    custom alerts trong status bar.

    Activity Maanager c dng qun l chu trnh sng ca ng dng v iuh ng cc activity.

    3.3. LibraryAndroid bao gm mt tp hp cc th vin C/C++ c s dng b i nhiu thnh

    phn khc nhau trong h thng Android.iu ny c th hin thng qua nn tngng 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 systemlibrary (libc), tuned for embedded Linux-based devices.

    Media Libraries- based on PacketVideo's OpenCORE; the libraries supportplayback and recording of many popular audio and video formats, as well asstatic 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 Androidbrowser and an embeddable web view.

    SGL- the underlying 2D graphics engine.

    3D libraries- an implementation based on OpenGL ES 1.0 APIs; the librariesuse either hardware 3D acceleration (where available) or the included, highlyoptimized 3D software rasterizer.

    FreeType - bitmap and vector font rendering.

    SQLite- a powerful and lightweight relational database engine available to all

    applications.3.4. Android RuntimeAndroid 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 ccng dngAndroid u chy trong tin trnh ring. Myo Dalvik c vit cho mt thitb c thchy nhiu myo hiu qu. Cc VM Dalvik thc thi cc tp tin thc thi

  • 7/31/2019 Xay Dung Phan Mem Contact

    8/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 8Sinh vin: Tr n H u Ph c

    Dalvik (dex). nh dng c ti u ha cho bnh ti thiu. VM l da trnregister-based, v chy cc lp c bin dch b i mt trnh bin dch Java chuyn i thnh cc nh dng dex. Cc VM Dalvik da vo nhn Linux cho ccchc nng c bn nh lung v qun l bnh thp.

    3.5. Linux kernelAndroid 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. KernelLinux hot ng nh mt l p tru t ng ha gia phn cng v phn cn li ca phnmm stack.

    4. ANDROID EMULATORAndroid SDK v Plugin Eclipse c gi l mt Android Deverloper Tool (ADT).

    Cc Android coder scn phi s dng cng c IDE (Integrated Development

    Enveronment) ny pht trin, debugging v testing chong dng. Tuy nhin, cccoder cng c thkhng cn phi s dng IDE m thay vo l sdng commandline bin dch v tt nhin l vn c Emulator nh th ng.

    Android Emulator c trang b y hu ht cc tnh nng ca mt thit b tht.Tuy nhin, mt s b gi i hn nh l kt ni qua cng USB, camera v video, nghephone, ngun in gi lp v bluetooth.

    Android Emulator thc hin cc cng vic thng qua mt bx l m ngun m ,cng ngh ny c gi l QEMU (http://bellard.org/qemu/) c pht trin b iFabrice Bellard.

    Hnh 1-3 Android emulator

  • 7/31/2019 Xay Dung Phan Mem Contact

    9/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 9Sinh vin: Tr n H u Ph c

    5. CC THNH PHN TRONG MT ANDROID PROJECT 5.1. AndroidManifest.xmlTrong bt k mt project Android no khi to ra u c mt file

    AndroidManifest.xml, file ny c dng nh ngh a cc screen sdng, cc

    permission cng nh cc theme cho ng dng. ng th i n cng cha thng tin v phin bn SDK cng nh main activity schy u tin.

    File ny c t ng sinh ra khi to mt Android project. Trong file manifest baogi cng c 3 thnh phn chnh l: application, permission v version.

    Di y l ni dung ca mt file AndroidManifest.xml

    Application

    Th, bn trong th ny cha cc thuc tnh c nh ngh a chong dng Android nh:

  • 7/31/2019 Xay Dung Phan Mem Contact

    10/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 10Sinh vin: Tr n H u Ph c

    android:icon = drawable resource y t ng dn n file iconca ng dng khi ci t. VD: android:icon = @drawable/icon.

    android:name = string thuc tnh ny t tn chong dngAndroid. Tn ny s c hin th ln mn hnh sau khi cit ng dng.

    android:theme = drawable theme thuc tnh ny t theme chong 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 cang dng. Khi cn s dng mt loi ti nguyn no th trong file manifest cang dng cn phi khai bo cc quyn truy xut nh sau:

    SDK versionTh xc nh phin bn SDK c khai bo nh sau:.

    y chra phin bn SDK nhnht mng dng hin ang sdng.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 cang dng v cc tinguyn hnhnh.

    M ngun ca file R.java c t ng sinh khi c bt k mt s kin no xy xalm thay i cc thuc tnh trongng dng. Chng hn nh, bn ko v thmt filehnhnh 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 hnhnh th ng dntng ng n hnhnh cng t ng b xo.

    C thni file R.java hon ton khng cn phi ng chm gn trong cqutrnh xy dngng 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.

  • 7/31/2019 Xay Dung Phan Mem Contact

    11/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 11Sinh vin: Tr n H u Ph c

    */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 tr nh Linux gi gn mt ng dng Android c to ra cho ng dng

    khi codes cn crun 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 tr nhng dng khng c iu khin trc tip bi chnh n. Thay vo , n c xcnh bi h thng qua mt kt hp ca:

    Nhng phn ca ngdng 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.

  • 7/31/2019 Xay Dung Phan Mem Contact

    12/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 12Sinh vin: Tr n H u Ph c

    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

    kh i to v n thi im kt thc. Gia , i lc chng c thl active hocinactive, hoc l trong tr ng h p activies n c thvisible hoc invisible

    Hnh 1-4

    6.2. Activity StackBn 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 chyactivity tr c s bn d i activity m i v skhng thy trong sut qu trnh activitym i tn ti.

    Nu ng i dng nhn nt Back th activity kt tip ca stack sdi duyn ln v tr thnh active.

    Hnh 1-5 Activity stack

  • 7/31/2019 Xay Dung Phan Mem Contact

    13/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 13Sinh vin: Tr n H u Ph c

    6.3. Cc trng thi ca chu k sng

    Hnh 1-6 Chu k s ng ca Activity Mt Activity ch yu c 3 chu k chnh sau:

    Active hoc running: Khi Activity l c chy tr n mn hnh. Activity ny tptrung vo nhng thao tc ca ngi dng trnng 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 phy mn hnh. Mt Activity tm dng l cn sng nhng c th b kt thc bih thng trong trng hp thiu vng nh.

    Stopped: Nu n hon ton bao ph bi Activity khc. N vn cn trng thi vthng tin thnh vin trong n. Ngi dng khng thy n v thng b loi b trongtrng 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. Vng dng ch c gi l kt thc khi tt c cc thnhphn trongng dng kt thc. Activity l mt thnh phn cho php ng i dng giaotip v i ng dng. Tuy nhin, khi tt c cc Activity kt thc v ng i dng khngcn giao tip c v i ng dng na nhng khng c ngha l ng dng kt thc.B i v ngoi Activity l thnh phn c kh nng tng tc ng i dng th cn c ccthnh phn khng c kh nng tng tc vi ng i dng nh l Service, Broadcast

  • 7/31/2019 Xay Dung Phan Mem Contact

    14/62

  • 7/31/2019 Xay Dung Phan Mem Contact

    15/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 15Sinh vin: Tr n H u Ph c

    Lun theo sau bi onStart()

    Phng thc:onRestart() c gi sau khi activity c dng, ch mt khong ang khi ngln 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 nnn.

    Phng thc:onResume() c gi trc khi activity bt u tng tc vi ngi dng Ti thi im ny activity tr n dnh ca stack activity. Lun theo sau bionPause()

    Phng thc:onPause() c gi khi h thng ang resuming activity khc. Phng thc ny l in h nh vic gi li khng i d liu. N nn c din ra mt cch nhanh chng bi v activity k tip s khngc resumed ngay cho n khi n tr li.

    Theo sau bi onResume nu activity tr v t trc, hoc bionStop nun 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 nh n ca ngi dng. N c th din ra bi v nang b hy, hoc bi v activity khc va cresumed v bao ph n.

    c theo sau bionRestart() nu activity ang li tng tc vingi dng, hoconDestroy() 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 activityang hon thnh, hoc bi v h thng tmthi b hy dit tit kim vng nh.

    Bn c th phn bit gia 2 kch bn vi phngisFinshing(). Trng thi ca activity c th c git bi h thng.

  • 7/31/2019 Xay Dung Phan Mem Contact

    16/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 16Sinh vin: Tr n H u Ph c

    7. CC THNH PHN GIAO DIN TRONG ANDROID 7.1. ViewTrong mt ng dng Android, giao din ngi dng c xy dng t cc i

    t ng View v ViewGroup. C nhiu kiu View v ViewGroup. Mi mt kiu l mt

    hu duca class View v tt c cc kiu c gi l cc Widget.Tt cmi widget u c chung cc thuc tnh c bn nh l cch tr nh by v tr,

    background, kch th c, l, Tt cnhng thuc tnh chung ny c thhin ht trong i t ng View.

    Trong Android Platform,cc screen lun c b tr theo mt kiu cu trc phncp nh h nh d i. Mt screen l mt tp hp cc Layout v cc widget c b tr cth t. thhin mt screen th trong hm onCreate ca mi Activity cn phi cgi 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 C u trc m t giao di n ng d ng Android

    7.2. ViewGroupViewGroup thc ra chnh l View hay ni ng hn th ViewGroup chnh l cc

    widget Layout c dng b tr cc i t ng 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 hocchiu 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 th cca mn hnh. Cc thnh phn trong LinearLayout c dn theo nhng t lcnxng da vo cc rng buc gia cc thnh phn.

  • 7/31/2019 Xay Dung Phan Mem Contact

    17/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 17Sinh vin: Tr n H u Ph c

    Hnh 1-9 B tr cc widget s d ng LinearLayout

    7.2.2. FrameLayoutFrameLayout c dng b tr cc i t ng theo kiu ging nh l cc Layer

    trong Photoshop. Nhng i t ng no thuc Layer bn d i th sb che khut b icc i t ng thuc Layer nm trn.FrameLayer thng c sdng khi mun tora cc i t ng c khung hnh bn ngoi chng hn nh contact image button.

    Hnh 1-10 B tr cc widget trong FrameLayout

    7.2.3. AbsoluteLayoutLayout 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 b i vto ca cc i t ng lun c nh v skhng t iu chnh c t lkhongcch gia cc i t ng. Khi chuyn ng dng sang mt mn hnh c kch th c v imn hnh thit k ban u th v tr ca cc i t ng skhng cn c chnh xcnh ban u.

    Learn-Android.co

    m

    Ima eV

  • 7/31/2019 Xay Dung Phan Mem Contact

    18/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 18Sinh vin: Tr n H u Ph c

    7.2.4. RetaliveLayoutLayout ny cho php b tr cc widget theo mt trc i xng ngang hoc dc.

    t c ng vtr th cc widget cn c xc nh mt mi rng buc no v icc widget khc. Cc rng buc ny l cc rng buc tri, phi, trn, d i so v i mt

    widget hoc so v i layout parent. Da vo nhng mi rng buc mRetaliveLayout cng khng phthuc vo kch th c ca screen thit b. Ngoi ra, ncn cu im l gip tit kim layout sdng nhm mc ch gim l ng tinguyn 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 kmt 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. ButtonS d widget button c gi i thiu u tin trong s cc widget khc l vy l

    i t ng c th ni l c dng nhiu nht trong hu ht ccng dng Android.

  • 7/31/2019 Xay Dung Phan Mem Contact

    19/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 19Sinh vin: Tr n H u Ph c

    thit kgiao din v i mt button ta c 2 cch nh sau: Thit kbng XML

    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 tr ng hp phng thctouchMe cha c khai bo trong file m ngun tng ng th spht sinhmt exception. Ng c li, phng thc touchMe snhn c mt i thambin l i tng View ni pht sinh ra s kin. i t ng 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 kbng code

    Thc ra m ni th nu khng phi i hi phi custom li mt widget thkhng cn phi s dng t i code. Trong mt s tr ng h p bt buc chng taphi custom cc widget cho ph h p v i hon cnh. Chng hn nh tronggame, 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 Widgetmun custom, sau sdng hm draw v li widget nh mt Canvas.

    VD: canvas.drawPicture(Picture.createFromStream(...));

    7.4. ImageButtonCng tng t nh Button, ImageButton chc thm mt thuc tnh

  • 7/31/2019 Xay Dung Phan Mem Contact

    20/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 20Sinh vin: Tr n H u Ph c

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

    Hnh 1-13 ImageButon

    7.5. ImageView

    c dng thhin mt hnhnh. N cng ging nh ImageButton, chkhc lkhng c hnh dng ca mt ci button.Code:ImageView iv = new ImageView( this );iv.setImageResource(R.drawable. icon );

    Hnh 1-14 ImageView v ImageButton

    7.6. ListView c s dng th hin mt danh sch cc thng tin theo tng cell. Mi cell

    thng thng c load ln t mt file XML c c nh trn s l ng thngtin v loi thng tin cn c thhin.thhin c mt list thng tin ln mt screen th cn phi c 3 yu tchnh:

    Data Source:Data Source c th l mt ArrayList, HashMap hoc bt kmt cu trc d liu kiu danh sch no.

  • 7/31/2019 Xay Dung Phan Mem Contact

    21/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 21Sinh vin: Tr n H u Ph c

    Adapter: Adapter l mt class trung gian gip nh x d liu trong DataSource vo ng v tr hin th trong ListView. Chng hn, trong DataSource c mt trng name v trong ListView cng c mt TextView th hin trng name ny. Tuy nhin, ListView s khng th hin th dliu trong Data Source ln c nu nh Adapter khng gn d liu vocho i tng hin th. ListView: ListView l i tng hin th cc thng tin trong DataSource ra mt cch trc quan v ngi dng c th thao tc trc tip tr n.

    Hnh 1-15 Minh ho cho mt ListView

    7.7. TextViewTextView ngoi tc dng l hin th vn bn th n cn cho phpnh dng ni

    dung bng thhtml.VD:TextView textView = (TextView)findViewById(R.id.textView);CharSequence styledText =Html.fromHtml("This is some styled text");textView.setText(styledText);

    Ni dung TextView cng c th c nh dng bng thhtml ngay trong XML.7.8. EditTextTrong Android i tng EditText c s dng nh mt TextField hoc mt

    TextBox.

  • 7/31/2019 Xay Dung Phan Mem Contact

    22/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 22Sinh vin: Tr n H u Ph c

    android:textSize= "20dip"

    android:textColor= "#000000"

    android:text= "Hello Android!"

    android:singleLine= "true"

    android:inputType= "textCapWords" /> Cc thuc tnh cn ch sdng EditText l:

    android:inputType = s dng xc nh phng thc nhp choEditText. 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, ng c lis l TextBox.

    7.9. CheckBox

    Nhn 2 gi tr true hoc false. i t ng CheckBox cho php chn nhiu itemcng mt lc.Khai bo: CheckBox cb = new CheckBox(Context );

    XML:

    7.10. MenuOptionsC 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;@Overridepublic void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);this.setContentView(R.layout.main);

    }

    @Overridepublic boolean onCreateOptionsMenu(Menu menu) {

  • 7/31/2019 Xay Dung Phan Mem Contact

    23/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 23Sinh vin: Tr n H u Ph c

    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

  • 7/31/2019 Xay Dung Phan Mem Contact

    24/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 24Sinh vin: Tr n H u Ph c

    7.11. ContextMenuContextMenu c s dng hin th cc tu chn khi ng i dng nhn di vo

    mt cell no trong ListView. to mt ContextMenu ta cng c 2 cch gingnh 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 BoxMt trong nhng tnh nng m i trong phin bn Android 1.6 l Quick Search

    Box. y l khun khtm kim m i trn ton h thng Android, iu ny lm chong i dng c thnhanh chng tm kim bt c th g c trn chic in thoiAndroid ca hv c cc ti nguyn trn web khi h ang online. N t m kim v

  • 7/31/2019 Xay Dung Phan Mem Contact

    25/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 25Sinh vin: Tr n H u Ph c

    hin th kt qu tm kim ngay khi bn ang g. N cng cung cp cc kt qu t ccg i tm kim web, danh sch doanh nghip a phng, v thng tin khc tGoogle,chng hn nh bo gi cphiu, th i tit, v tnh trng chuyn bay. Tt c iu ny csn ngay tmn hnh ch, bng cch khai thc trn Quick Search Box (QSB).

    Hnh 1-18 Minh ho Quick Search Box

    7.13. Activity & Intend7.13.1. Activity

    Activity l mt thnh chnh ca mt ng dng Android, c dng hin th mtmn hnh v nm bt cc hot ng xy ra trn mn hnh. Khi lm vic v i Activitycn nm bt c mt skin thc c bn nh sau:

    Chu k s ng c a m t Activity(Xem chu k ng d ng ca Android m c 1.6)

    T o menu v dialog Khi ng m t Activity

    khi ng mt Activity ta s dng Intend s tm hiu k hn phn b. Tuynhin, trong phn ny ti s h ng dn cch chuyn gia cc Intend theo 2 loi:

    Khai bo khng t ng 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:

  • 7/31/2019 Xay Dung Phan Mem Contact

    26/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 26Sinh vin: Tr n H u Ph c

    Intend intend = new Intend(this, B.class);

    startActivity(intend);

    Khai bo khng t ng minhCung cp cc thao tc cn lm g v i loi d liu no, h thng s tmn

    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 contactnh 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 l c gi a 2 activityKhi chuyn sang mt Activity khc ta c thgi 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 cgi 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 thtin trnh l mt vn cn phi c ch nhiu nht. Mc d Android h tr atin trnh nhng trn mt thit b di ng v i cu hnh thp m chng ta qu lm dngtin trnh th s rt tn bx l iu ny cng ng ngh a v i vic bn ang binngdng ca bn tr thnh mt thphn mm tiu th in nng.

    7.13.2. Intent Khi nim Intend:

    L mt cu trc d liu m t cch thc, i t ng thc hin ca mt Activity L cu ni gia cc Activity:ng dng Android th ng bao gm nhiu

    Activity, mi Activity hot ng c lp v i nhau v thc hin nhng cngvic khc nhau. Intent chnh l ngi a th, gip cc Activity c thtriu gicng nh truyn cc d liu cn thit t i mt Activity khc. iu ny cng

  • 7/31/2019 Xay Dung Phan Mem Contact

    27/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 27Sinh vin: Tr n H u Ph c

    ging nh vic di chuyn qua li gia cc Forms trong lp trnh WindowsForm.

    Hnh 1-19 Truy n d liu gi a 2 Activity D liu ca Intend:

    Intent v c bn l mt cu trc d liu, c m t trong l pandroid.content.Intent

    Cc thuc tnh ca mt i t ng Intend:

    Hnh 1-20 Cc thu c tnh c a Intend Cc Action c nh ngh a sn:

    Di y l nhng hng String c nh ngh a sn trong l p Intent.i km vi n l cc Activity hay Application c xy dng sn s ctriu gi mi khi Intent tng ng c gi (tt nhin khi c cung cpng data). VD: Gi t i mt s in thoi:

    Intent dialIntent =new Intent(Intent.ACTION_DIAL, Uri.parse("tel:123456"));

    startActivity(dialIntent);

  • 7/31/2019 Xay Dung Phan Mem Contact

    28/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 28Sinh vin: Tr n H u Ph c

    Hnh 1-21 Cc Actio n c nh ngh a s n trong Intend

    8. CONTENT PROVIDER V URITrong 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 hthngAndroid s dng lu trthng tin cngcho php chng ta truy vn d liu nh mtCSDL MSSQL thng th ng. Tuy nhin, trong h thng chng ta khng cn phithao tc bng lnh SQL nhiu truy xut d liu m thay vo Android ctrang b mt API cho php ng i lp trnh c thddng truy xut d liu. gi lContentProvider. ContentProvider cung cp cho chng ta mt i t ng con tr gipchng ta c th d dng ly c bt c d liu lu trno 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 b i Content Provider v n

    khng bao gi thay i.

    Phn B: Phn ny ch n ni lu trd liu. Cng ging nh cu trc ca mt s in thoi th ci ny c thhnh dung n nh l m quc gia hoc cng c thcoi nnh l tn ca CSDL.

    Phn C: Phn ny ch ra loi d liu. Chng hn nh, dliu contact, d liuSMS, Phn ny c th coi n nh l tn ca mt table

  • 7/31/2019 Xay Dung Phan Mem Contact

    29/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 29Sinh vin: Tr n H u Ph c

    Phn D: Phn ny ch n ng vtr ca d liu, c th coi phn ny nh l IDca 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 b i mt Uri ta cn c 2i t ng con tr c cung cp bi Activity l:Cursor v ContentResolver.

    ly c 2 i t ng ny th trong Activity s dng hmgetContentResolver() trv i t ng ContentResolver.

    getContentResolver().query(Uri uri); trv i t ng Cursor.9. BACKGROUND SERVICE

    Service l 1 trong 4 thnh phn chnh trong 1ng dng Android (Activity, Service,

    BroadcastReceiver, ContentProvider) thnh phn ny chy trong hu tr ng v lmnhng cng vic khng cn t i giao din nh chi nhc, download, x l tnh ton

    M t Service c th c s d ng theo 2 cch:N c th c bt u v c cho php hot ng cho n khi mt ng i no dng n li hoc n t ngt. ch ny, n c bt u bng cch giContext.startService() v dng bng lnh Context.stopService(). N c th t ngt bng lnh Service.stopSelf() hoc Service.stopSelfResult(). Ch cn mtlnh stopService() ngng Service li cho d lnh startService() c gi rabao nhiu ln.Service c th c vn hnh theo nh c lp trnh vic s dng mtInterface m n nh ngh a. Cc ng i dng thit lp mt ng truyn ti it ng Service v s dng ng kt ni thm nhp vo Service. Kt niny c thit lp bng cch gi lnh Context.bindService() v c ng libng cch gi lnh Context.unbindService(). Nhiu ng i dng c th kt nit i cng mt thit b. Nu Service vn cha c kh i chy, lnh bindService()c th ty kh i chy n. Hai ch ny th khng tch bit ton b. Bn cth kt ni v i mt Service m n c bt u v i lnh startService(). V d, mt Service nghe nhc ch nn c th c bt u bng cch gi lnhstartService() cng v i mt i tng Intent m nh dng c m nhc chi. Ch sau , c th l khi ng i s dng mun kim sot trnh chi nhchoc bit thm thng tin vbi ht hin ti ang chi, th sc mt Activity tolp mt ng truyn t i Service bng cch gi bindService(). Trong tr nghp nhth ny, stopService() s khng thc s ngng Service cho n khilin kt cui cng c ng li.

  • 7/31/2019 Xay Dung Phan Mem Contact

    30/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 30Sinh vin: Tr n H u Ph c

    Ging nh mt Activity, mt Service cng c cc phng thc chu k thi gian mbn c th ci t kim sot nhng s thay i trong trng thi ca n. Service chc 3 phng thc c gi n trong chu tr nh 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 cachu k thi gian ca mi Service Entire lifetimeca mt Service din ra gia thigian onCreate() c gi ra v thi gian m onDestroy() tr li. Ging nh mtActivity, mt Service li tit hnh ci t ban u onCreate(), v gii phng tt ccc ti nguyn cn li onDestroy() V d, mt Servicepht li nhc c th to ra mtlung 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 tistartService() Service m nhc s m i tng Intent quyt nh xem s chi loinhc no v bt u pht nhc. Khng c callback tng ng no cho thi imService ngng li khng c phng thc onStop(). Cc phng thc onCreate()vonDestroy() c gi cho tt c cc Service d chng c c bt u bngContext.startService() hoc Context.bindService() hay khng. Tuy nhin, onStart() chc gi ra i vi cc Service bt u bng startService(). Nu mt Service cho phpnhngService khc kt ni vi n th s c thm cc phng thc callback dnh choService 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 bindServicev onUnbind() c chuyn giao i tng m c chuyn n. Nu Serviceang c ch nh (binding), onBind() quay tr li knh thng tin m ngi dng sdng tng tc vi Service. Phng thc onUnbind() c th yu cu onRebind()c gi nu mt ngi dng kt ni vi Service.

  • 7/31/2019 Xay Dung Phan Mem Contact

    31/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 31Sinh vin: Tr n H u Ph c

    Biu di y minh ha cho cc phng thc callback ginh cho mt Service.

    Hnh 1-22 Chu trnh s ng ca mt Service

    Mc d, n phn tch cc Service c to ra thng qua startService vi ccServicem c to ra bng bindService(). Hy nh rng bt k Service no, cho dn c khi to nh th no th n vn c th cho php cc ngi dng kt ni ti nmt cch hiu qu nht, cho nn bt k Service no cng c th c ch nh thngqua cc cc phng thc onBind()v onUnbind().

    hiu hn vService chng ta hy lm mt v dnhsau:u tin, m file AndroidManifest.xml v to mt tham chiu n class Service

    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();

  • 7/31/2019 Xay Dung Phan Mem Contact

    32/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 32Sinh vin: Tr n H u Ph c

    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 tonkhng c s khc bit g. Bin Timer ny s c ci t vo bn trong hm onCreatenh sau:

    timer.scheduleAtFixedRate(new TimerTask() {

    public void run() {//Do somthing

    }}, 0, 5000);

    Khi mun dng Service li th ch cn huThread Timer bng hm timer.cancel();

    Cui cng l khi ng Service tActivity:Intent svc = new Intent(this, MyService.class);

    startService(svc, Bundle.EMPTY);

    10. TELEPHONYTelephony l mt trong 4 thnh phn chnh ca mt h thng Android. N cho

    php ng i lp trnh c th ly cc thng tin ca h thng nh thng tin SIM, thngtin thit b, thng tin mng, Ngoi ra, chng ta cng c th ci t cc thng s chothit b nu cc thng s c th thay i c. Tt c nhng iu c qun lb i mt class TelephonyManager trong Android.

    TelephonyManager telMan =(TelephonyManager)getSystemService(Context.TELEPHONY_SEVICE);

    Vd: Ly thng tin ID thit b

    telMan.getDeviceId(); Ly thng tin sserial SIMtelMan.getSimSerialNumber();

    11. SQLITESQLite l mt dng CSDL tng t nh Mysql, PostgreSQL... c im ca

    SQLite lgn, nh, n gin. Chng tr nh 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 h p v i nhng h thng ln nhng quy m va tm thSQLite pht huy uy lc v khng h yu km vmt chc nng hay tc . V i ccc im trn SQLite c s dng nhiu trong vic pht trin, th nghim v..v.. v l

  • 7/31/2019 Xay Dung Phan Mem Contact

    33/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 33Sinh vin: Tr n H u Ph c

    s la chn ph h p cho nhng ng i bt u hc database. Hin nay th SQLite c ng dng vo smartphone nh iPhone v Android lu trd liu.

    c thddng thao tc v i SQLite chng ta c ths dng trnh duyt FireFoxv ti vplugin 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 & WEBSERVICE12.1. Khi nim Web service v SOAPWebservice l mt dch v cung cp c chtriu gi cc i t ng t xa thng qua

    giao thc HTTP cng vi c chtruyn ti nh dng i t ng theo cng nghXML.Chnh v s dng giao thc HTTP ca Web nn gi y cc l i gi tr nn n ginv thng qua c cc ro cn v t ng la. m bo iu ny, mt giao thc m il SOAP (Simple Object Access Protocol) ra i h tr cho Web services. SOAPc nh ngh a da trn giao thc chun HTTP, SOAP cho php d liu chuyn ibng HTTP v nh dng theo chun XML. Cc l i gi hm tham s truyn hm, d

  • 7/31/2019 Xay Dung Phan Mem Contact

    34/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 34Sinh vin: Tr n H u Ph c

    liu trv t hm, tt c u c chuyn sang dng XML v c thddng x l b itt c cc ngn ng. Mt thmnh khc l nu cc i t ng phn tn xy dngtrn m hnh Web services sc th triu gi ln nhau, bt chp i tng cvit trn ngn ng Java ca Sun hay .NET ca Microsoft. Hin ti, SOAP c coi lmt s thayi l n 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

    canhnglp Java qua dng XML hay ngc li. N l mt m ngun m, c thitlp t thng ging nm 2004.

    Trong mt n IT i khi bn cn phi chuyn cc i tng cacc lpJava ccha thng tin v a n qua dng XML. Vic lm ny gipmang thng tin t hthng ny qua h thng khc bng nhng gi hay tp tin XML (gi s cc h thngny vit bng ngn ng Java). N cnggip bn trnh c nhiu phin toi nh

    cch sp t chuyn kiu cho hai d liu gia hai h thng. Do dng dngXMLnh l phng tin trao i d liu gia hai h thng l cch hu hiu nht.Sau khih thng nhn c d liu nm dng XML ri, th vic k tip l ngi lp tr nhch 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 tr n. Nubn khng dng XML nh l phng tin trao id liu, th trong Java cng c ccha i tng Java t ni ny sang ni khc l dng Serialize. Bi ny khng ni nSerialize, m ch ni n cng c XStream.Tt nhin, ngoi XStream ra cng c mtcng c na c chc nng tng cn cbit n vi ci tn Castor.

    Th vin XStream c th ti tihttp://xstream.codehaus.org/index.html Cch s dng th vin XStream:

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

  • 7/31/2019 Xay Dung Phan Mem Contact

    35/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 35Sinh vin: Tr n H u Ph c

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

    Toclass 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 thu c tnh trong bi n s newJoe thuc lp Person System. out .println("\nIn ra thng tin c a bin newJoe

    v i 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 tr nh 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 vPhoneNumbernh sau:

    Cho ra dng xml l:

  • 7/31/2019 Xay Dung Phan Mem Contact

    36/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 36Sinh vin: Tr n H u Ph c

    JoeWalnes

    110111-111-1111

    220222-221-2222

    12.3. Thao tc vi web service trong Android Cch gi hm twebservice dotNet trong Androidnh sau:

    Input: cc tham skiu String

    Output: gi tr kiu String public static Result addUser( int from, String username, Stringdisplay_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, URL xc nh tn phngthc, port m webservice ang sdng,

  • 7/31/2019 Xay Dung Phan Mem Contact

    37/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 37Sinh vin: Tr n H u Ph c

    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 catham bin.

    Sau khi thc hin lnh gi hmtrans.call(SOAP_ACTION, envelope); th cc gi

    tr truyn vo s c chuyn i thnh XML v truyn ln webservice.Kt qu trv thng qua i t ng SoapPrimitive hoc SoapObject. i v i gi

    tr trv l mt kiu chui th c th thc hin p kiu trc tip nhng cni v i gitr trv l mt kiu danh sch thi t ng SoapObject cho php ta c thduyt t itng phn t trong danh sch. Thc cht l mt qu trnh m ho v gii m mtni dung XML m c SOAP h tr .

    Phng thc di y sm tcch nhn vd liu kiu danh sch t webservice: public static ArrayList 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 bki = new ArrayList();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;}

  • 7/31/2019 Xay Dung Phan Mem Contact

    38/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 38Sinh vin: Tr n H u Ph c

    CHNG2: PHN TCH V THIT K H THNG

    13. C T BI TONi v i mi chic in thoi di ng Contact lng 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 m i nht l 2.1 hin nay cng c h tr ng dngContact v i nhiu chc nng c bn ging ccng dng thng th ng khc trn ccin thoi di ng. Ngoi ra, cn c mt s chc nng ni tri nh:

    - H tr k t n i v i ng d ng Map, c th nh v ng i cn lin l c thng quaa ch c lu trong Contact.

    - Cho php lu tr nhi u s in tho i, email, address c a ng i dng trongContact.

    - Cho php ng b ho gi a cc contact trong in tho i v trong ti kho n

    Gmail v ti kho n trn m ng x h i facebook. Mc d,ng dng contact ca Android cung cp kh nhiu chc nng nhngng dng ny vn cn nhiu hn ch, c bit thiu nhiu chc nng c bn nh qunl Group, xc lp li s in thoi chnh hay Email chnh. Ngoi ra, v i mt s ng is dng ththng tin lu trong Contact cng rt quan trng. phng mt in thoihay trnh ng i khc truy cp vo nhng thng tin khc c lu trong in thoihoc 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 snc trong Android, s p ng nhu cu bo mt thng tin c nhn c lu trong

    Contact, ng th i ci tin mt vi chc nng khc cn hn chca ng dng Contacttrong Android nhm gip chong i 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 ng is dng in thoi Android qun l cc contact ca hmt cch an ton, hiu qu, d dng chia s, ddng 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 trton b s contact ca

    h vo ti khon online. Tuy nhin, mt s thng tin t s dng s c l c b b tnhm gim kch th c 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.

  • 7/31/2019 Xay Dung Phan Mem Contact

    39/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 39Sinh vin: Tr n H u Ph c

    2. Phn tch list cc contact thnh ni dung XML da vo k thutXStream.

    3. Kt ni t i webservice v gi ni dung XML km theo cc thng tin tikhon ng i dng cn thit.

    4. Webservice lu ni dung XML vo ng ti khon ng i dng.5. Webservice tr vmt thng ip thng bo l lu hoc nu khng lu

    c.

    Hnh 2-1. Qu trnh upload n i dung XML t i Webserver b ng giao th c SOAP.

    14.2. Revert phone book M t chc nng:

    Cho php ng i dng c th ly li cc bn phone book m tng upload tr cy.

    M t hot ng: 1. Ng i dng chn phin bn cn upload.

    2. ng dng gi ID ca phin bn v thng tin v ti khon ng i dng t iwebservice.3. Webservice chu trch nhim tm kim d liu tng ng vi ID m ng i

    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 tr c khi thay thphone book.6. Ghi cc d liu trong phin bn ly v vo in thoi.

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

    XStream

    SOAP, XML

    Message

    ID + Account info

    Phonebook XML content

  • 7/31/2019 Xay Dung Phan Mem Contact

    40/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 40Sinh vin: Tr n H u Ph c

    14.3. Send contact M t chc nng:

    Cho php ng i dng gi mt hoc nhiu contact t i mt hoc nhiu ng i khccng 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 t i 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 ng i nhn v tr v thngip nu gi thnh cng.

    14.4. Reveive contactM tchc nng:

    Thng bo ti ng i dng nu c ai gi contact t i ti khon ca h bng mtthng ip. ng th i, ng i dng cng c th xem, lu cc contact hoc g b chng.

    Hnh 2-3 Qu trnh g i v nh n contact

    14.5. Export contact ti SD Card M tchc nng:

    Chc nng export to an SD Card cho php ng i dng chia s hoc backup cccontact ca hvo thnh d i dng XML. Khi ng i dng cn chia sh c th traoi thng qua th nh hoc c th gi file XML ny i bt k u v ng i nhn cthphn tch file XMLny thnh cc contact nh c.

    XML content,sender, receiver

    Check new contactGet new contact

    Client A

    Client B

  • 7/31/2019 Xay Dung Phan Mem Contact

    41/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 41Sinh vin: Tr n H u Ph c

    Hnh 2-4 Qu trnh l u contact xu ng SD Card

    14.6. Import contact t SD Card M tchc nng:

    Ng c li v i chc nng export to SD Card th chc nng ny c dng phntch ng c li tmt file XML thnh cc contact.

    Hnh 2-5 Qu trnh c contact t SD Card

    14.7. Account Manager14.7.1. Login

    M tchc nng: Chc nng login khng phi c thit k bo v h thng m ch yu l s

    dng qun l ng i dng v d liu ngi dng trn server. Khi ng i dng loginth username and password s c lu li lm cha kho lin lc vi server, mbo rng d liu c an ton v ddng truy xut. Hay ni cch khc mi usernamel mt nh danh gip server qun l c d liu ca h.

    14.7.2. Change passwordM tchc nng:

    Chc nng ny gip ng i dng qun l an ton hn ti khon ca h. s dng c chc nng ny bt buc ng i dng phi ng nhp vo ti khon c.

    Sau ng i dng touch chn passowrd m i thng dng s gi password m i vcc thng tin ng i dng ln web service v web service s thc hin vic thay ipassword. Chc nng ny s c m t k hn chng 2.

    14.7.3. Restore accountM tchc nng:

    XStreamconvert

    Write file

    Read file XStream

  • 7/31/2019 Xay Dung Phan Mem Contact

    42/62

  • 7/31/2019 Xay Dung Phan Mem Contact

    43/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 43Sinh vin: Tr n H u Ph c

    Hnh 2-7 S Usercase t ng qut

    15.1.1. Restore account

    Hnh 2-8 Usercase khi ph c ti kho n

    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

  • 7/31/2019 Xay Dung Phan Mem Contact

    44/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 44Sinh vin: Tr n H u Ph c

    15.1.4. Login

    Hnh 2-11 Usercase ch c nng Login

    15.2. Biu Class 15.2.1. Biu Class gia cc th nh ph n giao din

    Hnh 2-12 Biu class Contact

    15.3. Biu Class Contact

    Hnh 2-13 Biu class Contact

    15.4. Biu Class ContactProvider

  • 7/31/2019 Xay Dung Phan Mem Contact

    45/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 45Sinh vin: Tr n H u Ph c

    ContactProvider l mt Class dng c/ghi trn phone book.

    Hnh 2-14 Biu class ContactProvider

    15.5. Class WebserviceClass Webservice c dng kt ni v trao i d liu v i web service.

    Hnh 2-15

    15.6. Biu Sequence 15.6.1. Login

    Hnh 2-16 Biu sequence ch c nng Login

    Bc 1: Ng i dng nhp username, password v nhn nt loginB c 2: Chc nng Login thc hin triu gi hm CheckLogin trn webservice v

    truyn cc tham susername, password vo.B c 3: Hm CheckLogin truy vn vo CSDL kim tra username v password

    c tn ti hay khng.

  • 7/31/2019 Xay Dung Phan Mem Contact

    46/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 46Sinh vin: Tr n H u Ph c

    B c 4, 5, 6: Trvkt quvalid, invalid hoc exception do li kt ni.

    15.6.2. Create new account

    Hnh 2-17. Biu tun t chc nng to ti kho n m i

    Bc 1: Ng i dng nhp username, password, confirm password, email.B c 2: Kim tra thng tin nhp vo c h p lhay khng.B c 3: Triu gi hm to ti khon trn web service. ng th i, gi ln cc tham

    s tng ng.B c 4: Hm to ti khon trn web service s thc hin lnh SQL insert thng

    tin ti khon m i vo.B c 5, 6: Trvkt qu ca qu trnh to ti khon cho ng i dng bng mt

    message.

  • 7/31/2019 Xay Dung Phan Mem Contact

    47/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 47Sinh vin: Tr n H u Ph c

    15.6.3. Restore account

    Hnh 2-18. Biu tun t chc nng khi phc ti kho n

    Bc 1: Ng i dng nhp a ch email d phng c nhp trong qu trnh toti khon trc y.

    B c 2: Kim tra biu thc email c chnh xc hay khng. B c ny nhm mcch gim th i gian kim tra trn server nu nh email khng chnh xc.

    B c 3: Triu gi t xa hm RestoreAccount trn web service.B c 4: Thc hin truy vn ly v thng tin ti khon trong CSDL.B c 5, 6: Tr thng tin ti khon vClient.

    B c 7: Client s thc hin gi thng tin ti khon vo email dphng ca ng idng. Ng i dng s truy cp email d phng ca h xem li thng tin ti khon vc th ng nhp li i thng tin ti khon.

  • 7/31/2019 Xay Dung Phan Mem Contact

    48/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 48Sinh vin: Tr n H u Ph c

    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 listB c 3: Chuyn i Contact list thnh XMLB c 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 CSDLtng ng v i ti khon ca ng i dng.

    B c 6, 7: Trvkt 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

  • 7/31/2019 Xay Dung Phan Mem Contact

    49/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 49Sinh vin: Tr n H u Ph c

    B c 3: Chuyn i Contact list thnh XMLB c 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 CSDLt ngng v i ti khon ca ng i dng.

    B c 6, 7: Trvkt 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.B c 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 thhin mc h thng qu trnh gi cc Contactt i mt ti khon no cng c qun l b i h thng.

  • 7/31/2019 Xay Dung Phan Mem Contact

    50/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 50Sinh vin: Tr n H u Ph c

    tit kim bnh , khi hin th mt Contact list no th ch nhng thng tincn hin th c load vo bnh cn nhng thng tin khc th khng c load. Vvy, gi cc Contact t i 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.

    B c 5,6: Convert Contact list thnh ni dung XML v triu gi t xa hmSendContact t web service. ng th i truyn vo cc tham s l ni dung cn gi vcc thng tin cn thit nh ng i gi, ng i nhn, ngy gi,

    B c 7: Add ni dung gi v cc thng tin gi vo mt table. T table ny tt c cc ng i dng s truy cp vo v ly cc d liu ca h.B c 8,9: Trvmt thng ip thng bo cho ng i dng bit l gi c hay

    cha cng nh cc tr ng h p li.

  • 7/31/2019 Xay Dung Phan Mem Contact

    51/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 51Sinh vin: Tr n H u Ph c

    15.7. Biu Activity 15.7.1. Change password

    Hnh 2-24

  • 7/31/2019 Xay Dung Phan Mem Contact

    52/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 52Sinh vin: Tr n H u Ph c

    15.7.2. Export Contact to SD Card

    Hnh 2-25 15.7.3. Upload phone book

    Hnh 2-26

  • 7/31/2019 Xay Dung Phan Mem Contact

    53/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 53Sinh vin: Tr n H u Ph c

    15.7.4. Send Contact

    Hnh 2-27

    15.7.5. Revert phone book

    Hnh 2-28

  • 7/31/2019 Xay Dung Phan Mem Contact

    54/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 54Sinh vin: Tr n H u Ph c

    15.7.6. Import Contact from SD Card

    Hnh 2-29

    16. C S D LIU WEB SERVICE

    Hnh 2-30

  • 7/31/2019 Xay Dung Phan Mem Contact

    55/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 55Sinh vin: Tr n H u Ph c

    Bng ACCOUNTS: c dng lu trthng tin ti khon ng i dng.Thuc tnh ca cc field nh sau:

    Field Name Type

    USERNAME nvarchar(50)

    PASSWORD nvarchar(50)

    EMAIL nvarchar(100)

    USERID bigint, primary key

    B ng 2-1

    Bng BACKUP_CONTACT

    c dng lu trcc phin bn phone book ca ng i dngThuc 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

    B ng 2-2

    Bng MYUSERNAMEc dng lu trtn ti khon ca nhng ng i bn c s dng h thng

    phone book safe. Cng ging nh khi chat yahoo hoc skype thu c mt contactlist nhm gip bn ddng qun l v tm kim khi cn.

    Thuc tnh:Field Name Type

    USERID bigint

    DISPLAY_NAME nvarchar(100), allow null

    USERNAME nvarchar(50)

  • 7/31/2019 Xay Dung Phan Mem Contact

    56/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 56Sinh vin: Tr n H u Ph c

    IMAGE image, allow null

    ID bigint

    B ng 2-3

    Bng SHAREKhi mt user no gi d liu t i mt ng i khc th d liu km cc thng

    tin lin quan s c lu vo bng ny. Ccng dng s t ng truy cp vo bngny 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

    B ng 2-3

  • 7/31/2019 Xay Dung Phan Mem Contact

    57/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 57Sinh vin: Tr n H u Ph c

    CHNG 3: DEMONG DNG

    17. MT VI HNHNH NG DNG

    Hnh 3-1 Login

    Hnh 3-2 ang Login

    Hnh 3-3 Sau Login

    Hnh 3-4 Cc ch c nng

    Hnh 3-5 Revert phonebook

    Hnh 3-6 Upload phonebook

    Hnh 3-7 Send Contact

    Hnh 3-8 c Contact g i

    Hnh 3-9 Nhn Contact

  • 7/31/2019 Xay Dung Phan Mem Contact

    58/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 58Sinh vin: Tr n H u Ph c

    18. S LIN KT CC MN HNH V DIALOG18.1. Danh sch cc lin k t mn hnh mc 1&2

    18.2. Danh sch lin kt cc mn hnh mc 3 18.2.1. Mn hnh View Contact

    18.2.2. Mn hnh danh sch cc Contact m i

    18.2.3. Mn hnh danh sch phone bool upload

    Mn hnh Login

    Mn hnh danh schcc Contact

    Dialog nhp ch thchupload phone book

    Mn hnh danh sch phonebook upload

    Mn hnh qun l danhsch ti khon

    Dialog changepassword

    Mn hnh danh sch tikhon ng dng

    Dialog to ti khonm i

    Dialog khi phc tikhon

    Dialog thng bocontact m i

    Mn hnh nhn contactm i

    ProgressDialog ExportContact

    Mn hnh ImportContact

    Mn hnh Add Contactm i

    WarningDialog xoContact

    Mn hnh Edit Contact

    Panel tm kimContact

    Mn hnh View Contact

    Mn hnh ViewContact

    Mn hnh Edit Contact

    Mn hnh danh sch phonebook upload

    Mn hnh chi titphone book

    Mn hnh danh schcc Contact m i

    Mn hnh xem chi titContact

  • 7/31/2019 Xay Dung Phan Mem Contact

    59/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 59Sinh vin: Tr n H u Ph c

    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 hnhnh ln server (issue)L do: Trong Android tt c cc hnhnh khi c vo bnh u c m

    ho thnh i tng Bitmap. i t ng ny khng th tip tc m ho luvo file XML. Mt khc, webservice l mt k thut cho php triu gi cchm 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.

    H ng gii quyt: S dng k thut JSON. y cng l mt k thut giplin lc gia client v i web service. Tuy nhin, k thut ny cho php chng taduy tr c kt ni v i server thng qua giao thc http. V vy, d liu c th c truyn ln server theo Stream.

    ListView cun khng m t (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 choListView b git mi ln cun.

    H ng gii quyt: cha c.

    20. HNG PHT TRIN TRONG TNG LAI

    Chc nng gi v nhn tin nhn thng qua wifi

  • 7/31/2019 Xay Dung Phan Mem Contact

    60/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 60Sinh vin: Tr n H u Ph c

    Chc nng ny s c pht trin trong tng lai nhm mc ch gip nhngngi th ng xuyn c kt ni wifi c thgi tin nhn m khng mt tin. Tin nhnn s c thng bo bng dialog ngay trn mn hnh desktop v kckhi dang s dngng dng khc.

    Chc nng gi th thoi thng qua wifiChc nng ny stn dng chc nng thu m c trang b trong cc my

    Android. D liu s c ng gi v truyn ln ti khon ng i nhn.

    Chc nng hud liu

    Khi b mt in thoi thiu m ng i dng lo lng nht chnh l nhng d liuc nhn trong . Chc nng ny st ng hu cc d liu c ch nh sn trongthnh hoc bnh my khi nhn c yu cu thng qua tin nhn hoc wifi. Ngoira ng i dng cn c th thit lp c chhud 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 nphn mm trn mobile ni chung ng th i hiu thm c nhiu kin thc v Android v cc cng ngh linquan nh l XML, XStream, Web service v SOAP,

  • 7/31/2019 Xay Dung Phan Mem Contact

    61/62

    Tm hi u v xy d ng ng d ng Phone Book Safe Manager trn Android

    Page | 61Sinh vin: Tr n H u Ph c

    NH GI CA GIO VIN.............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    ...............................................................................................................................................................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

    .............................................................................................................................

  • 7/31/2019 Xay Dung Phan Mem Contact

    62/62

    Tm hi u v xy d ng ng d ng 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 AProgrammers 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