Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn LӠI MӢ DҪU Tӯ lâu, các loҥi hình giҧi trí thұt sӵ ÿD Gҥng và phong phú, và khi game xuҩt hiӋQWUrQPi\WtQKWKuQyÿmQKDQKFKyQJWU
Trang 1z
X^ ]W
NGÀNH: CӰ NHÂN CÔNG NGHӊ THÔNG TIN
Ĉ͈ TÀI:
XÂY DNG GAME Cͤ GÁNH DÂN GIAN 75Ç1Ĉ, ͎N THǪI ANDROID
GVHD : PGS.TSKH Trҫ n Quӕ c ChiӃ n SVTH : NguyӉ n Quӕ c Tùng
Trang 2X^ ]W
KHÓA LUҰN TӔT NGHIӊP
NGÀNH: CӰ NHÂN CÔNG NGHӊ THÔNG TIN
Ĉ͈ TÀI:
XÂY DNG GAME Cͤ GÁNH DÂN GIAN 75Ç1Ĉ, ͎N THǪI ANDROID
GVHD : PGS.TSKH Trҫn Quӕc ChiӃn SVTH : NguyӉn Quӕc Tùng
Trang 3LӠI CҦ0Ѫ1
7Uѭӟc tiên, tôi muӕn gӱi lӡi cҧPѫQVkXVҳc nhҩWÿӃn thҫ\JLiR 3Ky*LiR VѭTiӃQVƭNKRDKӑc Trҫn Quӕc ChiӃQÿmWұQWuQKKѭӟng dүn em trong suӕt quá trình thӵc
tұp và thӵc hiӋn khóa luұn tӕt nghiӋp
Tôi xin bày tӓ lӡi cҧPѫQVkXVҳFÿӃn nhӳng thҫ\F{JLiRÿmJLҧng dҥy tӕi trong
suӕt bӕQQăPTXDQKӳng kiӃn thӭc mà tôi nhұQÿѭӧc trên giҧQJÿѭӡQJÿҥi hӑc sӁ là
hành trang giúp tôi vӳQJEѭӟFWURQJWѭѫQJODL
7{LFNJQJPXӕn gӱi lӡi cҧPѫQÿӃn các anh chӏ và các bҥn trong Công ty Cә
phҫ n Phҫ n mӅ m KӃ toán BRAVO ± QѫL W{L ÿDQJ F{QJ tác ± ÿm JL~S ÿӥ và cho tôi
nhӳng lӡi khuyên bә ích vӅ chuyên môn trong quá trình nghiên cӭu
Cuӕi cùng, em muӕn gӱi lӡi cҧPѫQVkXVҳFÿӃn tҩt cҧ bҥQEqYjÿһc biӋt là cha
mҽ và anh chӏ em, nhӳQJQJѭӡi luôn kӏp thӡLÿӝQJYLrQYjJL~Sÿӥ HPYѭӧt qua nhӳng
NKyNKăQWURQJFXӝc sӕng
Tôi xin chân thành cҧPѫQ
Sinh viên thӵc hiӋ n
NguyӉn Quӕc Tùng
Trang 4
Nhӳng nӝi dung trong báo cáo này là do tôi thӵc hiӋQGѭӟi sӵ Kѭӟng dүn trӵc
tiӃp cӫa thҫy PGS.TSKH Trҫn Quӕc ChiӃn
Mӑi tham khҧo dùng trong cáo FiRQj\ÿӅXÿѭӧc trích dүn rõ ràng tên tác giҧ,
tên công trình, thӡLJLDQÿӏDÿLӇm công bӕ
Mӑi sao chép không hӧp lӋ, vi phҥm quy chӃ ÿjRWҥo hay gian trá tôi xin chӏu
hoàn toàn trách nhiӋm
Sinh viên thӵc hiӋ n
NguyӉn Quӕc Tùng
Trang 5MӨC LӨC
LӠI MӢ DҪU 1
TӘ1*48$1Ĉ ӄ TÀI 2
I Phát biӇ u bài toán 2
II MөFÿtFKêQJKƭDSK ҥPYLÿ Ӆ tài 2
II.1 7rQÿӅ tài 2
II.2 MөFÿtFKYjêQJKƭD 2
II.3 PhҥPYLÿӅ tài 3
III Nhӳng viӋ c sӁ giҧ i quyӃ WWURQJÿ Ӆ tài 3
III.1 &iFEѭӟc thӵc hiӋn 3
III.2 Dӵ kiӃn kӃt quҧ ÿҥWÿѭӧc 3
IV Nӝ i dung cӫDÿ Ӆ tài 4
PHҪN 1: &Ѫ6 Ӣ LÝ THUYӂT 5
I Tìm hiӇ u vӅ Android 5
I.1 Android và hӋ ÿL Ӆ u hành Android 5
I.2 Các phiên bҧ n cӫa hӋ ÿL Ӆ u hành Android 6
I.3 Các thành phҫ n ӭng dө ng cӫa Android 9
I.3.1 Activity là gì? 9
I.3.2 Services 15
I.3.3 Content Providers 16
I.3.4 Intent 16
I.3.5 Broadcast receivers 17
II Lұ p trình ӭng dөng Android 18
II.1 ThiӃ t lұ SP{LWUѭ ӡng phát triӇ n ӭng dөng 18
II.2 Các thành phҫ n trong Android Project 18
II.2.1 Tҥo mӟi Android Project 18
II.2.2 ThiӃt kӃ giao diӋn trong Android 20
Trang 6III.1 Giӟi thiӋu vӅ Cӡ Gánh 25
III.2 LuұWFKѫLJDPHFӡ gánh 26
PHҪN 2: THIӂT Kӂ VÀ XÂY DӴNG ӬNG DӨNG GAME CӠ GÁNH 29
I Phân tích hӋ thӕ ng 29
I.1 Mô tҧ bài toán 29
I.2 Phân tích yêu cҫu 30
II Thuұ t toán tìm kiӃ PFyÿ ӕi thӫ 30
II.1 &k\WUzFKѫLÿҫ\ÿӫ 31
II.2 ChiӃQOѭӧc Minimax 33
II.3 3KѭѫQJSKiSFҳt tӍa Alpha ± Beta 36
III ThiӃ t kӃ hӋ thӕ ng thông tin 39
III.1 Xây dӵng kiӃQWU~FFKѭѫQJWUuQK 39
III.2 Xây dӵng cҩu trúc dӳ liӋu và thuұt toán 42
III.3 BiӇXÿӗ trҥng thái 50
IV BiӇ Xÿ ӗ lӟp 51
PHҪN 3: KӂT QUҦ CӪA ӬNG DӨNG 52
I Màn hình Menu chính 52
II MàQKuQKFKѫLJDPH 53
II.1 Lӵa chӑn mӭFÿӝ 53
II.2 BҳWÿҫu game 53
II.3 Các QѭӟFÿLKӧp lӋ 54
II.4 Khi mӣ gánh 55
III KӃ WWK~FWUzFKѫL 56
III.1 Màn hình khi chiӃn thҳng 56
III.2 Màn hình khi thua 56
KӂT LUҰ19¬+Ѭ ӞNG PHÁT TRIӆN 57
TÀI LIӊU THAM KHҦO 58
Trang 7DANH MӨC HÌNH ҦNH
Hình 1.1: Hình ̫ nh v͉ Android 5
Hình 1.2: Các phiên b̫ n cͯ a h͏ ÿL ͉u hành Andoid 6
Hình 1.3: B̫ n báo cáo mͣ i nh̭ t cͯ a Google v͉ tình hình các phiên b̫ n Android 9
Hình 1.4: Activity Lifecycle 13
Hình 1.5: Service Lifecycle 15
Hình 1.6: Truy͉ n Intent và s͙ li͏ u sang Activity khác 16
Hình 1.7: T̩ o mͣ i 1 ͱng dͭ ng Android 19
Hình 1.8: C̭ u trúc 1 Project 20
+uQK&iFHPEpÿDQJFK˯LF ͥ gánh trên bãi cát 26
Hình 1.10: Mô hình bàn cͥ gánh 26
+uQK&iFQ˱ ͣc quân cͥ có th͋ ÿLWKHRFKL ͉ XPNJLWrQ 27
Hình 1.12:Quân cͥ ÿDQJYjRăQKDLF ̿p gánh 27
Hình 1.13: Các quân cͥ [DQKÿmEySFK ͇ t ṱ t c̫ các quân cͥ ÿ ͗ 28
+uQK4XkQÿ ͗ di chuy͋ n theo chi͉ XPNJLWrQWKuÿ ͋ mͧ gánh 28
Hình 2.1: V͓ WUtEDQÿ ̯u cͯa bàn cͥ Gánh 32
Hình 2.2:Bi͋ u di͍ QFk\WUzFK˯L& ͥ Gánh vͣLĈ ͗ ÿLWU˱ ͣc 33
Hình 2.3: C̷ t b͗ cây con g͙ c a, n͇ u eval(u)> eval(v) 36
Hình 2.4: Minh h͕ a gi̫ i thu̵ t Alpha-beta 39
Hình 2.5: Ki͇ n trúc menu trong game 39
Hình 2.6: Ki͇ n trúc Game Loop cͯ a game 40
Hình 2.7: Các thu͡ c tính cͯ a ChessBoard 41
+uQK0i\WuPQ˱ ͣFÿLW ͙t nh̭t theo chi͇ QO˱ ͫc Minimax 43
Hình 2.9: Khͧ i t̩ o giá tr͓ bàn cͥ EDQÿ ̯u 44
Hình 2.10: Ví dͭ quân cͥ ch͑ di chuy͋ n theo hàng ngang, c͡ t d͕ c 46
+uQK1˱ ͣc ÿLK ͫp l͏ cͯ a quân cͥ 46
Hình 2.12: Ví dͭ quân cͥ [DQKÿDQJP ͧ JiQKÿ ͙LSK˱˯QJSK ̫LYjRăQJiQK 47
Hình 2.13: Ví dͭ FiFE˱ ͣc tìm các quân cͥ b͓ bóp ch͇ t 49
Hình 2.14: Bi͋ Xÿ ͛ tr̩ng thái InGame 50
Hình 2.15: Bi͋ Xÿ ͛ tr̩ng thái cho c̫ h͏ th͙ ng 50
Hình 2.16: Bi͋ Xÿ ͛ lͣp 51
Hình 3.1: Giao di͏ n main_menu cͯ DWUzFK˯L 52
Hình 3.2: L a ch͕ n mͱFÿ ͡ WUzFK˯L 53
Trang 8+uQK0jQKuQKFKtQKNKLFK˯LJDPH 53
+uQK&iFQ˱ ͣFÿLK ͫp l͏ cͯ a quân cͥ 54
Hình 3.5: Mͧ JiQKWURQJWUzFK˯L 55
Hình 3.6: Màn hình chi͇ n th̷ ng 56
Hình 3.7: Màn hình khi thua 56
Trang 9DANH MӨC TӮ VIӂT TҲT
- JDK : Java Development Kit
- SDK : Software Development Kit
- IDE : Integrated Development Environment
- Menu 7UuQKÿѫQ
- User 1Jѭӡi sӱ dөng
- Touch : chҥm (trӓ)
Trang 10Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
LӠI MӢ DҪU
Tӯ lâu, các loҥi hình giҧi trí thұt sӵ ÿD Gҥng và phong phú, và khi game xuҩt
hiӋQWUrQPi\WtQKWKuQyÿmQKDQKFKyQJWUӣ thành công cө giҧi trí sӕ mӝt trên toàn thӃ
giӟi Sӕ OѭӧQJQJѭӡLFKѫLJDPHWUrQPi\WtQKQKҩt là máy tính bҧng và các thiӃt bӏ ÿLӋn
thoҥLGLÿӝng lên tӟi con sӕ hàng tӍ, không phân biӋt vӅ tuәi tác, giӟi tính hay màu da
Mӝt trong sӕ ÿyOjJDPH6QDNHÿѭӧc bҳt nguӗn tӯ mӝt chiӃc GLÿӝng mà Nokia
WUuQKOjQJQăPFyWrQOj1RNLDÿmPӣ ra mӝt kӹ nguyên mӟLFKROƭQKYӵc
lұSWUuQKJDPHWUrQGLÿӝQJ1KѭQJYӟi sӵ hҥn chӃ vӅ ÿӗ hӑa, tӕFÿӝ xӱ lý, cӕt truyӋn
JDPHÿmQKDQKFKyQJJk\UDQKjPFKiQÿӕi vӟLQJѭӡLFKѫL9jFiFF{QJQJKӋ lұp trình
JDPHÿmUDÿӡLQKѭ%UHZ$SS6WRUH-0(Yjÿһc biӋt là Android
Các thiӃt bӏ GLÿӝng sӱ dөng hӋ ÿLӅu hành Android vӟi phҫn cӭng mҥnh mӁ, các
nút bҩPFKѫLJDPHFKX\rQGөng ThӃ giӟi game trên Smart phone lҥi gҫQQKѭWKӕng trӏ
cҧ thӃ giӟi Game ÿѭӧc xây dӵng trên các thiӃt bӏ GL ÿӝng này có hình ҧQKPѭӧt mà
KѫQWӕFÿӝ xӱ lý mҥnh mӁ KѫQFQJYӟi nhӳng hiӋu ӭng rҩt gҫn vӟi thӵc tӃ KѫQ&QJ
vӟLÿyOjFiFORҥi hình game trí tuӋ luôn có khҧ QăQJWKXK~Wÿ{QJVӕ QJѭӡLFKѫLÿһc
biӋt là sӕ QJѭӡLFKѫLthích thӱ WKiFKÿҩu trí
Vì vұy em quyӃWÿӏnh chӑQÿӅ WjL³1JKLrQFӭu công nghӋ phát triӇn game trên
ÿLӋn thoҥi Android Xây dӵng game cӡ JiQKGkQJLDQ´OjPÿӅ tài khóa YăQWӕt nghiӋp
cӫa mình Vӟi mөFÿtFKWuPKLӇXU}KѫQYӅ $QGURLGFiFWtQKQăQJFӫa nó, nâng cao kӻ
thuұt lұSWUuQKFiQKkQYjÿһc biӋt là quҧn bá hình ҧQKFiFWUzFKѫLGkQJLDQFӫa ViӋt 1DPNK{QJÿӇ nó bӏ mai mӑt Hy vӑng sӁ tҥRUDÿѭӧc mӝt sҧn phҭPFytFKÿҽp mҳt và
WKXK~WQJѭӡLFKѫL
Trang 11Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
TӘ1*48$1Ĉ ӄ TÀI
7UzFKѫLGkQ gian Cӡ Gánh là mӝt trong sӕ WUzFKѫLGkQJLDQWѭѫQJÿӕi phә biӃn
ӣ các vùng nông thôn ViӋW1DP1KѭQJQyYjFiFWUzNKiFQJj\FjQJEӏ quên lãng do
xã hӝi ngày càng phát triӇn diӋQWtFKÿҩt ngày càng thu hҽSKѫQYjYӟi nhӳng nhu cҫu
giҧLWUtFDRKѫQ9uYұy viӋc tin hӑFKyDWUzFKѫLGkQJLDQFNJQJÿѭӧc coi là hoàn toàn
hӧp lý
Ĉk\OjPӝWWUzFKѫLFyFҩXWU~FYjFiFKFKѫLKRjQWRjQJLӕng vӟLWUzFKѫLGkQ
gian Cӡ *iQK7UzFKѫLJL~SFKRYLӋc tә chӭc mӝWYiQFKѫLFӡ gánh trӣ nên dӉ dàng
KѫQ9ӟi nhӳng hình ҧnh và các hӛ trӧ khác tҥo nên mӝWNK{QJNKtFKѫLKҩp dүn và tҥo
ÿѭӧc sӵ hӭng thú Vӟi luұWFKѫLÿѫQJLҧQWUzFKѫLSKKӧp vӟi mӑi lӭa tuәi, hӭa hҽn
sӁ là mӝWWUzFKѫLSKә biӃn trên các máy tính hiӋn nay
II.1 7rQÿ Ӆ tài
³; ây dng game cͥ JiQKGkQJLDQWUrQÿL ͏n tho̩L$QGURLG´
II.2 MөFÿtFKYjêQJKƭD
Xây dӵng game vӟi các mөFÿtFKêQJKƭDVDX
- Tҥo ӭng dөng game cӡ JiQKGkQJLDQWUrQÿLӋn thoҥi Android có giao diӋn trӵc
quan, phөc vө nhu cҫu giҧi trí cӫa nhiӅXQJѭӡLFKѫLYj giúp mӑLQJѭӡi biӃt rõ
KѫQYӅ WUzFKѫLQj\
- Nҳm bҳt và hiӇXÿѭӧc công nghӋ lұp trình game trên hӋ ÿLӅu hành Android
Nâng cao kӻ QăQJOұp trình, kӻ QăQJJLҧi quyӃt vҩQÿӅ
- Ӭng dөng trí tuӋ nhân tҥRÿӇ máy có khҧ QăQJVX\QJKƭWӕLѭXFKRPӛLQѭӟc
Trang 12Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
- Sӱ dөng thành thҥo mӝt sӕ công cө hә trӧ FKRP{LWUѭӡng làm viӋc, lұp trình game
II.3 Phҥ PYLÿ Ӆ tài
Ӭng dөng trên các thiӃt bӏ GLÿӝng sӱ dөng trên hӋ ÿLӅu hành Android có kích WKѭӟFPjQKuQK[iFÿӏnh, là mӝt game trí tuӋ có khҧ QăQJWә chӭFFKѫLJLӳD1Jѭӡi và Máy vӟi các mӭFÿӝ khác nhau
III.1 &iFEѭ ӟc thӵc hiӋ n
- Tìm hiӇu thông tin liên quan
- Xem xét bàn bҥc tính khҧ thi cӫa các yêu cҫu trong ӭng dөng
- ;iFÿӏnh thӡi gian thӵc hiӋn và hoàn thành dӵ án
- Lên kӃ hoҥFKÿӇ thӵc hiӋn dӵ án
- Phân tích các yêu cҫu cӫa dӵ án
- Phân tích thiӃt kӃ tӯng chi tiӃt cӫa tӯng module
- Dӵa vào bҧng phân tích thiӃt kӃ tiӃn hành code ӭng dөng
- TiӃn hành kiӇm thӱ ӭng dөng
- Báo cáo sӁ ÿѭӧc viӃt song song trong suӕt quá trình làm dӵ án
III.2 Dӵ kiӃ n kӃ t quҧ ÿҥ Wÿѭ ӧc
Hi vӑQJFKѭѫQJWUuQKVӁ ÿiSӭQJÿѭӧc các yêu cҫXQKѭVDX
- Xây dӵng hoàn chӍnh game cӡ JiQK FKѫL JLӳD QJѭӡi và máy vӟi các mӭF ÿӝ khác nhau
- Ĉӗ hӑa bҳt mҳWFiFWKDRWiFÿѫQJLҧn, tiӋn dөng
- TӕLѭXNKҧ QăQJVX\QJKƭFӫa máy
Trang 13Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
Toàn bӝ khóa luұn bao gӗm 3 phҫn:
Trang 14Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
chӕt Android là hӋ ÿLӅXKjQKWUrQÿLӋn thoҥLGLÿӝng (và hiӋn nay là cҧ trên mӝt sӕ ÿҫu
SKiW+'+'3OD\HU79« SKiWWULӇn bӣi Google và dӵa trên nӅn tҧng LLQX[7Uѭӟc ÿk\$QGURLGÿѭӧc phát triӇn bӣi công ty liên hӧS$QGURLGVDXÿyÿѭӧc Google mua
lҥLYjRQăP
Các nhà phát triӇn viӃt ӭng dөng cho Android dӵa trên ngôn ngӳ java Sӵ ra mҳt
cӫD$QGURLGYjRQJj\WKiQJQăPJҳn vӟi sӵ thành lұp cӫa liên minh thiӃt bӏ
cҫm tay mã nguӗn mӣ, bao gӗm 78 công ty phҫn cӭng, phҫn mӅm và viӉn thông nhҵm
mөFÿtFKWҥo nên mӝt chuҭn mӣ FKRÿLӋn thoҥLGLÿӝQJWURQJWѭѫQJODL
phép các nhà phát triӇQÿӇ tҥo ra các ӭng dөQJGLÿӝng hҩp dүn tұn dөng tҩt cҧ mӝt
chiӃFÿLӋn thoҥLÿmFXQJFҩS1yÿѭӧc xây dӵQJÿӇ ÿѭӧc thӵc sӵ mӣ$QGURLGÿѭӧc
Trang 15Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
xây dӵng trên mӣ Linux HUQHO+ѫQQӳa, nó sӱ dөng mӝt máy ҧo tùy chӍQKÿѭӧc thiӃt
kӃ ÿӇ tӕLѭXKyDEӝ nhӟ và tài nguyên phҫn cӭQJWURQJP{LWUѭӡQJGLÿӝng NӅn tҧng
này sӁ tiӃp tөc tiӃn triӇQ QKѭ FӝQJ ÿӗng nhà phát triӇn công viӋF FQJ QKDX ÿӇ xây
dӵng các ӭng dөQJGLÿӝng sáng tҥo
các ӭng dөng lõi cӫDÿLӋn thoҥi và các ӭng dөng cӫa bên thӭ ba Hӑ tҩt cҧ có thӇ ÿѭӧc
xây dӵQJÿӇ có thӇ truy cұp bҵng khҧ QăQJFӫa mӝWQJѭӡi cung cҩSFKRQJѭӡi sӱ dөng
ÿLӋn thoҥi vӟi mӝt dҧi rӝng các ӭng dөng và dӏch vө Vӟi các thiӃt bӏ xây dӵng trên HӋ
ÿLӅXKjQK$QGURLGQJѭӡi dùng có thӇ hoàn toàn thích ӭng vӟLÿLӋn thoҥLÿӃn lӧi ích
cӫa hӑ Hӑ có thӇ WUDRÿәi trên màn hình cӫDÿLӋn thoҥi nhӳng phong cách cӫa dialer,
Trang 16Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
Android 1.1 (Petit Four): Ra mҳt ngày 9-2-2009 Không bao gӗm nhiӅu tính
QăQJSKLrQEҧn này bә sung mӝt sӕ chӭFQăQJPӟi cho Google Maps hiӇn thӏ chi tiӃt
KѫQEjQSKtPҧo gӑLÿLӋn thoҥLÿmFyWKӇ hiӇn thӏ hoһc ҭn khi gӑLFKѭѫQJWUuQK606
FKRSKpSQJѭӡLGQJOѭXWұSWLQÿtQKNqPPetit Four sӱa mӝt sӕ lӛi trong Android 1.0
Android 1.5 (Cupcake): 5DPҳW ngày 30-4-2009 Cupcake, tên mã ÿҫXWLrQ áp
GөQJFKR SKLrQEҧQ$QGURLGCupcake PDQJQKLӅX WtQKQăQJPӟLQKѭEjQSKtPҧRFy
NKҧQăQJGӵÿRiQWӯÿDQJJ}WӯÿLӇQWӯQJӳGRQJѭӡLGQJÿһWUDKӛWUӧZLGJHWWUrQ
JLDRGLӋQFKӫTXD\SKLPYjSKiWOҥLYLGHRFOLSOѭӧFVӱWKӡLJLDQFXӝFJӑLFKӃÿӝWӵÿӝQJ[RD\PjQKuQKWKHRKѭӟQJVӱGөQJVFUHHQURWDWLRQ
Android 1.6 (Donut): 5DPҳW ngày 30-9-2009 Donut NKҳFSKөFFiFFKӭF QăQJ
OӓQJOҿRWURQJCupcake, PӣUӝQJFKӭFQăQJWuPNLӃPEҵQJJLӑQJQyLYjNêWӵÿӃQ
ERRNPDUN Yj GDQK Eҥ $QGURLG 0DUNHW WUӣ WKjQK FKӧ ÿҫX PӕL ÿӇ QJѭӡL GQJ WuP
NLӃPYj[HPFiFӭQJGөQJ$QGURLGӬQJGөQJFKөSҧQKYjTXD\SKLPWURQJDonut
QKDQKKѫQ+ӋÿLӅXKjQKKӛWUӧPjQKuQKFyÿӝSKkQJLҧLOӟQKѫQKѭӟQJÿӃQFiFWKӃ
KӋVPDUWSKRQHPjQKuQKOӟQ
Android 2.0 (Eclair): 5DPҳWQJj\-10-&KӍ VDXJҫQPӝWWKiQJUDPҳW
Donut, Google tung ra EclairSKLrQEҧQÿѭӧFQKұQÿӏQKOjEѭӟFÿLOӟQFӫDKӋÿLӅX
hành này Eclair FҧLWLӃQUҩWQKLӅXWӯJLDRGLӋQ ÿӃQӭQJGөQJErQWURQJKӋWKӕQJӬQJ
GөQJFKөSҧQKWăQJFѭӡQJWKrPFKӭFQăQJ]RRPVӕSKyQJWR FkQEҵQJWUҳQJKӛWUӧ
ÿqQ IODVKYj FiF KLӋXӭQJPjX VҳFEclair Oj SKLrQ EҧQ $QGURLG ÿҫX WLrQ Kӛ WUӧ ҧQK
QӅQ ÿӝQJOLYHZDOOSDSHU GW\FKӑQQj\WLrXWӕQNKiQKLӅXSLQ
Android 2.2 (Froyo): 5DPҳWQJj\-5-2010 7ӯ SKLrQEҧQ WUӣÿLAndroid
GҫQ KRjQ WKLӋQ KѫQFroyo PDQJ $GREH )ODVK ÿӃQ $QGURLG NpR WKHR KjQJ ORҥW ӭQJ
GөQJYjJDPHWUrQQӅQ)ODVK1JѭӡLGQJFNJQJFyWKӇ[HPYLGHRFOLSQӅQ)ODVKQKѭ
<RX7XEHYjUDOӋQKWKӵFKLӋQFXӝFJӑLTXD%OXHWRRWK
Trang 17Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
Android 2.3 (Gingerbread): Ra mҳW QJj\ 6-12- ĈӃQ FXӕL QăP 2,
FKRWKӃKӋ$QGURLG[KӧSQKҩWNKҳFSKөFVӵSKkQPҧQJFӫD$QGURLG
Android 4.0 (Ice Cream Sandwich) 5D PҳW QJj\ -10-2011 "Bánh kem
VDQGZLFK ,&6 Oj WKӃ KӋ $QGURLG ÿѭӧF PRQJ ÿӧL QKҩW ÿӃQ QD\ UD ÿӡL FQJ GzQJ
VPDUWSKRQH ERP WҩQ 6DPVXQJ *DOD[\ 1H[XV WKӃ KӋ VPDUWSKRQH ÿҫX WLrQ WUDQJ Eӏ
ICS Ice Cream Sandwich KRҥWÿӝQJPѭӧWPjQKDQKYjÿҽSKѫQ
Android 4.1 (Jelly Bean): Ra mҳt: 9-7-2012 Máy tính bҧng Nexus 7, sҧn phҭm
hӧp tác giӳa Google và Asus, là thiӃt bӏ dùng Jelly Bean ÿҫu tiên ra mҳt Android 4.1
nâng tҫm hoҥWÿӝng cho hӋ ÿLӅu hành cӫa Google, trӣ thành hӋ ÿLӅu hành cho thiӃt bӏ di
ÿӝQJKjQJÿҫu hiӋQQD\ÿHGӑa cҧ "ông lӟn" Windows
Android 4.2 (vү n là Jelly Bean) Ra mҳt: tháng 11-2012 ChӍ sau gҫQQăPWKiQJ
ra mҳt Android 4.1, Google tiӃp tөc bӗi thêm sӭc nһng cho Android vӟi phiên bҧn 4.2
và vүn mang tên mã Jelly Bean
Android 4.3 (vү n là Jelly Bean) Ra mҳt: tháng 24-7-2012
Android 4.4 (KitKat): ra mҳt cuӕL WKiQJ ÿҫX WKiQJ QăP Kitkat
mӟi nhanh chóng chiӃPÿѭӧc cҧPWuQKQJѭӡi dùng Các sӕ liӋu sau có thӇ cho thҩy
ÿLӅu này
Trang 18Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
Bҧn báo cáo mӟi nhҩt cӫa Google vӅ tình hình các phiên bҧn hӋ ÿLӅu hành
Android trong tháng 3 cho thҩy sӵ JLDWăQJÿӅXÿһn cӫa các phiên bҧn Android mӟi,
WURQJÿyFó Android 4.4 KitKat
I.3 Các thành phҫ n ӭng dөng cӫa Android
I.3.1 Activity là gì?
Activity là mӝt thành phҫQFѫEҧn cӫa ӭng dөng Android Mӛi activity thӵc hiӋn
mӝt chӭFQăQJFӫa ӭng dөng, trong mӛi ӭng dөng Android luôn có mӝt MainActivity,
Trang 19Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
khi ta chҥy ӭng dөng thì Activity này sӁ ÿѭӧc gӑi thӵFWKLWUѭӟc và thӇ hiӋn nhӳng giao
diӋn hay FRQWUROOrQPjQKuQKÿӇ QJѭӡi dùng có thӇ WѭѫQJWiF
Mӝt ӭng dөQJWKѭӡng bao gӗm nhiӅu Activity có mӕi liên quan vӟi nhau, và các
activity này hoҥWÿӝQJWKHRFѫFKӃ KjQJÿӧLFyQJKƭDNKLPӝWDFWLYLW\ÿDQJKRҥWÿӝng
QKѭQJ PӝW DFWLYLW\ NKiF ÿѭӧc kích hoҥt hoһF DFWLYLW\ ÿy Fy ÿӝ ѭX WLrQ OӟQ KѫQ WKu
DFWLYLW\WUѭӟFÿyVӁ chuyӇn sang trҥng thái Stop hoһF3DXVHÿӇ activity này thӵc hiӋn
¾ Tҥo mӝt Activity
ĈӇ tҥo mӝt Activity bҥn cҫn phҧi tҥo mӝt lӟp con kӃ thӯa tӯ lӟp Activity Trong
lӟp con bҥn cҫn thӵc hiӋn FiF SKѭѫQJ WKӭc callback mà hӋ thӕng sӁ thӵc hiӋn khi
chuyӇQÿәi giӳDFiFDFWLYLW\WURQJYzQJÿӡi cӫa nó, bao gӗm các trҥQJWKiLQKѭNKӣi
tҥo, dӯng, chҥy, hay ngӯng hҷn
¾ Thӵc hiӋn mӝt giao diӋQQJѭ ӡi dùng
Giao diӋQQJѭӡi dùng cho mӝt hoҥWÿӝQJÿѭӧc cung cҩp bӣi mӝt hӋ thӕng các
TXDQÿLӇPÿӕLWѭӧng dүn xuҩt tӯ lӟp View MӛLÿӕLWѭӧQJ9LHZÿѭӧc trình bày trên
không gian hình chӳ nhұt (Màn hình mobile) và ta có thӇ xӱ lý nhӳng sӵ kiӋn thông
qua các câu lӋQKWUrQFiFÿӕLWѭӧQJ9LHZÿy
¾ Khai báo activity trong Manifest
Bҥn cҫn khai báo Activity trong tұSWLQ$QGURLG0DQLIHVWÿӇ nó có thӇ truy cұp
vào hӋ thӕQJ ĈӇ có thӇ khai báo bҥn cҫn phҧi mӣ tұp tin AndroidManifest trong
Project cӫa bҥn rӗi thêm mӝt thҿ <activity> ӣ bên trong cһp thҿ DSSOLFDWLRQ!QKѭVDX
Trang 20Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
Ngoài ra, bҥn còn có thӇ thêm mӝt sӕ thuӝF WtQK NKiF FKR DFWLYLW\ QKѭ ODEHOicon, theme style
¾ Sӱ dөng intent filters
MӝW $FWLYLW\ FNJQJ Fy WKӇ chӍ ÿӏnh nhӳng bӝ lӑc khác nhau tùy mөF ÿtFK Vӱ
dөng, các yӃu tӕ lӑF ÿѭӧF ÿӇ trong thҿ <intent-filter> bao gӗm các yӃu tӕ ÿӇ có thӇ
kích hoҥWDFWLYLW\ÿy
Các phҫn tӱ trong thҿ WDEDFWLRQ![iFÿӏnh thӵc hiӋQKjQKÿӝng cӫa ӭng dөng
ÿӕi vӟL DFWLYLW\ ÿy &zQ FiF SKҫn tӱ trong thҿ FDWHJRU\! [iF ÿӏnh activity này nên
ÿѭӧc liӋt kê khi khӣi tҥo ӭng dөng hӋ thӕng (cho pKpSQJѭӡi dùng gӑLDFWLYLW\ÿy
Tuy nhiên, khi ӭng dөng cӫa bҥn muӕn thӵc hiӋn mӝW YjL DFWLRQ QKѭ Oj VHQG
mail, test message, hay cұp nhұt trҥng thái, sӱ dөng dӳ liӋu activity cӫa bҥn Trong
WUѭӡng hӧp này, ӭng dөng cӫa bҥn có thӇ không có nhӳng hoҥWÿӝng riêng cӫDPuQKÿӇ
thӵc hiӋn action này, vì vұy bҥn cҫn tұn dөng nhӳQJDFWLYLWLHVÿѭӧc cung cҩp bӣi thiӃt
Trang 21Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
bӏ mà có thӇ thӵc hiӋQ DFWLRQ ÿy FKR Eҥn NӃu có nhiӅu hoҥW ÿӝng có thӇ xӱ lý các
LQWHQW WKu QJѭӡi dùng có thӇ cӑn bҩt kǤ mӝWWURQJFiF LQWHQWÿӇ sӱ dөng Ví dө bҥn
muӕQFKRQJѭӡi dùng gӱi mail, bҥn có thӇ tҥRUDFiFLQWHQWVDXÿk\
&iF(;75$B0$,/ÿѭӧc thêm vào intent là mӝt mҧng các chuӛLÿӏa chӍ email
mà sӁ ÿѭӧc gӱi Khi mӝt ӭng dөng mail hӗLÿiSLQWHQWQj\QyVӁ ÿӑc mҧng chuӛLÿѭӧc
cung cҩp bên trong extra và thay thӃ FK~QJ WURQJ WUѭӡQJ ³7R´ Fӫa Form gӱi mail
7URQJWUѭӡng hӧp này activity cӫa ӭng dөng sӁ ÿѭӧc gӑLNKLQJѭӡLGQJÿmWKӵc hiӋn
YjDFWLYLW\ÿyVӁ ÿѭӧc resume lҥi
¾ Dӯng mӝt Activity
ĈӇ tҳt mӝt activity thì bҥn cҫn gӑLSKѭѫQJWKӭc finish() BҥQFNJQJFyWKӇ tҳt mӝt
activity mà bҥQÿmJӑLWUѭӟFÿyEҵQJSKѭѫQJWKӭc finishActivity()
¾ 9zQJÿ ӡi cӫa mӝt Activity
Trang 22Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
Hình 1.4: Activity Lifecycle
Trang 23Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
7URQJÿy
x onCreate: Khӣi tҥo activity
x onStart: thӵc hiӋn activity
x onResume: Thӵc hiӋn tiӃp tөc mӝt activity
x onPause: Tҥm dӯng mӝt activity
x onStop: Dӯng hҷn mӝt activity
x onRestart: Thӵc hiӋn lҥi activity
$QGURLGFyFѫFKӃ quҧn lý các tiӃn trình theo chӃ ÿӝ ѭX tiên Các tiӃn trình có
ÿӝ ѭX WLrQ WKҩp sӁ bӏ Android giҧi phóng mà không hӅ cҧnh báo nhҵP ÿҧm bҧo tài
nguyên
¾ Mӝt Activity bao gӗm 4 trҥng thái
x Active (running): $FWLYLW\ÿDQJKLӇn thӏ lên màn hình (foreground)
x Paused: Activity vүn hiӇn thӏ (visible) nhѭQJ NK{QJ WKӇ WѭѫQJ WiF ORVWfocus)
x Stop: MӝWDFWLYLW\ÿѭӧc thay thӃ hoàn toàn bӣ mӝt activity khác sӁ chuyӇn
sang trҥng thái stop
x Killed: Khi hӋ thӕng thiӃu bӝ nhӟ nó sӁ giҧi phóng các tiӃn trình theo
nguyên tҳFÿӝ ѭXWLrQCác activity ӣ trҥng thái stop hoһFSDXVHFNJQJFyWKӇ
bӏ giҧLSKyQJYjNKLQyÿѭӧc hiӇn thӏ lҥi thì các Activity này phҧi khӣLÿӝng
lҥi hoàn toàn và phөc hӗi lҥi trҥQJWKiLWUѭӟFÿy
¾ Vұy ta có thӇ hiӇXYzQJÿ ӡi cӫD$FWLYLW\QKѭVDX
x Entire lifetime: BҳW ÿҫX SKѭѫQJ WKӭc onCreate() cho tӟL SKѭѫQJ WKӭc
onDestroy()
x ӭc onStart() cho tӟLSKѭѫQJWK ӭc onStop()
Trang 24Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
x Foreground lifetime: Tӯ SKѭѫQJ WKӭc onResume() ÿӃQ SKѭѫQJ WKӭc
onPause()
I.3.2 Services
Services là nhӳng thành phҫn chҥy ҭn trong ӭng dөng Android Service
sӱ dөQJÿӇ cұp nhұt thông tin, dӳ liӋXKD\ÿѭDUDFiFFҧnh cáo, nhҳc nhӣ Mӝt service
có thӇ chҥy nӅn và có thӇ tiӃp tөc chҥ\NKLQJѭӡi dùng chuyӇn sang mӝt Activity khác
ĈӇ bҳW ÿҫu mӝt service bҥn cҫn gӑL SKѭѫQJ WKӭc startService() khi mӝt thành
phҫn cӫa ӭng dөQJÿѭӧc bҳWÿҫu, ví dө QKѭ Pӝt Activity Service cҫQÿѭӧc khai báo
trong file AndroidManifest.xml cӫa ӭng dөng:
Hình 1.5: Service Lifecycle
Trang 25Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
I.3.3 Content Providers
&RQWHQW3URYLGHUVJL~SOѭXWUӳ và lҩy dӳ liӋu và làm cho nó có thӇ truy cұSÿӃn
tҩt cҧ các ӭng dөQJNKiFĈk\OjFiFKGX\QKҩWÿӇ chia sҿ dӳ liӋu qua các ӭng dөng
Dӳ liӋX WKѭӡQJ ÿѭӧF OѭX WUӳ ӣ file hӋ thӕng hoһc trong mӝt Sqlite Database
Content Provider thӵc hiӋn mӝt tұSSKѭѫQJWKӭc chuҭn mà các ӭng dөng khác có thӇ
truy xuҩWYjOѭXGӳ liӋu cӫa loҥLQyÿLӅu khiӇn Tuy nhiên nhӳng ӭng dөng không thӇ
gӑL FiF SKѭѫQJthӭc trӵc tiӃS +ѫQthӃ chúng dùng content resolver và gӑi nhӳng
SKѭѫQJWKӭFÿy0ӝt content resolver có thӇ giao tiӃSÿӃn nhiӅu content provider; nó
cӝng tác vӟLFiFSURYLGHUÿӇ quҧn lý bҩt kǤ giao tiӃp nào liên quan
Mӛi ӭng dөng Android chҥy trên Process cӫa nó Bҩt cӭ lúc nào Content
3URYLGHUFNJQJFyWKӇ quҧQOêÿѭӧc các thành phҫn bên trong nó
x Android phҧLÿҧm bҧo các process thành phҫn phҧLÿDQJFKҥy
Intent là mӝt cҩu trúc dӳ liӋu mô tҧ cách thӭF ÿӕL Wѭӧng thӵc hiӋn cӫa mӝt
Activity Intent còn là cҫu nӕi giӳa các Activity: ӭng dөQJ$QGURLGWKѭӡng bao gӗm nhiӅu Activity, mӛi Activity hoҥWÿӝQJÿӝc lұp vӟi nhau và thӵc hiӋn nhӳng công viӋc
khác nhau
Trang 26Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
,QWHQWFKtQKOjQJѭӡLÿѭDWKѭJL~SFK~QJWDWULӋu gӑLFNJQJQKѭWUX\Ӆn các dӳ
liӋu cҫn thiӃWÿӇ thӵc hiӋn mӝt Activity tӯ mӝt Activity khác
Intent là mӝt khái niӋm then chӕt YjÿһFWUѭQJFӫa Android Platform Có thӇ nói
lұp trình Android chính là lұp trình Intent base
¾ Các thuӝc tính cӫDÿ ӕLWѭ ӧng Intent
Intent vӅ Fѫbҧn là mӝt cҩu trúc dӳ liӋX ÿѭӧc mô tҧ trong lӟp
android.content.Intent
x Action: Tên (string) cӫa action mà Intent sӁ yêu cҫu thӵc hiӋn, có thӇ
là action ÿѭӧc android ÿӏQKQJKƭD sҹn (built-in standard action) hoһc GRQJѭӡi lұp trình tӵ ÿӏQKQJKƭD
x Data: Dӳ liӋXPjDFWLYLW\ÿѭӧc gӑi sӁ xӱ Oêÿӏnh dҥng URI thông qua
hàm Uri.parse(data)
x Category: thông tin vӅ nhóm cӫa action
x Typeÿӏnh dҥng kiӇu dӳ liӋu (chuҭQ0,0( WKѭӡQJÿѭӧc tӵ ÿӝng xác
ÿӏnh
x Component: chӍ ÿӏnh cө thӇ lӟp sӁ thӵF WKL $FWLYLW\ NKL ÿѭӧc xác
ÿӏnh các thuӝc tính khác trӣ thành không bҳt buӝc (optional)
x Extras: chӭa tҩt cҧ các cһp (key, value) do ӭng dөQJ WKrP YjR ÿӇ
truyӅn qua Intent(cҩu trúc Bundle)
I.3.5 Broadcast receivers
Là mӝt thành phҫn cӫa ӭng dөng có chӭFQăQJWKXQKұn và phҧn ӭng lҥi nhӳng
WK{QJ EiR ÿѭӧc broadcast NhiӅu broadcast gӕc trong mã hӋ thӕng và các ӭng dөng
FNJQJFyWKӇ khӣi tҥo broadcast
Trang 27Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
Broadcast receivers không hiӇn thӏ giao diӋQQJѭӡi dùng Tuy nhiên chúng có
thӇ khӣi tҥo mӝt Activity phҧn hӗi lҥi nhӳQJWK{QJWLQÿѭӧc nhұQ&K~QJFNJQJFyWKӇGQJ1RWLILFDWLRQ0DQDJHUÿӇ WK{QJEiRÿӃn QJѭӡi dùng
II.1 ThiӃ t lұ SP{LWUѭ ӡng phát triӇ n ӭng dөng
0{LWUѭӡQJÿѭӧc thiӃt lұp trên các hӋ ÿLӅu hành Windows và cө thӇ ӣ ÿk\ W{L
dùng Windows 8 bҧQELWĈӇ thӵc hiӋn viӋc này bҥn cҫQFyFiFJyLFjLÿһt sau:
¾ JDK Java for windows
II.2 Các thành phҫ n trong Android Project
II.2.1 Tҥ o mӟi Android Project
Mӣ eclipse, chӑn File Æ New Æ Android Application Project WUѭӡng hӧp
không có Android Application Project thì ta bҩ m vào Orther)
Trang 28Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
- Application Name: Tên ӭng dөng mà bҥn mong muӕn
- Project Name: Tӵ ÿӝng cұp nhұSNKLFK~QJWDÿLӅn Application Name
- Package Name: Tên package, bҥQÿһWVDRFNJQJÿѭӧFQKѭQJVDRFKRGӉ nhӟ và không có các ký tӵ ÿһc biӋt (chӍ gӗm chӳ WKѭӡng và các chӳ sӕ tӯ 0 ~ 9)
- Minimum Required SDK: Phiên bҧn Android thҩp nhҩt chҥy ӭng dөng này
- Target SDK: Phiên bҧn hiӋn tҥi cӫa ӭng dөng
- Compile With: Phiên dӏch sang phiên bҧn khác
Sau khi tҥo mӟi xong 1 Android Application Project ta sӁ tìm hiӇu cҩu trúc cӫa
mӝt Android Project Mӝt Android Project gӗm:
- /src folder: chӭa các mã nguӗn (source code) là các file Java
- /gen: ChӭDILOH5MDYDGQJÿӇ quҧQOêFiFWjLQJX\rQÿѭӧc tҥo ra tӯ các tұp tin nguӗn, file này tӵ tҥRQrQNK{QJÿѭӧc chӍnh sӱDWKD\ÿәi
Trang 29Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
- /Android 4.4: bao gӗPFiF$3,WѭѫQJӭng vӟi hӋ ÿLӅu hành Android 4.4,
FiFWKѭviӋQQj\ÿѭӧc Import khi ta khӣi tҥo Project bҵng cách chӑn Target ӣ
trên
- /assets: chӭDFiFILOHWjLQJX\rQQKѭGDWDEDVHVӁ ÿLkèm vӟL3URMHFWNKLWDÿyQJJyLӭng dөng
- /res/drawable-hdpiQѫLOѭXKuQKҧnh sӱ dөng cho ӭng dөng hdpi +LJKGSLÿӝ phân giҧLFDR WѭѫQJWKtFK
vӟL ÿLӋn thoҥi có màn hình WVGA800 (480x800), WVGA854 (480x854)
- /res/drawable-ldpi FNJQJ Oj WKѭ PөFÿӇ chӭa các file ҧQK Fy ÿӝ phân giҧi thҩS KѫQ /RZ GSL 49*$
(240x320), WQVGA400 (240x400), WQVGA432 (240x432)
- /res/drawable-mdpi: chӭa các file ҧQKFyÿӝ phân giҧi trung bình Medium dpi: HVGA (320x480), WVGA800 (480x800), WVGA854 (480x854)
- /res/layout/main.xml: file thiӃt kӃ giao diӋn cho ӭng dөng, có thӇ tҥo thêm
nhiӅu file khác FKRQKѭQJPjQKuQKNKiFQKDX
- /res/values/strings.xml: ÿӏQK QJKƭD JLitrӏ cho các tài nguyên trong project,
giúp tӕL ѭX KyD WURQJ viӋc quҧn lý giá trӏ mһc ÿӏnh các ÿӕi Wѭӧng String trên
mӛi layout
- /AndroidManifest.xml: file cҩu hình cho ӭng dөng
Ngoài ra còn có mӝt sӕ IROGHUYjILOHGRQJѭӡi lұp trình tӵ ÿӏQKQJKƭD
II.2.2 ThiӃ t kӃ giao diӋ n trong Android
Không giӕQJQKѭOұSWUuQKMDYDWK{QJWKѭӡng, lұp trình android ngoài các lӟp
Hình 1.8: C̭ u trúc 1 Project
Trang 30Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
dòng ;0/QjRQKѭQJVӱ dөng XML sӁ ÿѫQJLҧn công viӋFÿLUҩt nhiӅXĈӗng thӡi sӱ
dөng XML sӁ giúp viӋc chӍnh sӱa ӭng dөng sau này trӣ nên dӉ dàng
VӅ nguyên tҳc, khi lұp trình ӭng dөng ta thiӃt kӃ giao diӋn bҵQJ;0/YjFjLÿһt
các xӱ OêNKLWѭѫQJWiFYӟi giao diӋn trong code
¾ Các Layout
/D\RXWÿѭӧFGQJÿӇ quҧn lý các thành phҫn giao diӋn khác theo 1 trұt tӵ nhҩt
ÿӏQK/D\RXWÿѭӧc sӱ dөng nhҵm mөFÿtFKWKLӃt kӃ giao diӋn cho nhiӅXÿӝ phân giҧi
7Kѭӡng khi lұp trình nên kӃt hӧp nhiӅu layout vӟLQKDXÿӇ tҥo ra giao diӋn bҥn mong
muӕn
x FrameLayout: /D\RXW ÿѫQ JLҧn nhҩt, thêm các thành phҫn con vào
góc trên bên trái cӫa màn hình
x LinearLayout: thêm các thành phҫn con theo 1 chiӅu nhҩW ÿӏnh
(ngang hoһc dӑF ... class="page_container" data-page="29">
Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
- /Android 4.4: bao gӗPFiF$3,WѭѫQJӭng vӟi hӋ ÿLӅu hành Android 4.4,
FiFWKѭviӋQQj\ÿѭӧc... class="page_container" data-page="32">
Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
- Paint: Paint mӝt lӟp quan trӑng Android, mӝt ӭng dөng android chҷng
khi thiӃu... data-page="33">
Xây dӵng game cӡ Gánh dân gian GVHD: PGS.TSKH Trҫn Quӕc ChiӃn
R.drawable.image);
Canvas.drawBitmap(bitmap,0,0,bPaint); }
¾ Âm Android
Android cung