nhập môn phát triển ứng dụng trên android

11 218 0
nhập môn phát triển ứng dụng trên android

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nhp môn phát trin ng dng Android  Mc : Nhp môn Frank Ableson, Software designer 22 01 2011 Android là mt môi trng h iu hành hoàn chnh da trên h iu hành nhân Linux® V2.6. Lúc u, ích trin khai i vi Android là lnh vc in thoi di ng, gm các loi in thoi thông minh và các loi thit b in thoi kiu gp chi phí thp. Tuy nhiên, phm vi y  các dch v in toán ca Android và s h tr chc nng phong phú ca nó có tim nng m rng vt ra ngoài th trng in thoi di ng. Android có th hu ích i vi các nn tng và ng dng khác. Trong bài vit này, bn s c gii thiu v nn Android và hc cách vit mã mt ng dng Android c bn. Gii thiu BlackBerry và iPhone, vi các nn di ng dung lng cao và hp d n, ang nh!m n hai u ngc chiu nhau ca ph" các in thoi di ng. BlackBerry vng ch!c nh á i vi nhng ngi s# dng mc nghip v chuyên nghi p. $ làm mt thit b tiêu dùng, nó khó cnh tranh c vi iPhone v tính d% s# dng và “yu t tuyt tác” (cool factor). Android, mt nn tng v n còn tr& và cha c kim chng, có tim nng óng vai trò  c hai u ca ph" các in thoi di ng và thm chí có th làm cu ni qua h sâu ngn cách gia làm vic và vui chi. Ngày nay, có nhi u thit b da trên mng hay có kh nng ni mng chy mt bin thái h iu hành nhân Linux. $ó là mt nn vng ch!c: có hiu qu v chi phí khi trin khai và h tr, và s'n sàng c chp nhn nh là mt cách tip cn thit k tt  trin khai. Giao din ngi s# dng dành cho các thit b nh vy thng da trên HTML và có th xem c b(ng mt trình duyt cho PC hay Mac. Nhng không phi vt dng nào c)ng cn iu khin b(ng mt thit b tính toán chung. Hãy xem xét mt vt dng thông thng, ch*ng hn nh mt lò nng, lò vi sóng ho+c  làm bánh mì. $iu gì xy ra nu các vt dng gia ình ca bn c Android iu khin và hãnh din khoe ra mt màn hình màu cm ng? Vi mt giao din ngi s# dng Android trên m+t lò, tác gi thm chí có th nu nng m t món gì ó. Trong bài này, chúng ta hãy tìm hiu v nn Android và cách có th s# dng nó nh th nào cho các ng dng di ng và không phi di ng. Hãy cài +t B công c phát trin phn mm Android (Android SDK) và xây dng mt ng dng n gin. Hãy Ti v mã ngun ca ng dng m u trong bài vit này. Lc s v Android N n Android là sn ph,m ca Open Handset Alliance (Liên minh thit b cm tay m), mt tp oàn các t" chc cùng hp tác vi nhau  xây dng nên mt loi in thoi di ng tt hn. Tp oàn do Google ng u này gm các nhà vn hành (in thoi) di ng, các nhà sn xut thit b cm tay, sn xut linh kin, các nhà cung cp nn và gii pháp phn mm, và các công ty tip th. T- mt quan im phát trin phn mm, Android n(m chính gia th gii mã ngu n m. Thit b cm tay có kh nng Android u tiên trên th trng là thit b G1 do HTC sn xut và c bán trên T- Mobile. Nó tr nên s'n có sau gn mt nm n i, khi mà các công c phát trin phn mm s'n có duy nht ch là mt s bn phát hành B công c phát trin phn mm (SDK) c ci tin dn t-ng bc. Khi ngày phát hành G1 gn n, nhóm Android ã phát hành SDK V1.0 và các ng dng b!t u vt lên nh(m ti nn tng mi này. $ kích thích "i mi, Google ã tài tr hai vòng cuc thi "Các Thách thc Nhà Phát trin Android," ni mà hàng triu ô la c " vào các ng dng d thi hàng u. Vài tháng sau G1, Android Market c phát hành, cho phép ngi s# dng duyt và ti v các ng dng trc tip vào in thoi ca h. Trong khong 18 tháng, mt nn di ng mi ã bc lên v) ài công khai. Page 1 of 11 Nh  p môn phát tri  n  ng d  ng Android Nn tng Android Vi kh nng rng rãi ca Android, s rt d% dàng nhm l n nó vi mt h iu hành máy tính  bàn. Android là mt môi trng phân tng, xây dng trên nn ca h iu hành nhân Linux, và nó bao hàm nhiu chc nng phong phú. H  thng con giao din ngi s# dng gm có:  C#./0"  Khung nhìn  Các tiu trình  hin th các ph,n t# ph" bin nh các hp biên son, danh sách, danh sách th xung Android gm mt trình duyt có th nhúng vào c, c xây dng da trên WebKit, chính là máy (engine) trình duyt mã ngun m c)ng ang là ng c ca trình duyt Safari di ng ca iPhone. Android khoe ra mt mng di dào nhiu tùy chn kt ni, gm WiFi, Bluetooth, và d liu không dây qua mt kt n i di ng (nh GPRS, EDGE, và 3G). Mt k1 thut ph" bin trong các ng dng Android là liên kt ti Google Maps  hin th mt a ch trc tip trong mt ng dng. Vic h tr cho các dch v da trên a im (ch*ng hn nh GPS) và các dng c o gia tc c)ng có s'n trong chng phn mm Android, m+c dù không phi tt c các thit b Android c trang b vi các phn cng cn thit. C)ng có c h tr máy nh (camera) na. V m+t lch s#, có hai lnh vc mà các ng dng di ng ã g!ng sc theo kp các i tác máy tính  bàn là  ha/ a phng tin, và phng thc lu tr d liu. Android gii quyt thách thc v  ha b(ng s h tr dng s'n cho  ha 2-D và 3-D, gm c th vin OpenGL. Gánh n+ng lu tr d liu c gim nh2 vì nn Android có gm c c s d liu SQLite mã ngun m ph" bin. Hình 1 cho thy mt khung nhìn n gin hoá v các tng phn mm Android. Hình 1. Các tng phn mm Android Kin trúc ng dng Nh  ã  cp, Android chy bên trên mt h iu hành nhân Linux. Các ng dng Android c vit b(ng ngôn ng lp trình Java, và chúng chy trong mt máy o (VM). $iu quan trng là phi lu ý r(ng VM không phi là mt máy Page 2 of 11 Nh  p môn phát tri  n  ng d  ng Android o Java (JVM) nh bn ch i, mà là máy o Dalvik (Dalvik Virtual Machine), mt công ngh mã ngun m. Mi ng dng Android chy trong mt cá th ca máy o Dalvik, n lt mình, cá th máy o này n(m trong mt tin trình do nhân Linux qun lý, nh trình bày di ây. Hình 2. Máy o Dalvik Mt ng dng Android gm có mt ho+c nhiu phân loi sau ây: Hot ng Mt ng dng có mt giao din ngi dùng nhìn thy c, s c thc hin b(ng mt hot ng. Khi ngi s# dng chn mt ng dng t- màn hình ch ho+c trình khi chy ng dng, mt hot ng c khi ng.  Mt dch v nên c s# dng i vi bt k3 ng dng nào cn tn ti trong mt thi gian dài, ch*ng hn nh mt trình giám sát mng ho+c ng dng kim tra-cp nht. Trình cung cp ni dung Bn có th coi các trình cung cp ni dung nh là mt máy ch c s d liu. Công vic ca mt trình cung cp ni dung là qun lý truy cp vào d liu ang tn ti, ch*ng hn nh mt c s d liu SQLite. Nu ng dng ca bn rt n gin thì bn không nht thit phi to ra mt trình cung cp ni dung. Nu bn ang xây dng mt ng dng ln hn, ho+c mt ng dng  cung cp d liu s'n sàng cho nhiu hot ng ho+c ng dng khác, mt trình cung cp ni dung là phng tin truy cp d liu ca bn. Trình thu sóng phát Mt ng dng Android có th c khi chy  x# lý mt phn t# d liu ho+c áp ng mt s kin, ch*ng hn nh nhn mt vn bn thông báo. Mt ng dng Android, cùng vi mt tp tin tên là AndroidManifest.xml, c trin khai lên mt thit b. AndroidManifest.xml cha các thông tin cu hình cn thit  cài +t nó úng !n vào thit b. Nó gm các tên lp c n thit và các kiu s kin mà ng dng có th x# lý, và các quyn hn ng dng cn có  chy. Thí d, nu mt ng dng òi h4i vic truy cp vào mng —  ti v mt tp tin ch*ng hn — thì quyn hn này phi c tuyên b mt cách tng minh trong tp tin manifest. Nhiu ng dng có th có các quyn hn riêng này c kích hot. $m bo an ninh b(ng khai báo nh vy giúp gim bt kh nng xy ra là mt ng dng xu có th làm thit hi thit b ca bn. Phn tip theo bàn lun v môi trng phát trin cn có  xây dng nên mt ng dng Android. Các công c òi hi phi có Cách d% nht  b!t u phát trin các ng dng Android là ti v B công c phát trin phn mm Android và Môi Page 3 of 11 Nh  p môn phát tri  n  ng d  ng Android trng phát trin tích hp Eclipse (Eclipse IDE) (xem phn Tài nguyên). Vic phát trin Android có th di%n ra trên Microsoft® Windows®, Mac OS X, ho+c Linux. Bài vit này gi thit r(ng bn ang s# dng Môi trng phát trin tích hp Eclipse và trình c!m thêm Android Developer Tools dùng cho Eclipse. Các ng dng Android c vit b(ng ngôn ng Java, nhng biên dch và thi hành b(ng máy o Dalvik (mt máy o không phi Java). Vit mã b(ng ngôn ng Java trong Eclipse là rt trc quan; Eclipse cung cp mt môi trng Java phong phú, gm c vic tr giúp theo ng cnh và các mách nc gi ý v mã. Khi b mã Java ca bn c biên dch sch s, Android Developer Tools s m bo r(ng ng dng ó c gói úng !n, gm c tp tin AndroidManifest.xml. Có th phát trin các ng dng Android mà không cn Eclipse và và trình c!m thêm Android Developer Tools, nhng bn s cn phi bit cách s# dng B công c phát trin phn mm Android. B công c phát trin phn mm Android c phân phi di dng mt tp tin nén ZIP và gii nén vào mt th mc trên " a ca bn. Do có mt vài cp nht B công c phát trin phn mm (SDK), bn nên gi cho môi trng phát trin ca bn có t" chc tt  bn có th d% dàng chuyn "i gia các bn cài +t SDK. SDK gm có: android.jar Tp tin lu tr Java cha toàn b các lp SDK Android cn thit  xây dng ng dng ca bn. documention.html và th mc docs Tài liu SDK c cung cp ti ch và trên Web. Ch yu nó  dng JavaDocs, to iu kin d% dàng cho vic d n hng trong nhiu gói trong SDK. Tài liu c)ng gm c mt Hng d n Phát trin mc cao và các liên kt n cng ng Android rng rãi hn. Th mc samples (các ví d mu) Th mc con samples cha b mã ngun y  dùng cho mt lot các ng dng, gm c ApiDemo, nó s# dng nhiu API. 5ng dng m u là mt ni khám phá tuyt vi khi b!t u phát trin ng dng Android. Th mc tools (các công c) Cha toàn b các công c dòng lnh  xây dng nên các ng dng Android. Công c c dùng ph" bin và hu ích nht là tin ích adb (Android Debug Bridge). usb_driver Th mc cha các trình iu khin cn thit  kt ni môi trng phát trin vi mt thit b có kh nng chy Android, ch*ng hn nh G1 hay in thoi phát trin ã c m khóa Android Dev 1. Các tp tin này là òi h4i duy nht i vi các nhà phát trin ang s# dng nn Windows. Các ng dng Android có th c chy trên mt thit b tht s ho+c trên trình mô ph4ng Android (Android Emulator), g#i kèm vi SDK Android. Hình 3 cho thy màn hình ch ca trình mô ph4ng Android. Hình 3. Trình mô phng Android Page 4 of 11 Nh  p môn phát tri  n  ng d  ng Android Android Debug Bridge Tin ích adb h tr mt s i s dòng lnh tùy chn, mang li các tính nng mnh m, nh sao chép tp tin n và t- thit b. $i s dòng lnh shell cho phép bn kt ni vi chính in thoi và a ra các lnh shell thô s. Hình 4 cho thy lnh trình shell adb i vi mt thit b thc c kt ni vi mt máy tính xách tay Windows b(ng mt cáp USB. Hình 4. S dng lnh shell adb Page 5 of 11 Nh  p môn phát tri  n  ng d  ng Android Trong môi trng shell này, bn có th:  Hin th cu hình mng cho thy nhiu kt ni mng. Chú ý các kt ni mng:  lo là kt ni cc b ho+c kt ni vòng tr li.  tiwlan0 là kt ni WiFi vi mt a ch cung cp bi mt máy ch DHCP cc b.  Hin th ni dung ca bin môi trng PATH .  Thc hin lnh su  tr thành siêu ngi s# dng.  Chuyn th mc n /data/app, ni lu tr các ng dng ca ngi s# dng.  Thc hin lit kê ni dung th mc,  ây bn s nhìn thy ch mt ng dng n l&. Các tp tin ng dng Android thc t là các tp tin lu tr có th xem ni dung b(ng WinZip ho+c công c tng ng. Phn m rng là apk.  Phát lnh ping  xem Google.com ã s'n có cha. T- cùng mt môi trng du nh!c lnh này, bn c)ng có th tng tác vi các c s d liu SQLite, khi ng chng trình, và nhiu nhim v mc h thng khác. $ây là mt chc nng khá n"i bt, nu lu ý r(ng bn ã ch kt ni vi mt in thoi. Trong phn tip theo, bn s to ra mt ng dng n gin Android. Vi t mã mt ng dng c bn Phn này cung cp mt vòng tham quan nhanh nh cn lc v cách xây dng mt ng dng Android. 5ng dng m u n gin nh bn có th hình dung: mt ng dng “Hello Android” ã ci biên. Bn s b" sung mt s#a "i nh4  làm cho toàn b màu nn ca màn hình thành màu tr!ng  bn có th s# dng in thoi nh mt èn pin. Không tht c áo, nhng nó s b" ích nh mt ví d. Hãy ti v b mã ngun y . $ to ra mt ng dng trong Eclipse, chn File > New > Android project , nó khi ng th thut New Android Project (D án Android mi). Page 6 of 11 Nh  p môn phát tri  n  ng d  ng Android Hình 5. Th thut New Android Project Tip theo, bn to ra mt ng dng n gin ch có mt hot ng n l&, cùng vi mt bài trí giao din ngi s# d ng lu trong main.xml. Bài trí này cha mt ph,n t# vn bn mà bn s!p s#a "i thành Android FlashLight (èn pin Android). Bài trí n gin c trình bày nh di ây. Lit kê 1. Bài trí Flashlight To mt vài ngun màu s!c trong strings.xml. Lit kê 2. Màu sc trong strings.xml   !"" "!#""  $% $! $  $! &#'"$%  ()% $% $! $  %!$ '" *'"$&# $ +" "    ,-  " !!$-  " $%  " $&#." " Page 7 of 11 Nh  p môn phát tri  n  ng d  ng Android Bài trí màn hình chính có mt màu nn c nh ngha là all_white . Trong tp tin strings.xml, bn thy r(ng all_white c nh ngha nh là mt b ba giá tr RGB là #FFFFFF, hay là hoàn toàn màu tr!ng. Bài trí này cha mt TextView , (khung nhìn vn bn) n l&, ó tht ra ch là mt on vn bn tnh, không biên tp c. Vn bn này c +t thành màu en và cn chính gia theo chiu ngang vi thuc tính gravity . 5ng dng có mt tp tin ngun Java tên là FlashLight.java, nh ch ra di ây. Lit kê 3. Flashlight.java Mã này là mt vn bn tho s'n (boiler-plate) trc tip t- th thut New Project:  Nó là mt phn ca gói Java tên là com.msi.flashlight.  Nó có hai mc nhp kh,u vào:  Mt là ca lp activity (hot ng)  Mt là ca lp bundle (bó)  Khi hot ng này c khi to, phng thc onCreate c gi ra, nó chuyn giao tham i là mt (bó) savedInstanceState . $-ng quan tâm n bó này i vi mc ích ca chúng ta, nó c s# dng khi mt hot ng b treo và sau ó tip tc li.  Phng thc onCreate là np chng è lên phng thc ca lp activity có cùng tên gi. Nó gi phng thc onCreate ca lp bc trên.  Mt lnh gi setContentView() s g!n bài trí giao din ngi s# dng ã nh ngha trong tp tin main.xml. Bt c th gì trong main.xml và strings.xml u c t ng ánh x ti các h(ng ã nh ngha trong tp tin ngun R.java. $-ng bao gi chnh s#a tp tin này trc tip, vì nó c thay "i theo t-ng ln xây dng. Vic chy ng dng s trình di%n mt màn hình màu tr!ng vi vn bn màu en. Hình 6. Màn hình trng ca flashlight !#  / !!!,/ !0/ !&-  ,1 "22*%  2" !&*304561 !*3456/ *)%376/ 8 8 Page 8 of 11 Nh  p môn phát tri  n  ng d  ng Android Thit lp tp tin AndroidManifest.xml dành cho ng dng FlashLight trình bày di ây. Lit kê 4. AndroidManifest.xml dùng cho FlashLight   !"" "!#"" !#   * 9 !!'%&"&'"!!$ -   &'"!!$  :,49" ,;9*<=7" " Page 9 of 11 Nh  p môn phát tri  n  ng d  ng Android Tp tin này c to ra mt cách t ng bi trình c!m thêm Android Developer Tools cho Eclipse. Bn không phi làm gì ht. Tt nhiên, ng dng này không cc k3 tuyt vi. Nhng nó có th tin dng nu bn mun c mt ít mà không phin nhi%u gic ng ca v/chng bn, ho+c nu bn cn tìm li i n hp cu chì trong tng hm trong khi mt in. Tóm tt Trong bài này, bn ã tìm hiu v Android  mc rt cao và ã xây dng nên mt ng dng nh4. Hy vng r(ng ví d ã làm cho bn có c s hng khi   khám phá thêm nn Android. Android ha h2n là mt nn tng mã ngun m làm chuyn ng th trng mà s hu ích c ngoài phm vi in thoi di ng. Ti v Tài nguyên Hc tp  Open Handset Alliance (Liên minh Thit b cm tay m) là mt tp oàn 47 công ty công ngh và in thoi di ng ã tp hp nhau li  tng tc "i mi v in thoi di ng mang li cho ngi tiêu dùng mt tri nghim v in thoi di ng phong phú hn, ít tn kém hn, và tt hn. Cùng vi nhau, h ã phát trin Android, nn di ng hoàn chnh, m và mi%n phí u tiên.  Android developers site (trang Web ca các nhà phát trin Android) cung cp các tài liu, phn ti v, blog, và nhiu th khác na.  Tìm hiu nhiu hn v Máy o Dalvik.  Xem các bài hng d n có trên máy ch YouTube bàn lun v các chi tit bên trong ca Máy o Dalvik.  Unlocking Android: A Developer's Guide (M khóa Android: Mt Hng dn ca Nhà Phát trin) cung cp ch  d n súc tích, thc ti%n v h iu hành và các công c phát trin Android.  $ nghe các ph4ng vn và tho lun thú v i vi các nhà phát trin phn mm, xem developerWorks podcasts.  Theo sát các bu"i phát tin trên mng và s kin k1 thut ca developerWorks.  Theo dõi developerWorks trên Twitter.  Xem các hi ngh, trng bày thng mi, các bu"i phát tin trên mng, và Events các s kin khác trên kh!p th gii s!p di%n ra mà các nhà phát trin mã ngun m ca IBM quan tâm n. " "!! " Mô t Tên Kích thc Phng thc ti FlashLight source code os-android-devel-FlashLight.zip 22KB HTTP Thông tin v  ph  ng th  c t  i Page 10 of 11 Nh  p môn phát tri  n  ng d  ng Android [...]...Nh p môn phát tri n ng d ng Android Page 11 of 11 Truy c p vào vùng mã ngu n m trên developerWorks có các thông tin h ng d n cách làm, các công c , và các d án c p nh t giúp b n phát tri n v i các công ngh mã ngu n m và s# d ng chúng v i các s n ph,m c a IBM Theo dõi và tìm hi u v IBM và các công ngh mã ngu n m và các ch c n ng c a s n ph,m b(ng các trình di%n mi%n phí theo yêu c u trên developerWorks... s n ph m và công ngh T i v Android SDK Nh n b n Eclipse IDE m i nh t $"i m i d án phát tri n mã ngu n m ti p theo c a b n b(ng ph n m m dùng th# c a IBM (IBM trial software), s'n có t i v ho+c trên a DVD T i v các phiên b n ánh giá s n ph,m c a IBM (IBM product evaluation versions) ho+c khám phá dùng th# tr c tuy n trong SOA Sandbox c a IBM và hãy b!t tay vào các công c phát tri n ng d ng và các s . Page 3 of 11 Nh  p môn phát tri  n  ng d  ng Android trng phát trin tích hp Eclipse (Eclipse IDE) (xem phn Tài nguyên). Vic phát trin Android có th di%n ra trên Microsoft® Windows®,. mô ph4ng Android (Android Emulator), g#i kèm vi SDK Android. Hình 3 cho thy màn hình ch ca trình mô ph4ng Android. Hình 3. Trình mô phng Android Page 4 of 11 Nh  p môn phát tri  n. > New > Android project , nó khi ng th thut New Android Project (D án Android mi). Page 6 of 11 Nh  p môn phát tri  n  ng d  ng Android Hình 5. Th thut New Android Project

Ngày đăng: 17/10/2014, 07:17

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan