UHOHDVH &DQGLGDWH 7URQJ WUrQ PӝW WKLӃWEӏWKӵF FyWKӇ FKҥ\ KӋ ÿLӅX KjQK $QGURLG Pj NK{QJSKҧL NêPӝWEҧQKӧSÿӗQJQjR.. ĈӃQ QD\ $QGURLG ÿm WUҧL TXD QKLӅX SKLrQ EҧQ NKiF QKDX QKѭ $QGURLG 1.1
Trang 1Ĉj1̽QJWKiQJ 5 QăP 2015
Trang 2&XӕL FQJ HP PXӕQ JӱL OӡL FҧP ѫQ FKkQ WKjQK WӟL JLD ÿuQK EҥQ Eq
QKӳQJ QJѭӡL OX{Q ÿӝQJ YLrQ NKtFK OӋ JL~S HP KRjQ WKjQK NKyD OXұQ WӕW
QJKLӋS;LQFKkQ WKjQKFҧPѫQ
Trang 3Ĉj1̽QJWKiQJ QăP
6LQKYLrQWKӵFKLӋQ
1JX\ӉQ1JӑF4XkQ
Trang 4'$1+0Ө&&È&7Ӯ9,ӂ77Ҳ7 vi
'$1+0Ө&&È&%Ҧ1* vii
'$1+0Ө&&È&+Î1+ viii
0ӢĈҪ8 1
1 7tQKFҩSWKLӃWFӫDÿӅWjL 1
2 0өFWLrXQJKLrQFӭX 1
3 ĈӕLWѭӧQJQJKLrQFӭX 2
4 3KҥPYLQJKLrQFӭX 2
5 3KѭѫQJSKiSQJKLrQFӭX 2
6 %ӕFөFÿӅWjL 2
&+ѬѪ1* &Ѫ6Ӣ/é7+8<ӂ7 4
1.1 /ӎ&+6Ӱ$1'52,' 4
1.2 .,ӂ175Ò&&Ӫ$$1'52,' 4
1.2.1 7ҫQJӭQJGөQJ 6
1.2.2 Application framework 6
1.2.3 Library 7
1.2.4 Android Runtime 7
1.2.5 Linux kernel 7
1.3 $1'52,'(08/$725*,Ҧ/Ұ3&+Ҥ<$1'52,' ) 7
&+8.ǣӬ1*'Ө1*$1'52,' 9
&KXNǤVӕQJWKjQKSKҫQ 9
1.4.2 Activity Stack 10
1.5 SQLITE 11
1.6 *,Ӟ,7+,ӊ8'ӎ&+9Ө*22*/(&/28'0(66$*,1* 12
ĈӏQKQJKƭD 12
&ѫFKӃKRҥWÿӝQJ 12
1.7 PHÂN TÍCH XML TRONG ANDROID 13
7әQJTXDQ;0/ 13
Trang 51.7.1.2 &ҩXWU~F 13
1.7.2 RSS 14
&iFOӟSJLDRGLӋQSKkQWtFK;0/ 14
1.8*,Ӟ,7+,ӊ8'ӎ&+ 9Ө386+127,),&$7,21&Ӫ$3$56( 15
1.87әQJTXDQ3DUVH 15
1.8'ӏFKYөSXVKQRWLILFDWLRQFӫD3DUVH 16
1.8&jLÿһW3DUVH6'.YjRPӝWGӵiQӭQJGөQJ$QGURLG 16
&+ѬѪ1* : 3+Æ17Ë&+7+,ӂ7.ӂ 19
3+Æ17Ë&+&È&&+ѬѪ1*75Î1+7ѬѪ1*7Ӵ 19
2.1.1 0ӝWVӕFKѭѫQJWUuQKWѭѫQJWӵ 19
2.1.1.1 3KҫQPӅPÿӑFEiR7XәL7Uҿ 19
2.1.1.2 3KҫQPӅPÿӑFEiR'kQ7Ut 20
2.1.1.3 3KҫQPӅPÿӑFEiR9LHW1DP1HW 21
2.1.2 1KұQ[pWFKXQJ 22
2.1.2.1 ѬXÿLӇP 22
2.1.2.2 1KѭӧFÿLӇP 22
2.2 0Ð7ҦĈӄ7¬, 22
2.2.1 ;iFÿӏQK\rXFҫXFӫDEjLWRiQ 22
2.2.2 <rXFҫXFK ӭFQăQJ 23
2.2.3 <rXFҫXSKLFKӭFQăQJ 23
2.3 7+,ӂ7.ӂ+ӊ7+Ӕ1* 23
2.3.1 6ѫÿӗWәQJTXDQKӋWKӕQJ 23
2.3.2 Usecase 24
2.3.2.1 6ѫÿӗ8VHFDVH 24
2.3.2.2 ĈһFWҧ8VHFDVH 24
2.3.3 6ѫÿӗWXҫQWӵ 27
2.3.3.1 &KӭFQăQJÿӑFWLQ 27
2.3.3.2 &KӭFQăQJNLӇPWUDWLQPӟL 27
2.3.3.3 &KӭFQăQJÿăQJNêFKX\rQPөF 28
Trang 62.3.4 7KLӃWNӃFѫVӣGӳOLӋX 29
2.3.5 6ѫÿӗOӟS 30
2.3.6 6ѫÿӗTXDQKӋJLӳDFiFEҧQJ 31
&+ѬѪ1* : 7+Ӱ1*+,ӊ0&+ѬѪ1*75Î1+ Error! Bookmark not defined Ӭ1*'Ө NG 32
3.1.1 Màn hình chính 32
3.1.2 Danh sách tin 32
Ĉӑ FWLQFKLWLӃW 33
.,ӆ01*+,ӊ07+Ӵ&7ӂ 36
ĈѭDӭQJGөQJOrQ*RRJOH3OD\ 36
7KӕQJNrÿҥWÿѭӧF 37
.ӂ7/8Ұ19¬.,ӂ11*+ӎ 39
.ӂ748ҦĈҤ7ĈѬӦ& 39
+Ҥ1&+ӂ 39
+ѬӞ1*3+È775,ӆ1 40
7¬,/,ӊ87+$0.+Ҧ2 41
3+Ө/Ө& 49
3KөOөF0mQJXӗQKjPJӱLSXVKWӯVHUYHUFKҥ\SKS 49
3Kө OөF 0m QJXӗQ ILOH 3XVK1RWLILFDWLRQMD YD FKөL WUiFK QKLӋP QKұQ SXVK notification 50
3KөOөF1ӝLGXQJILOH$QGURLG0DQLIHVW[POFӫDӭQJGөQJ 51
Trang 7'$1+0Ө& &È&7Ӯ9,ӂ77Ҳ7
API Application Programming Interface
CSDL &ѫVӣGӳOLӋX
GCM Google Cloud Messaging
IDE Integrated Development Enveronment
RSS Rich Site Summary
SDK Software Development Kit
XML EXtensible Markup Language
Trang 11ĈӇ NӏS WKӡL QҳP EҳW WK{QJ WLQ QJѭӡL GQJ OLrQ WөF SKҧL WUX\ FұS YjR
Trang 126 %ӕFөFÿӅWjL
&K˱˯QJ&ͧVͧOê WKX\͇W
Em trình bày tәQJ TXDQ YӅKӋÿLӅXKjQKAndroid, FiFKWKӭFKRҥWÿӝQJ
FӫDPӝWӭQJGөQJ DQGURLGFKҥ\ PӝWӭQJGөQJ$QGURLGWUrQPi\ҧR(PÿL
vào gLӟLWKLӋXFiFNӻWKXұWYjF{QJQJKӋVӱGөQJWURQJÿӅWjL64/LWHGoogle
Cloud Messaging, XML, Parse Service
Trang 14$QGURLGYӟLVӵKӛWUӧWjLFKtQKWӯ*RRJOHYjVDXQj\ÿѭӧFFKtQK*RRJOHPXDOҥLYjRQăP[1]
9jRFXӕLQăP$QGURLGWKXӝFYӅ/LrQPLQK7KLӃWEӏ&ҫPWD\0m
1JXӗQ Pӣ 2SHQ +DQGVHW $OOLDQFH YӟL NKRҧQJ WKjQK YLrQ EDR JӗP Fҧ
QKj VҧQ [XҩW QKj SKiW WULӇQ ӭQJ GөQFKR WKLӃW Eӏ GL ÿӝQJ Pj GүQ ÿҫX Oj
Google[2]
3KLrQEҧQSoftware Development Kit (SDK) OҫQÿҫXWLrQSKiWKjQKYjR
WKiQJQăPKmQJ7-0RELOH FNJQJ F{QJ Eӕ FKLӃF ÿLӋQ WKRҥL$QGURLG
ÿҫXWLrQÿyOjFKLӃF7-0RELOH *0ӝW YjL QJj\ VDX ÿy*RRJOH OҥL WLӃS WөF
F{QJ Eӕ Vӵ UD PҳW SKLrQ EҧQ $QGURLG 6'. UHOHDVH &DQGLGDWH 7URQJ
WUrQ PӝW WKLӃWEӏWKӵF FyWKӇ FKҥ\ KӋ ÿLӅX KjQK $QGURLG Pj NK{QJSKҧL NêPӝWEҧQKӧSÿӗQJQjR
ĈӃQ QD\ $QGURLG ÿm WUҧL TXD QKLӅX SKLrQ EҧQ NKiF QKDX QKѭ $QGURLG
1.1 Yj PӟL ÿk\ QKҩW Oj $QGURLG YӟL Fic
WtQK QăQJ QJj\ FjQJ ÿҫ\ ÿӫ KRjQ WKLӋQ Yj Kә WUӧ QKLӅX WtQK QăQJ KѫQ
Trang 150{KuQKVDXWKӇKLӋQPӝWFiFKWәQJTXiWFiFWKjQKSKҫQFӫDKӋÿLӅXKjQK$QGURLG0ӛLPӝWSKҫQVӁÿѭӧFÿһFWҧPӝWFiFKFKLWLӃWGѭӟLÿk\
Content Providers
View System
Package
Manager
Telephony Manager
Resoure Manager
Location Manger
Notification Manager
Surface
Manager
Media Framework
LINUX KERNEL
Display Driver Camera Driver Flash Memory
Driver
Binder (IPC) Driver
Management
Trang 16,QWHUIDFH FQJPӝWNKX{QNKәÿѭӧFVӱGөQJEӣLFiFӭQJGөQJO}L&iFNLӃQ
WU~FӭQJGөQJÿѭӧFWKLӃWNӃÿӇÿѫQJLҧQKyDYLӋFVӱGөQJOҥLFiFWKjQKSKҫQbҩWNǤӭQJGөQJFyWKӇ[XҩWEҧQNKҧQăQJFӫDPuQKYjӭQJGөQJQjRNKiFVDX
Trang 171.2.4 Android Runtime
$QGURLGEDRJӗPPӝWWұSKӧSFiFWKѭYLӋQFѫEҧQPjFXQJFҩSKҫXKӃW
FiFFKӭFQăQJFyVҹQWURQJFiFWKѭ YLӋQO}LFӫDQJ{QQJӳOұSWUuQK-DYD7ҩW
FҧFiFӭQJGөQJDQGURLGÿӅXFKҥ\WURQJWLӃQWUuQKULrQJ0i\ҧR'DOYLNÿmÿѭӧFYLӃWÿӇFKRPӝWWKLӃWEӏFyWKӇFKҥ\QKLӅXPi\ҧR9LUWXDO0DFKLQH± 90 KLӋX TXҧ &iF 90 'DOYLN WKӵF WKL FiF WұS WLQ WKӵF WKL 'DOYLN (dex)
ĈӏQK GҥQJ ÿѭӧF WӕL ѭX KyD FKR Eӝ QKӟ WӕL WKLӇX 90 Oj GӵD WUrQ UHJLVWHUEDVHG Yj FKҥ\ FiF OӟS ÿm ÿѭӧF ELrQ GӏFK EӣL PӝW WUuQK ELrQ GӏFK -DYD ÿӇFKX\ӇQÿәLWKjQKFiFÿӏQKGҥQJGH[&iF90'DOYLNGӵDYjRQKkQ/LQX[FKRFiFFKӭFQăQJFѫEҧQQKѭOXӗQJ YjTXҧQOêEӝQKӟWKҩS
-1.2.5 Linux kernel
$QGURLGGӵDWUrQQKkQ/LQX[SKLrQEҧQFKRKӋWKӕQJGӏFKYөFӕWO}LQKѭVHFXULW\PHPRU\PDQDJHPHQWSURFHVVPDQDJHPHQWQHWZRUNVWDFNDQG
Trang 18$QGURLG &iF OұS WUuQK YLrQ$QGURLG VӁ FҫQ SKҧL Vӱ GөQJ F{QJ Fө ,'(
,QWHJUDWHG'HYHORSPHQW(QYHURQPHQW Qj\ÿӇSKiWWULӇQGHEXJJLQJ- JӥOӛL
YjWKӱQJKLӋPFKRӭQJGөQJ7X\QKLrQFiFOұSWUuQKYLrQFNJQJFyWKӇNK{QJFҫQSKҧLVӱGөQJ,'(PjWKD\YjRÿyOjVӱGөQJGzQJOӋQKÿӇELrQGӏFKYjWҩW
QKLrQOjYүQFy(PXODWRUQKѭWKѭӡQJ
$QGURLG(PXODWRUÿѭӧFWUDQJEӏÿҫ\ÿӫKҫXKӃWFiFWtQKQăQJFӫDPӝW
WKLӃWEӏWKұW7X\QKLrQPӝWVӕÿmEӏJLӟLKҥQQKѭOjNӃWQӕLTXDFәQJ86%FDPHUDYjYLGHRQJKHSKRQHQJXӗQÿLӋQJLҧOұSYjEOXHWRRWK
$QGURLG(PXODWRUWKӵFKLӋQFiFF{QJYLӋFWK{QJTXDPӝWEӝ[ӱOêPm
QJXӗQPӣF{QJQJKӋQj\ÿѭӧFJӑLOj4(08KWWSEHOODUGRUJTHPX ÿѭӧF
SKiWWULӇQEӣL)DEULFH%HOODUG
Hình 1.2 Android Emulator
Trang 19Hình 1.3 &KXNǤV͙QJFͯDWKjQKSK̯QͱQJGͭQJ
Trang 201.4.2 Activity Stack
Hình 1.4 Activity stack
%rQWURQJKӋWKӕQJFiFDFWLYLW\ÿѭӧFTXҧQOêQKѭPӝWQJăQ[ӃS- stack
.KLPӝW$FWLYLW\ PӟLÿѭӧFNKӣLFKҥ\QyÿѭӧFÿһWӣÿӍQKFӫDVWDFNYjWUӣWKjQK DFWLYLW\ ÿDQJ FKҥ\ DFWLYLW\ WUѭӟF VӁ ӣ ErQ GѭӟL DFWLYLW\ PӟL Yj VӁ
NK{QJWKҩ\WURQJVXӕWTXiWUuQKDFWLYLW\PӟLWӗQWҥL
1ӃXQJѭӡLGQJQKҩQQ~W%DFNWKuDFWLYLW\NӃWLӃSFӫDVWDFNVӁGLGX\ӇQOrQYjWUӣWKjQKDFWLYH
Trang 211.5 SQLITE
64/LWH Oj PӝW GҥQJ &6'/ WѭѫQJ Wӵ QKѭ 0\VTO 3RVWJUH64/ ĈһF
ÿLӇPFӫD64/LWHOjJӑQQKҽÿѫQJLҧQ&KѭѫQJWUuQKJӗPILOHGX\QKҩWYӓQYҽQFKѭDÿӃQN%NK{QJFҫQFjLÿһWNK{QJFҫQFҩXKuQKKD\NKӣLÿӝQJ
PjFyWKӇVӱGөQJQJD\'ӳOLӋXGDWDEDVHFNJQJÿѭӧFOѭXӣPӝWILOHGX\QKҩWKhông có khái nLӋPXVHUSDVVZRUGKD\TX\ӅQKҥQWURQJ64/LWHGDWDEDVH
64/LWH NK{QJ WKtFKKӧS YӟL QKӳQJ KӋWKӕQJ OӟQQKѭQJ ӣTX\ P{ YӯD
WҫPWKu64/LWHSKiWKX\X\OӵFYjNK{QJKӅ\ӃXNpPYӅPһWFKӭFQăQJKD\
WӕF ÿӝ 9ӟL FiF ÿһF ÿLӇP WUrQ 64/LWH ÿѭӧF Vӱ GөQJ QKLӅX WURQJ YLӋF SKiW
WULӇQ WKӱ QJKLӋP +LӋQ QD\ WKu 64/LWH ÿm ÿѭӧF ӭQJ GөQJ YjR VPDUWSKRQH
QKѭ L3KRQH Yj $QGURLG ÿӇ OѭX WUӳ Gӳ OLӋX ĈӇ Fy WKӇ GӉ GjQJ WKDR WiF YӟL
64/LWHFK~QJWDFyWKӇVӱGөQJWUuQKGX\ӋW)LUH)R[YjWҧLYӅSOXJLQ64/LWHWҥLOLQNVDXhttp://code.go ogle.com/p/sqlite - manager/
6DXNKLWҧLYӅILOH[SLNpRILOHQj\YjRFӱDVәILUHIR[ÿӇFjLÿһWSOXJLQ6DXNKLFjLÿһWSOXJLQ[RQJWKuYjR0HQXBWRROVWURQJILUHIR[VӁFyFKӭFQăQJ64/LWH0DQDJHU*LDRGLӋQFӫD64/LWHPDQDJHUWURQJILUHIR[QKѭVDX
Hình 1.5 *LDRGL͏Q64/LWH0DQDJHU
Trang 221.6 *,Ӟ,7+,ӊ8 'ӎ&+9Ө*22*/(&/28'0(66$*,1*
1.6.1 ĈӏQKQJKƭD
Google Cloud Messaging (GCM) OjGӏFKYөQKҳQWLQTXDÿiPPk\FӫD
*RRJOHQyOjGӏFKYөPLӉQSKtNK{QJJLӟLKҥQEăQJWK{QJJL~SQKjSKiWWULӇQJӱLGӳOLӋXWӯPi\FKӫFӫDPuQKÿӃQWKLӃWEӏGLÿӝQJ'ӏFKYөKRҥWÿӝQJYӟL
JyL Gӳ OLӋX QKӓ KѫQ NE Yj WLQ QKҳQ JӱL WӟL WKLӃW Eӏ Oj WӭF WKӡi (Push
Trang 23;0/OjÿѫQJLҧQKyDYLӋFFKLDVҿGӳOLӋXJLӳDFiFKӋWKӕQJNKiFQKDXÿһFELӋWOjFiFKӋWKӕQJÿѭӧFNӃWQӕLYӟL,QWHUQHW&iFQJ{QQJӳGӵDWUrQ;0/WKtGө5') 566 0DWK0/ ;+70/ 69* Yj F;0/ ÿѭӧF ÿӏQK QJKƭD WKHR FiFK
Trang 24<tenSach>7 vien ngoc rong</tenSach>
1.7.3 &iFOӟSJLDRGLӋQSKkQWtFK;0/
Java API for XML Processing, hay JAXP, là PӝWWURQJFiF API FKROұS
trình -DYD ;0/ 1y FXQJ FҩS NKҧ QăQJ NLӇP FKӭQJ Yj SKkQ WtFK FiF WjL
OLӋX ;0/+DLORҥLJLDRGLӋQinterface ÿӇSKkQWtFKFѫEҧQOj
- *LDRGLӋQSKkQWtFKGҥQJ 0{KuQKÿӕLWѭӧQJWjLOLӋX (Document Object
Model YLӃWWҳWOj DOM
- *LDR GLӋQ SKkQ WtFK $3, ÿѫQ JLҧQ GjQK FKR ;0/ (Simple API for
XML) - YLӃWWҳWOj SAX
- StAX, API GүQOXӗQJFKR XML (the Streaming API for XML)
&QJ YӟL FiF JLDR GLӋQ SKkQ WtFK API Qj\ FzQ FXQJ FҩS PӝW JLDR
GLӋQ XSLT ÿӇ FXQJ FҩS YLӋF FKX\ӇQ ÿәL Gӳ OLӋX YjFҩX WU~F Wӯ PӝW WjL
OLӋX XML VDQJPӝWGҥQJNKiF
*LDRGLӋQ'20FyOӁOjPӝWJLDRGLӋQGӉKLӇXQKҩW1ySKkQWtFKWRjQ
EӝWjLOLӋX;0/YjNLӃQWKLӃWPӝWFҩXWU~FKRjQFKӍQKÿҥLGLӋQFKREҧQWjLOLӋXWURQJEӝQKӟEҵQJFiFKGQJFiFOӟSÿӇP{KuQK
0ӛLQӕWFk\WURQJFҩXWU~FWKӵFKLӋQPӝWJLDRGLӋQ org.w3c.dom.Node
&y QKLӅX ORҥL QӕW Fk\ ÿҥL GLӋQ FKR ORҥL Gӳ OLӋX WuP WKҩ\ WURQJ EҧQ WjL OLӋX
;0//RҥLQӕWTXDQWUӑQJQKҩWOj
Trang 25YjFiFQӅQWҧQJWUX\ӅQWK{QJPҥQJ[mKӝLQKѭ7ZLWWHUYj)DFHERRNĈӕLYӟL
FiFӭQJGөQJGLÿӝQJFҫQPӣUӝQJTX\P{3DUVH6'.FXQJFҩSWҩWFҧWtQKFRJLmQFӫDPӝWÿiPPk\
Trang 261.8.2 'ӏFKYөSXVKQRWLILFDWLRQFӫD3DUVH
3XVKQRWLILFDWLRQOjPӝWWURQJGӏFKYөPj3DUVHFXQJFҩSFKRFiFQKjSKiW WULӇQ 1y Kӛ WUӧ 3XVK QRWLILFDWLRQ WѭѫQJ Wӵ QKѭ 3XVK 6HUYHU +LӋQ WҥL
GӏFK Yөpush notificaition FӫD 3DUVHFKӍ Kә WUӧ FKR QӅQ WҧQJ OұS WUuQKӭQg
GөQJFӫDKӋÿLӅXKjQKiOS, Android, Windows và Windows Phone 8
1.8.3 &jLÿһW3DUVH6'.YjRPӝWGӵiQ ӭQJGөQJ Android
6DX NKL WҥR PӝW Gӵ iQ $QGURLGJӑLParse.initialize Wӯ SKѭѫQJ
WKӭFonCreate FӫDFODVVApplication. 7URQJÿy$SSOLFDWLRQB,'&OLHQWB.H\
OҫQOѭӧWOjPmYjNKyDFӫDӭQJGөQJÿһWWҥL3DUVH
public void onCreate() {
Parse.initialize(this, " Application_ID ", " Client_Key ");
Trang 31
Hình 2.4 Màn KuQKGDQKViFKWLQYjÿ͕FWLQFKLWL͇WFͯD SK̯QP͉Pÿ͕F báo
Dân Trí 2.1.1.3 3K̯QP͉P ÿ͕FEiR VietNamNet
- 3KҫQPӅPÿӑFEiRWUrQÿLӋQWKRҥL$QGURLGFӫDEiR9LHW1DP1HW
... OұS WUuQKӭQg
GөQJFӫDKӋÿLӅXKjQKiOS, Android, Windows Windows Phone
1.8.3 &jLÿһW3DUVH6''.YjRPӝWGӵiQ ӭQJGөQJ Android
6DX NKL WҥR PӝW Gӵ iQ $QGURLGJӑLParse.initialize...
QJXӗQPӣF{QJQJKӋQj\ÿѭӧFJӑLOj4(08KWWSEHOODUGRUJTHPXÿѭӧF
SKiWWULӇQEӣL)DEULFH%HOODUG
Hình 1.2 Android Emulator
Trang 19Trang 171.2.4 Android Runtime
$QGURLGEDRJӗPPӝWWұSKӧSFiFWKѭYLӋQFѫEҧQPjFXQJFҩSKҫXKӃW