Professional Documents
Culture Documents
Anh L Training hot ng trong lnh vc o to, hin ti chng ti ang trin khai cc chng
trnh o to trong lnh vc Marketing, Sale, Cng ngh thng tin, ha my tnh, Qun tr
doanh nghip, K nng mm v ng dng cng ngh trc tuyn vo hot ng doanh nghip.
Thi gian qua, Android thu ht rt nhiu nh pht trin t khp mi ni khi Goole phn phi
min ph Android v cc on m ngun m cho bt c ai mun tham gia pht trin phn mm
cho Android. V th, nu nm trong tay nhng kin thc c bn v h iu hnh ny, bn c th
d dng a ra cc phn mm cho Android v c th ty chnh theo ring ca mnh.
Kha hc lp trnh ng dng Android ti Anh L Training chnh l ni em li cho bn nhng
cng c cn thit, nhng kin thc c bn, gip bn tin gn hn ti v tr ca mt lp trnh vin,
mt nh pht trin chuyn nghip, hoc ch n gin l tha sc sng to ra nhng ng dng hu
ch cho cuc sng.
Sau kha hc Lp trnh ng dng Android bn s thnh tho cc cng vic sau:
T thit lp mi trng pht trin ng dng cho Android.
p dng c quy trnh pht trin ng dng cho in thoi Android.
T pht trin ng dng Android hon chnh, theo m hnh hng i tng, tch hp cc
module ca Google, ca nh pht trin th 3 vo ng dng ca bn.
Hiu bit su sc v Android v nhng cng ngh mi ca Google.
T pht trin ng dng Android hon chnh tch hp cc module ca
Google vo ng dng, thnh tho trong vic s dng web services.
Gio trnh Lp trnh ng dng Adnroid c vit cho cc hc vin ca Anh L Training.
Trong qu trnh bin son khng trnh khi nhng khim khuyt, chng ti rt mong v xin cm
n cc ng nghip, cc bn c nhng ng gp cun sch ngy cng hon thin.
ANH L TRAINING
[1]
MC LC
TNG QUAN V ANDROID .................................................................................................................................... 3
CI T CNG C LP TRNH ANDROID ......................................................................................................... 7
TEXT FIELDS & FORM WIDGETS ....................................................................................................................... 19
MATH-DATE-REGULAREXPRESSION-STRING ............................................................................................... 24
BNG S XE ........................................................................................................................................................... 27
SPINNER .................................................................................................................................................................. 31
CHECKBOX ............................................................................................................................................................. 36
RADIOBUTTON ...................................................................................................................................................... 41
PASSWORD ............................................................................................................................................................. 46
TOGGLEBUTTON ................................................................................................................................................... 50
ALERTDIALOG ....................................................................................................................................................... 54
GRIDVIEW ............................................................................................................................................................... 56
RATINGBAR ............................................................................................................................................................ 59
LAYOUT .................................................................................................................................................................. 63
MENU ....................................................................................................................................................................... 76
CHN V CHI NHC MP3 ................................................................................................................................. 85
GOOGLE MAP ......................................................................................................................................................... 92
ANALOGCLOCK & DIGITALCLOCK .................................................................................................................. 98
DATE PICKER ....................................................................................................................................................... 100
TOAST .................................................................................................................................................................... 105
PROGRESSBAR..................................................................................................................................................... 108
ACTIVITY .............................................................................................................................................................. 114
SQLITE ................................................................................................................................................................... 130
CI T & QUN TR SQLITE TRONG FIREFOX .......................................................................................... 145
SEND EMAIL ......................................................................................................................................................... 150
[2]
Android cung cp framework ng dng cho php vic ti s dng v thay th m ngun
dng component mt cch d dng.
[3]
H tr cc nh dng hnh nh, m thanh, video ph bin nh MPEG4, H.264, MP3, AAC,
AMR, JPG, PNG, GIF.
Email client
[4]
Lch
Bn
Trnh duyt
Danh b
Cc ng dng khc.
Mt trnh qun l ti nguyn, cho php truy xut cc ti nguyn khng phi m ngun nh
cc chui c bn a ha, cc tp tin ha v giao din.
[5]
v cc tc v chy theo lung. Mi ng dng Android chy trn mt tin trnh ring cng vi
mt instance ring ca my o Dalvik.Dalvik c ti u sao cho mt thit b c th chy
nhiu my o cng lc mt cch hiu qu.
Tng Linux kernel:
Android c pht trin da trn cc dch v h thng ct li ca Linux phin bn 2.6, bao
gm cc module:
-
Security
Memory management
Process management
Network stack
Driver model
Tng kernel hot ng nh mt lp tru tng gia lp phn cng v phn mm.
4. Cu trc mt d n Android
Khi to mi mt d n Android, bn cn lu ti cc mc sau:
-
[6]
Tip theo, Click vo radiobutton Accept License Ageement. Chn vo file .exe ca mc
Windows x86(32-bit). (Hoc Windows x86(64-bit)).
[7]
2. Ci t Eclipse.
-
L cng c son tho, bin dch v chy ng dng c vit bng java (trong c ng
dng Android)
Trn trang web ta chn download bn Eclipse IDE for Java Developers (128M), (bng
32bit hay 64bit ty theo my ca bn)
[8]
Chy chng trnh Eclipse bng cch nhp p file eclipse.exe trong th mc va Eclipse.
(khng cn ci t).
3. Ci t Android SDK
-
Truy cp a ch:
http://developer.android.com/sdk/index.html v download phin bn mi nht v ci
t
4. Ci t ADT
Android Development Tools (ADT) l plugin ca Eclipse IDE c thit k nhm cung cp
cho lp trnh vin mi trng tch hp mnh m xy dng cc chng trnh Android trn
Eclipse.
-
[9]
5. Kt ni Eclipse v Android
-
[10]
[11]
7. Ci t AVD
Android Virtual Device (AVD) l cc my o android. Cho php ta chy mt my gi lp
Android trn PC phc v cho vic kim tra ng dng ta ang vit.
-
[12]
8. Chy Th My o
-
Trn Ecliple chn Window -> AVD Manager hoc chn biu tng trn thanh cng c
m AVD Manager.
[13]
[14]
HELLO
1. To project mi
-
[15]
Chn icon
To Activity
[16]
2. Cu trc th mc project:
-
Layout ca project
[17]
[18]
3. To Button
-
[19]
4. To TextView
-
Chn i tng
[20]
G vo on code sau:
[21]
7. Chy ng dng
-
Kt qu khi chy
[22]
[23]
MATH-DATE-REGULAREXPRESSION-STRING
1. Math class:
Cha cc phng thc v hng s tnh (static) phc v cho ton hc.
Cc phng thc thng dng:
2. Date class:
Gip chng ta x l d liu dng ngy, thng, nm, gi, pht, giy..
Mun s dng phi import java.util.Date;
Cc hm thng dng ly v gn d liu cho Date
3. String class:
Chui l mt dy cc k t. C th dng k hiu + ni chui vi nhau. Khi to chui
n gin nht nh sau:
String ten_biem=Chui;
Cc phng thc thng dng ca chui.
[24]
[25]
V d:
-
Email n gin:
String regex=\\w+@\\w+\\.\\w+;
S CMND:
String regex=\\d{10};
S in thoi di ng:
String regex=0\\d{8,9};
S xe my TPHCM
String regex =5\\d-[A-Z]\\d-\\d{3}.{2};
a ch web:
String regex=http://www.(\\w+\\.)\\.+\\w+;
Khi s dng ta phi dng vi class Pattern v class Matcher nh v d bn di
[26]
BNG S XE
1. To project mi
2. To cc i tng
-
To TextView
To EditText
To Button
[27]
[28]
[29]
4. Chy th ng dng
[30]
SPINNER
1. Gii thiu
-
2. To Project
-
[31]
[32]
[33]
[34]
5. Run ng dng
-
[35]
CHECKBOX
1. Gii thiu
-
Khi check vo IPhone Xut hin on Text thong bo : Androind cha c Check
Khi check vo Androind Click Display Hp thoi thng bo : Androind check : true;
2. To Project
-
[36]
[37]
[38]
[39]
5. Run ng dng
-
Khi check vo IPhone Xut hin on Text thong bo : Androind cha c Check
Khi check vo Androind Click Display Hp thoi thng bo : Androind check : true;
[40]
RADIOBUTTON
1. Gii thiu
-
2. To Project
-
[41]
[42]
[43]
5. Run ng dng
-
[44]
[45]
PASSWORD
1. Gii thiu
-
2. To Project
-
[46]
[47]
[48]
[49]
TOGGLEBUTTON
1. Gii thiu
-
2. To Project
-
[50]
[51]
[52]
5. Run ng dng
-
[53]
ALERTDIALOG
1. To project mi
2. To layout
-
[54]
4. Kt qu chy th
[55]
GRIDVIEW
1. To project mi
2. To i tng GridView cho layout
[56]
4. Chy th ng dng
Khi click vo mt k t th
[57]
[58]
RATINGBAR
1. Tao project mi
2. To cc i tng cho layout
[59]
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/lblResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kt qu: "
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/txtRatingValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</LinearLayout>
[60]
4. Kt qu chy th
[61]
[62]
LAYOUT
1. Khi nim layout
Giao din ngi dng ca Android c nh ngha nh mt cy phn cp ca cc View v
ViewGroup. ViewGroup l mt container c th cha cc thnh phn khc v l lp c s cho
cc class Layout k tha t n.
Android cung cp nhiu loi layout cho php cha ng v t chc cc thnh phn ca mt
activity nh button, checkbox, v nhng view khc.
Cc layout cho php kt hp v lng vo nhau to nn giao din phc tp v p hn.
Cc layout phn ln c nh ngha trong cc file XML. Mc nh Eclipse pht sinh ra 1
layout : res/layout/main.xml dng cho Activity u tin.
Ta c th t nh ra cc layout mi cho mt Activity mi, v trong file java ca Activity ta
dng setContentView(R.layout.tenlayout) ch nh Activity s dng file .xml no lm
Layout cho n.
C mt s layout c bn nh: LinearLayout, RelativeLayout, TableLayout.
2. Cch to mt layout mi
-
[63]
Chn Finish
[64]
3. Cc loi Layout
3.1 Linear Layout
Ging nh tn gi ca n, LinearLayout cho php cc thnh phn bn trong n hin th
tuyn tnh hoc theo chiu ngang (Horizontally) hoc theo chiu dc (Vertically).
Chiu ngang hay dc ca LinearLayout c quyt nh nh thuc tnh
android:orientation trong th LinearLayout.
[65]
[66]
4. V d (Tablelayout)
-
Bc 1: To project mi
+ Chn File, New, Project
[67]
[68]
[69]
<TextView
android:id="@+id/textView1"
android:text="Column 1"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button1"
android:text="Column 2" />
</TableRow>
Lp trnh ng dng Android
[70]
<EditText
android:id="@+id/editText1"
android:layout_span="2"
android:text="Column 1 & 2" />
</TableRow>
<TextView
android:id="@+id/textView2"
android:text="Column 1"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button2"
[71]
<Button
android:id="@+id/button3"
android:text="Column 3" />
</TableRow>
<!-- display this button in 3rd column via layout_column(zero based) -->
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >
<Button
android:id="@+id/button4"
android:layout_column="2"
android:text="Column 3" />
</TableRow>
<!-- display this button in 2nd column via layout_column(zero based) -->
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >
<Button
android:id="@+id/button5"
android:layout_column="1"
android:text="Column 2" />
</TableRow>
</TableLayout>
[72]
+ Kt qu khi chy
5. V d (Relativelayout)
<?xml version="1.0" encoding="utf-8"?>
[73]
android:text="Button 2"
android:layout_toRightOf="@+id/btnButton1"/>
<Button
android:id="@+id/btnButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 3"
android:layout_below="@+id/btnButton1"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnButton3"
android:layout_marginTop="94dp"
android:text="User :"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/textView1"
android:layout_toRightOf="@+id/btnButton3" />
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/editText1"
[74]
android:text="Submit" />
</RelativeLayout>
[75]
MENU
1. Menu
L mt thnh phn giao din ngi dng quan trng trong nhiu loi ng dng.
Trong Android c 3 dng Menu l Option Menu, Context Menu v Popup Menu.
Ta c th nh ngha menu trong XML hoc trong code java nhng nn dng XML v:
-
Tch ring phn layout trong file XML v phn x l trong file java s lm m lnh d
nhn hn.
V d:
3. Option menu
-
Bc 1: To project mi
+ File, New, Project
[76]
[77]
Bc 2: To menu
+ To file .xml (activity_main.xml trong res/menu)
[78]
+ To menu con
[79]
Bc 4: Chy th
[80]
Bc 6: Chy th ng dng
+ Khi chn vo menu Thm
4. Context menu
-
Bc 1: To project
Bc 2: To ListView
+ Chn ListView trong Composite v ko sang Layout
[81]
[82]
v chy th ng dng
[83]
Bc 5: Chy ng dng
[84]
Bc 1: To project mi
[85]
[86]
[87]
[88]
[89]
[90]
[91]
GOOGLE MAP
-
Bc 1: To my o mi chy ng dng
Vo AVD Manager tin hnh to my o nh hnh:
Bc 2: To Project mi:
[92]
[93]
Kt qu s nh hnh:
Copy on m
[94]
[95]
[96]
[97]
Bc 1: To project mi
Bc 2: To layout
[98]
Bc 4: Chy ng dng
[99]
DATE PICKER
-
Bc 1: To project mi
Bc 2: To layout
[100]
Trong :
[101]
[102]
Bc 4: Chy ng dng
[103]
[104]
TOAST
-
Bc 1: To project mi
Bc 2: Thit k layout
Bc 3:
[105]
Bc 4: Chy ng dng
[106]
[107]
PROGRESSBAR
-
Bc 1: To project mi
Bc 2: To layout
[108]
Trong :
[109]
[110]
V:
[111]
Bc 4: Chy ng dng
[112]
[113]
ACTIVITY
1. Activity
-
Activiy l presentation layer cho ng dng Android. Hiu n gin n mt mn hnh hin
th.
N chim ton b vng drawable ca mn hnh (tr phn status v title bar).
C th chuyn t mt activity sang 1 activity khc. Mun thc hin vic chuyn ta phi
thng qua Intent.
[114]
Activity trng thi ny l activity ang hin th trn mn hnh v tng tc vi ngi s
dng. Ta c th xem nh Activity ang nhn Focus.
Khi Activity b mt Focus (khng cn tng tc vi ngi dng) nhng vn Visible trn
mn hnh th n trng thi Paused.
[115]
3. To mt Activity mi
Mi project c to ra u c 1 Activity mc nh. Ta c th to thm cc activity theo cc
bc:
-
4. Intent
-
Intent c 2 dng l
Explicit Intent
Implicit Intent
[116]
8. Truyn d liu
-
[117]
Cung cp loi hnh ng, loi d liu, thao tc thuc nhm no h thng s t tm
activiy ng k kch hot.
[118]
12. Mt s Lab
12.1
Lab 1:
Bc 1: To project mi
[119]
[120]
Bc 6: Chy ng dng
[121]
12.2
Bc 1: To project
Bc 2: To layout
[122]
Bc 3: Vit code
Bc 4: Chy ng dng
[123]
12.3
Bc 1: To project mi
Bc 2: To layout chnh
[124]
Bc 3: To layout mi
[125]
[126]
[127]
Bc 6: Chy ng dng
[128]
[129]
SQLITE
-
Bc 1: To project mi
Bc 2: To layout chnh
Activity_main.xml:
[130]
+ G vo tn class
[131]
Trong cc function:
[132]
[133]
Bc 4: To layout mi res/layout/save.xml
File save.xml:
[134]
[135]
v:
[136]
Bc 6: To layout mi res/layout/check.xml
[137]
check.xml:
Bc 7: To Activity CheckData.java
v:
[138]
[139]
[140]
[141]
[142]
[143]
[144]
[145]
[146]
[147]
[148]
[149]
SEND EMAIL
1. Gii thiu
-
2. To Project
-
[150]
[151]
[152]
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Message : "
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editTextMessage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:inputType="textMultiLine"
android:lines="5" />
<Button
android:id="@+id/buttonSend"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Send" />
</LinearLayout>
[153]
5. Run ng dng
-
[154]