Nhp môn phát trin ng dng Android
Mc : Nhp môn
Frank Ableson, Software designer
22 01 2011
Android là mt môi trng h iu hành hoàn chnh da trên h iu hành nhân Linux® V2.6. Lúc u,
ích trin khai i vi Android là lnh vc in thoi di ng, gm các loi in thoi thông minh và các
loi thit b in thoi kiu gp chi phí thp. Tuy nhiên, phm vi y các dch v in toán ca
Android và s h tr chc nng phong phú ca nó có tim nng m rng vt ra ngoài th trng in
thoi di ng. Android có th hu ích i vi các nn tng và ng dng khác. Trong bài vit này, bn s
c gii thiu v nn Android và hc cách vit mã mt ng dng Android c bn.
Gii thiu
BlackBerry và iPhone, vi các nn di ng dung lng cao và hp d n, ang nh!m n hai u ngc chiu nhau ca
ph" các in thoi di ng. BlackBerry vng ch!c nh á i vi nhng ngi s# dng mc nghip v chuyên nghi
p.
$ làm mt thit b tiêu dùng, nó khó cnh tranh c vi iPhone v tính d% s# dng và “yu t tuyt tác” (cool
factor). Android, mt nn tng v n còn tr& và cha c kim chng, có tim nng óng vai trò c hai u ca ph"
các in thoi di ng và thm chí có th làm cu ni qua h sâu ngn cách gia làm vic và vui chi.
Ngày nay, có nhi
u thit b da trên mng hay có kh nng ni mng chy mt bin thái h iu hành nhân Linux. $ó
là mt nn vng ch!c: có hiu qu v chi phí khi trin khai và h tr, và s'n sàng c chp nhn nh là mt cách tip
cn thit k tt trin khai. Giao din ngi s# dng dành cho các thit b nh vy thng da trên HTML và có th
xem c b(ng mt trình duyt cho PC hay Mac. Nhng không phi vt dng nào c)ng cn iu khin b(ng mt thit
b tính toán chung. Hãy xem xét mt vt dng thông thng, ch*ng hn nh mt lò nng, lò vi sóng ho+c làm
bánh mì. $iu gì xy ra nu các vt dng gia ình ca bn c Android iu khin và hãnh din khoe ra mt màn
hình màu cm ng? Vi mt giao din ngi s# dng Android trên m+t lò, tác gi thm chí có th nu nng m
t món
gì ó.
n
ng d
ng Android
Nn tng Android
Vi kh nng rng rãi ca Android, s rt d% dàng nhm l n nó vi mt h iu hành máy tính bàn. Android là mt
môi trng phân tng, xây dng trên nn ca h iu hành nhân Linux, và nó bao hàm nhiu chc nng phong phú. H
thng con giao din ngi s# dng gm có:
C#./0"
Khung nhìn
Các tiu trình hin th các ph,n t# ph" bin nh các hp biên son, danh sách, danh sách th xung
Android gm mt trình duyt có th nhúng vào c, c xây dng da trên WebKit, chính là máy (engine) trình
duyt mã ngun m c)ng ang là ng c ca trình duyt Safari di ng ca iPhone.
Android khoe ra mt mng di dào nhiu tùy chn kt ni, gm WiFi, Bluetooth, và d liu không dây qua mt kt n
i
di ng (nh GPRS, EDGE, và 3G). Mt k1 thut ph" bin trong các ng dng Android là liên kt ti Google Maps
hin th mt a ch trc tip trong mt ng dng. Vic h tr cho các dch v da trên a im (ch*ng hn nh GPS)
và các dng c o gia tc c)ng có s'n trong chng phn mm Android, m+c dù không phi tt c các thit b Android
c trang b vi các phn cng cn thit. C)ng có c h tr máy nh (camera) na.
ng Android
o Java (JVM) nh bn ch i, mà là máy o Dalvik (Dalvik Virtual Machine), mt công ngh mã ngun m. Mi
ng dng Android chy trong mt cá th ca máy o Dalvik, n lt mình, cá th máy o này n(m trong mt tin
trình do nhân Linux qun lý, nh trình bày di ây.
Hình 2. Máy o Dalvik
Mt ng dng Android gm có mt ho+c nhiu phân loi sau ây:
Hot ng
Mt ng dng có mt giao din ngi dùng nhìn thy c, s c thc hin b(ng mt hot ng. Khi ngi
s# dng chn mt ng dng t- màn hình ch ho+c trình khi chy ng dng, mt hot ng c khi ng.
Mt dch v nên c s# dng i vi bt k3 ng dng nào cn tn ti trong mt thi gian dài, ch*ng hn nh
mt trình giám sát mng ho+c ng dng kim tra-cp nht.
Trình cung cp ni dung
Bn có th coi các trình cung cp ni dung nh là mt máy ch c s d liu. Công vic ca mt trình cung cp
ni dung là qun lý truy cp vào d liu ang tn ti, ch*ng hn nh mt c s d liu SQLite. Nu ng dng
ca bn rt n gin thì bn không nht thit phi to ra mt trình cung cp ni dung. Nu bn ang xây dng
mt ng dng ln hn, ho+c mt ng dng cung cp d liu s'n sàng cho nhiu hot ng ho+c ng dng
khác, mt trình cung cp ni dung là phng tin truy cp d liu ca bn.
Trình thu sóng phát
Mt ng dng Android có th c khi chy x# lý mt phn t# d liu ho+c áp ng mt s kin, ch*ng
hn nh nhn mt vn bn thông báo.
Mt ng dng Android, cùng vi mt tp tin tên là AndroidManifest.xml, c trin khai lên mt thit b.
Developer Tools dùng cho Eclipse. Các ng dng Android c vit b(ng ngôn ng Java, nhng biên dch và thi hành
b(ng máy o Dalvik (mt máy o không phi Java). Vit mã b(ng ngôn ng Java trong Eclipse là rt trc quan;
Eclipse cung cp mt môi trng Java phong phú, gm c vic tr giúp theo ng cnh và các mách nc gi ý v mã.
Khi b mã Java ca bn c biên dch sch s, Android Developer Tools s m bo r(ng ng dng ó c gói
úng !n, gm c tp tin AndroidManifest.xml.
Có th phát trin các ng dng Android mà không cn Eclipse và và trình c!m thêm Android Developer Tools, nhng
bn s cn phi bit cách s# dng B công c phát trin phn mm Android.
B công c phát trin phn mm Android c phân phi di dng mt tp tin nén ZIP và gii nén vào mt th mc
trên " a ca bn. Do có mt vài cp nht B công c phát trin phn mm (SDK), bn nên gi cho môi trng phát
trin ca bn có t" chc tt bn có th d% dàng chuyn "i gia các bn cài +t SDK. SDK gm có:
android.jar
Tp tin lu tr Java cha toàn b các lp SDK Android cn thit xây dng ng dng ca bn.
documention.html và th mc docs
Tài liu SDK c cung cp ti ch và trên Web. Ch yu nó dng JavaDocs, to iu kin d% dàng cho vic
d n hng trong nhiu gói trong SDK. Tài liu c)ng gm c mt Hng d n Phát trin mc cao và các liên kt
n cng ng Android rng rãi hn.
Th mc samples (các ví d mu)
Th mc con samples cha b mã ngun y dùng cho mt lot các ng dng, gm c ApiDemo, nó s#
dng nhiu API. 5ng dng m u là mt ni khám phá tuyt vi khi b!t u phát trin ng dng Android.
Th mc tools (các công c)
Cha toàn b các công c dòng lnh xây dng nên các ng dng Android. Công c c dùng ph" bin và
hu ích nht là tin ích
adb
(Android Debug Bridge).
usb_driver
thy lnh trình shell
adb
i vi mt thit b thc c kt ni vi mt máy tính xách tay Windows b(ng mt cáp
USB.
Hình 4. S dng lnh shell
adbPage
5
of
11
Nh
p môn phát tri
n
ng d
ng AndroidTrong môi trng shell này, bn có th:
Hin th cu hình mng cho thy nhiu kt ni mng. Chú ý các kt ni mng:
lo
là kt ni cc b ho+c kt ni vòng tr li.
n gin nh bn có th hình dung: mt ng dng “Hello Android” ã ci biên. Bn s b" sung mt s#a "i nh4
làm cho toàn b màu nn ca màn hình thành màu tr!ng bn có th s# dng in thoi nh mt èn pin. Không tht
c áo, nhng nó s b" ích nh mt ví d. Hãy ti v b mã ngun y .
$ to ra mt ng dng trong Eclipse, chn
File > New > Android project
, nó khi ng th thut New Android
Project (D án Android mi).
Page
6
of
11
Nh
p môn phát tri
n
ng d
ng Android
Hình 5. Th thut New Android Project
Tip theo, bn to ra mt ng dng n gin ch có mt hot ng n l&, cùng vi mt bài trí giao din ngi s# d
ng
lu trong main.xml. Bài trí này cha mt ph,n t# vn bn mà bn s!p s#a "i thành Android FlashLight (èn pin
Android). Bài trí n gin c trình bày nh di ây.
11
Nh
p môn phát tri
n
ng d
ng Android
Bài trí màn hình chính có mt màu nn c nh ngha là
all_white
. Trong tp tin strings.xml, bn thy r(ng
all_white
c nh ngha nh là mt b ba giá tr RGB là #FFFFFF, hay là hoàn toàn màu tr!ng.
Bài trí này cha mt
TextView
, (khung nhìn vn bn) n l&, ó tht ra ch là mt on vn bn tnh, không biên tp
c. Vn bn này c +t thành màu en và cn chính gia theo chiu ngang vi thuc tính
gravity
.
5ng dng có mt tp tin ngun Java tên là FlashLight.java, nh ch ra di ây.
Lit kê 3. Flashlight.javaMã này là mt vn bn tho s'n (boiler-plate) trc tip t- th thut New Project:
Nó là mt phn ca gói Java tên là com.msi.flashlight.
!# /
!!!,/
!0/
!&- ,1
"22*% 2"
!&*304561
!*3456/
*)%376/
8
8
Page
8
of
11
Nh
p môn phát tri
n
ng d
ng AndroidThit lp tp tin AndroidManifest.xml dành cho ng dng FlashLight trình bày di ây.
Lit kê 4. AndroidManifest.xml dùng cho FlashLight
Tóm tt
Trong bài này, bn ã tìm hiu v Android mc rt cao và ã xây dng nên mt ng dng nh4. Hy vng r(ng ví d
ã làm cho bn có c s hng khi khám phá thêm nn Android. Android ha h2n là mt nn tng mã ngun
m làm chuyn ng th trng mà s hu ích c ngoài phm vi in thoi di ng.
Ti v
Tài nguyên
Hc tp
Open Handset Alliance (Liên minh Thit b cm tay m) là mt tp oàn 47 công ty công ngh và in thoi di
ng ã tp hp nhau li tng tc "i mi v in thoi di ng mang li cho ngi tiêu dùng mt tri
nghim v in thoi di ng phong phú hn, ít tn kém hn, và tt hn. Cùng vi nhau, h ã phát trin
Android, nn di ng hoàn chnh, m và mi%n phí u tiên.
Android developers site (trang Web ca các nhà phát trin Android) cung cp các tài liu, phn ti v, blog, và
nhiu th khác na.
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
Truy cp vào vùng mã ngun m trên developerWorks có các thông tin hng d n cách làm, các công c,
và
các d án cp nht giúp bn phát trin vi các công ngh mã ngun m và s# dng chúng vi các sn ph,m
ca IBM.
Sau khi s nghip trong i bóng r" ca trng cao *ng kt thúc mà không có mt hp ng dài hn nhiu nm chi
cho i LA Lakers, Frank Ableson ã chuyn chí hng ca mình sang thit k phn mm máy tính. Ông thích gii
quyt các vn phc tp, nht là trong các lnh vc truyn thông và lp giao din phn cng. Khi không làm vic,
ông dành thi gian vi ngi v Nikki và con cái. Bn có th g+p Frank ti a ch
Page
11
of
11
Nh
p môn phát tri
n
ng d
ng Android