You are on page 1of 24

Thangit14.blogspot.com Thangit14@gmail.

com


1

Chapter1: Getting Started with android programming

Nhng iu bn s hc trong chng ny:
- Android l g?
- Android version v tnh nng ca n
- Kin trc ca android
- Cc thit b Android
- Android Market application store
- Ci t tools v SDK
- To ng dng Android u tin
Cho mng n th gii android! Khi ti bt u vit cun sch u tin v android( khong nm
2011), ti tuyn b rng trong th trng smartphone ca U.S, android xp th 2 sau RIMs
Blackberry v vt qua Apples Iphone. Ngay sau khi quyn sch ny c in n, comScore( t chc hng
u th gii v nh gi trong th gii s v mt ngun tin cy ca digital marketing intelligence) bo
co rng Android vt qua Blackberry tr thnh mt nn tng smartphone c a chung nht ti
US
Vi thng trc, Google pht hnh Android 3.0, gi l Honeycomb. Vi Android 3.0, trong b
SoftWare Developer Kit mi ny, Google tp trung vo gii thiu nhng tnh nng designed cho nhng
thit b mn hnh rng, c bit l my tnh bng. Nu bn vit ng dng cho Android SmartPhone,
Android 3.0 khng thc s hu dng, mt s tnh nng mi khng h tr smartphone. Cng thi im
pht hnh Android 3.0, Google bt u lm vic vi version tip theo ca Android, m c th s dng c
my tnh bng v smartphone. Vo thng 10 nm 2011 google pht hnh Android 4.0, c gi l
Ice Cream Sandwich, v chnh l version m quyn sch ny tp trung vo.
Trong chapter ny, bn tm hiu xem Android l g, v iu g hp dn c lp trnh vin v nh
sn xut . Bn s hc cch lp trnh ng dng Android u tin, v lm cch no nhn c nhng
tools cn thit v ci t chng c th test ng dng ca bn trong b m phng Android 4.0. V cui
chng, bn s c trang b nhng kin thc c bn m bn cn phi c c th nghin cu nhng k
thut tinh vi hn v nhng th thut developing your next killer Android Application.

Android l g?
Android l mt h iu hnh trn mobile, c pht trin trn c s ca h iu hnh Linux. Ban
u n c pht trin bi mt cng ty c cng tn l : Android,Inc. Vo nm 2005, nh mt phn chin
lc ca vic gia nhp vo th trng mobile, Google mua li Android v tip qun cng vic pht trin
( cng nh l i ng pht trin i km).
Google mun Android tr nn m v min ph. V l do o, hu ht code ca Android u c
pht hnh di dng Open Source Apache License, iu c ngha l bt k ngi no mun s dng
android ch vic ti v b ci t Android. Hn na, cc nh cung cp( thng l cc nh sn xut phn
cng ) c th thm nhng phn m rng c quyn vo Android v customize Android to nn nhng
Thangit14.blogspot.com Thangit14@gmail.com


2

s khc bit so vi cc sn phm khc. M hnh pht trin n gin lm cho Android rt hp dn v thu
ht s quan tm ca rt nhiu nh cung cp. iu ny c bit ng vi cc cng ty b nh hng bi
hin tng Iphone ca Apple, mt sn phm cc k thnh cng to nn cuc cch mng ca nn cng
nghip di ng. Trong cc cng ty y bao gm c Motorola v SonyEricson , cc cng ty m trong nhiu
nm pht trin h iu hnh trn mobile ca ring h. Khi m Iphone c pht hnh, cc nh sn
xut cn li phi tranh ginh tim ra cch ti sinh sn phm ca h. V h thy Android nh l mt
gii php h s tip tc design phn cng v s dng android lm h iu hnh. u im chnh ca vic
s dng Android l n s cung cp mt cch tip cn thng nht lp trnh mt ng dng. Lp trnh
vin ch cn lp trnh vi Android, v nhng ng dng ca h c th chy trn nhiu thit b khc nhau
min l cc thit b s dng Android. Trong th gii smartphone, phn mm l thnh phn quan trng
nht ca chui thnh cng. Cc nh sn xut thit b v th nhn thy Android l hi vng ln nht
thch thc li s tn cng ca Iphone.
Android Version:
Android tri qua kh nhiu phin bn update t khi n c pht hnh. Bng 1-1 hin th cc
phin bn khc nhau ca Android.


Vo thng hai nm 2011, Google pht hnh Android 3.0, mt phin bn dnh cho my tnh bng,
h tr nhng thit b mn hnh rng. Nhng thay i quan trng trong phin bn Android 3.0 nh sau:
- Giao din ngi dng c ti u cho my tnh bng.
- 3D desktop vi cc tin ch mi.
- Ci tin multi-tasking
- Nhng tnh nng mi ca web browser, nh l tabbed browsing, form auto-fill, bookmark
synchronization, and private browsing.
- H tr multi-core processors
Cc application c vit bi version trc 3.0 u tng thch vi cc thit b ang s dng
Android 3.0. Cc ng dn Android 3.0 m s dng cc tnh nng mi trong phin bn 3.0 s khng chy
Thangit14.blogspot.com Thangit14@gmail.com


3

c trn cc thit b dng Android c hn. m bo rng cc ng dng Android c th chy trn tt
c version ca cc thit b, bn phi chc chn mnh ch s dng nhng tnh nng c h tr trn tng
phin bn Android c th.
Vo thng 10 nm 2011, Google pht hnh phin bn 4.0, phin bn mang tt c cc tnh nng
c gii thiu trong Android 3.0 vo smartphone, cng vi mt s nhng tnh nng mi nh nhn din
khun mt, theo di v iu khin data s dng. Near Field Communication(NFC ) . . .
Nt c trng ca Android
V android l open source v min ph cho cc nh pht hnh ty bin, do khng c phn cng
c nh hoc s thit lp cu hnh phn mm. Tuy nhin Android h tr cc tnh nng sau:
- Storage: S dng SQLite, mt c s d liu quan h rt gn lu tr. S c tho lun c
th trong Chng 6.
- Connectivity: h tr GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth( bao gm A2DP v
AVRCP), Wifi, LTE, v WiMax. Chng 8 s tho lun c th v vn ny.
- Mesaging: H tr c SMS v MMS . Chng 8 s tho lun chi tit.
- Web Browser: Da trn open source WebKit, cng vi cng ngh Chrome;s V8 JavaScript
- Media Support: Support H.263, H.264( trong 3GP v MP4), MPEG-4 SP, AMR, AMR-WB (in
3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG,
PNG, GIF, and BMP
- Hardware support: Cm bin gia tc, Camera, Digital Compass, Proximity Sensor, and GPS
- Multi touch
- Multi tasking
- Flash support
- Tethering: H tr chia s kt ni Internet nh l mt wired/wireless hostpot.
Cu trc ca Android.
hiu cch hot ng ca Android, hy xem hnh 1-1, trong cho thy cc lp khc nhau ca
h iu hnh Android.
Android OS c chia thnh 5 section trong 4 layer.
- Linux kernel: y l nhn ca Android. Lp ny c cc trnh iu khin thit b cp thp cho
cc thnh phn phn cng khc nhau ca mt thit b Android
- Libraries: Lp ny bao gm tt c code cung cp cc tnh nng chnh ca Android OS. V d
nh SQLite library cung cp database h tr cho cc ng dng c th s dng n lu tr
d liu. Hay nh l WebKit library cung cp nhng hm dng cho web browsing.
- Android runtime: Ti cng lp vi libraries, Android runtime cung cp mt tp cc core
library m cho php cc lp trnh vin vit ng dng Android s dng Java. Android runtime
cng bao gm cc my o Dalvik, cho php mi ng dng Android chy trn proccess ca n,
vi instance ca Dalvik(Cc ng dng Android c bin dch vo Dalvik c th chy) (c
ngha l Dalvik s to ra my o v chy ng dng ca bn trn ). Dalvik l mt my o c
bit c thit k c bit cho Android v ti u ha cho cc thit b di ng chy bng pin
vi b nh v CPU hn ch.
Thangit14.blogspot.com Thangit14@gmail.com


4

- Application framework: a ra nhng kh nng khc nhau ca Android OS cho developer m
h c th a vo app ca h.
- Application: L tng trn cng, bn s thy nhng app lin quan n thit b Android( nh
l Phone, Contact, Browser .. . ), cng nh cc ng dng m bn ti v ci t t Android
Market. Bt k mt ng dng no m bn vit u c t v tr ny.

Android Devices in the Market
Cc thit b s dng Android c rt nhiu hnh dng v kch thc. Cho n thng 11 nm 2011,
Android OS c cung cp trn cc thit b sau:
- Smartphones
- Tablets
- E-reader devices
- Netbook
- MP4 players
- Internet TVs
Thangit14.blogspot.com Thangit14@gmail.com


5

Hnh 1-2 ( tri qua phi ) l Samsung Galaxy S II, Motorola Atrix 4G, HTC EVO 4G
inch

Mt thit b ph bin khc m cc nh sn xut tp trung vo l my tnh bng. Tables c 2 loi
kch thc: 7 inchs v 10 inchs, o theo ng cho. Hnh 1-3 l Samsung Galaxy Tab 10.1 v Asus Eee
Pad Transformer TF101, c hai u chy Android 3.

Ngoi in thoi thng minh v my tnh bng, Android cn bt u xut hin trong cc thit b
chuyn dng nh l sch in t. Hnh 1-4 l Barnes and Nobles NOOK Color (tri) v Amazons Kindle
Fire(phi ), c hai u l sch in t mu s dng Android OS
Thangit14.blogspot.com Thangit14@gmail.com


6


Ngoi cc thit b di ng ph bin, Android cng dn dn tm ra cch vo phng khch ca
bn. Lava, mt cng ty ca Thy in ang pht trin TV s dng Android, c gi l Scandinavia
Android TV( Hnh 1-5).
Google ang nh cc vo smart TV c quyn c nn tng da trn Android v lin kt vi cc
cng ty nh Intel, Sony, Logitech. Hnh 1-6 l Sonys Google TV.

Thangit14.blogspot.com Thangit14@gmail.com


7

Trong khi vit ti liu ny, Samsung Galaxy Nexus (Hnh 1-7) l thit b duy nht chy Android 4.0.
Tuy nhin Google ha rng cc thit b hin c ( v d nh Nexus S) c th nng cp c ln Android
4.0. V khi bn ang c cun sch ny, c th c mt lot cc thit b chy Android 4.0.

The Android Market
Ging nh cp trc , mt trong nhng yu t chnh quyt nh n s thnh cng ca
mt nn tng smartphone chnh l nhng ng dng m n h tr. R rng l t s thnh cng ca
Iphone cho thy ng dng ng vai tr sng cn cho mt nn tng mi thnh cng hay tht bi. Thm
vo , vic lm cho cc ng dng n c vi ngi dng cng l mt vic v cng quan trng.
Nh vy trong thng 8 nm 2008, Google cng b Android Market, mt ch in t ca ng
dng cho thit b s dng Android, v n sn sng cho ngi dng ti v vo thng 11 nm 2008. S dng
Market application c ci t sn trn thit b Android, ngi dng c th d dng dowload trc tip
nhng ng dng ca bn th 3 ln thit b ca h. C ng dng min ph v tr ph u c h tr trn
Android Market, mc d cc ng dng tr tin ch c sn cho ngi dng mt s nc do cc vn
php l.
Ging nh th, ti mt s cc quc gia, ngi dng c th mua nhng ng dng tr ph t
Android Market, nhng lp trnh vin khng th bn ti quc gia . V d nh ti thi im vit ti liu
ny, ngi dng ti n c th mua ng dng t Android Market, nhng lp trnh vin ti n li
khng th bn apps ca h trn Android Market. iu ngc li cng c th ng. Nh ti Hn Quc,
ngi dng khng th mua c ng dng, nhng cc lp trnh vin ti y li c th bn cc ng dng
trn Android Market
NOTE: Chng 12 tho lun v Android Market v lm cch no bn c th bn c ng dng
trn .
Cng ng lp trnh vin Android.
Thangit14.blogspot.com Thangit14@gmail.com


8

Vi Android version 4, c mt cng ng lp trnh vin rt ln trn ton th gii. iu ny lm
cho vic tm ra gii php cho cc vn gp phi cng nh vic tm kim cc lp trnh vin c cng mc
ch chia s tng v ng dng v trao i kinh nghim tr nn d dng hn rt nhiu.
Di y l mt vi cng ng m bn c th tham gia gip bn gii quyt nhng vn khi
lm vic vi Android:
- Stack Overflow(www.stackoverflow.com): Stack Overflow l mt site cho php t cu hi v
tr li dnh cho cc lp trnh vin. Nu bn c cu hi v Android, rt c th l mt ai ti
Stack Overflow c th tho lun vi cu hi ging nh th v ai khc cung cp cu tr
li. Ngon nht l cc lp trnh vin khc c th vote cho cu tr li tt nht, v th bn c
th bit cu tr li no l ng tin cy.
- Google Android Tranning(http://developer.android.com/training/index.html). Google a
ra trang web Android Tranning bao gm mt s cc lp hc hu ch c nhm theo ch .
Ti thi im vit bi, cc lp hc ch yu l cha cc n m hu ch cho cc lp trnh vin
Android khi h bt u vi nhng iu c bn. Khi bn hc nhng iu c bn trong cun
sch ny, ti ngh bn nn xem nhng lp hc .
- Android Discuss ( http://groups.google.com/group/android-discuss ). Android Discuss l mt
group tho lun c cung cp b Google s dng Google Group. Ti y, bn c th tho
lun v cc kha cnh khc nhau ca vic lp trnh Android. Group ny c gim st cht ch
bi Android team ti Google, v th n l ni rt tt lm r nhng nghi ng ca bn v hc
nhng mo v th thut mi.
Thu thp cc cng c cn thit.
By gi bn bit Android l g v cc tnh ca n gm nhng g, bn c l rt nng lng mun
bt u vit mt vi ng dng. Trc khi bn vit ng dng u tin, bn cn phi dowload nhng cng
c cn thit v SDKs
Phn ci t mnh s khng dch v phin bn m bi vit thc hin khng ging nh by gi, v
cc bn hon ton c th ci t theo cc video trn mng hay ngay trn Google Android Tranning
c nhc n trc .
Bn cn phi c
- JDK: Java SE Development Kit
- Eclipse: B cng c dng son tho ging nh Netbean
- ADT: Android Developer Tool
- Android SDK: Android Software Development Kit
Bn c th tham kho : http://www.tinhte.vn/threads/cai-dat-android-sdk-eclipse-va-thiet-bi-gia-
lap-avd-android-virtual-device-tren-windows.1413899/
Hoc ti link sau vi ton b cng c cn thit (ch cn ti thm JDK)
http://developer.android.com/sdk/index.html

Thangit14.blogspot.com Thangit14@gmail.com


9

To ng dng Android u tin.
Vi tt c nhng cng c ti v, by gi chng ta s bt u lm vic vi Android. Ging nh
trong tt c cc sch lp trnh, v d u tin s dng ph bin l chng trnh Hello Word. oee mu s
cung cp cho bn mt ci nhn chi tit v cc thnh phn khc nhau to nn mt Android project.


Thangit14.blogspot.com Thangit14@gmail.com


10


Thangit14.blogspot.com Thangit14@gmail.com


11


Thangit14.blogspot.com Thangit14@gmail.com


12


Ch : Bn cn c t nht mt du chm (.) trong package name. c ngh t theo tn min
vi th t ngc li. Nu cng ty ca bn c tn min learn2develop.net th backage name s l
net.learn2develop.HelloWord.

7. Trong Package Explorer( pha bn tri) bn tm n res/layout/ main.xml file (Figure 1-28)
8. main.xml file nh ngha user interface(UI) (giao din) ca ng dng. default view l
Layout. thay i UI bn click vo tab main.xml nh figure 1-29.
Thangit14.blogspot.com Thangit14@gmail.com


13



Thangit14.blogspot.com Thangit14@gmail.com


14




Thangit14.blogspot.com Thangit14@gmail.com


15


Cc bn v y dow source code nh http://www.wrox.com/WileyCDA/WroxTitle/Beginning-
Android-4-Application-Development.productCd-1118199545,descCd-DOWNLOAD.html
Nu cc bn copy my dng trn m b bo li @string/hello th cc bn c th xa @string/ i.
V lm cc bc tip theo. Sau ny s hiu v sao n b li.

Thangit14.blogspot.com Thangit14@gmail.com


16



Thangit14.blogspot.com Thangit14@gmail.com


17



Thangit14.blogspot.com Thangit14@gmail.com


18



Thangit14.blogspot.com Thangit14@gmail.com


19

My o AVD no nn c s dng test ng dng ca bn?
Nh li rng trc bn to mt vi my o AVD s dng AVD manager. Vy th bn nn s
dng my o no? Eclipse s kim tra taget m bn chn( khi bn to project), soanhs n vi danh
sch cc AVD m bn to. AVD u tin ph hp s chy ng dng ca bn.
Nu bn c nhiu hn mt AVD ph hp ang chy trc khi debug ng dng, Eclipse s hin th
bn chn( Figure 1-34)


to mt Android Project s dng Eclipse, bn cn cunng cp cc thng tin sau:

Trong Android, mt activity l mt ca s m bao gm cc user interface ca application. Mt
application co th khng c hay mt vi activities. Ly v d nh mt app bao gm mt activity:
HelloWorldActivity. HelloWorldActivity l mt entry point (im khi u) ca application, hin th khi
mt application c start. Chng 2 s tho lun chi tit v activities.
Thangit14.blogspot.com Thangit14@gmail.com


20

Trong v d n gin ny, bn thay i file main.xml hin th string This is my first Android
Application v mt button. File main.xml bao gm user interface ca activity, c hin th khi
HelloWorldActivity c load.
Khi bn debug application vi my o Android, ng dng c t ng ci t trn my o .
Phn tch mt ng dng Android.
By gi bn c ng dng HelloWorld, by gi hy chia ct cc b phn ca mt Android
project v kim tra tt c cc thnh phn .
u tin, hy lu n cc cc file khc nhau to nn mt project Android trong Package Explore(
Figure 1-35)
- Src Bao gm cc file source .java cho project ca bn.
Trong v d ny, ch c 1 file l HelloWorldActivity.java.
y l source file cho activity. Bn s vit code cho ng
dng ca bn trong file ny. File Java c lit k bn
trong tn ca package.
- Gen - Cha file R.java , l mt file complier-generated
m tham chiu vi tt c resource c trong project. Bn
khng nn sa i file ny. Tt c resource trong project
t ng bin dch vo lp ny bn c th gi chng .
- Android 4.0 library cha mt file: android.jar. File ny
cha tt c cc class libraries cn thit cho mt ng dng
Android.
- Assets Cha tt c asset c s dng bi applicate, v
d nh HTML, text files, database
- Bin Cha cc file c built bi ADT trong qu trnh
build xy ra. c bit, n to ra .apk file( Android
Package). Mt file .apk l mt application binary ( c
chuyn sang nh phn) ca Android application. N bao
gm tt c mi th cn thit chy mt Android
application.
- Res Cha tt c resource c s dng trong
application. N cn cha mt vi nhng folder khc:
drawable-<resolution>, layout, v values. Chng 3 s
tho lun k hn v vic lm cch no bn c th h tr
cc thit b vi phn gin v cu hnh khc nhau.
- AndroidManifest.xml y l file manifest cho Android
application. y bn ch ra cc permision cn thit cho
ng dng ca bn, cng nh cc tnh nng khc ( v d
nh intent-filters, receivers). Chng 2 s tho lun v
cch s dng AndroidManifest.xml mt cch chi tit hn.

Thangit14.blogspot.com Thangit14@gmail.com


21

File main.xml nh ngha user interface cho activity. Ch on in m di y.

@string trong trng hp ny s gi n file strings.xml c lu tr trong res/values. V th
@string/hello s gi ra hello string c nh ngha trc trong file strings.xml.

Bn nn lu tr nhng hng string tron file strings.xml v tham chiu n chng s dng
@string. Vi cch ny, nu bn cn localize (a phng ha) ng dng ca bn sang mt ngn ng khc,
bn ch cn to ra mt bn copy v sa gi tr ca nhng string trong file strings.xml. Figure 1-36 to ra
mt folder c tn l value-fr vi file strings.xml cha string hello trong ting French.

Nu ngi dng ti nhng ng dng tng t trn mt in thoi v cu hnh hin th Frencd
l ngn ng mc nh, ng dng ca bnaj s t ng hin th hellostring bng ting French.



Thangit14.blogspot.com Thangit14@gmail.com


22

Mt file quan trng tip theo trong Android projects l manifest file. Hy xem ni dung ca
AndroidManifest.xml :

File AndroidManifest.xml bao gm cc thng tin chi tit v ng dng.
- N xc nh package name ca application : net.learn2develop.HelloWorld.
- Version code ca application l 1. Gi tr ny ngi dng xc nh version ca ng dng
ca bn. N cng c th s dng bn lp trnh xc nh khi no mt application cn phi
c cp nht.
- Version name ca ng dng l 1.0. y l string value ch yu dng hin th cho ngi
dng. Bn nn t theo dng <major>.<minor>.<point> (t ln n nh, c l cc bn cng
quen vi kiu t ny ri.)
- Thuc tnh Android:minSdkversion ca th <uses-sdk> xc nh version nh nht ca OS m
c th chy c application.
- ng dng c nh ic_launcher.png trong folder drawable.
- Tn ca ng dng l string app_name c nh ngha trong strings.xml
- Ch c 1 activity trong ng dng v c biu din bi HelloWorldActivity.java. Label hin th
cho activity chnh l application name
- Trong activity c mt element c tn l <intent-filter>
+ Action ca intent filter c tn l android.intent.action.MAIN ch ra rng activity ny
hot ng nh l im khi u ca ng dng.
+ Category ca intent-filter c tn l android.intent.category.LANUCHER ch ra rng
application c th chy t devices launcher icon. Chapter 2 s tho lun thm v intents.
Thangit14.blogspot.com Thangit14@gmail.com


23

Khi bn thm file v folder vo prject ca bn, Eclipse s t ng pht sinh ni dung ca file
R.java, ni dung ca n s ging nh di y:

Bn khng c h tr sa cha ni dung ca file R.java. Eclipse s t ng sinh ni dung ca
file khi bn thay i project ca bn.
Note: Nu bn xa file R.java, Eclipsce s to li cho bn ngay lp tc. Lu rng Eclipse c th
to ra file R.java, project ca bn phi khng c error. Nu bn nhn ra rng Eclipse khng to li cho bn
ssau khi bn xa file R.java, th hy kim tra li project. Code c th cha errors hay l file Xml c th
khng wellform( AndroidManufest.xml, main.xml . . .).
Cui cng, code kt ni activity vi UI(main) chnh l method setContentView(), nm trong file
HelloWorldActivity.java :

Thangit14.blogspot.com Thangit14@gmail.com


24

y R.layout.main tham chiu n file main.xml trong folder res/layout. Khi bn thm file XML
vo folder res/layout, filenames s t ng c sinh trong R.java. Method onCreate() l mt trong
nhng method c gi ngay lp tc khi mt activity c load. Chng 2 s tho lun thm v vn
ny.
Tng kt
Chng ny cung cp cho bn mt ci nhn tng quan, ngn gn v Android, v nhn mnh
mt s nhng kh nng ca n. Nu bn lm theo nhng hng dn trn v vic ti v ci t cng c
v Android SDK, bn c mt h thng lm vic - , mt trong l kh nng pht trin thm nhng
ng dng Android th v hn nhiu so vi HelloWorld. Trong chng ti, bn s c tm hiu cc khi
nim v activities, intents, v vai tr rt quan trng ca chng trong Android.

You might also like