Professional Documents
Culture Documents
1/6/2013
Thng 7/2008, Apple ra mt AppStore. n nay, App Store c hn 400,000 ng dng vi 10 t lt ti v, dn u ngnh v dch v ng dng cho di ng. Ovi Store ca Nokia, Android Market ca Google, App World ca Blackberry , Huawei Technology.
1/6/2013
1/6/2013
CC MOBILE OS
iOS Android Tizen Windows Phone 7 Blackberry OS & Qnx WebOS MeeGo Symbian.
1/6/2013
THNG K TH TRNG
1/6/2013
1/6/2013
1/6/2013
1/6/2013
1/6/2013
1/6/2013
10
2 mn hnh chnh.
1/6/2013
11
NG DNG V TNH M
1/6/2013
12
KH NNG TY BIN
1/6/2013
13
1/6/2013
14
1/6/2013
15
GOOGLE ANDROID
L g ?
Open Source OS Linux kernel (2.6) Mobile platform (smartphone) Lin minh OHA (Open Handset Allien): HTC, LG, Samsung, Motorola, T-Mobile, Sprint, NVIDIA, Intel, Broadcom, Qualcom,)
GOOGLE ANDROID
C g ni bt ?
Full web (Html/html5, javascript, flash) Game 2D/3D
a im (Multi touch)
a lung (Multi thread)
GOOGLE ANDROID
Lch s pht trin:
Google mua Android Inc 17-8-2005 Ra mt cng ng thng 11-2007, thnh lp OHA (Open Handset Allien)
GOOGLE ANDROID
Cc phin bn
1.0 - 9-2008 1.1 - 2-2009 1.5 (Cupcake) 04/2009 1.6 (Donut) 09/2009 2.0/2.1 (Eclair) 10/2009, 01/2010 2.2 (Froyo) 05/2010 2.3 (Gingerbread) 06/12/2010 3.0/3.1/3.2 (HoneyComb) 03 7/2011 4.0 (Ice cream sandwich) 9/2011 4.1 (Jelly bean) 7/2012 4.2 (Jelly bean) 11/2012
HONEY COMB
20
21
GOOGLE ANDROID
GOOGLE ANDROID
GOOGLE ANDROID
GOOGLE ANDROID
Android Market
GOOGLE ANDROID
Android Market
S lng ng dng/game: 500.000+ S lt ti: 8,1 t lt S lt ti: 31.8 t lt vo nm 2016
GOOGLE ANDROID
Android phone
HTC G1
GOOGLE ANDROID
Android phone
Motorola Droid/Milestone
Samsung Galaxy S
GOOGLE ANDROID
Android phone
SonyEricsson Arc
GOOGLE ANDROID
Android phone
HTC Desire
Samsung Galaxy S3
GOOGLE ANDROID
Android phone
Meizu MX
HTC One X+
GOOGLE ANDROID
Android phone
LG Optimus G
Google Nexus 4
GOOGLE ANDROID
Tip cn th no ?
Sn xut device Sn xut ng dng, game Cung cp gii php: nhng, mini board,..
GOOGLE ANDROID
Li nhun t u ?
Sn xut device: Bn device to end user Sn xut ng dng, game: Bn qua Android Market, Vimarket, F-Store,.. Free v thu li nhun t qung co in app Outsourcing cho i tc nc ngoi
Cung cp gii php: nhng, mini board,.. Nghin cu v bn gii php Outsourcing
GOOGLE ANDROID
Lm ng dng loi no ?
GOOGLE ANDROID
GOOGLE ANDROID
Kin trc
Vimarket
VietNam 3.0
KarDroid
n quan
Jewel 1
Jewel 2
DOWNLOAD ECLIPSE
IDE cho lp trnh: Eclipse Download: http://www.eclipse.org/downloads/ Vo link bn trn, download eclipse classic v ri gii nn.
CI T ADT PLUGIN
M Eclipse ln, bm vo Help Install new software. form hin ra, chn Add mc Name, nhp tn g cng c, v d nh ADT plugin mc Location, nhp vo link: http://dlssl.google.com/android/eclipse/ Sau bm OK, chn ht tt c ri bm next cho n lc xong.
CI T ANDROID SDK
C th xem hng dn ci t gc ti y http://developer.android.com/sdk/installing.html Mun ci t of fline:
http://dl-ssl.google.com/android/repository/repository.xml http://dl-ssl.google.com/android/repository/<package name>
CI T ANDROID SDK
Ti Android SDK ti link ny http://developer.android.com/sdk/index.html (nh ch l n chia ra Windows, Mac v Linux) M Eclipse window preferences Android trong mc SDK location chn Browse a ng dn n th mc SDK bm apply.
CI T ANDROID SDK
Eclipse window Android SDK and AVD manager Available packages chn v ci ht (hi lu mt cht) hoc bn c th ch chn my ci lin quan n Android 1 .6 thi cng c (API level 4).
CI T ANDROID SDK
Sau khi xong th bm vo Installed packages
TO MT IN THOI O (AVD)
Eclipse window Android SDK and AVD manager ci ca s mi , chn mc Virtual devices bm nt New Mc Name: t tn g cng c Mc target: chn API level 4 Sdcard size: bn g vo 1024 (hoc c th cao hn) Sau bm Create AVD.
TO MT PROJECT MI
mn hnh eclipse, bm File New Project Android Android Project Next Hoc trn thanh cng c bm vo icon nh trong hnh
TO MT PROJECT MI
mn hnh k nhp liu vo cc nh sau:
Project name: HelloWorld (tn project hin tr trn eclipse cng s l th mc ch ng dng trong workspace) Application name: Hello World (tn ng dng s hin th trn in thoi) Package name: org.multiuni.android.hellowrold (tn ca package s cha source code, tng t trong java http://en.wikipedia.org/wiki/Java_package#Package_naming_conve ntions)
TO MT PROJECT MI
Create activity: HelloWorldActivity (to mt lp con ca lp Activity, dng hin th mt mn hnh y l mn hnh HelloWorld ca chng ta) Min SDK version: 4 (tc SDK 1.6, y chng ta khai bo l ng dng ny c th p ng c phin bn SDK c nht l phin bn no)
CU TRC MT PROJECT
Th mc src cha source code ng dng. Gm cc package v cc class. Th mc gen cha cc file t ng pht sinh (m thng gp nht l R.class) Th mc res cha cc resource dng trong ng dng (thng qua ID) Th mc assets cha cc resource file m ng dng cn dng (di dng file)
CU TRC MT PROJECT
File Manifest l file khai bo thng tin v ng vi h thng (nh ng dng gm nhng mn hnh no, c service no xin cc quyn g, phin bn bao nhiu, dng t SDK phin bn no) Ngoi ra cn c file th vin.
public class HelloWorldActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello, Android"); setContentView(tv); } }
TH X L S KIN
code bn trn, i TextView li thnh Button.
Button bt = new Button(this);
bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "Hello World", Toast.LENGTH_LONG).show(); } });
MT S PHM TT
import cc th vin cn thiu bm xa mt dng code bm hin th bng suggestion bm comment mt dng code Ctrl Ctrl Ctrl Ctrl + + + + Shift + O D Space /
TH XOAY MN HNH
To 1 project mi tn l Orientation. Sau , bm phi chut vo th mc res new Folder nhp tn folder l layout-land (nhp chnh xc)
KT THC
Tham kho bn ting Anh ti link ny: http://developer.android.com/resources/tutorials/hello world.html C th th cc view khc nhau v x l mt s s kin khc nh s kin long click, s kin touch, s kin focus trn cc i tng view nh Button, TextView, ImageView, ImageButton
TREE VIEW
LAYOUT MU CA HELLOWORLD
<?xml version="1.0" encoding="utf -8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=@string/hello /> </LinearLayout>
MT S THUC TNH C BN
Layout_width, layout_height: chiu rng ca view (fill_parent l to bng kch thc ca layout cha view ny, wrap_content l va ni dung cn hin th ca view) Orientation: vi LinearLayout, vic sp xp cc view l nm k nhau theo hng ngang hoc hng dc, ta khai bo orientation chn sp theo kiu no (horizontal/vertical)
MT S THUC TNH C BN
Gravity: thuc tnh ny qui nh cc view nm bn trong layout s t theo v tr no so vi layout (trung tm, tri, phi, trn di) Weight: cc view phan chia t l din tch hin th trn mn hnh (t l tnh theo weight ca tng view trn tng s weight, cc view ko khai bo weight th s xem qua width v height)
V D C BN
Vo link ny ly code cho vo ng dng: http://developer.android.com/resources/tutorials/views/hello -linearlayout.html
THC HNH
Lm mt layout hin th nh trong hnh:
Cc bc nh sau:
Phn tch thnh phn layout trn giy Phn tch c im cc view Add thm resource nh Th trc vi vi tab layout (khi view file xml trong eclipse) a vo thc thi trn my, nh gi
LIST
Rt hay dng trong Android. c bit cc ng dng cn lu tr v hin th nhiu d liu. List l mt danh sch cc view thng thng c cng dng layout t lin nhau.
APIDEMOS
M ng dng ApiDemos c sn:
New android project Create project from existing source Browse m th mc SDK platforms android-1.6 samples ApiDemos OK Finish. M th mc project trong eclipse src m com.example.android.apis.view m file List1.java
PHN 2: C BN V ANDROID
2 .1 C C T H N H PH N C B N T R O N G A N D R O ID
2 . 1 . 1 AC T I V I T I E S
L mt thnh phn ca ng dng cung cp giao din gip ta c th tng tc c nh gi in, sms, chp hnh, map Mt ng dng Android c th gm nhiu activities thay i lin tc thay nhau hin th trn mn hnh. Activity chy u tin gi l main activity Trong mt ng dng c nhiu activities hot ng thay phin th mi ln c activity mi c gi th activity trc s trng thi tm dng (paused) v c lu vo stack. n khi activity kia lm xong hoc ngi dng nhn BACK th n s c khi to li. Cc trng thi ca mt activity
Active (running): ang c hin th trn mn hnh (foreground) Paused: Activity ang trng thi tm dng nh v d trn Stop: Activity c thay th hon ton bng mt activity khc Killed: Activity b hy, b ng gii phng b nh.
80
1/6/2013
ACTIVIT Y LIFECIRCLE
Vng i ca m t a c t i vi t y
1/6/2013
81
ACTIVIT Y LIFECIRCLE
Vng i ca m t a c t i vi t y
1/6/2013
82
PH N 2 : C B N V N G D N G A N D R OID
2 . 1 C C T H N H P H N C B N T R O N G N G D N G AN D R O I D
2.1.2 SERVICES
Services: l thnh phn chy ngm trong Android cp nht d liu, a ra cc cnh bo V d: Cc services ca Google Maps, Danh b, SMS, Content Provider, qun l I/O khc
1/6/2013
83
PH N 2 : C B N V N G D N G A N D R OID
2 . 1 C C T H N H P H N C B N T R O N G N G D N G AN D R O I D
2.1.3 CONTENT PROVIDER
Content Provider: L kho chia s d liu gia cc ng dng vi nhau. V d v chia s: Audio, Video, Thng tin c nhn, cu hnh ci t C th to ra ngun d liu ring bng cch:
T to ra Content Provider Thm vo provider c sn
D liu thng c lu tr file h thng, hoc trong mt SQLite database. Content Provider hin thc mt tp phng thc chun m cc ng dng khc c th truy xut v lu tr d liu ca loi n iu khin.
1/6/2013
84
PH N 2 : C B N V N G D N G A N D R O ID
2 . 1 C C T H N H P H N C B N T R O N G N G D N G AN D R O I D
2.1.4 Broadcast Receiver: Thnh phn thu nhn cc Intent gi ti. V d: Mt Broadcast Receiver nhn bit cc Intent l cc cuc gi ti. 2.1.5 Intent: 3 thnh phn chnh ca ng dng l Activities, Services v Broadcast Receiver u c khi chy t cc bn tin (messages) c gi l intent. Intent l phng tin chuyn i cc Activities khc nhau trong cng mt ng dng hoc cc ng dng khc nhau. 2.1.6 Notification: a ra cc thng bo, cnh bo trn mn hnh m khng cn lm cho cc activity b ngng hot ng.
1/6/2013
85
1/6/2013
86
y l file c t ng sinh ra khi to mt project android, dng qun l cc thuc tnh khai trong cc file XML v cc hnh nh trong project. Code trong file R.java c t ng sinh ra v t thay i khi c s kin xy ra lm thao i cc thuc tnh trong ng dng.
1/6/2013
87
Khi to mt project Android th th vin android.jar s c mc nh thm vo trong project. Ty theo project m ta c th cn cc API khc c thm vo cng vi android.jar, v d maps.jar (cho cc ng dng s dng Google Maps API chng hn).
1/6/2013
88
Khi to mt project Android th th vin android.jar s c mc nh thm vo trong project. Ty theo project m ta c th cn cc API khc c thm vo cng vi android.jar, v d maps.jar (cho cc ng dng s dng Google Maps API chng hn).
1/6/2013
89
y l file c dng khai bo cc Activity s dng, cc permission cho chng trnh, phin bn SDK, Activity chy chnh (main activity).
1/6/2013
90
2. <activity>: quy nh v cc activity m ta khai bo 3. <uses-permission>: quy nh v cc quyn m ng dng c th truy cp ti, v d cn ti quyn gi SMS th:
<uses-permission android:name=android:permission.SEND_SMS> </uses-permission>
4. <uses-sdk>: quy nh v phin bn SDK m ta s dng h tr cho ng dng, v d android version 8 th: <uses-sdk android:minSdkVersion=8></uses -sdk>
1/6/2013
91
1/6/2013
1/6/2013
93
1/6/2013
94
1/6/2013
95
1/6/2013
96
1/6/2013
97
98
1/6/2013
99
1/6/2013
100
singleLine: quy nh textfield l 1 hng duy nht hay l textbox c nhiu hng. V d:
android:singleLine=true th s c 1 hng android:singleLine=false th l 1 textbox nhiu hng
1/6/2013
101
1/6/2013
102
1/6/2013
103
PH N 4 : C C T H N H PH N G IA O D IN A N D R O ID
ANCHORING VIEWS
Anchoring c dng nhiu trong RelativeLayout. V d sau:
1/6/2013
104
PH N 4 : C C T H N H PH N G IA O D IN A N D R O ID
ANCHORING VIEWS
1/6/2013
105
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
A N C H O RING VIEW S
1/6/2013
106
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
A N C H O RING VIEW S
1/6/2013
107
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
A N C H O RING VIEW S
1/6/2013
108
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
A N C H O RING VIEW S
1/6/2013
109
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
R ESIZ IN G A N D R EPO SIT ION IN G Xem v d sau v Resizing and repositioning u tin ta to th mc layout -land v file main.xml trong Ni dung file main.xml trong th mc layout
1/6/2013
110
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
1/6/2013
111
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
1/6/2013
112
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
1/6/2013
113
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
1/6/2013
114
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
1/6/2013
115
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
1/6/2013
116
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
1/6/2013
117
P H N 4 : C C T H N H P H N G I AO D I N AN D R O I D
1/6/2013
118
X L NHIU ACTIVITY
Trong mt chng trnh ta s thng dng nhiu activities (activity) thay i cc tc v khc nhau, v vy ta s hc x l nhiu activity ny lin kt chng li vi nhau.
1/6/2013
119
X L NHIU ACTIVITY
Code trong file AndroidManifest.xml
1/6/2013
120
X L NHIU ACTIVITY
Click chut phi vo th mc src chn New > Class t tn l Activity2 > Finish Copy file main.xml v paste vo chnh th mc layout, t li tn l activity2.xml (lc ny trong th mc layout c c main.xml v activity2.xml) Sa li file activity2.xml nh sau:
1/6/2013
121
X L NHIU ACTIVITY
1/6/2013
122
X L NHIU ACTIVITY
Trong MainActivity.java
1/6/2013
123
X L NHIU ACTIVITY
1/6/2013
124
XUT GI TR T MT ACTIVITY
Trong file main.xml
1/6/2013
125
XUT GI TR T MT ACTIVITY
Trong Activity2.java
1/6/2013
126
XUT GI TR T MT ACTIVITY
1/6/2013
127
XUT GI TR T MT ACTIVITY
Trong MainActivity.java
1/6/2013
128
XUT GI TR T MT ACTIVITY
1/6/2013
129
XUT GI TR T MT ACTIVITY
Debug.
1/6/2013
130
1/6/2013
131
1/6/2013
132
1/6/2013
133
1/6/2013
134
1/6/2013
135
1/6/2013
136
1/6/2013
137
Debug.
1/6/2013
138
1/6/2013
139
1/6/2013
140
1/6/2013
141
1/6/2013
142