Download JDK ..... Trên th tr ng ng d ng Android thì các ng d ng calculator c ng khá da d ng đi n hình là: Scientific calculator... Hình 2.6 Activity Stack.
Trang 2– i –
L I C M N
hoàn thành khóa lu n t t nghi p này, ngoài s c g ng làm vi c c a
b n thân, em đã nh n đ c s giúp đ c a nhi u cá nhân trong và ngoài
Em r t mong nh n đ c s ch b o, đóng góp ý ki n c a quý th y, cô đ
em có th b sung ki n th c rút ra kinh nghi m và hoàn thi n h n
Xin chân thành c m n!
SV : Lê Qu c Vi t
Trang 3L i Nói u
Ngày nay, xu th c a xã h i thông tin đang chuy n d n sang l nh v c công ngh di
đ ng nói chung và đi n tho i di đ ng nói riêng Minh ch ng cho đi u đó là s ra đ i c a hai dòng đi n tho i smartphone Android và iPhone Tuy nhiên, hi n nay tiêu đi m gây chú ý nh t trong xã h i thông tin v n là n n t ng Android c a Google
Android ™ cung c p m t b đ y đ các ph n m m cho các thi t b di đ ng: là m t
h th ng đi u hành, middleware và các ng d ng di đ ng ch ch t
Hình Bi u t ng h đi u hành Android
Android là h đi u hành trên đi n tho i di đ ng ( và hi n nay là c trên m t s đ u phát HD, HD Player, TV) phát tri n b i Google và d a trên n n t ng Linux Tr c đây, Android đ c phát tri n b i công ty liên h p Android (sau đó đ c Google mua l i vào
n m 2005)
Hi n nay, Android đã thu hút đ c s quan tâm c a các nhà s n xu t đi n tho i di
đ ng l n trên th gi i và m c t ng tr ng c a Android v t lên d n đ u so v i iPhone, Nokia và nhi u hãng khác
n c ta, Android th c s là m t m nh đ t màu m mà các công ty ph n m m khai thác i u này c ng kéo theo vi c c h i vi c làm cho sinh viên m i ra tr ng c ng nhi u h n Ngoài ra, Android là m t n n t ng m và đ c vi t b ng ngôn ng Java nên đây là m t đi m r t thu n l i đ cho nhi u ng i có th d dàng b t tay vào nghiên c u
c ng nh d dàng ti p c n công ngh
Trang 5Nh n Xét C a Giáo Viên H ng D n
Trang 6
– v –
Nh n Xét C a Giáo Viên Ph n Bi n
Trang 7
M C L C
Ch ng I: T NG QUAN V TÀI 1
I. Gi i thi u đ tài 2
1) Tên đ tài: 2
2) Th c tr ng 2
3) Nhu c u 2
4) N i dung: 4
5) Ph ng pháp th c hi n: 5
II. Gi i thi u các ch c n ng 5
1) Giao di n 5
2) Các ch c n ng 8
III. ánh giá k t qu 8
Ch ng II: CÁC KI N TH C CÓ LIÊN QUAN 9
I. Tìm hi u h đi u hành Android 10
1) Gi i thi u h đi u hành Android 10
a) Gi i thi u m t s h đi u hành trên thi t b di đ ng 10
b) L ch s Android 12
2) c đi m c a H H Android 17
a) Nh ng nét đ c tr ng: 17
b) u đi m c a H H Android: 17
c) Nh c đi m c a H H Android: 18
3) C u trúc h th ng Android 19
a) Applications (t ng ng d ng) 19
b) Application framework 19
c) Library 20
d) Android Runtime (môi tr ng th c thi) 20
e) Linux kernel (nhân Linux) 21
4) Chu k ng d ng Android 21
a) Activity Stack 21
b) Các tr ng thái c a chu k s ng 22
Trang 8– vii –
c) Các ph ng th c c a chu k s ng 22
5) Các thành ph n trong ng d ng android 23
a) View 23
b) ViewGroup 24
c) LinearLayout 24
d) FrameLayout 25
e) AbsoluteLayout 25
f) RetaliveLayout 26
g) TableLayout 27
h) Button 27
i) ImageButton 28
j) ImageView 28
k) ListView 28
l) TextView 29
m) EditText 29
n) CheckBox 29
o) MenuOptions 29
p) AccessingFile: 30
II. Xây d ng ng d ng trên h đi u hành android: 32
1) Yêu c u h th ng: 32
2) Cài đ t Android SDK 32
a) Download JDK 32
b) Download eclipse 33
c) Cài đ t ADT plugin 33
d) Cài đ t Android SDK 35
e) T o m t đi n tho i o (AVD) 39
f) T o m t project HelloWold 39
III. Thu t toán đã dùng 40
Ch ng III: TH C HI N TÀI 41
I. Gi i thi u các ch c n ng 42
Trang 9II. Chi ti t t ng ch c n ng 42
1) Máy tính C b n 42
2) Máy tính Khoa h c 45
3) Gi i ph ng trình 47
4) Các công th c toán h c 51
5) Chuy n đ i 56
6) History 57
Ch ng IV: K T LU N 60
I. u đi m và khuy t đi m 61
II. H ng phát tri n 62
III. T đánh giá 63
TÀI LI U THAM KH O 64
PH L C 66
Trang 10– ix –
DANH M C HÌNH NH
Hình Bi u t ng h đi u hành Android ii
Hình 1.1 Giao di n ng d ng Scientific calculator 1 3
Hình 1.2 Giao di n ng d ng Scientific calculator 2 4
Hình 1.3 Giao di n ng d ng Scientific calculator 3 4
Hình 1.4 Giao di n ng d ng Scientific calculator 4 4
Hình 1.5 Màn hình ng d ng c a đ tài 5
Hình 1.6 Màn hình ng d ng c a đ tài 6
Hình 1.7 Màn hình hi n th k t qu c a ng d ng 7
Hình 1.8 H th ng menu c a ng d ng 7
Hinh 2.1 Các h đi u hành di đ ng hi n nay 10
Hình 2.2 H đi u hành IOS 11
Hình 2.3 Các phiên b n android 14
Hình 2.4 Các ng d ng Android 18
Hình 2.5 C u tr c h th ng Android 19
Hình 2.6 Activity Stack 21
Hình 2.7 Chu k s ng c a activity 22
Hình 2.8 T ch c view trong ng d ng Android 24
Hình 2.9 Ví d linearlayout trong ng d ng Android 24
Hình 2.10 Ví d AbsoluteLayout 26
Hình 2.11 Ví d button 27
Hình 2.12 Ví d ImageButton 28
Hình 2.13 Ví d ListView 28
Hình 2.14 Ví d MenuOptions 30
Hình 2.15 Download JDK 32
Hình 2.16 Download eclipse 33
Hình 2.17 Cài đ t ADT plugin 35
Hình 2.18 Cài đ t SDK 36
Hình 2.19 Cài đ t SDK 36
Hình 2.20 Cài đ t SDK 37
Trang 11Hình 2.21 Cài đ t SDK 37
Hình 2.22 Cài đ t SDK 38
Hình 3.1 Giao di n máy tính c b n 43
Hình 3.2 Giao di n máy tính c b n 43
Hình 3.3 Hi n th nh p xu t 45
Hình 3.4 Giao di n máy tính khoa h c 45
Hình 3.5 Ví d các ch c n ng 46
Hình 3.7 Menu gi i ph ng trìnhGi i ph ng trình b c 2: 47
Hình 3.8 Giao di n gi i ph ng trình b c 2 48
Hình 3.8 Giao di n gi i ph ng trình b c 3 48
Hình 3.9 Giao di n gi i ph ng trình b c nh t 2 n x,y 49
Hình 3.10 Giao di n gi i ph ng trình b c nh t 3 n x,y,z 49
Hình 3.11 List các lo i công th c đ c cung c p 51
Hình 3.12 H ng đ ng th c đáng nh 52
Hình 3.13 Các công th c l ng giác 53
Hình 3.14 Các công th c logarit 53
Hình 3.15 Các công th c đ o hàm 54
Hình 3.16 Các công th c tích phân 54
Hình 3.17 Các công th c l y th a 55
Hình 3.18 Giao di n ch c n ng chuy n đ i c s 56
Hình 3.19 Ví d ch c n ng history 58
Hình 3.20 Minh h a file history 59
Trang 12Lê Qu c Vi t – 0851010328 Trang 1
Ch ng I: T NG QUAN V TÀI
Trang 13I Gi i thi u đ tài
1) Tên đ tài:
Tìm hi u và phát tri n ng d ng Calculator trên h đi u hành Android
2) Th c tr ng
M c dù m i xu t hi n t i th tr ng Vi t Nam không lâu, l p trình Android đang là
l nh v c m i m v i nhi u ti m n ng trong th tr ng l p trình ng d ng và ngu n nhân
l c trong t ng lai
S phát tri n c a các thi t b di đ ng đã tr thành đ tài nóng b ng đang đ c quan tâm Song song đó, cùng v i s bùng n c a ngành công ngh ph n m m t i Vi t Nam, ngh l p trình ng d ng đi n tho i nghi m nhiên vô cùng nóng ây là ngành ngh m i,
v n đang trong giai đo n phát tri n, nhân l c khan hi m đang t o ra cho chính b n m t c
h i t i sáng tr c m t
Xây d ng ng d ng trên Smartphone là l nh v c có t c đ phát tri n nhanh nh t trong ngành CNTT v i 1,4 t thuê bao và d báo s có kho ng 452 tri u Smartphone đ c bán ra vào n m 2012 và 6,7 tri u ng d ng s đ c download tr c n m 2014 V i xu th
và tính t t y u c a l nh v c l p trình ng d ng nói chung và l p trình Android nói riêng đã mang đ n lu ng gió m i trong ngành công ngh thông tin Cùng v i s phát tri n nh v bão, nhu c u nhân l c c ng đang nóng d n v i hàng tr m v trí tuy n d ng v n ch a tìm
Trang 14Lê Qu c Vi t – 0851010328 Trang 3
T nh ng ch c n ng c b n g i, nghe và nh n tin, ngày nay đi n tho i di đ ng còn cung c p thêm r t nhi u ti n ích hi n đ i và h t s c h u ích cho ng i dùng N u đang s
h u m t chi c smartphone s d ng Android và có nhu c u h c t p, làm vi c có liên quan
đ n tính toán thì vi c s d ng m t chi c smartphone có cài Calculator - ng d ng tính toán cung c p các ch c n ng tính toán t đ n gi n đ n khoa h c và các lo i tính toán khác
qu là ti n l i vô cùng đ t bi t là v i các b n h c sinh, sinh viên
T nh ng nhu c u trong cu c s ng, em quy t đ nh l a ch n th c hi n đ tài vi t ng
d ng giúp cho vi c tính toán tr nên đ n gi n h n và ít t n th i gian h n
Hi n t i, i v i ng d ng Calculator hi n t i thì có r t nhi u s n ph m thu c ng
d ng này ch y trên các h đi u hành khác nhau m i máy di đ ng ch y h đi u hành Android đi u có ch ng trình Calculator Tuy nhiên ch ng trình này còn r t đ n gi n Trên th tr ng ng d ng Android thì các ng d ng calculator c ng khá da d ng đi n hình là: Scientific calculator
Hình 1.1 Giao di n ng d ng Scientific calculator 1
V i Scientific calculator, giao di n đ h a thu n l i
Trang 15Hình 1.2 Giao di n ng d ng Scientific calculator 2
Bàn phim r t nhi u phím ghép và r t đ p và khá đ y đ
Hình 1.3 Giao di n ng d ng Scientific calculator 3
Các ch c n ng khá đ y đ
Hình 1.4 Giao di n ng d ng Scientific calculator 4
Tuy nhiên giao di n Ti ng Anh và thi u các ch c n ng gi i ph ng trình mà h c sinh, sinh viên th ng s d ng tài “Tìm hi u và phát tri n ng d ng Caculator trên h
đi u hành Anroid” c a em s cung c p ch c n ng t ng t ng d ng Calculator m c đ nh trên máy Android c ng nh các ch c n ng c b n c a “Scientific calculator” và ti p t c phát tri n thêm các ch c n ng phù h p v i nhu c u tính toán h c t p c a h c sinh, sinh viên
4) N i dung:
N i dung chính c a đ tài này là tìm hi u v h đi u hành Android - h đi u hành trên các thi t b di đ ng và t đó th c hi n m t phát tri n ng d ng đây em xây d ng và phát tri n ng d ng có tên “Calculator” ng d ng này có th giúp h c sinh và sinh viên hay b t c ai có nhu c u tính toán
Trang 16ng d ng Calculator bao gi c ng đ c cài đ t s n trong b t c đi n tho i c m tay
nh ng ch d ng l i m c đ c b n nh c ng tr nhân chia và các hàm c b n, trong khi
đó m c nhu c u s d ng c a gi i làm vi c “trí th c” cao h n, ví d m c đ c a máy tính khoa h c
Calculator ch y trên h đi u hành Android cung c p nh ng phép toán và hàm đ n
gi n V i ng d ng Calculator em đang th c hi n ngoài vi c cung c p các ch c n ng tính toán c b n mà còn cung c p nhi u ch c n ng cao h n và g i h n v i ng i s d ng
Vi t Nam
1) Giao di n
Hình 1.5 Màn hình ng d ng c a đ tài
Trang 17Giao di n bao g m m t bàn phím s các phép tính và màn hình hi n th tính toán
g m 2 dòng đ nh p bi u th c và hi n th t t c b ng Ti ng vi t
Bàn phím s :
Hình 1.6 Màn hình ng d ng c a đ tài
Trang 192) Các ch c năng
Máy tính c b n: ta có th thao tác các phép tính 2 ngôi t đ n gi n t p trong đó có các phép toán + - * / các s th c
Máy tính khoa h c: b sung thêm các ch c n ng khác ph c t p h n Ví d các phép toán
l y th a, c n b c 2, c n b c 3, giai th a, log ,… các phép toán l ng giác sin, cos, tan
ch đ radian
Gi i các ph ng trình: ph ng trình b c 2, ph ng trình b c 3, h ph ng trình đ ng
th ng xy, h ph ng trình đ ng th ng xyz và in ra l i gi i c a bài toán
Chuy n đ i c s gi a các h DECIMAL, BINARY, HEX, OCTAL
Cung c p các công th c toán h c t c n b n đ n nâng cao
Ch c n ng history có th xu t ra file
III ánh giá k t qu
Phát tri n khá thành công m t s ch c n ng c a ng d ng Calculator
ng d ng đ c xây d ng trên n n t ng Android v i giao di n và ch c n ng g n g i
ng i s d ng là h c sinh sinh viên
Trong th i gian tìm hi u và phát tri n ng d ng, em đã c ng đã c ng c và hoàn thi n các k n ng c b n trong vi c phát tri n m t ng d ng ph n m m đ n gi n Bên
c nh đó em còn thu th p đ c khá nhi u ki n th c m i v h đi u hành Android ( L ch
s hình thành và phát tri n, đ c tr ng, c u trúc c a h đi u hành Adroid, chu k ng d ng
và các thành ph n trong ng d ng Android), và n m v ng h n ngôn ng Java trong h
đi u hành di đ ng Và m t đi u em c m th y r t quan tr ng là: kinh nghi m trãi qua trong quá trình làm vi c, kh n ng t tìm hi u, phát tri n ng d ng đ u tiên, kh n ng làm vi c
đ c l p trong m t kho ng th i gian có h n
Tuy nhiên trong quá trình làm khóa lu n em c ng rút ra nhi u khuy t đi m c a b n thân và ch ng trình ng d ng mình đã phát tri n Vì đây là l n đ u tiên vi t ng d ng Android do ch a có kinh nghi m nên ch ng trình còn khá thô s và còn nhi u l i c n nhi u c i ti n h n
Trang 20Lê Qu c Vi t – 0851010328 Trang 9
Ch ng II: CÁC KI N TH C CÓ LIÊN QUAN
Trang 21I Tìm hi u h đi u hành Android
ph n tìm hi u h đi u hành, đ có đ c các ki n th c này em đã đ c và tham kh o tài li u t nhi u ngu n khác nhau và đúc k t thành các n i dung g n g n đ c trình bày bên d i
1) Gi i thi u h đi u hành Android
a) Gi i thi u m t s h đi u hành trên thi t b di đ ng
Hi n nay trên th gi i có r t nhi u h đi u hành cho đi n tho i và các thi t b di
đ ng.Sau đây mình xin gi i thi u s qua m t s h đi u hành này:
Hinh 2.1 Các h đi u hành di đ ng hi n nay
Windows phone 7
Windows Phone 7 là m t h đi u hành di đ ng đ c phát tri n b i Microsoft, và là
s k th a đ b i n n t ng Windows Mobile Nó ra m t t i châu Âu, Singapore và Úc vào ngày 21 Tháng M i n m 2010, và t i M và Canada vào ngày 08 Tháng M i M t n m
2010 , v i châu Á có th trong n m 2011
Windows Mobile
Là th h ti n nhi m c a Windows Phone 7,Windows Mobile là h đi u hành n i
b t gi a đám đông, n n t ng có kh n ng b o nh p e-mail t t, làm vi c và t ng thích v i máy tính Ngoài ra, đây còn là h đi u hành có th ch y r t nhi u các ng d ng đ c thi t
k trong m t h sinh thái c a Microsoft
Trang 22Lê Qu c Vi t – 0851010328 Trang 11
H đi u hành Symbian là h đi u hành ph bi n trên các máy đi n tho i Nokia và m t
s đi n tho i SamSung
IOS
IOS là h đi u hành c a Apple Nó đ c cài trên đi n tho i Iphone, iPod Touch, iPad và Apple TV
Hình 2.2 H đi u hành IOS
WebOS và Palm Pre
Palm Pre v i h đi u hành WebOS m i đ c xem là đ i th n ng ký c a iPhone Nó
đ c thi t k dung hòa gi a s đ n gi n và đ p c a di đ ng Apple l n các tính n ng m nh
m c a Android hay Windows Mobile
S c m nh c a WebOS là xu th m ng xã h i và web 2.0
Android
(s đ c gi i thi u chi ti t ph n sau)
Trang 23T p đoàn Android (Inc) đ c thành l p t i Palo Alto, California, Hoa K vào tháng
10 n m 2003 b i Andy Rubin, Rich Miner, và m t s thành viên khác, v i m c đích đ phát tri n hay t o ra các thi t b di đ ng thông minh h n ph c v các m c đích cho l i ích con ng i Nhân viên chính tham gia vào vi c thành l p Android Inc bao g m Andy Rubin, c ng là đ ng sáng l p c a Danger Inc, Andy McFadden là ng i đã làm vi c v i Rubin t i WebTV, và Chris White ng i đã lãnh đ o vi c thi t k và giao di n c a WebTV Nhân viên quan tr ng khác bao g m Richard Miner, đ ng sáng l p c a Wildfire Communications Inc và c u phó ch t ch công ngh và t ng lai Orange, và t t c
nh ng ng i trong s h s d ng các kinh nghi m có đ c đ góp ph n vào vi c phát tri n ngành công nghi p không dây c a công ty B c đ u, h đi u hành Android ch đ n thu n là ph n m m trên đi n tho i di đ ng
Google mua l i Android Inc vào tháng 8 n m 2005 và Android Inc tr thành m t công ty con c a Google Inc Các nhân viên chính c a Android Inc, trong đó có Andy Rubin, Rich Miner và Chris White v n ti p t c làm vi c t i công ty này sau khi b mua
l i
T i Google, nhóm nghiên c u d n đ u b i Rubin phát tri n m t n n t ng thi t b
di đ ng đ c h tr b i nhân Linux Google tung ra th tr ng các n n t ng đ các nhà
s n xu t thi t b c m tay và các nhà cung c p có th s d ng linh ho t và có kh n ng nâng c p Google đã lên danh sách hàng lo t các thành ph n ph n c ng và các đ i tác
ph n m m và là d u hi u cho th y Google đang h p tác đ phát tri n m t h đi u hành dành riêng cho di đ ng
Ý đ nh c a Google đ tham gia th tr ng di đ ng ti p t c xây d ng thông qua tháng 12 n m 2006 Các báo cáo t BBC và The Wall Street Journal ch ngh r ng Google
mu n xây d ng ng d ng tìm ki m trên đi n tho i di đ ng Print and online media đã vi t
m t s bài vi t v nh ng tin đ n r ng Google đã phát tri n m t chi c đi n tho i mang
Trang 24Lê Qu c Vi t – 0851010328 Trang 13
th ng hi u Google M t s suy đoán r ng, Google đã đ c xác đ nh thông s k thu t,
m u thi t k đi n tho i, nhà s n xu t ph n c ng và nhà khai thác m ng Vào tháng 9 n m 2007, InformationWeek thông qua m t nghiên c u báo cáo Evalueserve r ng Google đã n p đ n sáng ch nhi u trong l nh v c đi n tho i di đ ng
Android có m t c ng đ ng phát tri n ng d ng r t l n, hi n có kho ng h n 70.000
ng d ng có s n cho Android và đang liên t c đ c c p nh t ng d ng đ c phát tri n
b ng ngôn ng Java k t h p v i th vi n Java có s n c a Google Các nhà phát tri n ng
d ng có th s d ng máy tính ch y h đi u hành Windows ho c MacOS ho c Linux k t
h p v i Android SDK đ phát tri n ng d ng cho Android H đi u hành Android bao
g m 12.000.000 dòng mã trong đó có 3.000.000 dòng XML, 2.800.000 dòng C, 2.100.000 dòng Java, và 1.750.000 dòng C + +
Andorid đ c phát tri n nh m c nh tranh v i các h đi u hành di đ ng khác nh iOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia), Samsung (Bada), WebOS (Palm)
Trang 25B ng Tóm T t Các phiên b n Android:
Hình 2.3 Các phiên b n android
Trang 26C i thi n th i gian thu nh n tín hi u GPS
và ch p hình
Hi n th tr ng thái c a pin
H tr m ng CDMA Tính n ng chuy n v n b n thành gi ng nói h
B sung ch c n ng cho l ch làm vi c Calendar
Trang 27Bàn phím h tr nhi u ngôn ng Android Flash 10.1
6/12/2010 Android 2.3
Gingerbread
Tinh ch nh giao di n ng i dùng đ n gi n và truy c p nhanh h n
Bàn phím m i h tr nh p li u nhanh h n
Ch n t và h tr copy/paste thu n ti n NFC (Near Field Communication)
Giao di n ng i dùng hoàn toàn m i Thanh c nh báo m i
phát hành
Android 4.1 Jelly Bean
Giao di n trên Jelly Bean s tr nên m t, nhanh, và nh y h n trong các thao tác giao ti p v i
Trang 28Lê Qu c Vi t – 0851010328 Trang 17
màn hình Thay đ i v thanh thông báo Notification khi cho phép hi n th thêm r t nhi u thông tin h n Google Search là đi m m i và h p d n trên Android Jelly Bean so v i Ice Scream Sandwich
2) Đ c đi m c a HĐH Android
a) Nh ng nét đ c tr ng:
Application framework: cho phép s d ng l i và thay th các thành ph n
Dalvik virtual machine: t i u hóa cho thi t b di đ ng
Intergrated browser: d a trên c ch WebKit mã ngu n m
SQLite: cho b nh d li u c u trúc
Media support: cho các đ nh d ng audio, video và hình nh thông d ng
GSM Telephony: (ph thu c vào ph n c ng)
Bluetooth, EDGE, 3G, và WiFi (ph thu c vào ph n c ng)
Camera, GPS, la bàn, và gia t c k : (ph thu c vào ph n c ng)
Môi tr ng phát tri n phong phú: bao g m thi t b mô ph ng, công c cho vi c dò tìm
l i, b nh và đ nh hình hi u n ng và m t plugin cho Eclipse IDE
b) u đi m c a H H Android:
Là h đi u hành mã ngu n m
Android đã thu hút nhi u nhà phát tri n và t t t c các t ng l p xã h i khi Goole phân ph i mi n phí Android và các đo n mã có b n quy n khác cho b t c ai mu n tham gia phát tri n ph n m m cho Goole Vì th , ch trong m t th i gian ng n, các l p trình viên c ng nh nhà phát tri n có th nhanh chóng đ a ra phiên b n Android đ c tùy
ch nh c a riêng mình
Kho ng d ng phong phú
V i kho ng d ng phong phú, ng i s d ng có th tùy ch n nh ng ng d ng đáp
ng nhu c u s d ng c a mình Hi n t i, Android Market cung c p trên 500 nghìn ng
d ng cho ng i dùng
Ph n c ng đa d ng
Trang 29V ph n c ng, Android hi n đang là h đi u hành xu t hi n trên nhi u thi t b
nh t Các nhà s n xu t nh Sony Ericsson, Samsung, HTC, và Motorola cung c p cho
ng i dùng s đa d ng v m u mã s n ph m đ l a ch n
Ph n m m
Khi nói đ n ph n m m, Android có kh n ng ch y nhi u ng d ng cùng m t lúc b i
có tính n ng qu n lí không gian chuy n đ i – đây là m t tính n ng mà không ph i thi t b
di đ ng nào c ng h tr do h n ch ph n c ng Android c ng đ c cài đ t s n ActiveSync, cho phép b n đ ng b danh b , mail, và thông tin cá nhân khi thi t b đ c
M c dù Google c ng đã đ a ra m t vài bi n pháp b o v ng i dùng nh g b t t c malware và tài kho n c a các nhà phát tri n liên quan trên Android Market nh ng đi u này v n ch a đ đ m b o
Trang 30Nhà phát tri n có th truy c p vào các API cùng m t khuôn kh đ c s d ng b i các
ng d ng lõi Các ki n trúc ng d ng đ c thi t k đ đ n gi n hóa vi c s d ng l i các thành ph n; b t k ng d ng có th xu t b n kh n ng c a mình và ng d ng nào khác sau đó có th s d ng nh ng kh n ng (có th h n ch b o m t đ c th c thi b i khuôn
kh ) C ch này cho phép các thành ph n t ng t s đ c thay th b i ng i s d ng
Trang 31C b n t t c các ng d ng là m t b các d ch v và các h th ng, bao g m:
M t t p h p r t nhi u các View có kh n ng k th a l n nhau dùng đ thi t k
ph n giao di n ng d ng nh : gridview, tableview, linearlayout,…
M t “Content Provider” cho phép các ng d ng có th truy xu t d li u t các ng
M t Android bao g m m t t p h p các th viên C/C++ đ c s d ng b i nhi u thành
ph n khác nhau trong h th ng Android M t s các th vi n c b n đ c li t kê d i đây:
Media Libraries th vi n này h tr cho vi c ch i nh c, quay phim, ch p hình
theo các đ nh d ng file MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager – Qu n lý truy c p đ n các h th ng con hi n th c ng nh các
FreeType - bitmap and vector font rendering
SQLite – M t c s d li u nh đ c dùng cho các thi t b c m tay có b nh h n
ch , SQLite không có quan h nh các c s d li u khác
d) Android Runtime (môi tr ng th c thi)
Android bao g m m t t p h p các th vi n c b n mà cung c p h u h t các ch c
n ng có s n trong các th vi n lõi c a ngôn ng l p trình Java T t c các ng d ng Android đ u ch y trong ti n trình riêng Máy o Dalvik đã đ c vi t đ cho m t thi t b
Trang 32Lê Qu c Vi t – 0851010328 Trang 21
có th ch y nhi u máy o hi u qu Các VM Dalvik th c thi các t p tin th c thi Dalvik (dex) nh d ng đ c t i u hóa cho b nh t i thi u VM là d a trên register-based, và
ch y các l p đã đ c biên d ch b i m t trình biên d ch Java đ chuy n đ i thành các đ nh
d ng dex Các VM Dalvik d a vào nhân Linux cho các ch c n ng c b n nh lu ng và
qu n lý b nh th p
e) Linux kernel (nhân Linux)
Android d a trên Linux phiên b n 2.6 cho h th ng d ch v c t lõi nh b o m t qu n
lý b nh , qu n lý ti n trình, các t ng network, và các mô hình đi u khi n Kernel Linux
ho t đ ng nh m t l p tr u t ng hóa gi a ph n c ng và ph n còn l i c a ph n m m stack
4) Chu kỳ ng d ng Android
a) Activity Stack
Bên trong h th ng các activity đ c qu n lý nh m t activity stack Khi m t Activity
m i đ c b t đ u, nó đ c đ t đ nh c a stack và tr thành activity đang ch y activity
tr c s bên d i activity m i và s không th y trong su t quá trình activity m i t n t i
N u ng i dùng nh n nút Back thì activity k t ti p c a stack s di duy n lên và tr thành active
Hình 2.6 Activity Stack
Trang 33Activity là đ c t m d ng (paused) khi m t tiêu đi m (focus) nh ng ng i dùng
v n trông th y Có ngh a là m t Activity m i trên nó nh ng không bao ph đ y màn hình M t Activity t m d ng là còn s ng nh ng có th b k t thúc b i h th ng trong
Trang 34Lê Qu c Vi t – 0851010328 Trang 23
Ph ng th c: onRestart() đ c g i sau khi activity đã đ c d ng, ch m t kho ng đang kh i đ ng l n n a (stared again)
Ph ng th c: onStart() đ c g i tr c khi m t activity visible v i ng i dùng
Theo sau b i onResume() n u activity đ n tr ng thái hi n th ho c onStop() n u nó tr
nên n
Ph ng th c: onResume()đ c g i tr c khi activity b t đ u t ng tác v i ng i dùng
Ph ng th c: onPause() đ c g i khi h th ng đang resuming activity khác
Ph ng th c: onStop() đ c g i khi activity không thu c t m nhìn c a ng i dùng Nó có th di n ra b i vì nó đang b h y, ho c b i vì activity khác v a đ c resumed và bao ph nó c theo sau b i onRestart() n u activity đang đ l i đ t ng tác v i ng i dùng, ho c onDestroy() n u activity đang b
Ph ng th c: onDestroy() đ c g i tr c khi activity b h y
5) Các thành ph n trong ng d ng android
a) View
Trong m t ng d ng Android, giao di n ng i dùng đ c xây d ng t các đ i t ng View và ViewGroup Có nhi u ki u View và ViewGroup M i m t ki u là m t h u du
c a class View và t t c các ki u đó đ c g i là các Widget
T t c m i widget đ u có chung các thu c tính c b n nh là cách trình bày v trí, background, kích th c, l ,… T t c nh ng thu c tính chung này đ c th hi n h t trong đ i t ng View
Trong Android Platform, các screen luôn đ c b trí theo m t ki u c u trúc phân c p
nh hình d i M t màn hình là m t t p h p các Layout và các widget đ c b trí có th
t th hi n m t màn hình thì trong hàm onCreate c a m i Activity c n ph i đ c g i
m t hàm là setContentView(R.layout.main); hàm này s load giao di n t file XML lên
đ phân tích thành mã bytecode
Trang 35Hình 2.8 T ch c view trong ng d ng Android
Trang 36d) FrameLayout
FrameLayout đ c dùng đ b trí các đ i t ng theo ki u gi ng nh là các Layer trong Photoshop Nh ng đ i t ng nào thu c Layer bên d i thì s b che khu t b i các
đ i t ng thu c Layer n m trên FrameLayer th ng đ c s d ng khi mu n t o ra các
đ i t ng có khung hình bên ngoài ch ng h n nh contact image button
e) AbsoluteLayout
Layout này đ c s d ng đ b trí các widget vào m t v trí b t kì trong layout d a vào 2 thu c tính to đ x, y Tuy nhiên, ki u layout này r t ít khi đ c dùng b i vì to đ
c a các đ i t ng luôn c đ nh và s không t đi u ch nh đ c t l kho ng cách gi a các
đ i t ng Khi chuy n ng d ng sang m t màn hình có kích th c v i màn hình thi t k ban đ u thì v trí c a các đ i t ng s không còn đ c chính xác nh ban đ u
ây XML Layout m u b ng cách s d ng AbsoluteLayout
Trang 37Hình 2.10 Ví d AbsoluteLayout
f) RetaliveLayout
Layout này cho phép b trí các widget theo m t tr c đ i x ng ngang ho c d c
Trang 38android:id : id đ nh danh c a button
android: layout_width, layout_height : đ nh d ng theo chi u ngay so v i đ i t ng khác V i wrap_content: thành ph n button ch chi m v a đ nó V i fill_parent button
s ph kín đ i t ng cha ch a nó ví d là view
android:text : text hi n th
android:gravity : canh l
android:textStyle="bold"android:textSize: ki u ch và c ch c a text
Android: background xác đ nh thu c tính background các ngu n tài nguyên drawable
đ s d ng cho n n nút (trong đó, khi đ c l u res / drawable / android.xml, đ c tham chi u nh @ drawable / Android)
Hình 2.11 Ví d button
Trang 39i) ImageButton
C ng t ng t nh Button, ImageButton ch có thêm m t thu c tính android:src =
“@drawable/icon” đ thêm hình nh vào và không có th text
Hình 2.12 Ví d ImageButton
j) ImageView
c dùng đ th hi n m t hình nh Nó c ng gi ng nh ImageButton, ch khác là không có hình dáng c a m t cái button
k) ListView
c s d ng đ th hi n m t danh sách các thông tin theo t ng cell M i cell thông
th ng đ c load lên t m t file XML đã đ c c đ nh trên đó s l ng thông tin và lo i thông tin c n đ c th hi n
Hình 2.13 Ví d ListView
Trang 40Lê Qu c Vi t – 0851010328 Trang 29
th hi n đ c m t list thông tin lên m t screen thì c n ph i có 3 y u t chính:
Data Source: Data Source có th là m t ArrayList, HashMap ho c b t k m t c u trúc d li u ki u danh sách nào
Adapter: Adapter là m t class trung gian giúp ánh x d li u trong Data Source vào đúng v trí hi n th trong ListView Ch ng h n, trong Data Source có m t
tr ng name và trong ListView c ng có m t TextView đ th hi n tr ng name này Tuy nhiên, ListView s không th hi n th d li u trong Data Source lên đ c
n u nh Adapter không gán d li u vào cho đ i t ng hi n th
ListView: ListView là đ i t ng đ hi n th các thông tin trong Data Source ra
m t cách tr c quan và ng i dùng có th thao tác tr c ti p trên đó
android:inputType = “…” s d ng đ xác đ nh ph ng th c nh p cho EditText
Ch ng h n nh khi b n mu n m t ô đ nh p password hay m t ô đ nh p Email thì thu c tính này s làm đi u đó
android:singleLine = “true” EditText c a b n s tr thành m t TextField, ng c l i
s là TextBox
n) CheckBox
Nh n 2 giá tr true ho c false i t ng CheckBox cho phép ch n nhi u item cùng
m t lúc, thu c tính đáng chú ý là android:checked nh n 2 giá tr true ho c false
o) MenuOptions
Android cung c p view d ng menu, b n có th th c hi n các thao tác add thêm các menu con, xóa b t đi 1 thành ph n… Option Menu : xu t hi n khi n nút Menu bên bàn
phím o ( xu t hi n bên d i màn hình )