You are on page 1of 41

L!

P TRNH ANDROID BI 1: C" B#N V$ H%H ANDROID

Kha !o t"o L#p trnh di !$ng !a n%n t&ng HNPT 04/2013

Trung tm Tnh ton Hi'u n(ng cao, )H Bch Khoa H N$i

N&i dung
!!Gi'i thi(u kha h)c !!T*ng quan v+ h( ,i+u hnh Android !!Ki-n trc H%H Android !!Pht tri.n /ng d0ng Android !!Hello Android !!G1 l2i !!Tri.n khai ln thi-t b3

Kha h)c l4p trnh Android


!! Bu*i 1: Gi'i thi(u c5 b6n v+ Android !! Bu*i 2: C5 b6n v+ pht tri.n /ng d0ng Android !! Bu*i 3: Xy d7ng giao di(n ng89i dng !! Bu*i 4: Intent v services !! Bu*i 5: L8u tr: v truy xu;t d: li(u !! Bu*i 6: %3nh v3 v b6n ,< !! Bu*i 7: M=ng v webservices !! Bu*i 8: %i(n tho=i v SMS !! Bu*i 8: Multimedia !! Bu*i 10: %< h)a v ho=t h)a
3

Kha h)c l4p trnh Android > Gi6ng vin


!!T.S Don Trung Tng
"!Nghin c*u vin )H BK HN "!Gi&ng vin )H FPT

!!Th.S %o Quang Minh


"!Nghin c*u vin )H BK HN

!!Th.S D85ng Nh4t Tn


"!Nghin c*u vin )H BK HN "!Gi&ng vin )H FPT

N&i dung
!!Gi'i thi(u kha h)c !!T*ng quan v+ h( ,i+u hnh Android !!Ki-n trc H%H Android !!Pht tri.n /ng d0ng Android !!Hello Android !!G1 l2i !!Tri.n khai ln thi-t b3

T*ng quan > Android l g?


!!H( ,i+u hnh m ngu<n m> cho cc thi-t b3 di ,&ng
"!Hi'n nay khng ch+ l cc thi,t b- di !$ng: TV, HD Player, Game console,

!!Android ,8?c xy d7ng d7a trn Linux kernel !!Android ,8?c vi-t ph@n l'n b>i ngn ng: C nh8ng cc /ng d0ng cho Android l=i vi-t bAng Java

T*ng quan > L3ch sB H%H Android


10 / 2003 7 / 2005 11 / 2007 9 / 2008 10 / 2008 2013

Google mua l=i Android Thnh l4p Open Handset Alliance T-Mobile G1

1 tC thi-t b3 Android

Android tr> thnh H%H ngu<n m>

T*ng quan > S7 pht tri.n

T*ng quan > Cc phin b6n

T*ng quan > Tnh nDng


!!2D / 3D graphic (OpenGL) !!SQLite !!K-t nEi
"!GSM/EDGE, CDMA, LTE, Bluetooth, Wifi (direct), NFC, WiMAX,

!!Media / Streaming !!Multitouch !!Multitask !!Voice based !!Tethering !!


10

N&i dung
!!Gi'i thi(u kha h)c !!T*ng quan v+ h( ,i+u hnh Android !!Ki-n trc H%H Android !!Pht tri.n /ng d0ng Android !!Hello Android !!G1 l2i !!Tri.n khai ln thi-t b3

11

Ki-n trc H%H Android

12

Ki-n trc > Linux Kernel

! L m&t HAL (Hardware abtraction layer) ! Cc trnh ,i+u khi.n thi-t b3 ! Qu6n lF b& nh' ! Qu6n lF ti-n trnh ! Giao ti-p m=ng

13

Ki-n trc > Th8 vi(n

! Th8 vi(n C/C++ ! Giao di(n l4p trnh Java ! Qu6n lF cBa s* (Surface Manager) ! %< h)a 2D v 3D ! Media, SQLite, trnh duy(t

14

Ki-n trc > Android Runtime

! My 6o Dalvik
!M2i /ng d0ng m&t my 6o !Th7c thi t(p tin Dex !NhG g)n v hi(u qu6 h5n t(p .class !SB d0ng h=n ch- b& nh' v pin

! Core Libraries
!Java 5 Std edition !Collections, I/O etc
15

Ki-n trc > Application Framework

! API interface ! Activity manager qu6n lF vng ,9i cHa ti-n trnh

16

Ki-n trc > Applications

! Cc /ng d0ng d7ng sIn v /ng d0ng cHa ng89i dng ! C th. thay th- cc /ng d0ng c sIn

17

N&i dung
!!Gi'i thi(u kha h)c !!T*ng quan v+ h( ,i+u hnh Android !!Ki-n trc H%H Android !!Pht tri.n /ng d0ng Android !!Hello Android !!G1 l2i !!Tri.n khai ln thi-t b3

18

Pht tri.n /ng d0ng

!"#$%&#' ()"&*+,-'

3)4)'5%/$0+''

?)84&@' A('

.+,%/$0+' 1(2'

6+"+$)-+#' 78),,' !"#$%&#' 2&;$)$&+,'

3)4)' 7%9:&8+$'

<#+=' >&8+'

19

Pht tri.n /ng d0ng > Ch85ng trnh Android


!!Vi-t bAng ngn ng: Java !!%8?c ,ng gi bAng Android Asset Packaging Tool thnh t(p tin APK !!Cc ch85ng trnh Android ch=y ,&c l4p v'i nhau !!
"!T.t c& *ng d/ng ch"y trn ti,n trnh Linux ring. "!Cc *ng d/ng c my &o Davik ring. "!Cc *ng d/ng khi ch"y !01c gn m$t ID ng02i dng h' th3ng Linux ring, v v#y khng th4 !5c ghi d6 li'u c7a *ng d/ng khc. "!8ng d/ng c th4 chia s9 !4 dng chung ID ng02i dng, cho php chia s9 t'p tin.

20

Pht tri.n /ng d0ng > Cc thnh ph@n cHa 1 ch85ng trnh (1)
!!Activity
"!Cc tc v/ trn giao di'n, ng02i dng c th4 t0:ng tc v x; l<. "!V d/: Danh sch menu ng02i dng c th4 ch5n

!!Services
"!Ch"y n%n trong kho&ng th2i gian khng xc !-nh tr0=c. "!V d/: Ti,n trnh tnh ton v tr& v% k,t qu& cho Activity, ch:i nh"c, c#p nh#t d6 li'u th2i ti,t, v.v.

!!Broadcast Receivers
"!Nh#n v ph&n h>i l"i cc thng bo "!V d/: Thng bo mi gi2 ! thay !?i.

21

Pht tri.n /ng d0ng > Cc thnh ph@n cHa 1 ch85ng trnh (2)
!!Content Providers
"!L0u tr6 v nh#n d6 li'u, cung c.p d6 li'u ! cho t.t c& cc *ng d/ng khc. "!V d/: Android cung c.p s@n 1 s3 Content Provider qu&n l< d6 li'u chung nh0: m thanh, video, &nh, thng tin danh b", v.v)

!!Intents
"!Thng !i'p h' th3ng, thng bo sA ki'n t=i *ng d/ng (Activity hay Service). "!V d/: Truy%n thng !i'p t=i h' th3ng cung c.p m$t Activity !4 hi4n th- b*c &nh, hoBc !4 ng02i dng s;a v(n b&n

!!Notification Manager
"!Ph0:ng th*c t0:ng tc ti,n trnh n%n v=i ng02i dng. "!V d/: Thng bo ng02i dng c tin nhCn m=i !,n.
22

Pht tri.n /ng d0ng > Mi tr89ng pht tri.n


!!Eclipse
"!ADT Plug in "!Google Plugin

!!Android SDK
"!C th4 t&i ring tDng phin b&n "!android.jar "!docs "!samples "!tools

B08&:,+' C?B'

!"#$%&#' 5?D'

!"#$%&#' B9/8)-%$'

!"#$%&#' (%;&8+' ?+4&0+'

23

Pht tri.n /ng d0ng > My 6o


!!My 6o
"!Gi& l#p chip ARM dAa trn QEMU "!Ch"y &nh h' !i%u hnh t0:ng tA nh0 my th#t.

!!H=n ch-:
"!Khng hE tr1 camera. "!Thi,u cc thi,t b- nh0 GPS, Bluetooth, Calendar (vFn hE tr1 m*c phGn m%m)

24

N&i dung
!!Gi'i thi(u kha h)c !!T*ng quan v+ h( ,i+u hnh Android !!Ki-n trc H%H Android !!Pht tri.n /ng d0ng Android !!Hello Android !!G1 l2i !!Tri.n khai ln thi-t b3

25

Hello Android > ChuJn b3 JDK


!!http://www.oracle.com/technetwork/java/javase/ downloads/index.html !!JDK6 / JDK5 (khng ch)n JDK7 hay JRE)
"!http://www.oracle.com/technetwork/java/javase/downloads/index.html "!Ki4m tra ! c JDK5 / 6
!C:\program files\java\jdk1.X.yyy, trong ! X=5 hoBc 6

!!Thi-t l4p bi-n mi tr89ng JAVA_HOME v'i gi tr3 C: \program files\java\jdk1.X.yyy !!Thm gi tr3 $JAVA_HOME/bin vo bi-n mi tr89ng PATH

26

Hello Android > ChuJn b3 Eclipse v SDK


!! Ci ,Kt Eclipse v cc plugin
"!http://www.eclipse.org/downloads (t&i v% gi&i nn l ch"y !01c)

!! Ci ADT plugin
"!Help > Install new software, Add "!https://dl-ssl.google.com/android/eclipse/

!! Ci ,Kt Android SDK


"!http://developer.android.com/sdk/index.html

!! Eclipse
"!ch5n trong Windows # Android SDK and AVD Manager # Available Pakages "!Ch5n Android Repository "!Ch5n phin b&n # Install Selected "!Ci Android Support, USB Driver, Google API
27

Hello Android > T=o my 6o (AVD)


!!Trong Eclipse, ch5n: Window ! Android SDK and AVD Manager. !!Ch5n Virtual Devices trong khung bn tri !!B.m New.... H$p tho"i Create New AVD xu.t hi'n !!Nh#p tn my &o, v d/: "my_avd" !!Ch5n m$t n%n t&ng (trong phGn target). )y l phin b&n h' !i%u hnh sH ch"y trn my &o. !!B.m Create AVD.

28

Hello Android > T=o Project Android


!!Ch5n File > New > Project... N,u Android ADT ! ci !Bt, trong c;a s? sH hin ra Android # Android Project. Ch5n v click Next !!Nh#p cc gi tr- nh0 sau:
"!Project name: HelloAndroid "!Build Target: Ch5n n%n t&ng bIng hoBc nhJ h:n AVD. "!Application name: Hello, Android "!Package name: com.hnpt.helloandroid (hoBc tn khc) "!Create Activity: HelloAndroid

!!B.m Finish
29

Hello Android > Code


!! HelloAndroid ! src ! com.example.helloandroid ! HelloWorld.java package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
30

Hello Android > Code


!! HelloAndroid ! src ! com.example.helloandroid ! HelloWorld.java package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; import android.widget.TextView;
Ch F: C th. b;m Ctrl + Shift + O ,. t7 ,&ng import

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); } }
31

Hello Android > Ch=y ch85ng trnh


!!Ch5n: Run ! Run !!Ch5n Android Application

32

Hello Android > mail.xml


!!MK t'p /res/layout/main.xml (Graphical Layout / XML)
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/ apk/res/android" android:id="@+id/textview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/hello"/>

33

Hello Android > strings.xml


!!MK t'p /res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello, Android !</string> <string name="app_name">Hello, Android</string> </resources>

34

Hello Android > Code


!!S;a t'p tin HelloWorld.java
!! package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
35

N&i dung
!!Gi'i thi(u kha h)c !!T*ng quan v+ h( ,i+u hnh Android !!Ki-n trc H%H Android !!Pht tri.n /ng d0ng Android !!Hello Android !!G1 l2i !!Tri.n khai ln thi-t b3

36

G1 l2i
!!Nh;n chu&t ph6i vo project ,8?c ch)n > Debug as > Android Application
"!Debug trn my &o "!Debug trn my th#t (cGn b#t USB Debugging)

!!Cc ti(n ch gip Debug:


"!Break point (chu$t ph&i vo dng code, ch5n !Bt Break point) "!Log cat: theo di cc thng !i'p h' th3ng "!Variables: Theo di cc bi,n khi ch"y tDng dng l'nh "!Step into / Step over / Step return "!Resume / Suspend / Terminate

37

N&i dung
!!Gi'i thi(u kha h)c !!T*ng quan v+ h( ,i+u hnh Android !!Ki-n trc H%H Android !!Pht tri.n /ng d0ng Android !!Hello Android !!G1 l2i !!Tri.n khai ln thi-t b3

38

Tri.n khai ln thi-t b3


!!Cch 1
"!K,t n3i thi,t b- v=i my tnh, b#t USB Debugging trn thi,t b"!Nh.n chu$t ph&i vo project, ch5n Run As > Android Application "!8ng d/ng sH !01c ci ln thi,t b-

!!Cch 2
"!Trong th0 m/c bin c7a project sH c file apk, copy file ny ln thi,t bci nh0 ci phGn m%m thng th02ng.

!!Cch 3
"!)0a ln cc ch1 *ng d/ng: Play Store, Amazon

39

THANKS AND QUESTION ?

40

Bi t4p
1.! Ci ,Kt Java SDK, Eclipse v ADT plugin, Android SDK theo h8'ng dLn trong slide 2.! T=o 2-3 thi-t b3 6o v'i cc thng sE khc nhau 3.! T=o 1 project Android, ko th6 1 sE components (TextView, Button, Radio Button), v.v ln Graphical Layout cHa main.xml
"! "! "! Ch"y ch0:ng trnh trn 1 trong cc my &o vDa t"o Ch"y ch0:ng trnh trn thi't b- th#t k,t n3i v=i my tnh Th; vo ch, !$ gL lEi.

41

You might also like