Cấu trúc cơ bản của di động thông minh - Information Technology | Đại học Phú Yên

được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

MC LC
CHƢƠNG 1: CƠ SỞ LÝ THUYT..................................................................... 8
1.1 KI A THI T B NG THÔNG MINH ......... 8ẾN TRÚC CƠ BẢN C DI ĐỘ
1.1.1. Gi u .............................................................................................. 8i thi
1.1.2. Vi x ................................................................................................. 9
1.1.3. B nh RAM ...................................................................................... 14
1.1.4. B nh ROM ...................................................................................... 15
1.1.5. Màn hình ............................................................................................. 15
1.1.6. B x h a ................................................................................... 16 lý đồ
1.2 CÁC THI T B ..................................................................... 17 ĐO LƢỜNG
1.2.1. Gia t ............................................................................................ 17c kế
1.2.2. Con quay h i chuy n .......................................................................... 18
1.2.3. Định v v tinh .................................................................................... 19
1.2.4. C n dung ............................................................................ 20m biến điệ
1.3 KI N TRÚC C A N NG ANDROID ............................................. 21 N T
1.3.1. Nhân c u hành ........................................................................ 21a h điề
1.3.2. Thƣ viện .............................................................................................. 22
1.3.3. Khung ng d ng trên Android ........................................................... 24
1.3.4. T ng ng d ng .................................................................................... 25
1.3.5. Các thành ph n trong m ng d ng Android .................................... 25 t
1.4 CÔNG C VÀ NGÔN NG L P TRÌNH ............................................... 29
1.4.1. Ngôn ng l p trình .............................................................................. 29
1.4.2. Công c cho l p trình .......................................................................... 29
1.4.3. M t s Game engine ........................................................................... 31
1.5 QUY TRÌNH XÂY D M TRÊN ANDROID................... 32NG PH N M
CHƢƠNG 2: ẬP TRÌNH GAME CHO ĐIỆ L N THOI THÔNG MINH ........ 33
2.1 Gi i thi u .................................................................................................... 33
2.2 KI N TRÚC C ................................... 33 A TRÒ CHƠI TRÊN ANDROID
2.2.1. Ki n trúc chung ................................................................................... 33ế
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 2
2.2.2. K thu t âm thanh ............................................................................... 35
2.2.3. K thu h a ................................................................................... 36ật đồ
2.2.4. H ng mô ph ng ............................................................................ 41 th
2.2.5. K thu lý va ch m trong game .................................................... 42t x
2.3 CÔNG C X ÂM THANH ............................................................... 43
2.4 CÔNG C X HÌNH ................................................................ 44 NH
2.5 CÔNG C PHÁT TRI N PH M .................................................... 46 N M
CHƢƠNG 3: TRIN KHAI NG DNG ........................................................ 50
3.1 CHU TÀI NGUYÊN CHO NG D ........................................ 50N B NG
3.1.1. Ý tƣở ủa trò chơing c ........................................................................... 50
3.1.2. Đồ ha ................................................................................................. 50
3.1.3. Âm thanh............................................................................................. 51
3.2 TH C NGHI M ........................................................................................ 51
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 3
DANH SÁCH CÁC HÌNH
Hình 1-1:Kiến trúc cơ bản ca FPGA .................................................................... 8
Hình 1-2:Kiến trúc Snapdragon S4 s d ng b vi x ............................. 10 lý Krait
Hình 1-3: kh i SoC OMAP36xx c a Texas Instruments ........................... 10Sơ đồ
Hình 1-4: Bi OMAP4470 c Instruments ........................................ 11ểu đồ a Texas
Hình 1-5: kh i Exynos 4210 c a Samsung ................................................ 11Sơ đồ
Hình 1-6: Hình minh h m ch Samsung Galaxy S 4G ................................... 12a v
Hình 1-7: kh i c ......................................................................... 13Sơ đồ a Tegra 2
Hình 1 Hình -8: nh c 5 n trên cùng) .. 13ủa Tegra 3. Năm lõi vi xử lý (lõi th m
Hình 1-9: Hình minh h m ch Motorola Droid Razr ..................................... 14a v
Hình 1-10: Sơ đồ đơn giản ca mt tm n n LCD TFT ....................................... 15
Hình 1-11: Sơ đồ tm hin th AMOLED ............................................................ 16
Hình 1-12: Ki n trúc bên trong GPU Mali c a ARM .......................................... 16ế
Hình 1-13: Hình minh h c k dùng trong máy bay .................................. 17a gia t ế
Hình 1-14: C u t n c ............................................................. 17 ạo cơ bả a gia t c k ế
Hình 1-15: Minh h a ho ng c c k n t ........................................ 18 ạt độ a gia t ế điệ
Hình 1-16: Hình nh minh h a con quay h i chuy n ........................................... 18
Hình 1-17: Hình nh minh h a MEMS ................................................................ 19
Hình 1-18: M a GPS: ................................................................. 19t s tính năng củ
Hình 1-19: Hình minh h ho ng c a màn hình c n dung . 20ọa cơ chế ạt độ m ứng điệ
Hình 1-20: Ki n c u hành Android ....................................... 21ến trúc cơ bả a h điề
Hình 1-21: S so sánh Java VM và Dalvik VMs ................................................. 23
Hình 1-22: a m ng .............................................................. 27Vòng đời c t hoạt độ
Hình 1-23: chuy n tr ng thái c ch v ................................................ 28Lƣu đồ a d
Hình 1-24: Ki n trúc c cung c p n i dung trong Android ........................... 29ế a b
Hình 2-1: Ki n c a m .................................. 33ến trúc cơ bả ột trò chơi trên Android
Hình 2-2: Hình minh ha ngón tay chạm vào vùng điều khin trong User Input 34
Hình 2-3: Hình minh h ch chuy n, phép quay ...................................... 36a phép d
Hình 2-4: Minh h a phép chi u ph i c nh 3D trên 2D ........................................ 37 ế
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 4
Hình 2-5: Minh h a phép chi u song song ........................................................... 37 ế
Hình 2-6: Minh h a góc nhìn h p ......................................................................... 37
Hình 2-7: Minh h a góc nhìn r ng ....................................................................... 38
Hình 2-8: Minh h a phép chi u hình nh vào thi t b , hình bên trái chuy n g ế ế c
tọa độ vào thiết b và hình bên ph i là d ch chuy n thi v phía hình nh. ............. 38 ết b
Hình 2-9: Hình minh h -Các 3 chi u ..................................... 39a h trc tọa độ Đề
Hình 2-10: Giao di n Android Virtual Device ...................................... 41 Manager
Hình 2-11: T o thi o trong Android Virtual Device Manager ..................... 42 ết b
Hình 2-12: Giao di ....................................................... 43ện chƣơng trình Audacity
Hình 2-13: Giao di .................................................... 44ện chƣơng trình MuseScore
Hình 2-14: Giao di ..................................................... 44ện chƣơng trình InkSpcace
Hình 2-15: Giao di ............................................................ 45ện chƣơng trình GIMP
Hình 2-16: Giao di o n .............................. 45ện chƣơng trình t ền cho các trò chơi.
Hình 2-17: Giao di .......................................... 46ện chƣơng trình Fontstruct online
Hình 2-18: Giao di n Eclipse ............................................................................... 46
Hình 2-19: t o d .................................................................... 47Chọn Menu để án
Hình 2-20: Nh p thông tin cho d ................................................................... 48 án
Hình 2-21: p thêm các thông s cho ng d ng ......................................... 48Thiết l
Hình 2-22: n ch hi n th ........................................................................... 49Ch ế độ
Hình 2-23: Hoàn thành t o d .......................................................................... 49 án
Hình 3-1: Hình nh máy bay trên b u tr i ............................................................ 51
Hình 3-2: Màn hình làm vi u Unity3D .......................................................... 51c c
Hình 3-3: Màn hình làm vi a MonoDevelop ................................................. 52c c
Hình 3-4: Hình ảnh khi máy bay địch tn công .................................................... 53
Hình 3-5: Máy bay b n .................................................................................. 53ắn đạ
Hình 3-6: Hình nh v n ........................................................ 54 a r sang trái va b
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 5
DANH SÁCH CÁC T T T T VI
Stt
T vi t ết t
Mô t
1
FPGA
Field programmable Gate Array
2
SoC
System on a Chip
3
GPU
Graphics Processing Unit
4
5
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 6
LI C ẢM ƠN
Trƣớc hết, em xin chân thành c y giáo - Ths. Nguyảm ơn thầ n Trịnh Đông,
ging viên Khoa Công ngh thông tin - i h c Dân L p H Trƣờng Đạ ải Phòng, ngƣời đã
dành cho em r t nhi u th i gian quý báu, tr ng d n t , ch b c tiếp hƣớ ận tình giúp đỡ o
em trong su án t p. ốt quá trình làm đồ t nghi
Em xin chân thành c t c các th y cô giáo trong khoa Công ngh thông ảm ơn tấ
tin - i h c Dân L p H i Phòng, chân thành c y giáo, giáo Trƣờng Đạ ảm ơn các thầ
tham gia gi ng d ytruy t nh ng ki n th c quý báu trong su t th i gian em h ền đạ ế c
tp t c và ph n bi án c a em giúp em hi mình ại trƣờng, đã đ ện đồ ểu rõ hơn các vấn đề
nghiên c em có th án này. ứu, để hoàn thành đồ
Em xin chân thành c n H u Ngh , Hi ng ảm ơn GS.TS.NGƢT Tr ệu trƣởng Trƣờ
Đại hc Dân Lp Hi Phòng, ban giám hi ng, khoa Công nghệu nhà trƣờ thông tin, các
phòng ban nhà trƣờng đã tạo điều kin tt nht trong sut thi gian em hc tp và làm
tt nghip.
Tuy nhi u c g ng trong quá trình h c t án t t nghi p làm đ ệp nhƣng
không th tránh kh i nh ng thi u sót nh nh, em r c s góp ý quý báu ế ất đị ất mong đƣợ
ca tt c các th t c các b án c a em ngày càng hoàn ầy giáo cũng nhƣ tấ ạn để đ
thiện hơn.
Em xin chân thành cảm ơn!
Hi Phòng, ngày tháng 07 5 năm 2014
Sinh viên
Lê Vũ Minh Quang
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 7
GII THI U
Lp trình trên thi t b ng phát tri n ngày nay c a ngành ế di động đang xu
truyn thông công ngh kinh t thông tin. ới góc độ ế đây một ngành đem lại
nhiu li nhu n cho n n kinh t . Th nh m ế t, ra m ng một hƣớ i c n nhi u lao
độ ng k thut cao, gii quyết nhiu ng vi ng. Thệc cho ngƣời lao độ 2, ngành y
thúc đây nhiề ển theo nhƣ viễn thông, thƣơng mạu ngành công nghip khác phát tri i
điệ n t, giáo dc mt s ngành d ch v khác. Th 3, m cƣu điể a ngành này
ngành công nghi p không khói, nguyên li u chính là tri th c bi i l i ích c và đặ ệt đem lạ
to ln cho c ng. ộng đồ
T c ƣu điểm trên em đã thc hi đền i:Lp trình game tn thiết b di đng.
Khóa lu n y cho em m trong vi ng ngh nghi ột hƣớng đi mi ệc định hƣớ ệp, cũng
nhƣ phát triể năng lận thêm v k p trình và phát trin h thng.
Khóa luận này đƣợc trình bày theo cu trúc sau:
Gii thiu
Chƣơng 1:Cơ sở ết, chương này trình bày các kiế ức cơ bảthuy n th n v ế thi t b
di động n đo kiến trúc phn cng, vi x lý, b nh, các thiết b
lường và n n t ng c a h u hành Android. điề
Chƣơng 2: Lập trình trò chơi trên Android, trong phần này các thành phn liên
quan đế ụng trò chơi đượn mt ng d c đề cp.
Chƣơng 3:Gii thiu v ng d ng trò chơi.
Kết lun
Tài liu tham kh o
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 8
CHƢƠNG 1: CƠ SỞ LÝ THUYT
Gii thiu
Lp trình m c quan tr ng trong ngành công ngh thông tin, l p trình ột lĩnh vự
cho thi t b i m t s yêu c u riêng khác v i l p trình cho máy tính. L p ế di động đòi h
trình cho máy tính nói c phát tri n nh trong mchung đƣợ ổn đị t th i gian dài ít
thay đổ cũng nhƣ n ệ. Trong khi đó, thiếi v kiến trúc h thng n tng công ngh t b di
động dù rt ph biến hiện nay nhƣng có th ển tƣơng đối gian phát tri i ngn, công ngh
đang thay đổi, không chun thng nht, phn cng ph thuc nhiu vào các hãng
khác nhau, h u hành r ng do v y ngôn ng l ng. Tuy điề ất đa dạ ập trình cũng rất đa dạ
nhiên các s n ph m v t b u m t s thiế di động đề chức năng chính nhƣ màn hình
đa chạm, CPU đa lõi, bộ M đủ ứng SSD. Đặ nh RA ln, th nh, c c bit mt s
thiết b các h thống máy tính chƣa nhƣ: Gia tốc kế, Con quay hi chuyn,
Đị nh v v tinh, máy đo từ trƣ ng, và mt s các sensor khác. T phân tích trên, trong
chƣơng này khóa luậ di độn tp trung vào trình y nn tng phn cng ca thiết b ng
và m ngôn ng l n hình cho thi ng. t s ập trình điể ết b di độ
1.1 KIẾN TRÚC CƠ BẢN C A THI T B NG THÔNG MINH DI ĐỘ
1.1.1. Gii thi u
Hin nay r t nhi u các hãng s n xu t thi t b ế ph n c n tho i thông ứng cho đi
minh nhƣ Apple, Samsung, LG, Nokia, cũng giốtuy nhiên nn tng công ngh ng
nhau đó sử dng SoC (System on a chip).Công ngh này tích hp nhiu b phn
khác nhau vào trong m t vi m ch tích h (CPU), chip x h ợp nhƣ: Vi xử đồ a
(GPU), RAM, ROM, trình điều khin USB và các vi mch WIFI cùng nhiu th khác
na.Các h thống SoC điều da trên nn tng công ngh FPGA (field-programmable
gate array)
Hình 1-1: n c a FPGA Kiến trúc cơ bả
Hu h t ki n trúc chung c a FPGA bao g m m t m ng các kh i logic, dãy cế ế ng
vào ra, các kênh đị ,các kênh đị ến cùng độnh tuyến nh tuy rng (v mt vt lý),
còn dãy c ng vào ra phù h p v u cao ho r ng c a m ng [WikiFPGA]. i chi ặc độ
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 9
S d ng FPGA là m t gi i pháp khác nh m kh c ph c m t s h n ch c ASIC ế a
(Application-Specific Integrated C cuit), ASIC m t vi m c thi t k dành ir ạch IC đƣợ ế ế
cho m ng d ng c , v v ph c t khi tri n khai.FPGA t th ấn đề giá thành đ p
mt loi vi m ch bán d n chuyên d u so sánh FPGA v i ASIC thì ụng ASIC, nhƣng nế
FPGA không đạt đƣợ ức độ ối ƣu vàc m t hn chế trong vic thc hin nhng tác v
đặc bit phc tp, tuy nhiên trong khi triFPGA ƣu việt hơn ển khai nhƣ có th tái lp
trình l i, thi t k n n chi phí gi m, rút ng n th n ph m vào ế ế đơn giả đẫn đế ời gian đƣa s
thc tế.
Ngoài ra còn m t s vi m ch bán d n l ập trình đƣợcnhƣ PLA, PAL, CPLD
cũng dùng c u trúc mng ph n t logic nhƣngFPGA ƣu việt hơn
Lp trình c FPGA th a c hiện đơn giản hơn
Cho phép n p l ại chƣơng trình
Các nhà thi t k s d ng các ngôn ng t ph n c ng ế ế nhƣ VHDL, Verilog,
AHDL để thiết kế lp trình cho FPGA. Các gói phn mm thi t b ph cho ế tr
quá trình thi t k này do các hãng s n xu t FPGA lế ế ớn nhƣ Xilinx, Altera cung cấp.
Ngoài ra t s hãng khác cung c p các gói ph n m m kicũng mộ ểu này nhƣ
Synopsys, Synplify...
1.1.2. Vi x
Vi x n tho cho điệ ại thông minh đƣợc nhiu hãng sn xut theo nhiu
chun khác nhau. Trong ph n y khóa lu n gi i thi u m t s n CPU dùng cho điệ
thoi thông minh.
1.1.2.1 ARM
Chip ARM (Advance RISC Machine) c a hãng ARM Holding c nâng c p s đƣ
qua nhi u phiên b n. Hi n nay u phiên b n c ARM ARM 11, Cortex-M, có nhi a nhƣ
Cortex-R,Cortex-A,… Thc ch t ARM Holdings không s n xu t chip h t k thiế ế
ra các lo i chip r i c ấp phép cho các công ty khác nhƣ Qualcomm, Texas Instruments,
Apple, Samsung,… ARM cung c p c t k -Core cho lo i 32 bit và 64 bit. ác thiế ế IP
1.1.2.2 SoC Snapdragon
SoC Snapdragon Qualcommca hãng đã la chn mt gii pháp khác mc h
cũng sử ủa ARM đ ất nhƣng họ dng bn quyn c sn xu không s dng hoàn toàn
thi thi thiết k c a ARM. Hãng y d a o ế ết k ARM r i c i ti n ế ế ết k phát triế để n
thành các vi x riêng c a h . , các vi x c Scorpion Krait Do đó a Qualcomm
t x n t n hi u quốc độ liên quan đến đa phƣơng tiệ ốt hơn tiêu thụ điệ hơn so
vi các b vi x ban đầu.Các vi x Scorpion Krait đƣợc đƣa vào các SoC
Snapdragon c a Qualcomm . Mã Snapdragon có nhi u S ( loại đƣợc đánh số
x
x 1, 2,..,
n). S càng l n thì t x càng m x ốc độ nh. Hi n t i m t s sn phm d ki n s ế
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 10
s , d ng Snapdragon S4 ca Qualcomm nhƣ HTC One S HTC EVO 4G LTE, HTC
One XL,
Hình 1-2: n trúc Kiế Snapdragon S4 s d ng b vi x lý Krait
1.1.2.3 OMAP
SoC OMAP Texas Instruments (Open Media Application Platform) ca đƣc s
dng khá r ng rãi. n ph n tho i c Motorola u s d Trong đó các sả ẩm điệ a đề ng
OMAP. OMAP nhi u dòng s n ph OMAP1, 2, m n 3, 4,... Nhƣng dòng sản
phm OMAP 3 và 4 đƣc dùng ph bi n hi n nay ế .
Hình 1-3 SoC OMAP36xx c a Texas Instruments : Sơ đồ khi
Do m o nhi u s n ph m v i các y ch n nên không tích ục đích tạ SoC OMAP
h vp b ph n Wifi, Bluetooth à mt s thành ph cho t ng dòng sn khác, để n
ph lm có s ng linh độ nhƣng i làm tăng kích thƣớc c a v m ch chính.
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 11
Hình 1-4 OMAP4470 c a Texas Instruments : Biểu đồ
Tuy nhiên, các SoC OMAP tích h p thêm công ngh t kiđƣc tiế ệm điện
SmartReflexvà tăng các ệm điện và tăng thờhai ARM Cortex-Mlõi
x
để tiết ki i gian pin.
1.1.2.4 d. Exynos
SoC Exynosca hãng Samsungch y trong các s n ph m cếu phc v a Samsung,
ngoài ra hãng Meizu, nhà s n xu n tho i Trung Qu c s d i c ất điệ ụng cho điên thoạ a
h. M c Samsung s n xu v n nh p c t SoC nhƣng họ Snapdragon a Qualcommđể
s mn xu n tho i vì ất điệ Exynoschƣa đáp ứng đƣợc t s yêu c u c a s n ph m m i.
Hình 1-5: Exynos 4210 c a Samsung Sơ đồ khi
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 12
Dòng s n ph 4210 lõi kép i thi n m nh v t so v phiên m Exynos đƣợc c ốc độ i
bn trƣớc, còn đƣc c tích h p các ch năng nhƣ GPS, HDMI USB Host.Dƣới
đây là vỉ mch s dng h Exynos
Hình 1-6 Hình minh h a v m Samsung Galaxy S 4G : ch
Hin t Exynos c s trên thi chƣa thự chiếm ƣu thế trƣờng nhƣng tƣơng lai của
Exynos r t h a h n. nghi các th h Exynos m tích h Samsung đang thử m ế ới đƣợc p
các b vi x ARM Cortex-A15 lõi kép 2 GHz cùng v i vi x h a Mali c i ti n, đồ ế
h tr 3D, màn hình độ cũng nhƣ chất lƣợ phân gii 2560 x 1600 (WQXGA) ng
camera i thi n. cũng đƣợc c
1.1.2.5 e. Tegra
Các lo i SoC Tegra c d ng trong các t b ng dòng a Nvidiađang sử thiế di đ
Tegra 2 ho c Tegra 3 v i tên mã là Kal-El. Các dòng s n ph m này u tích h p vi x đề
đa lõi AR ốc độ 1 GHz đế m điệM Cortex-A9 t t n 1.4 GHz; s dng GPU tiết ki n
GeForce làm chip x h lý đồ a.
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 13
Hình 1-7 a Tegra 2 : Sơ đồ khi c
Tegra 3 c c i ti n và l n ph SoC b u tiên trên th i dành cho đƣợ ế à s m n lõi đầ ế gi
thiết b x c 1.2 GHz lên 1.3 GHz di đng.Tốc độ ủa các lõi A9 đã đƣợc tăng từ
cấu hình 4 lõi GPU cũng đƣợc tăng đáng kể. Tegra 3 th chạy trên màn hình độ
phân gi i lên t th qu ng th ới 2048 x 1530 pixel nhƣng chỉ ản hai màn hình đồ i
trong khi các chip m i c th qu n t i 3 ho c 4 màn hình a OMAP Exynos
cùng lúc.
Hình 1-8 Hình nh c lý (lõi th 5 n trên cùng) : ủa Tegra 3. Năm lõi vi xử m
Nvidiadùng lõi Cortex-A9 th năm đểvi tt 500 MHz ốc đ x nhng tác v
đơn giả ệm năng lƣợ Trong tƣơng lai sản nhm tiết ki ng. n phm có tên l sà Wayne
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 14
tích h p các b vi x ARM Cortex-A15 trong c u hình b n lõi ho c m lõi. GPU
GeForce cũng sẽ đƣợc tăng lên.
1.1.2.6 f. SoC ca Apple
Apple là m hãng n i ti ng v i các s n ph m tinh t và ch ng cao. Ht ế ế ất lƣ cũng
sn xu t SoC n giao cho hãng khác. Apple ch dùng cho các s n nhƣng không chuyể
phm ca h . n nay Apple l y ngu n SoC tr c ti p t Samsung trang b cho máy Hi ế
tính bảng và điện thoi Iphone ca h.
Chip A4 SoC tích h p vi x ARM Cortex- t 800 MHz A8 lõi đơn tốc độ
đến 1Ghz và GPU PowerVR SGX535. Nó đƣợc sn xut trên quy trình 45nm.
Apple c i thi n A5 v i vi c tích h p vi x ARM Cortex-A9 lõi kép Chip
GPU PowerVR SGX543MP2 i kép cùng v i b nh RAM 512 MB m ạnh hơn A4
dùng RAM 256 MB còn các thành ph n khác v xung nh p, ẫn tƣơng tự A4 nhƣ tốc độ
quy trình 45nm, b vi x tín hi u hình kh ảnh cũng nhƣ ng nghệ "earSmart" để
nhiu âm thanh.Trong th h k p SoC A6 s s d ng quy trình 28nm tích hế ế tiế p
nhiu lõi vi tốc độ vi x lý cao hơn cùng khả p Cortex- năng tích hợ A15.
1.1.3. B nh RAM
B nh RAM trong thi t bế di động cũng vai trò tƣơng tự nhƣ trong máy tính
cá nhân. Công ngh s n xu t và nguyên lý ho ng nhau ạt động cũng gi do đó trên thiết
b di độ ần quan m là: Dung lƣợng 2 thông s c ng RAM tn s xung nhp.
RAM đƣợ ểu kích thƣ ảm điện năng c tích hp trong SoC nhm gim thi c thiết b, gi
tiêu th, t truy c ốc độ ập nhanh hơn.
Hình 1-9 Hình minh h a v m : ch Motorola Droid Razr
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 15
1.1.4. B ROM nh
B nh ROM trong thi t bế di độ ớn hơn so vớng có vai trò to l i ROM trong máy
tính nhân. ROM đƣợ p trong SoC đƣợc tích h c phân chia thành nhiu vùng.
Vùng ch a thông tin h ng, vùng ch a h u nh ch a các t p tin h th điề thng
khác.
1.1.5. Màn hình
Màn hình điện tho i thông minh d chính là LCD và LED a trên hai công ngh
1.1.5.1 Màn hình LCD
LCD (Liquid Crytal Display) ng các l p sau: l p b o v bên ngoài, lthƣờ p
phân c p tinh th l n. c, l ỏng và đèn nề
Hình 1-10 n c a m t t m n n LCD TFT : Sơ đồ đơn giả
Ƣu điểm:
Giá thành r
Màn hình IPS LCD có kh o màu s năng tái tạ c chính xác.
Ít b hi n tƣợng bi ến đổi màu
Có th sáng cao giúp d nhìn khi xem ngoài tr i đạt độ
Nhƣợc điểm:
Do c c t l n cao ần đèn nền nên màn LCD khó đạt đƣ tƣơng phả
màu đen tuyệt đối
Màn hình TN LCD có góc nhìn kém
Trong m t s trƣờng h p, màn hình LCD tiêu t n nhi u điện năng và kích
c dày
1.1.5.2 AMOLED
AMOLED (Active-Matrix Organic Light-Emitting Diode là màn hình dùng các ) đèn đi-ốt hữu
cơkhông cần tới lớp phân cực, tinh thể hay đèn nền nhƣ màn hình LCD. Nhờ chế này,
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 16
AMOLED một số ƣu điểm so với công nghệ LCD. n hoạt động khá đơn giản: Nguyê
Dòng điện đƣợc lớp bóng bán dẫn (transistor) điều khiển đi qua lớp đi ốt hữu cơ ở trên thì các -
đi-ốt ở lớp này sẽ phát sáng. Thay đổi dòng điện trên các bóng bán dẫn thì cƣờng độ ánh sáng
thay đổi theo từ đó có thể tạo hình ảnh nhƣ mong muốn.
Hình 1-11 t m hi n th AMOLED : Sơ đồ
Ƣu điểm:
Kích thƣớc mng và linh hot
Màu sc r c r n cao và độ tƣơng phả
Góc nhìn rng
Tiêu th điện ít hơn
Nhƣợc điểm:
Màu sc c rr nên đôi khi không th t.
Không bn b ng LCD
Màn hình loi ma tr n PenTile, r . hơn nhƣng chấ ợng kém hơnt lƣ
1.1.6. B x lý đồ ha
Hình 1-12 n trúc bên trong GPU Mali c a ARM : Kiế
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 17
GPU (Graphics Processing Unit) thu t ng chung ch chip x h a, trong độ
các s n ph m SoC c c tích h p các GPU m nhi m ch ủa các hãng đều đƣợ để đả ức năng
x xcác l hệnh đồ a.GPU đồ ha 2D/3D vi nhiu tn s xung nhp khác nhau
t 200M n 400s c tích hHz đế MHz đƣ p thành nhi u lõi tuy theo nhu c u c a s n
phm vàth x 204 t phép tính/giây GPU c u h. ủa các hãng đề tr OpenGL
DirectX.
1.2 CÁC THI T B ĐO LƢỜNG
1.2.1. Gia t c k ế
Hình 1-13 Hình minh h a gia t c k dùng trong máy bay : ế
Để phát hin chuy ến ng cđộ a thi t b di động. Trong thiết b đƣợc lp mt ia g
tc kế giúp cho thiết b nh n di u xoay c ện đƣợc chi a thiết b để u chđiề nh các ph n
mm phù hp v ng thái mi tr i của điện tho i.
Gia t c k nguyên th y m t khoang ch a hình tr có ch a qu bóng g n xo ế
hình []. Khoang ch c g n li n vào v t th c c, còn qu bóng di ứa này đƣợ ần đo gia tố
chuyn m t chi u bên trong khoang ch a. Khi thi t b ế chuy ng qu ển độ bóng cũng sẽ
di chuy n làm lò xo co dãn. D co dãn c a lò xo t b có th c và ựa vào đ thiế đo đƣợc l
gia t a chuy ng. c c ển độ
Hình 1-14 u t n c a gia t c k : C ạo cơ bả ế
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 18
Gia tc kế trong thi ng là m t thi n t ho ng d a trên nguyên lý ết b di độ ết b điệ ạt độ
ca gia t c k ế n này. cơ bả
Hình 1-15 Minh h a ho ng c a gia t c k n t : ạt độ ế điệ
Thiết b t b chuy ng c a vđo lƣờng này đo sự ển độ ng cách quan sát m n áp ức độ điệ
hai c u ra c t b ực đầ a thiế đo.
1.2.2. Con quay hi chuy n
Hình 1-16 Hình nh minh h a con quay h i chuy n :
Con quay h i chuy n (gyroscope) m t trong nh ng b ph n c ng quan m
trng trong thi t b ng. Do gia t c k th c gia t c tuy n tính cế di độ ế ch đo đƣ ế a
thiết b n ph i k t h p v con quay h i chuy n th nh n bi ng c ế i ết đƣợc hƣớ a
thi thết b , h ng th d dàng ghi nh n nh ng chuy ng theo c ển đ phƣơng ngang
hoặc phƣơng thẳng đ di động. Trong các thiết b ng không s dng con quay hi
chuyển học dùng thiết b gi MEMS (MicroElectroMechanical System H
thống vi cơ điện t) thiết b này mô ph ng chính xác ho ng c a các thi t b ạt độ ế học
trong m t con chipv i kích d ng nhi u thƣớc vài micromet. Con quay MEMS đƣợc s
trên các thiết b n t . dùng đến cơ điệ
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 19
Hình 1-17 Hình nh minh h a MEMS :
1.2.3. Định v v tinh
H thống định v toàn cu - GPS (Global Positioning System) đƣợc dùng ph
biến trong nhi u i s ng. H ng này s d ng 24 v tinh bay quanh lĩnh vực đờ th trái đất
vi h c c nh s ng d kinh độ đƣợ đị n.GPS đầu tiên đƣợc ng trong quc phòng
ngành hàng h c chuy n sang ngành v n t ng y ải sau đó đƣợ ải,… Ngày nay hệ th
đƣợ ạn,…c ng d ng trong hu hết các lĩnh vực nhƣ trắc đ a, lp b , cản đồ u n
Hình 1-18 t s a GPS: : M tính năng củ
Độ nh vchính xác đị cao.
Phm vi s d ng toàn c u
Thi gian hoạt động 24h/ngày.
Giá thành thiết b r .
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 20
1.2.4. C m bi n dung ến điệ
Màn hình là thi t b hi n th i v t bế thông tin nhƣng đố i thiế di động nó còn đóng
vai trò quan tr ng u khi n t i dùng. B n c c b sung nhận điề ngƣờ ph m ứng đƣ
vào ph i màn nh c g i l p c ng s hóa. H u h n thoần còn đƣợ m ết các điệ i
thông minh hi n nay u màn hình c n dung. đề trang b m ứng điệ
Lp c n dung s d ng công ngh PCT (projected capacitive touch), tm ứng điệ o
ra m i" trên m i y phát hi n ti p xúc c i dùng b ng cách ột "lƣớ àn hình. Lƣớ ế ủa ngƣ
giám sát s i hi n th . D n ng tính ch thay đổ ệu điệ ế ựa trên ờng độ điệ trƣờ ất đa
chiu c ng n các ti p xúc th c hi n ho c gián ti p ho c tr c tiủa trƣờ tĩnh điệ ế th ế ếp
trên màn hình.
Hình 1-19 Hình minh h a ho ng c a màn hình c n dung : cơ chế ạt độ m ứng điệ
Lp c t ngay trên l p tinh th l ng cm ng đƣợc đặ a màn hình LCD, nhƣng
nằm dƣớ Trong khi đó i lp kính bo v. màn hình AMOLED đƣợc đƣợc tích h p l p
cm ng này cùng v i l t phát quang, làm cho trong su t ki ớp đi- t tiế n không gian
cùng vi chi phí[2].
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 21
1.3 KIN TRÚC C A N N T NG ANDROID
Android h u hành c a hãng Google, v ng p c n m t h điề ới tiế điều
hành cho thi t b ng [11]. Android nhanh chóng tr thành h u hành ph bi n ế di độ điề ế
nht trên th gi c xây d ng t nhân , c m r ng thêm nhiế ới. Đƣợ Linux Android đƣợ u
chức năng và cung cấ ần dƣới đây sẽ ần lƣợp nn tng cho lp trình ng dng. Ph l t
t ng thành ph n trong Android. chi tiết t
Hình 1-20 n c a h u hành Android : Kiến trúc cơ bả điề
1.3.1. Nhân ca h u hành điề
Android là mt s n ph n hình c a vi c h p tác phát tri n mã ngu n m ẩm điể .
H điều hành Android s d ng nhân Linux phát tri n. Nhân Linux phát tri n để ển đế
đâu thì Android lại đƣợ ển đến đó.c cp nht và phát tri
Thành ph n c a Linux có các ph u khi n thi t b hiần cơ bả ần chính là Trình điề ế n
th, Camera, bàn phím, chut, kết ni Wifi, âm thanh, qu n ngu n, USB ồn điệ
th nh cùng v i các trình k i khác. ết n
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 22
1.3.2. T hƣ viện
Android cung c h l p trình t nấp phong phú các thƣ viện để tr cũng nhƣ mộ n
tng phát tri n ng d ng v ng trãi. Các i cho Android s c s ng thƣ viện này đã đem lạ
mãnh li t và trên th các ph n m m ch y trên n n t ng Android. c tế có vô s
Surface Manager: qu n lí giao di n bao g p giao di n 2D và 3D. m l
Thƣ việ thƣ viện media: da tên OpenCORE ca PacketVideo, mt b n
h tr i nhi nh d ng âm thanh, video, hình đọc, ghi l ều đị ảnh nhƣ:
MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG.
SQLite: h d c nh nh m cho t thống cơ sở liệu có kích thƣớ nhƣng mạ t c
ng dng.
OpenGL: Thƣ việ thƣ viện các hàm x lý đồ hada trên OpenGL ES 1.0 API; n
gm ph n c ng h tr 3D và ph m h t n m tr ối ƣu 3D.
FreeType: trình bày ki u ch và hình nh.
Thƣ việ ống C: đƣợ thƣ viện h th c rút ra t n h thng C chun (libc).
Webkit: là b n trình duy t web m i h trình duy t Android và thƣ việ tr
WebView.
SGL: h thống đồ ọa 2D cơ sở h .
SSL: t Giao th o mc b h tr s d ng giao th c mã hóa Secure Sockets Layer
trong bo m t truy n thông Internet
Trong phn này có m t ph n r t quan tr ọng đó là Android Runtime
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 23
Hình 1-21 so sánh Java VM và Dalvik VMs : S
Mc Android ch p nh n c hai ngôn ng l p trình Java C, tuy nhiên Java
chiếm ƣu thế Google đã xây dự khi la chn ngôn ng lp trình cho Android. ng máy
ảo riêng để biên dch và chy các ng dng trên Android. Đối vi ngôn ng lp trình C,
Google cung c p framework khác , khi l p trình thì d a vào NDK (Native libc
Development Kit). Ngôn ng l p trình cho c phát tri ng Android đƣợ ển trên môi trƣờ
Java, nhƣng chy trên y o Dalvik n c a Android cung c p VM. Các thƣ viện bả
hu h t các ch n c n riêng ế ức năng trong thƣ viện bả ủa Java cũng nhƣ thƣ việ
ca Android.
Máy o Dalvik: Dalvik máy y các ng dảo để ch ụng trên Android, đã đƣợc
t mối ƣu để ực thi đa nhiệ th m t cách hi u qu . N n t ng k thut y d a vào i
Linux để thc hi ng và quện đa luồ n lý tài nguyên b nh .
Thƣ viện Core libs
H điều hành Android h tr m các APIs phát tri ng d ng. t s để n
- android.util: Gói ti n ích qu n lý nhi u l p m c h ng :các l p (List, th nhƣ
Stack…) lớp x lý chui, lp x lý XML,…
- android.os: Gói h u hành này cung c p c cho phép truy c điề các phƣơng thứ p
mc h ng ng hth nhƣ là trao đổi các thông điệp, thông tin chéo, đồ và g l i.
- android.graphics:Gói này cung c p các l h ớp đồ a.
- android.text:Cung c n ấp các phƣơng thức x lý văn bả
- android.database:Gói này cung c p c dùng thao tác v các phƣơng thứ i s
d liu.
- android.content:Cung c c liên quan l p trình n i dung. ấp phƣơng thứ
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 24
- android.view:Gói khung nhìn n nhngƣời dùng bả t. Các chƣơng trình khi
tƣơng tác với ngƣời dùng đều thông qua các View.
- android.widget:Gói này đƣợc xây dng da trên gói View. Nhng thành phn
giao di c t o s d t o nên giao di n i dùng m t cách ện đƣợ n đem vào s ụng để ngƣờ
nhanh chóng.
- com.google.android.maps:B giao di n ng d truy c n b ụng dùng để ập đế ản đồ
s ngn trong Androidt c ph n m ng d m .
- android.app:Gói thƣ việ phƣơng thứ ập đến này cung cp c truy c n d liu ca
các ng d ng.
- Android.provider:Gói thƣ viện này to thun li cho các nhà phát trin truy cp
đến các tiêu chuContent Provider ncho phép truy c dập đến sở liu chun trong
tt c các bn Android.
- Android.telephony: Các API cung c p cách th t n i t ng vi n thông c kế i v
trong thi t b , cho phép t o, nh n, theo dõi các cu c g i, tình tr ng các cu c g i tin ế
nhn SMS.
- android.webkit: Gói WebKit cung c p giao di n l p trình ng d ng (API)có th
trao đổi ni dung da trên nn Web, gm lp WebView, trình qun lý cookieđể to ra
giao di n W và nhúng trong ng d ng. eb
1.3.3. Khung ng dng trên Android
Kiến trúc c a Android khuy n khích khái ni m Thành ph n s d ng l i, cho phép ế
công b chia s các Activity, Service, d u, v i các ng d ng khác v i quy li n
truy c c qu n lý b ập đƣợ i khai báo.
chế đó cho phép ngƣ i lp trình to ra mt trình qun danh b hoc trình
quay s n tho i các thành ph i khác th t o m i giao di n m điệ ần ngƣờ
rng ch o l i chúng. ức năng thay vì tạ
Nhng d ch v sau nh ng d ch v ki n nh t c a t t c các ng ến trúc bả
dng, cung c p m t framework cho m i mi ph n m c xây d ng: ềm đƣợ
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 25
- u khi i c a các Activity bao g m c n Actitvity Manager: Điề ển vòng đ qu
các tng Activity.
- d t o l p các giao di i dùng cho các Activity Views: Đƣợc s ụng để ện ngƣờ
- Notification Mamager: Cung c p m c nh và quy c cho vi c g i các ột cơ chế đị
thông báo đến ngƣời dùng.
- Content Provider: Cho phép ng d ng chia s d u gi ng d ng. li a các
- Resource Manager: H các thành ph n không thu c mã ngu tr ồn nhƣ chuỗi
ký t h t bên ngoài. ự, đồ ọa đƣợc đặ
1.3.4. T ng ng dng
Đây lớ ạt độp trên cùng ca kiến trúc nn tng Android. Android s ho ng vi
mt b ng d các ng bao g ng d n t , g i tin nh n, lm ụng thƣ điệ ch, b , trình ản đồ
duyt web, danh b t c ng d c vi t b ng ngôn ng Java. Các ng v.v… Tấ các ụng đƣợ ế
dng này có th c cung c p s n ho c phát tri n b ng l p trình viên. đƣợ ặc đƣợ i nh
1.3.5. Các thành ph n trong m t ng d ng Android
Mt ng d ng Android có các thành ph n sau: ụng trên môi trƣờ
Activities (Hoạt động)
Services
Broadcast Receivers
Content Provider
Mt ng dng không nh t thi các thành ph n này.M i thông tin v ết đầy đủ
ng d c ghi trong tụng đều đƣợ p tin . AndroidManifest.xml
1.3.5.1 Ho t đ ng (Activity)
Hoạt động giao diện trong đó ngƣời dùng tƣơng tác với ứng dụng khi đƣợc
kích hoạt. Một ứng dụng có nhiều hoạt động và hoạt động này gọi lẫn nhau để thực các
hiện yêu cầu. Mỗi hoạt độngđƣợc dẫn xuất từ lớp android.app.Activity.
Mỗi hoạt độngthể hiện trên một cửa sổ. Thông thƣờng kích thƣớc cửa sổ bằng
màn hình, ngoài ra thể thêm các cửa sổ con khác nhƣ hộp thoại,Thông
tin trong từng cửa sổ đƣợc cung cấp bởi hệ thống cấp bậc các (là đối tƣợng của View
lớp Views).
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 26
Vòng đời của hoạt động
Các hoạt động trong hệ thống đƣợc quản bởi một cấu trúc dữ liệu ngăn xếp. Khi
khởi tạo, đẩy vào trong ngăn xếp, trạng thái thực thi hoạt động hoạt độngđƣợc các
trƣớc đó sẽ chuyển sang trạng thái chờ. này trở lại trạng thái kích hoạt khi Hoạt động
khởi tạo hoàn tất .
Một hoạt động có ba trạng thái cơ bản là:
- (Hoạt động Active) hoặc chạy ( ứng dụngxuất hiện running) khi trên màn hình
và nhận tƣơng tác ngƣời dùng.
- ( khi ng Tạm dừng Paused) hoạt độngkhông còn trọng tâm trên màn hình nhƣ
vẫn hiện thị trƣớc ngƣời dùng.
- Dừng(Stopped) Khi một hoạt động hoàn toàn bị che khuất nhƣng hoạt động
vẫn còn lƣu trữ toàn bộ thông tin trạng ƣờng bị hệ thống đóng lại khi thiếu thái, th
bộ nhớ.
Khi luân chuy n gi a các tr ng thái, ng d ng s g i các hàm ng v callback i
các bƣớc chuyn hình [11 trong lƣu đồ ].
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 27
Lƣu đồ dƣới đây mô tả vòng đờ i ca mt hoạt động trong Android.
Hình 1-22: i c a m t ho ng Vòng đờ ạt độ
Chu trình của một đƣợc bắt đầu bằng phƣơng thức hoạt động onCreate
(Bundle) onDestroy()kết thúc bằng phƣơng thức . Thời gian hoạt động của một hoạt
động bắt đầu từ lời gọi phƣơng thức onStart()đến khi phƣơng thức onStop() đƣợc triệu
gọi. Toàn bộ tài nguyên của hệ thống do sử dụng tiếp tục đƣợc lƣu giữhoạt động cho
đến khi bị hệ thống thu hồi. đƣợc phục hồi khi phƣơng thức Hoạt động onResume()
đƣợc gọi.
1.3.5.2 Service
Dịch vụ (service) là các mô đun thực thi ẩn trong hệ thống. Mỗi dịch vụ đƣợc kế
thừa từ lớp sở đƣợc kích hoạt hoặc kết trong gói android.app.Service.Các dịch vụ
nối thông qua việc truyền các tham số cho đƣợc kích hoạt bằng cách gọi dịch vụ
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 28
phƣơng thức Các ứng dụng có thể liên kết tới một dịch vụ bằng Context.startService().
cách dùng phƣơng thức Context.bindService().
Vòng đời của một dịch vụ
Vòng đời của một quá trình hoạt động từ khi đƣợc kích dịch vụ của dịch vụ
hoạt đến khi bị loại khỏi hệ thống. Khi hệ thống gọi tới phƣơng thức
Context.startService()dịch vụ đƣợc thực cho tới khi phƣơng thi
thứcContext.stopService() đƣợc gọi.
Các ứng dụng muốn kết nối tới dịch vụthì phƣơng thức
Context.bindService()đƣợc kích hoạt nhận đƣợc một đối tƣợng s IBinder do
dịch vụ ịch vụ trả về để từ đó gọi các phƣơng thức phù hợpCallbackcho .D đƣợc thực
thi cho tới khi nào đối tƣợng còn tồn tại.IBinder
Hình 1-23 chuy n tr ng thái c a d ch v : Lưu đồ
1.3.5.3 B p ng bá (Broadcast receivers) nhn thông điệ qu
Bộ nhận thông điệp quảng bá dùng để nhận và phản hồi lại các thông điệp quảng
, do hệ thống thông báo nhƣ múi giờ bị thay đổi nguồn yếu, và các thông điệp từ các
thiệt bị đo lƣờng gửi về.Tất cả hoạt động của bộ nhận thông điệp quảng đƣợc kế
thừa từ lớp BroadcastReceiver.
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 29
1.3.5.4 B cung cp ni dung
Hình 1-24 n trúc c a b cung c p n i dung trong Android : Kiế
Bộ cung cấp nội dung chức năng cung cấp một tập các (Content Provider)
phƣơng thức cho phép một ứng dụng có thể lƣu trữ và trao đổi dữ liệu thông qua trong
các tập tin hoặc sử dụng cơ sở dữ liệu SQLite sẵn có đƣợc quản lý bởi Bộ cung cấp
nội dung Bộ cung cấp nội dun của . g tính năng ƣu việt của Android nhằm chia sẻ
dữ liệu giữa các ứng dụng một cách dễ dàng.
1.4 CÔNG C VÀ NGÔN NG L P TRÌNH
Xuất phát đi điều hành đƣợm ca Android da trên nn Linux nên h c h tr
đầy đủ ng đồ ca c ng ngun mngôn ng lp trình các ng dng là Java và C,
C++.
1.4.1. Ngôn ng l p trình
Ngôn ng l p trình cho Android Java C, Hai ngôn ng y ph dùng để
bi nmến trong s n xu t ph m. V n, hai ngôn ng cơ bả đều có ki n trúc gi ng nhau, t ế
bng ch cái, các quy định đặ ệu cho đết tên, biu thc, các phép toán, các kiu d li n
các c u trúcr nhánh, l p, ki u c m x song u trúc, ớng đối tƣợng, đa nhiệ
song,do v các nhà phát tri n có nhi u l a ch án c . y ọn hơn cho các dự a h
1.4.2. Công c cho l p trình
1.4.2.1 Android SDK
Android SDK là sn ph m c a Google nh m cung c p cho các l p trình viên m t
công c phát tri n các ng d ng trên h u hành Android c a hãng [3]. V n, điề bả
Android SDK g m m t s thành ph n sau:
Eclipse và ADT plugin
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 30
Android SDK tools
Android Platform tools
Eclipse và ADT-plugin là môi trƣờng đ lp trình các ng dng cho Android.
Android SDK tools
Android software development Kit bao gm các b công c cho phát triđầy đủ n
sn ph m trên h điều hành Android. Bao g m h ng g r n, trìnhmô th ối, các thƣ việ
phng d a trên QEMU, các tài li n t i, h các n n ệu, chƣơng trình mẫu,… Hiệ tr
tng bao g m các máy ch y Linux, MacOS X tr ows XP tr đi, Wind lên, đƣơng
nhiên nó h cho các phiên b n c u hành Android g m (Android IDE - Java, tr a h điề
C++). M ng phát tri n chu n Eclipse ch y trình cột môi trƣ m Android
Development Tools (ADT), IntelliJ IDE NetBeans IDE . Ngoài ra các nhà phát trin
còn có th dùng các trình so n th t o ng d ng. ảo cho Java và XML để
Các ng d ng c i d ng t p tin nh d ng ủa Android đƣợc đóng gói dƣớ đị .apk
đƣợc lƣu trong đƣờng dn trong h/data/app điều hành các gói .apk chAndroid a
t [4]p tin .dex đƣợc biên dch bng máy o Dalvik .
1.4.2.2 Android NDK
Android NDK (Native Development K m t b công c phát tri n ng it) để
dụng cho Android nhƣng có điề Các thƣ viện đƣợu s dng ngôn ng lp trình C. c viết
bng ngôn ng C m t s ngôn ng khác th c biên d ch sang ARM, MIPS đƣợ
hoặc x86 native code đƣợc cài đặt s dng trong Android Native Development
Kit.Các l p c th c g i t Java ch y trong máy o Dalvik s d ng a Native đƣợ
li gọi thƣ viện System.loadLibrary.
Các ng d c xây d ng xong th c biên d t b ng các công ụng đƣợ đƣợ ịch cài đặ
c truyn thống. Tuy nhiên, theo nhƣ bn công b ca Android, NDK không ch dùng
để phát trin các ng d xây dụng đơn lẻ dùng để ng các ng dng quy ln
vì ngôn ng C đƣợc ƣa thích hơn.
1.4.2.3 Eclipse
công c ngu n m c nhóm các công c h trong l p trình t các thu tr
ngôn ng Java, C/C++, Ngôn ng hình, ngôn ng c t , c dùng ph bi đặ đƣợ ến
hiện nay và đã trở thành nhng sn phm chun mc trong thế gii mã ngun m.
+ Cài đặt: Cài đặ ất đơn giả ụng Eclipse đƣợt Eclipse r n và thun tin. ng d c xây
dựng để khi cài đặt, ngƣi dùng ch cn download v gii nén là có th chạy đƣợc.
Nếu dùng Eclipse cho m ng d ng chuyên bi n ph c n y t ệt nào đó thì sả ẩm đó chỉ
dựng dƣới dng mt trình c m (plugin) r i tích h p vào Eclipse là xong.
Đị a ch Internet để ly Eclipse:
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 31
http://www.eclipse.org
Google đã tích hợ plugin đểp sn ADT- thun tin cho các nhà phát trin ng
dụng và đƣợc để tại địa ch:
http://developer.android.com/tools/sdk/eclipse-
adt.html
1.4.2.4 Netbean
NetBean cũng mộ t công c xut thân t ngu n m ch h tr để lp trình
Java. T khi hãng Sun b Oracle thâu tóm nay tr thành s n ph a Oracle m đóng c
nhƣng miễ , PHP, HTML,…n phí và m rng h tr cho c ngôn ng lp trình C/C++
Đị a ch :
https://netbeans.org/
+ Cài đặt:
- t xong. Download Netbean và cài đặ
- Vào Menu Tools p tho i Plugins xu t hi n Settings Plugins H n Ch
Chn nút Add Nhập địa ch vào ô bên dƣới:
http://nbandroid.org/release72/updates/updates.xml
Đợi cho Netbean cp nht xong. Chn Avainable Plugins
n Android rch ồi cài đặt.
1.4.3. M t s Game engine
Vi t phát tri n r t nhanh c a thốc độ trƣờng trò chơi trên thiết b di đng. Nhiu
hãng đã phát triể Sau đây mộn các game engine ca riêng h. t s game engine ph
biếnAndEngine, Unity3D, CryEngine, Unreal Engine,…
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 32
1.5 QUY TRÌNH XÂY D NG PH N M M TRÊN ANDROID
Xây d ng ph n m m nói chung ph n m m cho thi t b ng nói riêng ph ế di độ i
tuân th theo quy trình s n xu n ph ất nhƣ các sả ẩm thông thƣờng, nhƣng cần xét đến
khía c c thù c a t ng lo i thi t b . i v i thi t b ng, ngoài y u t l a chạnh đặ ế Đố ế di độ ế n
sn ph s n xu t, khi thi n tính toán nhi u y u tẩm để ết kế chƣơng trình cầ ế :
+ Tài nguyên ph n c ng: Tiêu hao tài nguyên ph n c ng cho ng d ng ch y.
+ Cách th n m ức ngƣời dùng tƣơng tác với ph m.
+ Các ch a thi t b ng sức năng củ ế di độ ẵn nhƣ: y gia tốc kế, con quay hi
chuyn, c ng t , c m m ứng ánh sáng,…
Quy trình xây dng ng trên Android ng d
Quy trình s n xu t ph n m m trên Android không khác gì v i các s n ph m ph n
mm khác.
Xác định yêu cu ca sn phm đƣợc thc hin bi nhóm chuyên gia chuyên
môn v nghiên c u th c này, các ch , hình hài c a s n ph trƣờng. Trong bƣớ c năng m
phải đƣợc xác định rõ.
Lp k ho ch th n d ế c hi án,ngƣi qun tr d án phi tính toán toàn b ngu n
lc bao g án. Km th i tham gia vào dời gian, tài chính, con ngƣờ ết qu c c này ủa bƣớ
là m n mô t t ng th d n khai trong bao lâu, ct b án tri ần bao nhiêu ngƣời trong
từng giai đoạ ừng giai đoạ và điền, tiêu hết bao nhiêu tin trong t n, u quan trong na là
nếu x y ra r ng nào và t n th t bao nhiêu ti n? i ro thì s rơi vào tình huố
Trong bƣớc t chc thc hin d án,ngƣi qun tr d án phân b công vic theo
kế ho ch cho t ng nhóm, v i m t l ch trình c th, giám sát ch t ch theo ngày (th m
chí theo gi k p th i. Các pha trong s n xu t ph n m m tuân ờ) để phƣơng án xử
th theo các quy trình chung c a ngành. M t s hãng ph n m m l n h áp d ng các
chun CMMI trong s n xu o d án th t s đảm b c thi tốt hơn.
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 33
CHƢƠNG 2: ẬP TRÌNH GAME CHO ĐIỆ L N THOI
THÔNG MINH
2.1 Gii thi u
Lp t ng d ng trên thi t b ng m t trong nh ng phát trirình ế di độ ững n
chính trong ngành công ngh thông tin hi p trình các trò ch ện nay. Trong đó, l ơi
chuyên ngành h i nhi u l i nhu n lẹp nhƣng đã đem lạ ận. Trong chƣơng này khóa luậ a
chọn hƣớ điều hành Android làm đ cũng ng phát trin ng dng game trên h i din
nhƣ các khía cạ ủa lĩnh vựnh k thut c c này.
2.2 KIN TRÚC CỦA TRÒ CHƠI TRÊN ANDROID
Các trò c xây d ng trên h u hành Android k ch bchơi đƣợ điề ản riêng nhƣng
đều có quy trình gi c minh h [5]. ống nhau đƣợ ọa tronghình dƣới đây
2.2.1. Kiến trúc chung
Hình 2-1 n c a m Android : Kiến trúc cơ bả ột trò chơi trên
2.2.1.1 Input
ph n thông tin Các d đƣa vào để tƣơng tác với trò chơi. liệu này đƣợc đƣa
vào thông qua các b ph ng, gia t c k , con quay h i chuy n, ận nhƣ: Màn hình cảm ế
cm ng t trƣờng, c ng ánh sáng, camera, micro, và c bàn phím vm t lý,
2.2.1.2 User Input
Là ph n k nh u vào. M t s i dùng thêm ế tiếp để ận thông tin đ trò chơi cần ngƣờ
mt s thao tác nhƣ màu, nhậ ện hình, âm thanh,… đển di trƣớc khi th c hi n trò
chơi.
2.2.1.3 Game logic
Game logic mô đun chị ệc thay đổu trách nhim v vi i trng thái ca các nhân
vt cũng nhƣ các đối trong trò chơi. ật, địa hình, địng d các nhân v a vt, súng,
đạn, tia lade,…
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 34
Hình 2-2 Hình minh h a ngón tay ch u khi n trong User Input : ạm vào vùng điề
Trong hình trên hình tròn xanh lơ bi ễn ngón tày ngƣu di i dùng chm vào vùng
điều khi (ển. đun User Input thông báo cho Game Engine Game Logic) đối
chiếu vào h t . kho ng cách tính theo liên quan t i trung tâm ọa độ dx,dy điểm nh
ca hình tròn u khi n. Game engine tính toán t m i ph i thi t l p cho điề ốc độ ế
nhân v ng c a nhân v t s di chuy n. N u giá trật ế dx dƣơng nghĩa
nhân v t di chuy n sang ph i và n u có giá tr t di chuy n v phía ế dy dƣơng thì nhân vậ
trƣớc.
2.2.1.4 Audio
đun này s phát ra âm thanh tƣơng ng vi tng trng thái hin ti ca nhân
vt. Trong h u h ng phát ra âm thanh các tr ng ết các trò chơi các nhân vật, đối tƣợ
thái khác nhau c a chúng do các thi t b c gi i h n trong m t vài ế chơi trò chơi đƣợ
kênh nào đó (nghĩa bao nhiêu âm thành đƣc phát cùng mt lúc)nó phi quyết
định âm thanh để chơi. dụ trong trò chơi khi xuấ ật đố t hin mt nhân v i kháng thì
mt âm thanh kinh d ho c bi ng ặc đặ t đƣợc phát ra để gây ra chú ý cho ngƣời chơi đồ
th i cn mt kênh âm thanh riêng cho nhân v n bật nhƣ chuẩ khí hoặc ln trn thì
âm thanh phát ra ph ải đanh, gọn,…
2.2.1.5 Graphics
Mô đun này chị ạng thái trò chơi trên màn hình. Điều trách nhim hin th các tr u
này đơn giản ch v trc tiếp lên miếng toan (canvas) t mt góc nhìn hoc biu
din hình nh t b đệm đồ ha, đây, các đối tƣợng đồ ọa đƣ h c x trƣớc ri cho
vào b i góc nhìn tùy ch nh ho c c a chính đệm sau đó đƣợc đƣa ra màn hình dƣớ
OpenGL. Các khung hình FPS (Frame Per Second) là m t trong các thông s đánh giá
chất lƣợ ảnh đƣợ là 30 FPS có nghĩa có 30 ảnh đƣợng hình c hin th, nếu thông s c
hin th trong t ng giây. Thông s này đánh giá đƣợc chất lƣợng thiết b là rt tt.
2.2.1.6 Output
Phn này là k t qu c a quá trình x lý các d u trong trò hi n c ế li chơi, thể
hình nh, âm thanh ho c rung.
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 35
2.2.2. K thut âm thanh
Âm thanh trong trò chơi tăng ủa ngƣời chơi. Nó cung cấng cm xúc c p mt
kết ni cm xúc mà không th c b ng cách khác. Các nhà s n xu nh nào đạt đƣợ ất điện
đã tiên phong trong lĩnh vực này và đã đầu tƣ rấ ều tài chính đểt nhi to ra các nhc nn
phù h p cho phim. i v c th không quy l Đố ới các trò chơi, âm nhạ ớn nhƣ
trong nhng b c r t c n thi phim nhƣng âm nhạ ết trong trò chơi. Trong các game
engine cung c hép b ấp các tính năng cho p sung âm thanh vào trong các trò chơi.
Âm thanh s d c các nh c s ngh s chuyên nghi ụng trong trò chơi đƣợ p
thiết kế và xây d ng. có hai lo ại âm thanh trong chƣơng trình trò chơi.
+ Âm nh ng s d c n ạc thƣờ ụng nhƣ nhạ ền trong trò chơi.
+ Hi u ng âm thanh cùng x y ra v i các s ki ện bên trong trò chơi.
Âm thanh nói chung trong các trò chơi các chuẩn âm thanh đã sn trên thế
giới nhƣ: mp3, wav, wma,… tuy nhiên 2 chuẩn nén quan trong thƣờng đƣợc dùng
OGGs, MP3s.
Âm nh c
Âm nh c r t quan tr thi t l Không quy t c nh ọng để ế p thái độ ngƣời chơi. t
định cho vic s dng âm nhạc trong chƣơng trình trò chơi. Nhc vui, bun, trm,
bổng đều tác động đế ủa ngƣời chơi. D đó mỗ ản trong trò chơi đƣn tâm lý c o i kch b c
thiết k m t t p các t p âm thanh riêng bi t. Mế ột đặc tính chung trong trò chơi, các bậc
kế tiếp càng ngày càng khó, nhịp độ tăng lên khi thách thức tăng. Các nhân vật đối
kháng cũng hoạt độ ảo hơn gây ều khó khăn cho ngƣời chơi. Đôi ng nhanh tinh x nhi
khi ngƣời chơi không muố trò chơi, ngƣợn nghe nhc t c li h mun nghe bn nhc
khác do chính h n t trong y. Các thi t b ng ph i nh ng ch cho ch ế di độ ế độ
phép nghe nh c trong khi các ng d ng khác v n ho ng. ạt độ
Hiu ng âm thanh
Âm nh c phát trong su ng còn các hi u ng ạc đƣợ ốt chƣơng trình trò chơi hoạt độ
âm thanh ch x ng v i các s ki ng súng n , y ra tƣơng ện trong trò chơi, dụ tiế
tiếng va ch ng v i các s ki n khi b n nhau ho c khi các v t th va ạm, tƣơng
chm nhau.
Các hàm API liên quan đến lp trình vi âm thanh
Khi l p trình v i âm thanh, h ng c n x âm thanh vào th ần đƣa các thƣ việ
chƣơng trình.
importandroid.media.AudioManager;
import android.media.SoundPool;
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 36
Trong các thƣ việ hàng trăm phƣơng thứn này c hng s giúp cho lp trình
viên l p trình r u qu lý âm thanh. t hi trong vic x
2.2.3. K thuật đồ ha
X đồ ọa trong trò chơi của android cũng không n h m ngoài nguyên x
đồ h i vọa thông thƣờng.Tuy nhiên đ i thiết b di động đòi hỏ ối ƣu tài nguyên i vic t
các thu t toán khác so v i máy tính các nhân laptop. n nay Android tích Hi
hợp thƣ viện x đồ ha OpenGL ES (OpenGL for Embeded System) vào h ng, th
và các ng d u s d n này. Phiên b n m i nh t là ụng trò chơi của Android đề ụng thƣ việ
OpenGL ES 3.0 đƣợ đi.c tích h p vào Android ver.18 tr
2.2.3.1 K thut 2D
K thuật này đề lý đồ ọa cơ bản nhƣ phép dịu dùng các thut toán x h ch chuyn,
phép quay, phép có dãn,…[8].
Hình 2-3 Hình minh h a phép d ch chuy n, phép quay :
Các hàm trong OpenGL ES dùng trong Android.
import android.graphics
importandroid.graphics.drawable
importandroid.graphics.drawable.shapes
importandroid.graphics.pdf
Các hàm trong các thƣ viện này đƣợ và đƣợc s dng theo tng yêu cu bài toán c
tra cu trong [7,8].
2.2.3.2 K thut 3D
K thut 3D k thu t tiên ti c x h a, các thu ến trong lĩnh vự đồ ật toán để
xây d ng các ng d i nhi u tài nguyên c a h ng. Do v ụng này đòi hỏ th ậy đối vi các
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 37
thi thuết b d ng d ng k i độ đôi khi sử t 2D gi l h a 3D ập cho 3D (hay đ xyz
chiu z =0). Các nhà thi ph i t h t 3D sang t c a màn hình. ết kế ải quy đổ a đ a đ
Hình 2-4 Minh h a phép chi u ph i c nh 3D trên 2D : ế
Hình 2-5 Minh h a phép chi u song song : ế
Hình 2-6 Minh h a góc nhìn h p :
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 38
Hình 2-7 Minh h a góc nhìn r ng :
Hình 2-8 Minh h a phép chi u hình nh vào thi t b , hình bên trái chuy n g c t : ế ế ọa độ
vào thi t b và hình bên ph i là d ch chuy n thi t b v phía hình nh. ế ế
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 39
2.2.3.3 Chuyn t t 2D sang 3D ọa độ
Khi các đối tƣợng đƣợ ọa độc dch chuyn t h t 2D sang 3D, h thng cn thc
hin m ng b ng cách mt s thao tác trên đối tƣợ r ng chi u th 3 trên h trc tọa độ
3D.
Hình 2-9 Hình minh h a h c t -Các 3 chi u : tr ọa độ Đề
Trên thc t ế,cùng m u mang ra hi n th , t loi d li nhiu cách bi u di n
chúng trên màn hình thiết b ng. di độ
Không gian đối tƣợng gi, bi u di n quan h ữa các đối tƣợ ng v i nhau.
Camera, ho c m t, kho ng không, v trí t điểm nhìn ngƣời dùng.
Phép chi u, ho c phép c c kho ng tr ng màn hình 2D tính tế t,ho nh
cuối cùng đƣợc hin th .
Không gian tuy n tính, c dùng nhi u trong hi u ng cao cế đƣợ p nhƣ
đƣờng bình đồ ản đồ, các hình nhp nhô trong b ,...
Ví d: chuy ng t 2D sang 3Dtham kh o , p49]. ển đối tƣợ [8
float vertices[] =
{
- - 1.0f, 1.0f,
1.0f, - 1.0f,
- 1.0f, 1.0f,
1.0f, 1.0f
};
byte maxColor=(byte)255;
byte colors[] =
{
maxColor, maxColor, 0, maxColor,
0, maxColor, maxColor, maxColor,
0, 0, 0, maxColor,
maxColor, 0, maxColor, maxColor
};
Đồ án t t nghi i Phòng ệp Trƣờng ĐHDL Hả
Sinh viên: Lê Vũ Minh Quang – CT1401 40
byte indices[] =
{
0, 3, 1,
0, 2, 3
};
M r ng u th ng, t c thêm truc c z vào m chi 3 cho đối tƣợ tr ng t đối
tƣợng.
float vertices[] =
{
-1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
1.0f, -1.0f, 1.0f,
-1.0f, -1.0f, 1.0f,
-1.0f, 1.0f, -1.0f,
1.0f, 1.0f, -1.0f,
1.0f, -1.0f, -1.0f,
-1.0f, -1.0f, -1.0f
};
byte maxColor=(byte)255;
byte colors[] =
{
maxColor, maxColor, 0, maxColor,
0, maxColor, maxColor, maxColor,
0, 0, 0, maxColor,
maxColor, 0, maxColor, maxColor,
maxColor, 0, 0, maxColor,
0, maxColor, 0, maxColor,
0, 0, maxColor, maxColor,
0, 0, 0, maxColor
};
| 1/56

Preview text:

MC LC
CHƢƠNG 1: CƠ SỞ LÝ THUYẾT..................................................................... 8
1.1 KIẾN TRÚC CƠ BẢN CỦA THIẾT BỊ DI ĐỘNG THÔNG MINH ......... 8
1.1.1. Giới thiệu .............................................................................................. 8
1.1.2. Vi xử lý ................................................................................................. 9
1.1.3. Bộ nhớ RAM ...................................................................................... 14
1.1.4. Bộ nhớ ROM ...................................................................................... 15
1.1.5. Màn hình ............................................................................................. 15
1.1.6. Bộ xử lý đồ họa ................................................................................... 16
1.2 CÁC THIẾT BỊ ĐO LƢỜNG ..................................................................... 17
1.2.1. Gia tốc kế ............................................................................................ 17
1.2.2. Con quay hồi chuyển .......................................................................... 18
1.2.3. Định vị vệ tinh .................................................................................... 19
1.2.4. Cảm biến điện dung ............................................................................ 20
1.3 KIẾN TRÚC CỦA NỀN TẢNG ANDROID ............................................. 21
1.3.1. Nhân của hệ điều hành ........................................................................ 21
1.3.2. Thƣ viện .............................................................................................. 22
1.3.3. Khung ứng dụng trên Android ........................................................... 24
1.3.4. Tầng ứng dụng .................................................................................... 25
1.3.5. Các thành phần trong một ứng dụng Android .................................... 25
1.4 CÔNG CỤ VÀ NGÔN NGỮ LẬP TRÌNH ............................................... 29
1.4.1. Ngôn ngữ lập trình .............................................................................. 29
1.4.2. Công cụ cho lập trình .......................................................................... 29
1.4.3. Một số Game engine ........................................................................... 31
1.5 QUY TRÌNH XÂY DỰNG PHẦN MỀM TRÊN ANDROID................... 32
CHƢƠNG 2: LẬP TRÌNH GAME CHO ĐIỆN THOẠI THÔNG MINH ........ 33
2.1 Giới thiệu .................................................................................................... 33
2.2 KIẾN TRÚC CỦA TRÒ CHƠI TRÊN ANDROID ................................... 33
2.2.1. Kiến trúc chung ................................................................................... 33
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
2.2.2. Kỹ thuật âm thanh ............................................................................... 35
2.2.3. Kỹ thuật đồ họa ................................................................................... 36
2.2.4. Hệ thống mô phỏng ............................................................................ 41
2.2.5. Kỹ thuật xử lý va chạm trong game .................................................... 42
2.3 CÔNG CỤ XỬ LÝ ÂM THANH ............................................................... 43
2.4 CÔNG CỤ XỬ LÝ HÌNH ẢNH ................................................................ 44
2.5 CÔNG CỤ PHÁT TRIỂN PHẦN MỀM .................................................... 46
CHƢƠNG 3: TRIỂN KHAI ỨNG DỤNG ........................................................ 50
3.1 CHUẨN BỊ TÀI NGUYÊN CHO ỨNG DỤNG ........................................ 50
3.1.1. Ý tƣởng của trò chơi ........................................................................... 50
3.1.2. Đồ họa ................................................................................................. 50
3.1.3. Âm thanh............................................................................................. 51
3.2 THỰC NGHIỆM ........................................................................................ 51
Sinh viên: Lê Vũ Minh Quang – CT1401 2
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng DANH SÁCH CÁC HÌNH
Hình 1-1:Kiến trúc cơ bản của FPGA .................................................................... 8
Hình 1-2:Kiến trúc Snapdragon S4 sử dụng bộ vi xử lý Krai t............................. 10
Hình 1-3: Sơ đồ khối SoC OMAP36xx của Texas Instruments ........................... 10
Hình 1-4: Biểu đồ OMAP4470 của Texas Instruments ........................................ 11
Hình 1-5: Sơ đồ khối Exynos 4210 của Samsung ................................................ 11
Hình 1-6: Hình minh họa vỉ mạch Samsung Galaxy S 4G ................................... 12
Hình 1-7: Sơ đồ khối của Tegra 2 ......................................................................... 13
Hình 1-8: Hình ảnh của Tegra 3. Năm lõi vi xử lý (lõi thứ 5 nằm ở trên cùng) .. 13
Hình 1-9: Hình minh họa vỉ mạch Motorola Droid Razr ..................................... 14
Hình 1-10: Sơ đồ đơn giản của một tấm nền LCD TFT ....................................... 15
Hình 1-11: Sơ đồ tấm hiển thị AMOLED ............................................................ 16
Hình 1-12: Kiến trúc bên trong GPU Mali của ARM .......................................... 16
Hình 1-13: Hình minh họa gia tốc kế dùng trong máy bay .................................. 17
Hình 1-14: Cấu tạo cơ bản của gia tốc kế ............................................................. 17
Hình 1-15: Minh họa hoạt động của gia tốc kế điện tử ........................................ 18
Hình 1-16: Hình ảnh minh họa con quay hồi chuyển ........................................... 18
Hình 1-17: Hình ảnh minh họa MEMS ................................................................ 19
Hình 1-18: Một số tính năng của GPS: ................................................................. 19
Hình 1-19: Hình minh họa cơ chế hoạt động của màn hình cảm ứng điện dung . 20
Hình 1-20: Kiến trúc cơ bản của hệ điều hành Android ....................................... 21
Hình 1-21: Sự so sánh Java VM và Dalvik VMs ................................................. 23
Hình 1-22: Vòng đời của một hoạt động .............................................................. 27
Hình 1-23: Lƣu đồ chuyển trạng thái của dịch vụ ................................................ 28
Hình 1-24: Kiến trúc của bộ cung cấp nội dung trong Android ........................... 29
Hình 2-1: Kiến trúc cơ bản của một trò chơi trên Android .................................. 33
Hình 2-2: Hình minh họa ngón tay chạm vào vùng điều khiển trong User Input 34
Hình 2-3: Hình minh họa phép dịch chuyển, phép quay ...................................... 36
Hình 2-4: Minh họa phép chiếu phối cảnh 3D trên 2D ........................................ 37
Sinh viên: Lê Vũ Minh Quang – CT1401 3
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Hình 2-5: Minh họa phép chiếu song song ........................................................... 37
Hình 2-6: Minh họa góc nhìn hẹp ......................................................................... 37
Hình 2-7: Minh họa góc nhìn rộng ....................................................................... 38
Hình 2-8: Minh họa phép chiếu hình ảnh vào thiết bị, hình bên trái chuyển gốc
tọa độ vào thiết bị và hình bên phải là dịch chuyển thiết bị về phía hình ảnh. ............. 38
Hình 2-9: Hình minh họa hệ trục tọa độ Đề-Các 3 chiều ..................................... 39
Hình 2-10: Giao diện Android Virtual Device Manager ...................................... 41
Hình 2-11: Tạo thiết bị ảo trong Android Virtual Device Manager ..................... 42
Hình 2-12: Giao diện chƣơng trình Audacity ....................................................... 43
Hình 2-13: Giao diện chƣơng trình MuseScore .................................................... 44
Hình 2-14: Giao diện chƣơng trình InkSpcace ..................................................... 44
Hình 2-15: Giao diện chƣơng trình GIMP ............................................................ 45
Hình 2-16: Giao diện chƣơng trình tạo nền cho các trò chơi. .............................. 45
Hình 2-17: Giao diện chƣơng trình Fontstruct online .......................................... 46
Hình 2-18: Giao diện Eclipse ............................................................................... 46
Hình 2-19: Chọn Menu để tạo dự án .................................................................... 47
Hình 2-20: Nhập thông tin cho dự án ................................................................... 48
Hình 2-21: Thiết lập thêm các thông số cho ứng dụng ......................................... 48
Hình 2-22: Chọn chế độ hiển thị ........................................................................... 49
Hình 2-23: Hoàn thành tạo dự án.......................................................................... 49
Hình 3-1: Hình ảnh máy bay trên bầu trời ............................................................ 51
Hình 3-2: Màn hình làm việc cảu Unity3D .......................................................... 51
Hình 3-3: Màn hình làm việc của MonoDevelop ................................................. 52
Hình 3-4: Hình ảnh khi máy bay địch tấn công .................................................... 53
Hình 3-5: Máy bay bắn đạn .................................................................................. 53
Hình 3-6: Hình ảnh vừa rẽ sang trái vừa bắn ........................................................ 54
Sinh viên: Lê Vũ Minh Quang – CT1401 4
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
DANH SÁCH CÁC T VIT TT Stt Từ viết tắt Mô tả 1 FPGA Field programmable Gate Array 2 SoC System on a Chip 3 GPU Graphics Processing Unit 4 5
Sinh viên: Lê Vũ Minh Quang – CT1401 5
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
LI CẢM ƠN
Trƣớc hết, em xin chân thành cảm ơn thầy giáo - Ths. Nguyễn Trịnh Đông,
giảng viên Khoa Công nghệ thông tin - Trƣờng Đại học Dân Lập Hải Phòng, ngƣời đã
dành cho em rất nhiều thời gian quý báu, trực tiếp hƣớng dẫn tận tình giúp đỡ, chỉ bảo
em trong suốt quá trình làm đồ án tốt nghiệp.
Em xin chân thành cảm ơn tất cả các thầy cô giáo trong khoa Công nghệ thông
tin - Trƣờng Đại học Dân Lập Hải Phòng, chân thành cảm ơn các thầy giáo, cô giáo
tham gia giảng dạy và truyền đạt những kiến thức quý báu trong suốt thời gian em học
tập tại trƣờng, đã đọc và phản biện đồ án của em giúp em hiểu rõ hơn các vấn đề mình
nghiên cứu, để em có thể hoàn thành đồ án này.
Em xin chân thành cảm ơn GS.TS.NGƢT Trần Hữu Nghị, Hiệu trƣởng Trƣờng
Đại học Dân Lập Hải Phòng, ban giám hiệu nhà trƣờng, khoa Công nghệ thông tin, các
phòng ban nhà trƣờng đã tạo điều kiện tốt nhất trong suốt thời gian em học tập và làm tốt nghiệp.
Tuy có nhiều cố gắng trong quá trình học tập và làm đồ án tốt nghiệp nhƣng
không thể tránh khỏi những thiếu sót nhất định, em rất mong đƣợc sự góp ý quý báu
của tất cả các thầy cô giáo cũng nhƣ tất cả các bạn để đồ án của em ngày càng hoàn thiện hơn.
Em xin chân thành cảm ơn!
Hi Phòng, ngày 5 tháng 07 năm 2014 Sinh viên Lê Vũ Minh Quang
Sinh viên: Lê Vũ Minh Quang – CT1401 6
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
GII THIU
Lập trình trên thiết bị di động đang là xu hƣớng phát triển ngày nay của ngành
truyền thông và công nghệ thông tin. Dƣới góc độ kinh tế đây là một ngành đem lại
nhiều lợi nhuận cho nền kinh tế. Thứ nhất, nó mở ra một hƣớng mới cần nhiều lao
động kỹ thuật cao, giải quyết nhiều công việc cho ngƣời lao động. Thứ 2, ngành này
thúc đây nhiều ngành công nghiệp khác phát triển theo nhƣ viễn thông, thƣơng mại
điện tử, giáo dục và một số ngành dịch vụ khác. Thứ 3, ƣu điểm của ngành này là
ngành công nghiệp không khói, nguyên liệu chính là tri thức và đặc biệt đem lại lợi ích to lớn cho cộng đồng.
Từ các ƣu điểm trên em đã thực hiện đ
ề tài:“Lp trình game trên thiết b di động.
Khóa luận này cho em một hƣớng đi mới trong việc định hƣớng nghề nghiệp, cũng
nhƣ phát triển thêm về kỹ năng lập trình và phát triển hệ thống.
Khóa luận này đƣợc trình bày theo cấu trúc sau:
Gii thiu
Chƣơng 1:Cơ sở lý thuyết, chương này trình bày các kiến thức cơ bản v th ế i t b
di động như kiến trúc phn cng, vi x lý, b nh, các thiết b đo
lường và nn tng ca h điều hành Android.
Chƣơng 2: Lập trình trò chơi trên Android, trong phần này các thành phn liên
quan đến mt ng dụng trò chơi được đề cp.
Chƣơng 3:Gii thiu v ng dng trò chơi.
Kết lun
Tài liu tham kho
Sinh viên: Lê Vũ Minh Quang – CT1401 7
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
CHƢƠNG 1: CƠ SỞ LÝ THUYT
Gii thiu
Lập trình là một lĩnh vực quan trọng trong ngành công nghệ thông tin, lập trình
cho thiết bị di động đòi hỏi một số yêu cầu riêng khác với lập trình cho máy tính. Lập
trình cho máy tính nói chung đƣợc phát triển ổn định trong một thời gian dài và có ít
thay đổi về kiến trúc hệ thống cũng nhƣ nền tảng công nghệ. Trong khi đó, thiết bị di
động dù rất phổ biến hiện nay nhƣng có thời gian phát triển tƣơng đối ngắn, công nghệ
đang thay đổi, không có chuẩn thống nhất, phần cứng phụ thuộc nhiều vào các hãng
khác nhau, hệ điều hành rất đa dạng do vậy ngôn ngữ lập trình cũng rất đa dạng. Tuy
nhiên các sản phẩm về thiết bị di động đều có một số chức năng chính nhƣ màn hình
đa chạm, CPU đa lõi, bộ nhớ R M
A đủ lớn, thẻ nhớ, ổ cứng SSD. Đặc biệt có một số
thiết bị mà ở các hệ thống máy tính chƣa có nhƣ: Gia tốc kế, Con quay hồi chuyển,
Định vị vệ tinh, máy đo từ tr ờ
ƣ ng, và một số các sensor khác. Từ phân tích trên, trong
chƣơng này khóa luận tập trung vào trình bày nền tảng phần cứng của thiết bị di động
và một số ngôn ngữ lập trình điển hình cho thiết bị di động.
1.1 KIẾN TRÚC CƠ BẢN CA THIT B DI ĐỘNG THÔNG MINH
1.1.1. Gii thiu
Hiện nay có rất nhiều các hãng sản xuất thiết bị phần cứng cho điện thoại thông
minh nhƣ Apple, Samsung, LG, Nokia, …tuy nhiên nền tảng công nghệ cũng giống
nhau đó là sử dụng SoC (System on a chip).Công nghệ này tích hợp nhiều bộ phận
khác nhau vào trong một vi mạch tích hợp nhƣ: Vi xử lý (CPU), chip xử lý đồ họa
(GPU), RAM, ROM, trình điều khiển USB và các vi mạch WIFI cùng nhiều thứ khác
nữa.Các hệ thống SoC điều dựa trên nền tảng công nghệ FPGA (field-programmable gate array)
Hình 1-1:Kiến trúc cơ bản c a FPGA
Hầu hết kiến trúc chung của FPGA bao gồm một mảng các khối logic, dãy cổng
vào ra, và các kênh định tuyến,các kênh định tuyến có cùng độ rộng (về mặt vật lý),
còn dãy cổng vào ra phù hợp với chiều cao hoặc độ rộng của mảng [WikiFPGA].
Sinh viên: Lê Vũ Minh Quang – CT1401 8
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Sử dụng FPGA là một giải pháp khác nhằm khắc phục một số hạn chế của ASIC
(Application-Specific Integrated Ci c
r uit), ASIC là một vi mạch IC đƣợc thiết kế dành
cho một ứng dụng cụ thể, về vấn đề giá thành và độ phức tạp khi triển khai.FPGA là
một loại vi mạch bán dẫn chuyên dụng ASIC, nhƣng nếu so sánh FPGA với ASIC thì
FPGA không đạt đƣợc mức độ tối ƣu và có hạn chế trong việc thực hiện những tác vụ
đặc biệt phức tạp, tuy nhiên FPGA ƣu việt hơn trong khi triển khai nhƣ có thể tái lập
trình lại, thiết kế đơn giản đẫn đến chi phí giảm, rút ngắn thời gian đƣa sản phẩm vào thực tế.
Ngoài ra còn có một số vi mạch bán dẫn lập trình đƣợcnhƣ PLA, PAL, CPLD
cũng dùng cấu trúc mảng phần tử logic nhƣngFPGA ƣu việt hơn
 Lập trình của FPGA thực hiện đơn giản hơn
 Cho phép nạp lại chƣơng trình
Các nhà thiết kế sử dụng các ngôn ngữ mô tả phần cứng nhƣ VHDL, Verilog,
AHDL để thiết kế và lập trình cho FPGA. Các gói phần mềm và thiết bị phụ trợ cho
quá trình thiết kế này do các hãng sản xuất FPGA lớn nhƣ Xilinx, Altera cung cấp.
Ngoài ra cũng có một số hãng khác cung cấp các gói phần mềm kiểu này nhƣ Synopsys, Synplify...
1.1.2. Vi x l ý
Vi xử lý cho điện thoại thông minh đƣợc nhiều hãng sản xuất và theo nhiều
chuẩn khác nhau. Trong phần này khóa luận giới thiệu một số CPU dùng cho điện thoại thông minh.
1.1.2.1 ARM
Chip ARM (Advance RISC Machine) của hãng ARM Holdings đƣợc nâng cấp
qua nhiều phiên bản. Hiện nay có nhiều phiên bản của ARM nhƣ ARM 11, Cortex-M,
Cortex-R,Cortex-A,… Thực chất ARM Holdings không sản xuất chip mà họ thiết kế
ra các loại chip rồi cấp phép cho các công ty khác nhƣ Qualcomm, Texas Instruments,
Apple,
Samsung,… ARM cung cấp các thiết kế IP-Core cho loại 32 bit và 64 bit.
1.1.2.2 SoC Snapdragon
SoC Snapdragoncủa hãng Qualcommđã lựa chọn một giải pháp khác mặc dù họ
cũng sử dụng bản quyền của ARM để sản xuất nhƣng họ không sử dụng hoàn toàn
thiết kế của ARM. Hãng này dựa vào thiết kế ARM rồi cải tiến thiết kế để phát triển
thành các vi xử lý ScorpionKrait riêng của họ. Do đó, các vi xử lý của Qualcomm
có tốc độ xử lý liên quan đến đa phƣơng tiện tốt hơn và tiêu thụ điện hiệu quả hơn so
với các bộ vi xử lýban đầu.Các vi xử lý ScorpionKrait đƣợc đƣa vào các SoC
Snapdragon c
a Qualcomm. Mã Snapdragon có nhiều loại đƣợc đánh số Sx (x 1, 2,..,
n). Số x càng lớn thì tốc độ xử lý càng mạnh. Hiện tại có một số sản phẩm dự kiến sẽ
Sinh viên: Lê Vũ Minh Quang – CT1401 9
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
sử dụng Snapdragon S4 của Qualcomm nhƣ HTC One S, HTC EVO 4G LTE, HTC One XL,…
Hình 1-2:Kiến trúc Snapdragon S4 s d ử ng b ụ vi ộ x l ử ý Krait
1.1.2.3 OMAP
SoC OMAP (Open Media Application Platform) của Texas Instruments đƣợc sử
dụng khá rộng rãi. Trong đó các sản phẩm điện thoại của Motorola đều sử dụng
OMAP. OMAP có nhiều dòng sản phẩm nhƣ OMAP1, 2, 3, 4,... Nhƣng dòng sản
phẩm OMAP 3 và 4 đƣợc dùng phổ biến hiện nay.
Hình 1-3: Sơ đồ khi SoC OMAP36xx c a Texas Instruments
Do mục đích tạo nhiều sản phẩm với các tùy chọn nên SoC OMAP không tích
hợp bộ phận Wifi, Bluetoothvà một số thành phần khác, mà để cho từng dòng sản
phẩm có sự linh động nhƣng lại làm tăng kích thƣớc của vỉ mạch chính.
Sinh viên: Lê Vũ Minh Quang – CT1401 10
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Hình 1-4: Biểu đồ OMAP4470 ca Texas Instruments
Tuy nhiên, các SoC OMAP đƣợc tích hợp thêm công nghệ tiết kiệm điện
SmartReflexvà tăng cáchai lõi ARM Cortex-Mxđể tiết kiệm điện và tăng thời gian pin.
1.1.2.4 d. Exynos
SoC Exynoscủa hãng Samsungchủ yếu phục vụ trong các sản phẩm của Samsung,
ngoài ra hãng Meizu, nhà sản xuất điện thoại Trung Quốc sử dụng cho điên thoại của
họ. Mặc dù Samsung sản xuất SoC nhƣng họ vẫn nhập Snapdragon của Qualcommđể
sản xuất điện thoại vì Exynoschƣa đáp ứng đƣợc một số yêu cầu của sản phẩm mới.
Hình 1-5:Sơ đồ khi Exynos 4210 c a Samsung
Sinh viên: Lê Vũ Minh Quang – CT1401 11
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Dòng sản phẩm Exynos 4210 lõi kép đƣợc cải thiện mạnh về tốc độ so với phiên
bản trƣớc, và còn đƣợc tích hợp các chức năng nhƣ GPS, HDMI và USB Host.Dƣới
đây là vỉ mạch sử dụng họ Exynos Hình 1-6: H ình minh h a v ọ ỉ mc Sam h sung Galaxy S 4G
Hiện tại Exynos chƣa thực sự chiếm ƣu thế trên thị trƣờng nhƣng tƣơng lai của
Exynos rất hứa hẹn. Samsung đang thử nghiệm các thế hệ Exynos mới đƣợc tích hợp
các bộ vi xử lý ARM Cortex-A15 lõi kép 2 GHz cùng với vi xử lý đồ họa Mali cải tiến,
hỗ trợ 3D, màn hình độ phân giải 2560 x 1600 (WQXGA) cũng nhƣ chất lƣợng
camera cũng đƣợc cải thiện.
1.1.2.5 e. Tegra
Các loại SoC Tegra của Nvidiađang sử dụng trong các thiết bị di động là dòng
Tegra 2 hoặc Tegra 3 với tên mã là Kal-El. Các dòng sản phẩm này đều tích hợp vi xử
lý đa lõi ARM Cortex-A9 tốc độ từ 1 GHz đến 1.4 GHz; sử dụng GPU tiết kiệm điện
GeForce làm chip xử lý đồ họa.
Sinh viên: Lê Vũ Minh Quang – CT1401 12
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Hình 1-7: Sơ đồ khi c a Tegra 2
Tegra 3 đƣợc cải tiến và là sản phẩm SoC bốn lõi đầu tiên trên thế giới dành cho
thiết bị di động.Tốc độ xử lý của các lõi A9 đã đƣợc tăng từ 1.2 GHz lên 1.3 GHz ở
cấu hình 4 lõi và GPU cũng đƣợc tăng đáng kể. Tegra 3 có thể chạy trên màn hình độ
phân giải lên tới 2048 x 1530 pixel nhƣng chỉ có thể quản lý hai màn hình đồng thời
trong khi các chip mới của OMAPExynos có thể quản lý tới 3 hoặc 4 màn hình cùng lúc. Hình 1-8: H ình nh c
ủa Tegra 3. Năm lõi vi xử lý (lõi th 5 nm trên cùng)
Nvidiadùng lõi Cortex-A9 thứ nămvới ttốc độ 500 MHz để xử lý những tác vụ
đơn giản nhằm tiết kiệm năng lƣợng. Trong tƣơng lai sản phẩm có tên là Wayne sẽ
Sinh viên: Lê Vũ Minh Quang – CT1401 13
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
tích hợp các bộ vi xử lý ARM Cortex-A15 trong cấu hình bốn lõi hoặc tám lõi. GPU
GeForce cũng sẽ đƣợc tăng lên.
1.1.2.6 f. SoC ca Apple
Apple là một hãng nổi tiếng với các sản phẩm tinh tế và chất lƣợng cao. Họ cũng
sản xuất SoC nhƣng không chuyển giao cho hãng khác. Apple chỉ dùng cho các sản
phẩm của họ. Hiện nay Apple lấy nguồn SoC trực tiếp từ Samsung trang bị cho máy
tính bảng và điện thoại Iphone của họ.
Chip A4 là SoC tích hợp vi xử lý ARM Cortex-A8 lõi đơn tốc độ từ 800 MHz
đến 1Ghz và GPU PowerVR SGX535. Nó đƣợc sản xuất trên quy trình 45nm.
Apple cải thiện Chip A5 với việc tích hợp vi xử lý ARM Cortex-A9 lõi kép và
GPU PowerVR SGX543MP2 lõi kép cùng với bộ nhớ RAM 512 MB mạnh hơn A4
dùng RAM 256 MB còn các thành phần khác vẫn tƣơng tự A4 nhƣ tốc độ xung nhịp,
quy trình 45nm, bộ vi xử lý tín hiệu hình ảnh cũng nhƣ công nghệ "earSmart" để khử
nhiễu âm thanh.Trong thế hệ kế tiếp SoC A6 sẽ sử dụng quy trình 28nm và tích hợp
nhiều lõi với tốc độ vi xử lý cao hơn cùng khả năng tích hợp Cortex-A15.
1.1.3. B nh RA M
Bộ nhớ RAM trong thiết bị di động cũng có vai trò tƣơng tự nhƣ trong máy tính
cá nhân. Công nghệ sản xuất và nguyên lý hoạt động cũng giống nhau do đó trên thiết
bị di động có 2 thông số cần quan tâm là: Dung lƣợng RAM và tần số xung nhịp.
RAM đƣợc tích hợp trong SoC nhằm giảm thiểu kích thƣớc thiết bị, giảm điện năng
tiêu thụ, tốc độ truy cập nhanh hơn. Hình 1-9: H ình minh h a v
mch Motorola Droid Razr
Sinh viên: Lê Vũ Minh Quang – CT1401 14
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
1.1.4. B nh ROM
Bộ nhớ ROM trong thiết bị di động có vai trò to lớn hơn so với ROM trong máy
tính cá nhân. ROM đƣợc tích hợp trong SoC và đƣợc phân chia thành nhiều vùng.
Vùng chứa thông tin hệ thống, vùng chứa hệ điều hành và chứa các tệp tin hệ thống khác.
1.1.5. Màn hình
Màn hình điện thoại thông minh dựa trên hai công nghệ chính là LCD và LED
1.1.5.1 Màn hình LCD
LCD (Liquid Crytal Display) thƣờng có các lớp sau: lớp bảo vệ bên ngoài, lớp
phân cực, lớp tinh thể lỏng và đèn nền.
Hình 1-10: Sơ đồ đơn giản c a mt t m
nn LCD TFT Ƣu điểm:  Giá thành rẻ
 Màn hình IPS LCD có khả năng tái tạo màu sắc chính xác.
 Ít bị hiện tƣợng biến đổi mà u
 Có thể đạt độ sáng cao giúp dễ nhìn khi xem ngoài trời Nhƣợc điểm:
 Do cần có đèn nền nên màn LCD khó đạt đƣợc tỉ lệ tƣơng phản cao và màu đen tuyệt đối
 Màn hình TN LCD có góc nhìn kém
 Trong một số trƣờng hợp, màn hình LCD tiêu tốn nhiều điện năng và kích cỡ dày
1.1.5.2 AMOLED
AMOLED (Active-Matrix Organic Light-Emitting Diode) là màn hình dùng các đèn đi-ốt hữu
cơkhông cần tới lớp phân cực, tinh thể hay đèn nền nhƣ màn hình LCD. Nhờ cơ chế này,
Sinh viên: Lê Vũ Minh Quang – CT1401 15
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
AMOLED có một số ƣu điểm so với công nghệ LCD. Nguyên lý hoạt động khá đơn giản:
Dòng điện đƣợc lớp bóng bán dẫn (transistor) điều khiển đi qua lớp đi-ốt hữu cơ ở trên thì các
đi-ốt ở lớp này sẽ phát sáng. Thay đổi dòng điện trên các bóng bán dẫn thì cƣờng độ ánh sáng
thay đổi theo từ đó có thể tạo hình ảnh nhƣ mong muốn.
Hình 1-11: Sơ đồ tm hin th AMOLED Ƣu điểm:
 Kích thƣớc mỏng và linh hoạt
 Màu sắc rực rỡ và độ tƣơng phản cao  Góc nhìn rộng
 Tiêu thụ điện ít hơn Nhƣợc điểm:
 Màu sắc rực rỡ nên đôi khi không thật .  Không bền bằng LCD
 Màn hình loại ma trận PenTile, rẻ hơn nhƣng chất lƣợng kém hơn.
1.1.6. B x lý đồ ha
Hình 1-12: Kiến trúc bên trong GPU Mali c a ARM
Sinh viên: Lê Vũ Minh Quang – CT1401 16
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
GPU (Graphics Processing Unit) là thuật ngữ chung chỉ chip xử lý độ họa, trong
các sản phẩm SoC của các hãng đều đƣợc tích hợp các GPUđể đảm nhiệm chức năng
xử lý các lệnh đồ họa.GPU xử lý đồ họa 2D/3D với nhiều tần số xung nhịp khác nhau
từ 200MHz đến 400sMHz và đƣợc tích hợp thành nhiều lõi tuy theo nhu cầu của sản
phẩm và có thể xử lý 204 tỷ phép tính/giây. GPU của các hãng đều hỗ trợ OpenGL và DirectX.
1.2 CÁC THIT B ĐO LƢỜN G
1.2.1. Gia tc kế Hình 1-13: H
ình minh ha gia t c
kế dùng trong máy bay
Để phát hiện chuyển động của thiết bị di động. Trong thiết bị đƣợc lắp một gia
tốc kế giúp cho thiết bị nhận diện đƣợc chiều xoay của thiết bị để điều chỉnh các phần
mềm phù hợp với trạng thái mới của điện thoại.
Gia tốc kế nguyên thủy là một khoang chứa hình trụ có chứa quả bóng gắn lò xo
hình []. Khoang chứa này đƣợc gắn liền vào vật thể cần đo gia tốc, còn quả bóng di
chuyển một chiều bên trong khoang chứa. Khi thiết bị chuyển động quả bóng cũng sẽ
di chuyển làm lò xo co dãn. Dựa vào độ co dãn của lò xo thiết bị có thể đo đƣợc lực và
gia tốc của chuyển động. Hình 1-14: C u t
ấ ạo cơ bản c a gi
a tc kế
Sinh viên: Lê Vũ Minh Quang – CT1401 17
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Gia tốc kế trong thiết bị di động là một thiết bị điện tử hoạt động dựa trên nguyên lý
của gia tốc kế cơ bản này. Hình 1-15: M
inh ha hoạt động c a gi
a tc kế điện t
Thiết bị đo lƣờng này đo sự chuyển động của vật bằng cách quan sát mức độ điện áp ở
hai cực đầu ra của thiết bị đo.
1.2.2. Con quay hi chuyn Hình 1-16: H ình nh minh h a con quay h i chuyn
Con quay hồi chuyển (gyroscope) là một trong những bộ phận cảm ứng quan
trọng trong thiết bị di động. Do gia tốc kế chỉ có thể đo đƣợc gia tốc tuyến tính của
thiết bị nên phải kết hợp với con quay hồi chuyển có thể nhận biết đƣợc hƣớng của
thiết bị, hệ thống có thể dễ dàng ghi nhận những chuyển động theo cả phƣơng ngang
hoặc phƣơng thẳng đứng. Trong các thiết bị di động không sử dụng con quay hồi
chuyển cơ học mà dùng thiết bị gọi là MEMS (MicroElectroMechanical System – Hệ
thống vi cơ điện tử) thiết bị này mô phỏng chính xác hoạt động của các thiết bị cơ học
trong một con chipvới kích thƣớc vài micromet. Con quay MEMS đƣợc sử dụng nhiều
trên các thiết bị dùng đến cơ điện tử.
Sinh viên: Lê Vũ Minh Quang – CT1401 18
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng Hình 1-17: H ình nh minh ha MEMS
1.2.3. Định v v tinh
Hệ thống định vị toàn cầu - GPS (Global Positioning System) đƣợc dùng phổ
biến trong nhiều lĩnh vực đời sống. Hệ thống này sử dụng 24 vệ tinh bay quanh trái đất
với hệ kinh vĩ độ đƣợc cố định sẵn.GPS đầu tiên đƣợc ứng dụng trong quốc phòng và
ngành hàng hải sau đó đƣợc chuyển sang ngành vận tải,… Ngày nay hệ thống này
đƣợc ứng dụng trong hầu hết các lĩnh vực nhƣ trắc địa, lập bản đồ, cứu nạn,… Hình 1-18: M t
s tính năng của GPS:
 Độ chính xác định vị cao.
 Phạm vi sử dụng toàn cầu
 Thời gian hoạt động 24h/ngày.
 Giá thành thiết bị rẻ.
Sinh viên: Lê Vũ Minh Quang – CT1401 19
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
1.2.4. Cm biến điện dung
Màn hình là thiết bị hiển thị thông tin nhƣng đối với thiết bị di động nó còn đóng
vai trò quan trọng là nhận điều khiển từ ngƣời dùng. Bộ phận cảm ứng đƣợc bổ sung
vào phần dƣới màn hình còn đƣợc gọi là lớp cảm ứng số hóa. Hầu hết các điện thoại
thông minh hiện nay đều trang bị màn hình cảm ứng điện dung.
Lớp cảm ứng điện dung sử dụng công nghệ PCT (projected capacitive touch), tạo
ra một "lƣới" trên màn hình. Lƣới này phát hiện tiếp xúc của ngƣời dùng bằng cách
giám sát sự thay đổi hiệu điện thế. Dựa trên cƣờng độ điện trƣờng và tính chất đa
chiều của trƣờng tĩnh điện các tiếp xúc có thể thực hiện hoặc gián tiếp hoặc trực tiếp trên màn hình. Hình 1-19: H
ình minh ha cơ chế hoạt động ca màn hình cm n dung ứng điệ
Lớp cảm ứng đƣợc đặt ngay trên lớp tinh thể lỏng của màn hình LCD, nhƣng
nằm dƣới lớp kính bảo vệ. Trong khi đó màn hình AMOLED đƣợc đƣợc tích hợp lớp
cảm ứng này cùng với lớp đi-ốt phát quang, làm cho trong suốt tiết kiện không gian cùng với chi phí[2].
Sinh viên: Lê Vũ Minh Quang – CT1401 20
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
1.3 KIN TRÚC CA NN TNG ANDROID
Android là hệ điều hành của hãng Google, với hƣớng tiếp cận là một hệ điều
hành cho thiết bị di động [11]. Android nhanh chóng trở thành hệ điều hành phổ biến
nhất trên thế giới. Đƣợc xây dựng từ nhân Linux, Android đƣợc mở rộng thêm nhiều
chức năng và cung cấp nền tảng cho lập trình ứng dụng. Phần dƣới đây sẽ lần lƣợt mô
tả chi tiết từng thành phần trong Android.
Hình 1-20: Kiến trúc cơ bản c a h ủ ệ u hành A điề ndroid
1.3.1. Nhân ca h điều hành
Android là một sản phẩm điển hình của việc hợp tác và phát triển mã nguồn mở.
Hệ điều hành Android sử dụng nhân Linux để phát triển. Nhân Linux phát triển đến
đâu thì Android lại đƣợc cập nhật và phát triển đến đó.
Thành phần cơ bản của Linux có các phần chính là Trình điều khiển thiết bị hiển
thị, Camera, bàn phím, chuột, kết nối Wifi, âm thanh, quản lý nguồn điện, ổ USB và
thẻ nhớ cùng với các trình kết nối khác.
Sinh viên: Lê Vũ Minh Quang – CT1401 21
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
1.3.2. Thƣ viện
Android cung cấp phong phú các thƣ viện để hỗ trợ lập trình cũng nhƣ một nền
tảng phát triển ứng dụng vững trãi. Các thƣ viện này đã đem lại cho Android sức sống
mãnh liệt và trên thực tế có vô số các phần mềm chạy trên nền tảng Android.
 Surface Manager: quản lí giao diện bao gồm lớp giao diện 2D và 3D.
 Thƣ viện media: dựa tên OpenCORE của PacketVideo, một bộ thƣ viện
hỗ trợ đọc, ghi lại nhiều định dạng âm thanh, video, hình ảnh nhƣ:
MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG.
 SQLite: hệ thống cơ sở dữ liệu có kích thƣớc nhỏ nhƣng mạnh mẽ cho tất cả ứng dụng.
 OpenGL: Thƣ viện các hàm xử lý đồ họadựa trên OpenGL ES 1.0 API; thƣ viện
gồm phần cứng hỗ trợ 3D và phần mềm hỗ trợ tối ƣu 3D.
 FreeType: trình bày kiểu chữ và hình ảnh.  Thƣ viện hệ t ố
h ng C: đƣợc rút ra từ thƣ viện hệ thống C chuẩn (libc).
 Webkit: là bộ thƣ viện trình duyệt web mới hỗ trợ trình duyệt Android và WebView.
 SGL: hệ thống đồ họa 2D cơ sở.
 SSL: Giao thức bảo mật hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer
trong bảo mật truyền thông Internet
Trong phần này có một phần rất quan trọng đó là Android Runtime
Sinh viên: Lê Vũ Minh Quang – CT1401 22
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Hình 1-21: S so sánh Java VM và Dalvik VMs
Mặc dù Android chấp nhận cả hai ngôn ngữ lập trình Java và C, tuy nhiên Java
chiếm ƣu thế khi lựa chọn ngôn ngữ lập trình cho Android. Google đã xây dựng máy
ảo riêng để biên dịch và chạy các ứng dụng trên Android. Đối với ngôn ngữ lập trình C,
Google cung cấp framework khác là lib ,
c khi lập trình thì dựa vào NDK (Native
Development Kit). Ngôn ngữ lập trình cho Android đƣợc phát triển trên môi trƣờng
Java, nhƣng chạy trên máy ảo Dalvik VM. Các thƣ viện cơ bản của Android cung cấp
hầu hết các chức năng có trong thƣ viện cơ bản của Java cũng nhƣ là thƣ viện riêng của Android.
Máy o Dalvik: Dalvik là máy ảo để chạy các ứng dụng trên Android, đã đƣợc tối ƣu để t ự
h c thi đa nhiệm một cách hiệu quả. Nền tảng kỹ thuật này dựa vào lõi
Linux để thực hiện đa luồng và quản lý tài nguyên bộ nhớ. Thƣ viện Core libs
Hệ điều hành Android hỗ trợ một số các APIs để phát triển ứng dụng.
- android.util: Gói tiện ích quản lý nhiều lớp ở mức hệ thống nhƣ:các lớp (List,
Stack…) lớp xử lý chuỗi, lớp xử lý XML,…
- android.os: Gói hệ điều hành này cung cấp các phƣơng thức cho phép truy cập
mức hệ thống nhƣ là trao đổi các thông điệp, thông tin chéo, đồng hồ và gỡ lỗi .
- android.graphics:Gói này cung cấp các lớp đồ họa.
- android.text:Cung cấp các phƣơng thức xử lý văn bản
- android.database:Gói này cung cấp các phƣơng thức dùng thao tác với cơ sở dữ liệu.
- android.content:Cung cấp phƣơng thức liên quan lập trình nội dung.
Sinh viên: Lê Vũ Minh Quang – CT1401 23
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
- android.view:Gói khung nhìn ngƣời dùng cơ bản nhất. Các chƣơng trình khi
tƣơng tác với ngƣời dùng đều thông qua các View.
- android.widget:Gói này đƣợc xây dựng dựa trên gói View. Những thành phần
giao diện đƣợc tạo sẵn đem vào sử dụng để tạo nên giao diện ngƣời dùng một cách nhanh chóng.
- com.google.android.maps:Bộ giao diện ứng dụng dùng để truy cập đến bản đồ
sẵn trong Androidtừ các phần mềm ứng dụng.
- android.app:Gói thƣ viện này cung cấp phƣơng thức truy cập đến dữ liệu của các ứng dụng.
- Android.provider:Gói thƣ viện này tạo thuận lợi cho các nhà phát triển truy cập
đến các Content Provider tiêu chuẩncho phép truy cập đến cơ sở dữ liệu chuẩn trong
tất cả các bản Android.
- Android.telephony: Các API cung cấp cách thức kết nối với tầng viễn thông
trong thiết bị, cho phép tạo, nhận, theo dõi các cuộc gọi, tình trạng các cuộc gọi và tin nhắn SMS.
- android.webkit: Gói WebKit cung cấp giao diện lập trình ứng dụng (API)có thể
trao đổi nội dung dựa trên nền Web, gồm lớp WebView, trình quản lý cookieđể tạo ra
giao diện Web và nhúng trong ứng dụng.
1.3.3. Khung ng dng trên Android
Kiến trúc của Android khuyến khích khái niệm Thành phần sử dụng lại, cho phép
công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác với quyền
truy cập đƣợc quản lý bởi khai báo.
Cơ chế đó cho phép ngƣời lập trình tạo ra một trình quản lý danh bạ hoặc trình
quay số điện thoại mà có các thành phần ngƣời khác có thể tạo mới giao diện và mở
rộng chức năng thay vì tạo lại chúng.
Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả các ứng
dụng, cung cấp một framework cho mọi mọi phần mềm đƣợc xây dựng:
Sinh viên: Lê Vũ Minh Quang – CT1401 24
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
- Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả quản lý các tầng Activity.
- Views: Đƣợc sử dụng để tạo lập các giao diện ngƣời dùng cho các Activity
- Notification Mamager: Cung cấp một cơ chế cố định và quy củ cho việc gửi các
thông báo đến ngƣời dùng.
- Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng.
- Resource Manager: Hỗ trợ các thành phần không thuộc mã nguồn nhƣ là chuỗi
ký tự, đồ họa đƣợc đặt bên ngoài.
1.3.4. Tng ng dng
Đây là lớp trên cùng của kiến trúc nền tảng Android. Android sẽ hoạt động với
một bộ các ứng dụng bao gồm ứng dụng thƣ điện tử, gửi tin nhắn, lịch, bản đồ, trình
duyệt web, danh bạ v.v… Tất cả các ứng dụng đƣợc viết bằng ngôn ngữ Java. Các ứng
dụng này có thể đƣợc cung cấp sẵn hoặc đƣợc phát triển bởi những lập trình viên.
1.3.5. Các thành phn trong mt ng dng Android
Một ứng dụng trên môi trƣờng Android có các thành phần sau:
Activities (Hoạt động) Services Broadcast Receivers Content Provider
Một ứng dụng không nhất thiết có đầy đủ các thành phần này.Mọi thông tin về
ứng dụng đều đƣợc ghi trong tệp tin AndroidManifest.xml.
1.3.5.1 Hoạt ộ
đ ng (Activity)
Hoạt động là giao diện trong đó ngƣời dùng tƣơng tác với ứng dụng khi đƣợc
kích hoạt. Một ứng dụng có nhiều hoạt động và các hoạt động này gọi lẫn nhau để thực
hiện yêu cầu. Mỗi hoạt độngđƣợc dẫn xuất từ lớp android.app.Activity.
Mỗi hoạt độngthể hiện trên một cửa sổ. Thông thƣờng kích thƣớc cửa sổ bằng
màn hình, ngoài ra nó có thể có thêm các cửa sổ con khác nhƣ là hộp thoại,…Thông
tin trong từng cửa sổ đƣợc cung cấp bởi hệ thống cấp bậc các View (là đối tƣợng của lớp Views).
Sinh viên: Lê Vũ Minh Quang – CT1401 25
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Vòng đời của hoạt động
Các hoạt động trong hệ thống đƣợc quản lý bởi một cấu trúc dữ liệu ngăn xếp. Khi
khởi tạo, hoạt độngđƣợc đẩy vào trong ngăn xếp, các trạng thái thực thi và hoạt động
trƣớc đó sẽ chuyển sang trạng thái chờ. Hoạt động này trở lại trạng thái kích hoạt khi khởi tạo hoàn tất.
Một hoạt động có ba trạng thái cơ bản là:
- Hoạt động (Active) hoặc chạy (running) khi ứng dụngxuất hiện trên màn hình
và nhận tƣơng tác ngƣời dùng.
- Tạm dừng (Paused) khi hoạt độngkhông còn trọng tâm trên màn hình nhƣng
vẫn hiện thị trƣớc ngƣời dùng.
- Dừng(Stopped) Khi một hoạt động hoàn toàn bị che khuất nhƣng hoạt động
vẫn còn lƣu trữ toàn bộ thông tin trạng thái, và t ƣ
h ờng bị hệ thống đóng lại khi thiếu bộ nhớ.
Khi luân chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với
các bƣớc chuyển trong lƣu đồ hình [11].
Sinh viên: Lê Vũ Minh Quang – CT1401 26
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Lƣu đồ dƣới đây mô tả vòng đời của một hoạt động trong Android.
Hình 1-22:Vòng đời c a mt
hoạt động
Chu trình của một hoạt độngđƣợc bắt đầu bằng phƣơng thức onCreate
(Bundle)và kết thúc bằng phƣơng thức onDestroy(). Thời gian hoạt động của một hoạt
động bắt đầu từ lời gọi phƣơng thức onStart()đến khi phƣơng thức onStop() đƣợc triệu
gọi. Toàn bộ tài nguyên của hệ thống do hoạt độngsử dụng tiếp tục đƣợc lƣu giữ cho
đến khi bị hệ thống thu hồi.Hoạt động đƣợc phục hồi khi phƣơng thức onResume() đƣợc gọi.
1.3.5.2 Service
Dịch vụ (service) là các mô đun thực thi ẩn trong hệ thống. Mỗi dịch vụ đƣợc kế
thừa từ lớp cơ sở trong gói android.app.Service.Các dịch vụ đƣợc kích hoạt hoặc kết
nối thông qua việc truyền các tham số cho dịch vụvà nó đƣợc kích hoạt bằng cách gọi
Sinh viên: Lê Vũ Minh Quang – CT1401 27
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
phƣơng thức Context.startService(). Các ứng dụng có thể liên kết tới một dịch vụ bằng
cách dùng phƣơng thức Context.bindService().
Vòng đời của một dịch vụ
Vòng đời của một dịch vụ là quá trình hoạt động của dịch vụtừ khi đƣợc kích
hoạt đến khi bị loại khỏi hệ thống. Khi hệ thống gọi tới phƣơng thức Context.startService()dịch vụ đƣợc thực thi cho tới khi phƣơng
thứcContext.stopService() đƣợc gọi.
Các ứng dụng muốn kết nối tới dịch vụthì phƣơng thức
Context.bindService()đƣợc kích hoạt và nó sẽ nhận đƣợc một đối tƣợng IBinder do
dịch vụ trả về để từ đó gọi các phƣơng thức Callbackcho phù hợp.Dịch vụ đƣợc thực
thi cho tới khi nào đối tƣợng IBinder còn tồn tại.
Hình 1-23: Lưu đồ chuyn tr ng thái c a d ủ ịch v
1.3.5.3 B nhn thông điệp qung bá (Broadcast receivers)
Bộ nhận thông điệp quảng bá dùng để nhận và phản hồi lại các thông điệp quảng
bá do hệ thống thông báo nhƣ múi giờ bị thay đổi, nguồn yếu, và các thông điệp từ các
thiệt bị đo lƣờng gửi về.Tất cả hoạt động của bộ nhận thông điệp quảng bá đƣợc kế
thừa từ lớp BroadcastReceiver.
Sinh viên: Lê Vũ Minh Quang – CT1401 28
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
1.3.5.4 B cung cp ni dung
Hình 1-24: Kiến trúc c a b cung c p ni
dung trong Android
Bộ cung cấp nội dung (Content Provider) có chức năng cung cấp một tập các
phƣơng thức cho phép một ứng dụng có thể lƣu trữ và trao đổi dữ liệu thông qua trong
các tập tin hoặc sử dụng cơ sở dữ liệu SQLite sẵn cóvà đƣợc quản lý bởi Bộ cung cấp
nội dung của nó.Bộ cung cấp nội dung là tính năng ƣu việt của Android nhằm chia sẻ
dữ liệu giữa các ứng dụng một cách dễ dàng.
1.4 CÔNG C VÀ NGÔN NG LP TRÌNH
Xuất phát điểm của Android dựa trên nền Linux nên hệ điều hành đƣợc hỗ trợ
đầy đủ của cộng đồng mã nguồn mở và ngôn ngữ lập trình các ứng dụng là Java và C, C++.
1.4.1. Ngôn ng lp trình
Ngôn ngữ dùng để lập trình cho Android là Java và C, Hai ngôn ngữ này phổ
biến trong sản xuất phầnmềm. Về cơ bản, hai ngôn ngữ đều có kiến trúc giống nhau, từ
bảng chữ cái, các quy định đặt tên, biểu thức, các phép toán, các kiểu dữ liệu cho đến
các cấu trúcrẽ nhánh, lặp, kiểu cấu trúc, hƣớng đối tƣợng, đa nhiệm và xử lý song
song,…do vậy các nhà phát triển có nhiều lựa chọn hơn cho các dự án của họ.
1.4.2. Công c cho lp trình
1.4.2.1 Android SDK
Android SDK là sản phẩm của Google nhằm cung cấp cho các lập trình viên một
công cụ phát triển các ứng dụng trên hệ điều hành Android của hãng [3]. Về cơ bản,
Android SDK gồm một số thành phần sau: Eclipse và ADT plugin
Sinh viên: Lê Vũ Minh Quang – CT1401 29
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng Android SDK tools Android Platform tools
Eclipse và ADT-plugin là môi trƣờng để lập trình các ứng dụng cho Android. Android SDK tools
Android software development Kit bao gồm đầy đủ các bộ công cụ cho phát triển
sản phẩm trên hệ điều hành Android. Bao gồm hệ thống gỡ rối, các thƣ viện, trìnhmô
phỏng dựa trên QEMU, các tài liệu, chƣơng trình mẫu,… Hiện tại, nó hỗ trợ các nền
tảng bao gồm các máy chạy Linux, MacOS X trở đi, Windows XP trở lên, và đƣơng
nhiên nó hỗ trợ cho các phiên bản của hệ điều hành Android gồm (Android IDE - Java,
C++). Một môi trƣờng phát triển chuẩn là Eclipse chạy trình cắm Android
Development Tools (ADT), IntelliJ IDE
NetBeans IDE. Ngoài ra các nhà phát triển
còn có thể dùng các trình soạn thảo cho Java và XML để tạo ứng dụng.
Các ứng dụng của Android đƣợc đóng gói dƣới dạng tệp tin định dạng .apk
đƣợc lƣu trong đƣờng dẫn /data/app trong hệ điều hành Android các gói .apk chứa
tệp tin .dex đƣợc biên dịch bằng máy ảo Dalvik[4].
1.4.2.2 Android NDK
Android NDK (Native Development Kit) là một bộ công cụ để phát triển ứng
dụng cho Android nhƣng có điều sử dụng ngôn ngữ lập trình C. Các thƣ viện đƣợc viết
bằng ngôn ngữ C và một số ngôn ngữ khác có thể đƣợc biên dịch sang ARM, MIPS
hoặc x86 native code và đƣợc cài đặt sử dụng trong Android Native Development
Kit.
Các lớp của Native có thể đƣợc gọi từ mã Java chạy trong máy ảo Dalvik sử dụng
lời gọi thƣ viện System.loadLibrary.
Các ứng dụng đƣợc xây dựng xong có thể đƣợc biên dịch cài đặt bằng các công
cụ truyền thống. Tuy nhiên, theo nhƣ bản công bố của Android, NDK không chỉ dùng
để phát triển các ứng dụng đơn lẻ mà dùng để xây dựng các ứng dụng có quy mô lớn
vì ngôn ngữ C đƣợc ƣa thích hơn.
1.4.2.3 Eclipse
Là công cụ mã nguồn mở thuộc nhóm các công cụ hỗ trợ trong lập trình từ các
ngôn ngữ Java, C/C++, Ngôn ngữ mô hình, ngôn ngữ đặc tả, … đƣợc dùng phổ biến
hiện nay và đã trở thành những sản phẩm chuẩn mực trong thế giới mã nguồn mở.
+ Cài đặt: Cài đặt Eclipse rất đơn giản và thuận tiện. Ứng dụng Eclipse đƣợc xây
dựng để khi cài đặt, ngƣời dùng chỉ cần download về và giải nén là có thể chạy đƣợc.
Nếu dùng Eclipse cho một ứng dụng chuyên biệt nào đó thì sản phẩm đó chỉ cần xây
dựng dƣới dạng một trình cắm (plugin) rồi tích hợp vào Eclipse là xong.
Địa chỉ Internet để lấy Eclipse:
Sinh viên: Lê Vũ Minh Quang – CT1401 30
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng http://www.eclipse.org
Google đã tích hợp sẵn ADT-plugin để thuận tiện cho các nhà phát triển ứng
dụng và đƣợc để tại địa chỉ:
http://developer.android.com/tools/sdk/eclipse- adt.html
1.4.2.4 Netbean
NetBean cũng là một công cụ xuất thân từ mã nguồn mở chỉ hỗ trợ để lập trình
Java. Từ khi hãng Sun bị Oracle thâu tóm nay trở thành sản phẩm đóng của Oracle
nhƣng miễn phí và mở rộng hỗ trợ cho cả ngôn ngữ lập trình C/C++, PHP, HTML,… Địa chỉ: https://netbeans.org/ + Cài đặt:
- Download Netbean và cài đặt xong.
- Vào Menu Tools  Plugins Hộp thoại Plugins xuất hiện Chọn Settings
Chọn nút Add  Nhập địa chỉ vào ô bên dƣới:
http://nbandroid.org/release72/updates/updates.xml
Đợi cho Netbean cập nhật xong. Chọn Avainable Plugins chn Android rồi cài đặt.
1.4.3. Mt s Game engine
Với tốc độ phát triển rất nhanh của thị trƣờng trò chơi trên thiết bị di động. Nhiều
hãng đã phát triển các game engine của riêng họ. Sau đây có một số game engine phổ
biếnAndEngine, Unity3D, CryEngine, Unreal Engine,…
Sinh viên: Lê Vũ Minh Quang – CT1401 31
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
1.5 QUY TRÌNH XÂY DNG PHN MM TRÊN ANDROID
Xây dựng phần mềm nói chung và phần mềm cho thiết bị di động nói riêng phải
tuân thủ theo quy trình sản xuất nhƣ các sản phẩm thông thƣờng, nhƣng cần xét đến
khía cạnh đặc thù của từng loại thiết bị. Đối với thiết bị di động, ngoài yếu tố lựa chọn
sản phẩm để sản xuất, khi thiết kế chƣơng trình cần tính toán nhiều yếu tố:
+ Tài nguyên phần cứng: Tiêu hao tài nguyên phần cứng cho ứng dụng chạy.
+ Cách thức ngƣời dùng tƣơng tác với phần mềm.
+ Các chức năng của thiết bị di động có sẵn nhƣ: Máy gia tốc kế, con quay hồi
chuyển, cảm ứng từ, cảm ứng ánh sáng,…
Quy trình xây dng ng dng trên Android
Quy trình sản xuất phần mềm trên Android không khác gì với các sản phẩm phần mềm khác.
Xác định yêu cầu của sản phẩm đƣợc thực hiện bởi nhóm chuyên gia có chuyên
môn về nghiên cứu thị trƣờng. Trong bƣớc này, các chức năng, hình hài của sản phẩm
phải đƣợc xác định rõ.
Lập kế hoạch thực hiện dự án,ngƣời quản trị dự án phải tính toán toàn bộ nguồn
lực bao gồm thời gian, tài chính, con ngƣời tham gia vào dự án. Kết quả của bƣớc này
là một bản mô tả tổng thể dự án triển khai trong bao lâu, cần bao nhiêu ngƣời trong
từng giai đoạn, tiêu hết bao nhiêu tiền trong từng giai đoạn, và điều quan trong nữa là
nếu xảy ra rủi ro thì sẽ rơi vào tình huống nào và tổn thất bao nhiêu tiền?
Trong bƣớc tổ chức thực hiện dự án,ngƣời quản trị dự án phân bổ công việc theo
kế hoạch cho từng nhóm, với một lịch trình cụ thể, giám sát chặt chẽ theo ngày (thậm
chí theo giờ) để có phƣơng án xử lý kịp thời. Các pha trong sản xuất phần mềm tuân
thủ theo các quy trình chung của ngành. Một số hãng phần mềm lớn họ áp dụng các
chuẩn CMMI trong sản xuất sẽ đảm bảo dự án thực thi tốt hơn.
Sinh viên: Lê Vũ Minh Quang – CT1401 32
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
CHƢƠNG 2: LẬP TRÌNH GAME CHO ĐIỆN THOI THÔNG MINH
2.1 Gii thiu
Lập trình ứng dụng trên thiết bị di động là một trong những hƣớng phát triển
chính trong ngành công nghệ thông tin hiện nay. Trong đó, lập trình các trò chơi là
chuyên ngành hẹp nhƣng đã đem lại nhiều lợi nhuận. Trong chƣơng này khóa luận lựa
chọn hƣớng phát triển ứng dụng game trên hệ điều hành Android làm đại diện cũng
nhƣ các khía cạnh kỹ thuật ủ c a lĩnh vực này.
2.2 KIN TRÚC CỦA TRÒ CHƠI TRÊN ANDROID
Các trò chơi đƣợc xây dựng trên hệ điều hành Android có kịch bản riêng nhƣng
đều có quy trình giống nhau đƣợc minh họa tronghình dƣới đây [5].
2.2.1. Kiến trúc chung
Hình 2-1: Kiến trúc cơ bản c a mA
ột trò chơi trên ndroid
2.2.1.1 Input
Là phần thông tin đƣa vào để tƣơng tác với trò chơi. Các dữ liệu này đƣợc đƣa
vào thông qua các bộ phận nhƣ: Màn hình cảm ứng, gia tốc kế, con quay hồi chuyển,
cảm ứng từ trƣờng, cảm ứng ánh sáng, camera, micro, và cả bàn phím vật lý,…
2.2.1.2 User Input
Là phần kế tiếp để nhận thông tin đầu vào. Một số trò chơi cần ngƣời dùng thêm
một số thao tác nhƣ tô màu, nhận diện hình, âm thanh,… để trƣớc khi thực hiện trò chơi.
2.2.1.3 Game logic
Game logic là mô đun chịu trách nhiệm về việc thay đổi trạng thái của các nhân
vật cũng nhƣ các đối tƣợng trong trò chơi.Ví dụ các nhân vật, địa hình, địa vật, súng, đạn, tia lade,…
Sinh viên: Lê Vũ Minh Quang – CT1401 33
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng Hình 2-2: H
ình minh h a ngón tay ch
ạm vào vùng điều khin trong User Input
Trong hình trên hình tròn xanh lơ biểu diễn ngón tày ngƣời dùng chạm vào vùng
điều khiển. Mô đun User Input thông báo cho Game Engine (Game Logic) và đối
chiếu vào hệ tọa độ. dx,d
y là khoảng cách tính theo điểm ảnh liên quan tới trung tâm
của hình tròn điều khiển. Game engine tính toán tốc độ mới mà nó phải thiết lập cho
nhân vật và hƣớng của nhân vật sẽ di chuyển. Nếu dx có giá trị dƣơng có nghĩa là
nhân vật di chuyển sang phải và nếu dy có giá trị dƣơng thì nhân vật di chuyển về phía trƣớc.
2.2.1.4 Audio
Mô đun này sẽ phát ra âm thanh tƣơng ứng với từng trạng thái hiện tại của nhân
vật. Trong hầu hết các trò chơi các nhân vật, đối tƣợng phát ra âm thanh ở các trạng
thái khác nhau của chúng và do các thiết bị chơi trò chơi đƣợc giới hạn trong một vài
kênh nào đó (nghĩa là có bao nhiêu âm thành đƣợc phát cùng một lúc)nó phải quyết
định âm thanh để chơi. Ví dụ trong trò chơi khi xuất hiện một nhân vật đối kháng thì
một âm thanh kinh dị hoặc đặc biệt đƣợc phát ra để gây ra chú ý cho ngƣời chơi đồng
thời cần một kênh âm thanh riêng cho nhân vật nhƣ chuẩn bị vũ khí hoặc lẩn trốn thì
âm thanh phát ra phải đanh, gọn,…
2.2.1.5 Graphics
Mô đun này chịu trách nhiệm hiển thị các trạng thái trò chơi trên màn hình. Điều
này đơn giản chỉ là vẽ trực tiếp lên miếng toan (canvas) từ một góc nhìn hoặc biểu
diễn hình ảnh từ bộ đệm đồ họa, ở đây, các đối tƣợng đồ họa đƣợc xử lý trƣớc rồi cho
vào bộ đệm sau đó đƣợc đƣa ra màn hình dƣới góc nhìn tùy chỉnh hoặc của chính
OpenGL. Các khung hình FPS (Frame Per Second) là một trong các thông số đánh giá
chất lƣợng hình ảnh đƣợc hiển thị, nếu thông số là 30 FPS có nghĩa là có 30 ảnh đƣợc
hiển thị trong từng giây. Thông số này đánh giá đƣợc chất lƣợng thiết bị là rất tốt.
2.2.1.6 Output
Phần này là kết quả của quá trình xử lý các dữ liệu trong trò chơi, nó thể hiện cả
hình ảnh, âm thanh hoặc rung.
Sinh viên: Lê Vũ Minh Quang – CT1401 34
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
2.2.2. K thut âm thanh
Âm thanh trong trò chơi tăng cƣờng cảm xúc của ngƣời chơi. Nó cung cấp một
kết nối cảm xúc mà không thể nào đạt đƣợc bằng cách khác. Các nhà sản xuất điện ảnh
đã tiên phong trong lĩnh vực này và đã đầu tƣ rất nhiều tài chính để tạo ra các nhạc nền
phù hợp cho phim. Đối với các trò chơi, âm nhạc có thể không có quy mô lớn nhƣ
trong những bộ phim nhƣng âm nhạc rất cần thiết trong trò chơi. Trong các game
engine
cung cấp các tính năng cho phép bổ sung âm thanh vào trong các trò chơi.
Âm thanh sử dụng trong trò chơi đƣợc các nhạc sỹ và nghệ sỹ chuyên nghiệp
thiết kế và xây dựng. có hai loại âm thanh trong chƣơng trình trò chơi.
+ Âm nhạc thƣờng sử dụng nhƣ nhạc nền trong trò chơi.
+ Hiệu ứng âm thanh cùng xảy ra với các sự kiện bên trong trò chơi.
Âm thanh nói chung trong các trò chơi là các chuẩn âm thanh đã có sẵn trên thế
giới nhƣ: mp3, wav, wma,… tuy nhiên 2 chuẩn nén quan trong thƣờng đƣợc dùng là OGGs, MP3s.
Âm nhc
Âm nhạc rất quan trọng để thiết lập thái độ ngƣời chơi. Không có quy tắc nhất
định cho việc sử dụng âm nhạc trong chƣơng trình trò chơi. Nhạc vui, buồn, trầm,
bổng đều tác động đến tâm lý của ngƣời chơi. Do đó mỗi kịch bản trong trò chơi đƣợc
thiết kế một tập các tệp âm thanh riêng biệt. Một đặc tính chung trong trò chơi, các bậc
kế tiếp càng ngày càng khó, nhịp độ tăng lên khi thách thức tăng. Các nhân vật đối
kháng cũng hoạt động nhanh và tinh xảo hơn gây nhiều khó khăn cho ngƣời chơi. Đôi
khi ngƣời chơi không muốn nghe nhạc từ trò chơi, ngƣợc lại họ muốn nghe bản nhạc
khác do chính họ chọn từ trong máy. Các thiết bị di động phải có những chế độ cho
phép nghe nhạc trong khi các ứng dụng khác vẫn hoạt động.
Hiu ng âm thanh
Âm nhạc đƣợc phát trong suốt chƣơng trình trò chơi hoạt động còn các hiệu ứng
âm thanh chỉ xảy ra tƣơng ứng với các sự kiện trong trò chơi, ví dụ tiếng súng nổ,
tiếng va chạm, … tƣơng ứng với các sự kiện khi bắn nhau hoặc khi các vật thể va chạm nhau.
Các hàm API liên quan đến lp trình vi âm thanh
Khi lập trình với âm thanh, hệ thống cần đƣa các thƣ viện xử lý âm thanh vào chƣơng trình.
importandroid.media.AudioManager;
import android.media.SoundPool;
Sinh viên: Lê Vũ Minh Quang – CT1401 35
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
Trong các thƣ viện này có hàng trăm phƣơng thức và hằng số giúp cho lập trình
viên lập trình rất hiệu quả trong việc xử lý âm thanh.
2.2.3. K thuật đồ ha
Xử lý đồ họa trong trò chơi của android cũng không nằm ngoài nguyên lý xử lý
đồ họa thông thƣờng.Tuy nhiên đối với thiết bị di động đòi hỏi việc tối ƣu tài nguyên
và các thuật toán có khác so với máy tính các nhân và laptop. Hiện nay Android tích
hợp thƣ viện xử lý đồ họa OpenGL ES (OpenGL for Embeded System) vào hệ thống,
và các ứng dụng trò chơi của Android đều sử dụng thƣ viện này. Phiên bản mới nhất là
OpenGL ES 3.0 đƣợc tích hợp vào Android ver.18 trở đi.
2.2.3.1 K thut 2D
Kỹ thuật này đều dùng các thuật toán xử lý đồ họa cơ bản nhƣ phép dịch chuyển,
phép quay, phép có dãn,…[8]. Hình 2-3: H ình minh h a phép d
ch chuyn, phép quay
Các hàm trong OpenGL ES dùng trong Android.
import android.graphics
importandroid.graphics.drawable
importandroid.graphics.drawable.shapes
importandroid.graphics.pdf
Các hàm trong các thƣ viện này đƣợc sử dụng theo từng yêu cầu bài toán và đƣợc tra cứu trong [7,8].
2.2.3.2 K thut 3D
Kỹ thuật 3D là kỹ thuật tiên tiến trong lĩnh vực xử lý đồ họa, các thuật toán để
xây dựng các ứng dụng này đòi hỏi nhiều tài nguyên của hệ thống. Do vậy đối với các
Sinh viên: Lê Vũ Minh Quang – CT1401 36
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
thiết bị di động đôi khi sử dụng kỹ thuật 2D giả lập cho 3D (hay đổ họa 3D – xyz có
chi
u z =0). Các nhà thiết kế phải quy đổi từ hệ tọa độ 3D sang tọa độ của màn hình. Hình 2-4: M inh h a phép chi ọ ếu ph i
cnh 3D trên 2D Hình 2-5: M inh h a phép chi ọ ếu song song Hình 2-6: M inh h a góc nhìn h ọ ẹp
Sinh viên: Lê Vũ Minh Quang – CT1401 37
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng Hình 2-7: M
inh ha góc nhìn rng Hình 2-8: M inh h a phép chi
ếu hình nh vào thiết b, hình bên trái chuyn g c t ọa độ
vào thiết b và hình bên phi là dch chuyn thiết b v phía hình nh.
Sinh viên: Lê Vũ Minh Quang – CT1401 38
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng
2.2.3.3 Chuyn t tọa độ 2D sang 3D
Khi các đối tƣợng đƣợc dịch chuyển từ hệ tọa độ 2D sang 3D, hệ thống cần thực
hiện một số thao tác trên đối tƣợng bằng cách mở rộng chiều thứ 3 trên hệ trục tọa độ 3D. Hình 2-9: H ình minh h a h ọ ệ trc t ọa độ -
Đề Các 3 chiu
Trên thực tế,cùng một loại dữ liệu mang ra hiển thị, có nhiều cách biểu diễn
chúng trên màn hình thiết bị di động.
 Không gian đối tƣợng, biểu diễn quan hệ giữa các đối tƣợng với nhau.
 Camera, hoặc mắt, khoảng không, vị trí từ điểm nhìn ngƣời dùng.
 Phép chiếu, hoặc phép cắt,hoặc khoảng trống màn hình 2D tính từ ảnh
cuối cùng đƣợc hiển thị.
 Không gian tuyến tính, đƣợc dùng nhiều trong hiệu ứng cao cấp nhƣ
đƣờng bình đồ, các hình nhấp nhô trong bản đồ,...
Ví dụ: chuyển đối tƣợng từ 2D sang 3Dtham khảo [8, p49]. float vertices[] = { -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f }; byte maxColor=(byte)255; byte colors[] = { maxColor, maxColor, 0, maxColor,
0, maxColor, maxColor, maxColor, 0, 0, 0, maxColor, maxColor, 0, maxColor, maxColor };
Sinh viên: Lê Vũ Minh Quang – CT1401 39
Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng byte indices[] = { 0, 3, 1, 0, 2, 3 };
Mở rộng chiều thứ 3 cho đối tƣợng, tức là thêm truc trục z vào mảng mô tả đối tƣợng. float vertices[] = { -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f }; byte maxColor=(byte)255; byte colors[] = { maxColor, maxColor, 0, maxColor, 0, maxColor, maxColor, maxColor, 0, 0, 0, maxColor, maxColor, 0, maxColor, maxColor, maxColor, 0, 0, maxColor, 0, maxColor, 0, maxColor, 0, 0, maxColor, maxColor, 0, 0, 0, maxColor };
Sinh viên: Lê Vũ Minh Quang – CT1401 40