Android Application Developement Android Application Development Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Android Application Development Editor Production Editor Copyeditor.
Trang 3Android Application Development
5LFN5RJHUV-RKQ/RPEDUGR=LJXUG0HGQLHNVDQG%ODNH
0HLNH
Trang 4Android Application Development
E\5LFN5RJHUV-RKQ/RPEDUGR=LJXUG0HGQLHNVDQG%ODNH0HLNH
&RS\ULJKW5LFN5RJHUV-RKQ/RPEDUGR=LJXUG0HGQLHNVDQG%ODNH0HLNH$OOULJKWVUHVHUYHG 3ULQWHGLQWKH8QLWHG6WDWHVRI$PHULFD
3XEOLVKHGE\2¦5HLOO\0HGLD,QF*UDYHQVWHLQ+LJKZD\1RUWK6HEDVWRSRO&$ 2¦5HLOO\ERRNVPD\EHSXUFKDVHGIRUHGXFDWLRQDOEXVLQHVVRUVDOHVSURPRWLRQDOXVH2QOLQHHGLWLRQV
DUHDOVRDYDLODEOHIRUPRVWWLWOHVKWWSP\VDIDULERRNVRQOLQHFRP )RUPRUHLQIRUPDWLRQFRQWDFWRXU FRUSRUDWHLQVWLWXWLRQDOVDOHVGHSDUWPHQW RUFRUSRUDWH#RUHLOO\FRP
Cover Designer: .DUHQ0RQWJRPHU\
Interior Designer: 'DYLG)XWDWR
:KLOHHYHU\SUHFDXWLRQKDVEHHQWDNHQLQWKHSUHSDUDWLRQRIWKLVERRNWKHSXEOLVKHUDQGDXWKRUVDVVXPH QRUHVSRQVLELOLW\IRUHUURUVRURPLVVLRQVRUIRUGDPDJHVUHVXOWLQJIURPWKHXVHRIWKHLQIRUPDWLRQFRQ WDLQHGKHUHLQ
TM
7KLVERRNXVHV5HS.RYHUDGXUDEOHDQGIOH[LEOHOD\IODWELQGLQJ
,6%1
Trang 5Table of Contents
Preface ix
Part I Development Kit Walk-Through
1 Getting to Know Android 3
Trang 78SORDGLQJ<RXU$SSOLFDWLRQ
Part II Programming Topics
8 Persistent Data Storage: SQLite Databases and Content Providers 101
Trang 9%LQGHUDQG/LQX[
14 Simple Phone Calls 277
&UHDWLQJDQ([DPSOH$SSOLFDWLRQWR5XQWKHFDOO0HWKRG (PEHGGLQJWKH&RGH6QLSSHWLQD6LPSOH$SSOLFDWLRQ
Trang 11:KHQ*RRJOHDQQRXQFHGWKHGHYHORSPHQWRI$QGURLGWKHILHOGRIPRELOHSODWIRUPVZDVDOUHDG\ZHOOHVWDEOLVKHG(YHQLQWKHQDUURZHUFDWHJRU\RIRSHQVRXUFHSODWIRUPVDQXPEHURIYLDEOHDOWHUQDWLYHVZHUHEHLQJSXVKHGE\SURSRQHQWV<HW$QGURLGKDVVWLPXODWHGQRWRQO\ZLGHVSUHDGWHFKQLFDOLQWHUHVWEXWUDPSDQWVSHFXODWLRQDERXWLWVSRWHQWLDOWRFRPSOHWHO\WUDQVIRUPWKHZRUOGRIWKHSHUVRQDOGHYLFH,QVWHDGRIDFRQYHQLHQWSURSWRVXSSRUWDVHWRIIDPLOLDUIXQFWLRQVVXFKDVSKRQHFDOOVHPDLODQGUHVWDXUDQWORRNXSVWKHHOHFWURQLFGHYLFHFRXOGEHFRPHDQRSHQHQGHGZLQGRZLQWRWKHZKROHZRUOG¢FRXOGEHFRPHLQVKRUWDQ\WKLQJWKDWWKHXVHUDQGWKHGHYHORSHUFRXOGWKLQNWRPDNHLW
+RZPXFKRIWKHFRJHQWDQDO\VLVDQGIHUYLGK\SHZLOOFRPHWRSDVVFDQEHGLVFXVVHGHOVHZKHUHWKLVERRNLVIRUWKRVHZKRZDQWWRJHWWRNQRZWKHSURJUDPPLQJHQYLURQPHQWIRU$QGURLGDQGOHDUQZKDWWKH\WKHPVHOYHVFDQGRWRPDNHDGLIIHUHQFH:HKDYHVSHQWPDQ\JUXHOLQJPRQWKVLQYHVWLJDWLQJWKHVRXUFHFRGHRYHUPXOWLSOHUHOHDVHVDQGWU\LQJRXWWKHIXQFWLRQVRIWKHOLEUDU\DQGGHYHORSPHQWNLW:HKDYHEHHQZRUNLQJKDUGWRXQFRYHUWKHWUXH$QGURLGJRLQJEH\RQGDQ\GRFXPHQWDWLRQZHFRXOGILQGRQOLQHRULQSULQW
7KLVERRNUHDGFDUHIXOO\FDQHQDEOHDQ\-DYDSURJUDPPHUWRGHYHORSXVHIXODQGUREXVWDSSOLFDWLRQVIRU$QGURLG,WDOVRWDNHV\RXLQWRWKHLQWHUQDOVLQVRPHSODFHVVR\RXNQRZKRZ$QGURLGVXSSRUWVZKDW\RX¦UHGRLQJ¢DQGVR\RXFDQSOD\DURXQGZLWKLWVRSHQVRXUFHFRGHLI\RXOLNH
Audience
7KLVERRNLVLQWHQGHGIRUH[SHULHQFHGVRIWZDUHGHYHORSHUVZKRZDQWWRGHYHORSDSSOLFDWLRQVLQWKH$QGURLGPRELOHHQYLURQPHQW,WDVVXPHV\RXKDYHVRPHH[SHULHQFHZLWKWKH-DYDSURJUDPPLQJODQJXDJHZLWKXVLQJ-DYDWRLPSOHPHQWXVHULQWHUIDFHVDQGWKDW\RXDUHDWOHDVWIDPLOLDUZLWKWKHWHFKQRORJLHV$QGURLGXVHVVXFKDV;0/64/*7DON;033 2SHQ*/(6DQG+773
Trang 12How This Book Is Organized
7KLVERRNLVRUJDQL]HGDURXQGWKHFRUHH[DPSOHSURJUDPLQWURGXFHGLQ&KDSWHU/DWHUFKDSWHUVLOOXVWUDWHGHYHORSPHQWWHFKQLTXHVE\DGGLQJWRWKHH[DPSOHWKURXJKLPSOHPHQWLQJPRGXODUH[WHQVLRQVZKHUHWKLVLVIHDVLEOH6RPHFKDSWHUVDQGWKH$SSHQGL[ FRYHUPRUHDGYDQFHGWRSLFVWKDWDUHQRWUHTXLUHGIRUPDQ\DSSOLFDWLRQV
Trang 13Constant width bold
6KRZVFRPPDQGVRURWKHUWH[WWKDWVKRXOGEHW\SHGOLWHUDOO\E\WKHXVHU
Constant width italic
6KRZVWH[WWKDWVKRXOGEHUHSODFHGZLWKXVHUVXSSOLHGYDOXHVRUE\YDOXHVGHWHUPLQHGE\FRQWH[W
7KLVLFRQVLJQLILHVDWLSVXJJHVWLRQRUJHQHUDOQRWH
7KLVLFRQLQGLFDWHVDZDUQLQJRUFDXWLRQ
Using Code Examples
7KLVERRNLVKHUHWRKHOS\RXJHW\RXUMREGRQH,QJHQHUDO\RXPD\XVHWKHFRGHLQWKLVERRNLQ\RXUSURJUDPVDQGGRFXPHQWDWLRQ<RXGRQRWQHHGWRFRQWDFWXVIRUSHUPLVVLRQXQOHVV\RX¦UHUHSURGXFLQJDVLJQLILFDQWSRUWLRQRIWKHFRGH)RUH[DPSOHZULWLQJDSURJUDPWKDWXVHVVHYHUDOFKXQNVRIFRGHIURPWKLVERRNGRHVQRWUHTXLUHSHUPLVVLRQ6HOOLQJRUGLVWULEXWLQJD&'520RIH[DPSOHVIURP2¦5HLOO\ERRNVGRHV
Trang 14:HDSSUHFLDWHEXWGRQRWUHTXLUHDWWULEXWLRQ$QDWWULEXWLRQXVXDOO\LQFOXGHVWKHWLWOH
DXWKRUSXEOLVKHUDQG,6%1)RUH[DPSOH£$QGURLG$SSOLFDWLRQ'HYHORSPHQWE\5LFN
5RJHUV-RKQ/RPEDUGR=LJXUG0HGQLHNVDQG%ODNH0HLNH&RS\ULJKW5LFN5RJHUV-RKQ/RPEDUGR=LJXUG0HGQLHNVDQG%ODNH0HLNH¤,I\RXIHHO\RXUXVHRIFRGHH[DPSOHVIDOOVRXWVLGHIDLUXVHRUWKHSHUPLVVLRQJLYHQKHUH
IHHOIUHHWRFRQWDFWXVDWSHUPLVVLRQV#RUHLOO\FRP
Safari® Books Online
:KHQ\RXVHHD6DIDUL%RRNV2QOLQHLFRQRQWKHFRYHURI\RXUIDYRULWHWHFKQRORJ\ ERRN WKDW PHDQV WKH ERRN LV DYDLODEOH RQOLQH WKURXJK WKH2¦5HLOO\1HWZRUN6DIDUL%RRNVKHOI
6DIDULRIIHUVDVROXWLRQWKDW¦VEHWWHUWKDQHERRNV,W¦VDYLUWXDOOLEUDU\WKDWOHWV\RXHDVLO\VHDUFKWKRXVDQGVRIWRSWHFKERRNVFXWDQGSDVWHFRGHVDPSOHVGRZQORDGFKDSWHUVDQGILQGTXLFNDQVZHUVZKHQ\RXQHHGWKHPRVWDFFXUDWHFXUUHQWLQIRUPDWLRQ7U\LW
IRUIUHHDWKWWSP\VDIDULERRNVRQOLQHFRP
How to Contact Us
3OHDVHDGGUHVVFRPPHQWVDQGTXHVWLRQVFRQFHUQLQJWKLVERRNWRWKHSXEOLVKHU2¦5HLOO\0HGLD,QF
Trang 15:H¦GOLNHWRWKDQN%LOO'LPPLFN%UDG2¦+HDUQHDQG+\FHO7D\ORUIRUWKHLUWKRXJKWIXODQGFDUHIXOUHYLHZVRIWKLVERRNXQGHUDKLJKSUHVVXUHWLPHOLQH
Rick Rogers
/LNHDQ\WKLQJZRUWKGRLQJ,VXSSRVHWKLVERRNHQGHGXSWDNLQJPRUHWLPHDQGHIIRUWWKDQDQ\RIXVSODQQHGLQWKHEHJLQQLQJ,¦GOLNHWRWKDQNP\FRDXWKRUVDQGWKHJUHDWIRONVDW2¦5HLOO\IRUVWLFNLQJZLWKLWDQGEULQJLQJWKHZRUNWRIUXLWLRQWKURXJKDOOWKHWZLVWVDQGWXUQV,¦GDOVROLNHWRWKDQNP\IDPLO\DQGIULHQGVZKRHQFRXUDJHGPHDOOWKURXJKWKHSURFHVVDQGOHQWDQHDUZKHQ,MXVWQHHGHGWRWDON0RVWHVSHFLDOO\WKRXJK,ZDQWWRGHGLFDWHWKHERRNWRP\ZLIH6XVLHZKRVHSDWLHQFHNQRZVQRERXQGVDQGZKRVHDPD]LQJDWWLWXGHWRZDUGOLIHLVDQHQGXULQJLQVSLUDWLRQIRUPHQRPDWWHUZKDW,¦PGRLQJ
John Lombardo
,ZRXOGOLNHWRWKDQNP\ZRQGHUIXOZLIH'HQDZKRNHSWOLIHIURPLQWHUIHULQJZKHQ,FORVHGWKHRIILFHGRRUWRZRUNRQWKHERRN,ZDQWWRGHGLFDWHWKLVERRNWRP\PRWKHU0DUJXHULWH0HJDULVZKRGLHGVXGGHQO\LQ,JDYHKHUDFRS\RIP\ILUVWERRN
(PEHGGHG/LQX[1HZ5LGHUV EDFNLQ6KHFUDFNHGLWRSHQWRDSDJHZLWKVRPH
DVVHPEO\FRGHORRNHGDWLWIRUDERXWVHFRQGVFORVHGLWDQGVDLG£7KDW¦VQLFHGHDU¤:HKDGDJRRGODXJKRYHUWKDW,¦GDOVROLNHWRWKDQNDOOWKHZRQGHUIXOSHRSOHDW2¦5HLOO\IRU DOO WKHLU KDUG ZRUN ,¦G HVSHFLDOO\ OLNH WR WKDQN $QG\ 2UDP ZKR FRGGOHG DQGSURGGHGXVLQMXVWWKHULJKWGRVHVWRNHHSWKHERRNKXPPLQJDORQJDWDJRRGFOLS
Zigurd Mednieks
7KDQNVWR7HUU\0DLMDDQG&KDUOHVIRUSXWWLQJXSZLWKP\VFKHGXOHZKLOH,ZDVZULWLQJDQGWR$QG\2UDPDQGP\FRDXWKRUVIRUOHWWLQJPHSDUWLFLSDWHDQGKRSHIXOO\FRQWULEXWH
Blake Meike
,DPYHU\JUDWHIXOWRKDYHEHHQLQYLWHGWRZRUNZLWKVXFKDQDPD]LQJJURXSRISHRSOH7KDQNVWR=LJXUGIRUVXJJHVWLQJLW$QG\2UDPIRUSUDFWLFDOO\KROGLQJP\SHQDQG5LFN-RKQDQG,VDEHO.XQNOHIRUPDNLQJWKRVH7KXUVGD\PRUQLQJFDOOVDSOHDVXUH7KDQNVWR0LNH0RUWRQIRUDFWXDOO\UHDGLQJERWKWKHWH[WDQGWKHFRGH7KRXJKLWPD\VHHPREYLRXVWKDQNVWRWKH*RRJOH$QGURLGGHYHORSHUV1RWEDGJX\V1RWEDGDWDOO)LQDOO\ORYHDQGWKDQNVWRP\ZLIH&DWKHULQHZKRQHYHUOHWPHVHHDQ\GLVDSSRLQWPHQWZKHQ,VDLG\HWDJDLQ£&DQ¦W*RWWDZRUNRQWKHERRNWKLVZHHNHQG¤<HVEDEHOHW¦VGRWKHERRNFDVHQRZ
Trang 17PART I
Development Kit Walk-Through
7KLVERRNJHWV\RXVWDUWHGZLWK$QGURLG:H¦OOH[SODLQZKDW¦VVSHFLDODERXW$QGURLG¦VIHDWXUHVDQGKRZLWVDUFKLWHFWXUHDFKLHYHVLWVJRDOVDQGVKRZ\RXKRZWRJHWVWDUWHGSURJUDPPLQJ<RX¦OOOHDUQWKHWRROVWKDWOHW\RXZULWHSURJUDPVXVLQJ(FOLSVHUXQWKHPRQWKH$QGURLGHPXODWRUDQGFDUU\RXWGHEXJJLQJWUDFLQJDQGSURILOLQJ7KHODVWFKDSWHULQ3DUWVKRZV\RXKRZWRVLJQ\RXUSURJUDPIRUSXEOLFGLVWULEXWLRQ
Trang 19CHAPTER 1
Getting to Know Android
Why Android?
*RRJOH¦V$QGURLGPRELOHSKRQHVRIWZDUHSODWIRUPPD\EHWKHQH[WELJRSSRUWXQLW\IRUDSSOLFDWLRQVRIWZDUHGHYHORSHUV
*RRJOHDQQRXQFHGWKH2SHQ+DQGVHW$OOLDQFHDQGWKH$QGURLGSODWIRUPLQ1RYHPEHURIUHOHDVLQJWKHILUVWEHWDYHUVLRQRIWKH$QGURLG6RIWZDUH'HYHORSPHQW.LW6' DWWKHVDPHWLPH:LWKLQDPDWWHURIDIHZPRQWKVRYHUPLOOLRQSHRSOHKDGGRZQORDGHG YHUVLRQV RI WKH 6'. IURP *RRJOH¦V ZHEVLWH ,Q WKH 8QLWHG 6WDWHV 70RELOHDQQRXQFHGWKH*$QGURLGPRELOHSKRQHLQ2FWREHURIDQGHVWLPDWHVDUHWKDWVHYHUDOKXQGUHGWKRXVDQG*VZHUHVROGEHIRUHWKHHQGRIWKDW\HDU7KHUHDUHDOUHDG\VHYHUDOFRPSHWLQJPRELOHSKRQHVRIWZDUHVWDFNVLQWKHPDUNHWVRZK\LVWKHUHVXFKLQWHUHVWLQ$QGURLG"
$QGURLGKDVWKHSRWHQWLDOIRUUHPRYLQJWKHEDUULHUVWRVXFFHVVLQWKHGHYHORSPHQWDQGVDOHRIDQHZJHQHUDWLRQRIPRELOHSKRQHDSSOLFDWLRQVRIWZDUH-XVWDVWKHWKHVWDQGDUGL]HG3&DQG0DFLQWRVKSODWIRUPVFUHDWHGPDUNHWVIRUGHVNWRSDQGVHUYHUVRIWZDUH
$QGURLGE\SURYLGLQJDVWDQGDUGPRELOHSKRQHDSSOLFDWLRQHQYLURQPHQWZLOOFUHDWHDPDUNHWIRUPRELOHDSSOLFDWLRQV¢DQGWKHRSSRUWXQLW\IRUDSSOLFDWLRQVGHYHORSHUVWRSURILWIURPWKRVHDSSOLFDWLRQV
:K\KDVQ¦WLWEHHQSURILWDEOHWRGHYHORSPRELOHDSSOLFDWLRQVIRUVPDUWSKRQHVXQWLOQRZ"$QGZKDWDUHWKHSUREOHPVWKDW$QGURLGDOOHYLDWHV"
)UDJPHQWDWLRQ
$ERXWPLOOLRQVPDUWSKRQHVZHUHVROGLQVRWKHUHDUHDORWRISKRQHVDYDLODEOHWRUXQDSSOLFDWLRQVEXWHDFKEUDQGKDVDGLIIHUHQWDSSOLFDWLRQHQYLURQPHQW7KLVLVSDUWLFXODUO\WUXHRI/LQX[EDVHGSKRQHVZKHUHHDFKKDQGVHWYHQGRUKDVKDGWRDVVHPEOHVFRUHVRISLHFHVRIWKLUGSDUW\VRIWZDUHWRFUHDWHDYLDEOHPRELOHSKRQHSODWIRUP7KHUHLVQRFKDQFHWKDWWKH\ZRXOGDOOFKRRVHWKHVDPHFRPSRQHQWVWREXLOGDPRELOHVPDUWSKRQH
Trang 20-DYDZDVVXSSRVHGWRKHOSWKLVVLWXDWLRQZLWK-0(DQGWKHZLUHOHVV-DYDUHFRPPHQGDWLRQV &'& &/'& 0,'3 -7:, 06$ HWF SURYLGLQJ D FRPPRQDSSOLFDWLRQVHQYLURQPHQWDFURVVKDQGVHWV8QIRUWXQDWHO\DOPRVWHYHU\KDQGVHWWKDWVXSSRUWV-0(DOVRVXSSRUWYHQGRUSURSULHWDU\H[WHQVLRQVWKDWOLPLWWKHSRUWDELOLW\RIDSSOLFDWLRQV
3URSULHWDU\VRIWZDUHVWDFNV
0RVWH[LVWLQJVPDUWSKRQHVXVHSURSULHWDU\UHODWLYHO\FORVHGVRIWZDUHVWDFNVVXFKDV1RNLD¦V6HULHVZLWKWKH6\PELDQRSHUDWLQJV\VWHPRU0LFURVRIW¦V:LQGRZV0RELOH0RGLILFDWLRQVWRWKHVHVWDFNVDGGLQJDGULYHUIRUH[DPSOH KDYHWREHGRQHHLWKHUE\WKHVWDFNRZQHURUE\WKHKDQGVHWPDQXIDFWXUHU7KHVWDFNVDUHQRWRSHQVRXUFHVRFKDQJLQJDQ\WKLQJLQWKHVWDFNLVGLIILFXOWDWEHVW0RVW/LQX[EDVHGSKRQHVWRGDWHKDYHDQRSHQVRXUFHNHUQHODVUHTXLUHGE\WKH*3/OLFHQVH EXWNHHSRWKHUGHWDLOVRIWKHVRIWZDUHVWDFNDSSOLFDWLRQIUDPHZRUNPXOWLPHGLDIUDPHZRUNDSSOLFDWLRQV