Tải bản đầy đủ (.pdf) (51 trang)

Ứng dụng đồ họa 2d vào phát triển game trên hệ điều hành android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.19 MB, 51 trang )


KHOA CÔNG NGH THÔNG TIN
*************






NG D HA 2D
VÀO PHÁT TRIN GAME TRÊN
H U HÀNH ANDROID


KHÓA LUN TT NGHII HC







2015




KHOA CÔNG NGH THÔNG TIN
*************







NG D HA 2D
VÀO PHÁT TRIN GAME TRÊN
H U HÀNH ANDROID

KHÓA LUN TT NGHII HC




ng dn khoa hc
PGS. TS. TRNG



2015

LI C
Trước tiên, em muốn gửi lời cảm ơn sâu sắc nhất đến thầy giáo, PGS.TS
Trịnh Đình Thắng, người đã tận tình hướng dẫn em trong suốt quá trình thực hiện
khóa luận tốt nghiệp.
Em xin bày tỏ lời cảm ơn sâu sắc đến những thầy cô giáo đã giảng dạy em
trong bốn năm qua, những kiến thức mà em nhận được trên giảng đường đại học sẽ
là hành trang giúp em vững bước trong tương lai.
Và tôi xin cảm ơn tất cả những người bạn của tôi, những người đã và đang
luôn động viên, chia sẻ và giúp đỡ tôi tận tình trong suốt thời gian học tập cũng như
thực hiện khóa luận này.

Cuối cùng, con kính gửi lời cảm ơn sâu sắc nhất tới gia đình, cảm ơn cha mẹ
đã tạo điều kiện tốt nhất cho con học tập để có được như ngày hôm nay. Và xin
cảm ơn tất cả mọi người đã tin tưởng, khích lệ và động viên tôi trong suốt thời gian
qua.

Hà Nội, ngày 08 tháng 05 năm 2015
Sinh viên

Vũ Quang Trung
L
Tên em là: Vũ Quang Trung
Sinh viên lớp: K37A – Tin học, khoa Công nghệ Thông tin, trường Đại học
Sư phạm Hà Nội 2.
Em xin cam đoan:
1. Nội dung đề tài: “Ứng dụng đồ họa 2D vào phát triển Game trên hệ điều
hành Android” là nghiên cứu của riêng em.
2. Kết quả nghiên cứu của em không trùng với bất cứ một kết quả nào của
những tác giả khác.
Nếu sai em xin hoàn toàn chịu trách nhiệm.

Hà Nội, ngày 08 tháng 05 năm 2015
Sinh viên

Vũ Quang Trung
DANH MC HÌNH NH
Hình ảnh
Nội dung
Trang
Hình 1.1
Kiến trúc hệ điều hành Android

12
Hình 3.1
Sơ đồ hoạt động của game
29
Hình 3.2
Sơ đồ use case
30
Hình 3.3
Kiểm tra va chạm giữa 2 đối tượng
36
Hình 3.4
Giao diện Menu chính
38
Hình 3.5
Giao diện hiển thị thông tin tác giả
38
Hình 3.6
Giao diện hiển thị phần giới thiệu, hướng dẫn
39
Hình 3.7
Giao diện chọn màn chơi
39
Hình 3.8
Giao diện chính của game
40
Hình 3.9
Giao diện tạm dừng
40
Hình 3.10
Giao diện khi người chơi thua cuộc

41

DANH MC BNG
Bảng
Nội dung
Trang
Bảng 3.1
Danh sách actor
29
Bảng 3.2
Danh sách use case
30


MC LC
M U 1
H U HÀNH ANDROID 5
1.1  5
1.2 H 6
1.2.1 Android 1.0 6
1.2.2 Android 1.1 6
1.2.3 Android 1.5 Cupcake 6
1.2.4 Android 1.6 Donut 7
1.2.5 Android 2.0 và 2.1 Eclair 7
1.2.6 Android 2.2 Froyo 8
1.2.7 Android 2.3 Gingerbread 8
1.2.8 Android 3.x HonyComb 9
1.2.9 Android 4.0 Ice Cream Sandwich 9
1.2.10 Android 4.1 Jelly Bean 9
1.2.11 Android 4.2 Jelly Bean 10

1.2.12 Android 4.3 Jelly Bean 10
1.2.13 Android 4.4 Kitkat 11
1.2.14 Android 5.0 Lollipop 11
1.3  12
1.3.1  13
1.3.2  14
1.3.3  14
1.3.4  15
1.3.5  15
1.4  16
1.4.1  16
1.4.2  17
1.4.3  17
1.5  17
 THUY HA 2D 21
2.1  21
2.2  21
2.3  22
 22
2.3.2  24
2.3.3  24
2.3.4  24
2.4  25
2.5  25
2.6  26
NG DNG  HA 2D VÀO PHÁT TRIN GAME TRÊN
H U HÀNH ANDROID 27
3.1  27
3.2  29
3.2.1  29

3.2.2  29
3.2.2.1 Danh sách actor 29
3.2.2.2  Use Case 30
3.3  34
3.4  38
KT LUNG PHÁT TRIN 42
TÀI LIU THAM KHO 43

1
M U
1. Lý do ch tài
Ngày nay nền công nghiệp giải trí đang phát triển rất mạnh trên thế giới, bao
gồm các thành phần cơ bản như: Game, âm nhạc, thời trang, chương trình truyền
hình, điện ảnh, Gameshow, Các mảng nằm trong ngành giải trí không chỉ mang
tính giải trí mà còn mang nhiều giá trị về văn hóa, lối sống, phong tục của con
người từng vùng miền, từng quốc gia, đồng thời quảng bá hình ảnh của đất nước tới
các nước khác trên thế giới.
Có thể nói một trong những ngành giải trí mang lại nhiều lợi nhuận nhất đó
là game. Game là lĩnh vực giải trí tương tác quan trọng hàng đầu trong ngành công
nghiệp hiện đại. Theo báo cáo thị trường toàn cầu Newzoo năm 2014, ngành công
nghiệp Game ước tính doanh thu 81,5 tỷ USD, tăng trưởng 7,8%, dự kiến lên đến
102,9 tỷ USD (2017). Lý do quan trọng nhất của sự phát triển chính là thị trường
Châu Á chiếm đến 82% doanh thu và 45% thị phần ngành game thế giới (2014).
Với doanh thu hơn 1,2 tỷ USD (2014), tăng trưởng 6%, Việt Nam hiện là thị trường
game lớn nhất Đông Nam Á và top 10 thị trường game online phát triển nhanh nhất
thế giới. Riêng game online thu hút sự tham gia của khoảng 40 công ty phát hành
game, giải quyết việc làm cho hơn 7.500 người.
Trong đó, thị trường nội dung di động toàn cầu trị giá 10,5 tỷ đô (2014) và
dự kiến đạt 18,6 tỷ đô (2017), tỷ lệ tăng trưởng hàng năm 19% (2014-2017). Riêng
khu vực Châu Á, thị trường nội dung di động trị giá 7,4 tỷ đô (2014), dự kiến đạt

11,4 tỷ đô (2017) - chiếm trên 60% doanh thu toàn cầu. Tháng 10/2013, Mercer,
Talentnet (2 công ty hàng đầu thế giới về tư vấn nhân sự) khảo sát 418 doanh
nghiệp Việt Nam cho thấy: Việc đầu tư công nghệ quay trở lại mạnh mẽ. Vì thế,
nhu cầu nhân lực CNTT tăng nhanh, trong đó lập trình di động là ngành mới nên
cần nhân lực nhiều hơn hết. Theo báo cáo tổng nhu cầu tuyển có đến 20% liên quan
CNTT và 20% trong số đó liên quan lập trình di động.

2
Tuy nhiên, ngành game đang đứng trước khó khăn nguồn nhân lực. Theo
PGĐ.Trung tâm dự báo nhu cầu nhân lực và thị trường lao động Tp.HCM: “Ngành
lập trình game không có trường Đại học hay Cao đẳng chuyên nghiệp đào tạo
chuyên sâu. Học phí lập trình phần mềm nói chung, lập trình game nói riêng khá
đắt đỏ, nhưng lại xứng đáng vì mức lương và thu nhập không có điểm dừng, giống
như trường hợp của tác giả game Flappy Bird”.
Với sự phát triển bùng nổ của ngành CNTT như hiện nay, việc nghiên cứu và
phát triển Game là một hướng đi khá tốt cho các lập trình viên. Với việc chọn đề tài
“Ứng dụng đồ họa 2D vào phát triển Game trên hệ điều hành Android” để làm
khóa luận, em nghĩ rằng nó sẽ giúp một phần nào đó cho việc tìm hiểu và phát triển
Game nói riêng cũng như ngành công nghiệp giải trí nói chung trong tương lai gần.
2. Mu
Tìm hiểu hệ điều hành Android, ứng dụng của đồ họa 2D vào việc lập trình
game cho hệ điều hành Android.
3. Nhim v nghiên cu
Nhiệm vụ của khóa luận là nghiên cứu về đồ họa 2D và hệ điều hành
Android. Từ những kiến trúc hệ thống của hệ điều hành Android đến ưu nhược
điểm của hệ điều hành cho đến nay, em sẽ ứng dụng đồ họa 2D vào lập trình game
để phù hợp với hệ điều hành và thân thiện với người chơi.
4. ng và phm vi nghiên cu
Hệ điều hành Android, các công cụ hỗ trợ lập trình game và đồ họa 2D.
5. Gi thuyt khoa hc

Đồ họa 2D sử dụng để lập trình game giúp hiểu rõ hơn các kỹ năng lập trình,
khả năng sáng tạo. Chương trình được xây dựng nếu được đưa vào thị trường cho
người sử dụng sẽ giúp người dùng có thời gian thư giãn chơi game bên chiếc điện
thoại.

3
6. u
 Phương pháp nghiên cứu lý luận
Nghiên cứu qua việc đọc sách, báo và các tài liệu liên quan nhằm xây dựng
cơ sở lý thuyết của đề tài và các biện pháp cần thiết để giải quyết các vấn đề của
đề tài.
 Phương pháp chuyên gia
Tham khảo ý kiến của các chuyên gia để có thể thiết kế chương trình phù
hợp với yêu cầu thực tiễn. Nội dung xử lý nhanh đáp ứng nhu cầu ngày càng cao
của người dùng.
 Phương pháp thực nghiệm
Thông qua kinh nghiệm chơi game, quan sát thực tế, yêu cầu của cơ sở,
những lý luận được nghiên cứu và kết quả đạt được qua những phương pháp trên.
7. Cu trúc khóa lun
 Chương 1: Hệ điều hành Android
Nội dung chính của chương một là giới thiệu một cách tổng quan về
hệ điều hành Android. Hệ điều hành Android qua từng giai đoạn phát triển
và kiến trúc, hệ thống tệp tin trên hệ điều hành này.
 Chương 2: Lý thuyết đồ họa 2D
- Giới thiệu lý thuyết đồ họa 2D.
- Những thành phần cơ bản của đồ họa máy tính.
- Các ứng dụng sử dụng kỹ thuật đồ họa 2D.
- Tìm hiểu lý thuyết đồ họa của hệ điều hành Android, một số thành
phần quan trọng của đồ họa 2D của hệ điều hành này.


4
 Chương 3: Ứng dụng đồ họa 2D vào phát triển game trên hệ điều hành
Android
Xây dựng ý tưởng và lập trình game mobile.
 Chương 4: Kết luận và hướng phát triển
- Trình bày các kết quả đạt được và những khó khăn cần giải quyết.
- Định hướng phát triển.



5
 H U HÀNH ANDROID
1.1 Gii thiu chung v h u hành Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho
các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính
bảng. Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài
chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra
mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: Một
hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy
mạnh các tiêu chuẩn mở cho các thiết bị di động. Hiện tại thì Android xuất hiện hầu
như trong các sản phẩm của các nhà sản xuất lớn như Samsung, Sony, Htc… từ
điện thoại thông minh cho tới máy tính bảng, ti vi…. Và có thể nói đây là một trong
những nguyên nhân để nó phát triển mạnh tới vậy.
Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã
cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết
được điều chỉnh và phân phối Android một cách tự do khiến cho kho ứng dụng của
hệ điều hành Android phát triển một cách nhanh chóng.
Tính đến thời điểm hiện tại, Android đã trở thành hệ điều hành dành cho nền
tảng di động phổ biến nhất thế giới (chiếm đến 85%). Android phổ biến tới mức
mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, nó còn được các

nhà sản xuất tùy chỉnh để cài đặt trên các Smart TV, máy chơi game và các thiết bị
điện tử khác. Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập
trình viên và những người đam mê sử dụng mã nguồn mở để tạo ra những dự án do
cộng đồng quản lý. Những dự án này bổ sung các tính năng cao cấp cho những
người dùng thích tìm tòi hoặc đưa Android vào các thiết bị ban đầu chạy hệ điều
hành khác.

6
1.2 H u hành Android qua tn
Cho đến nay, hệ điều hành Android đã trải qua hàng loạt các thay đổi, nâng
cấp.
1.2.1 Android 1.0
Hệ điều hành Android thời gian đầu ra mắt mang những đặc điểm, tính năng
thú vị như:
 Thanh thông báo kéo từ trên xuống cho phép người dùng xem nhanh các
thông tin ngày giờ, tin nhắn, cuộc gọi…
 Màn hình chính gồm các biểu tượng chương trình người dùng hay truy cập.
 Tiện ích là các ứng dụng nhỏ trên màn hình chính, hoạt động và cung cấp
thông tin liên tục.
 Tích hợp chặt chẽ với Gmail.
1.2.2 Android 1.1
 Phiên bản cập nhật đầu tiên của hệ điều hành Android giúp chỉnh sửa các lỗi
gặp phải trên phiên bản 1.0.
 Cập nhật phần mềm tự động qua OTA (Over The Air) được bổ sung.
1.2.3 Android 1.5 Cupcake
Giao diện trông bóng bẩy, mượt hơn. Nhưng giao diện không phải là một điểm
nhấn của Android 1.5, người dùng quan tâm đến các tính năng mới mà nó mang
lại, chẳng hạn như:
 Bàn phím ảo lần đầu tiên xuất hiện.
 Cải tiến Tiện ích: Kho ứng dụng tiện ích phong phú và đa dạng hơn.

 Hỗ trợ khả năng quay phim cho camera.
 Cải tiến vùng đệm để nâng cao khả năng Copy, Cut, Paste.

7
1.2.4 Android 1.6 Donut
 Một vài điểm trong giao diện được cải thiện, vài tính năng nhỏ được thêm
vào, chức năng hỗ trợ cho mạng CDMA.
 Bổ sung tính năng có thể chạy trên nhiều độ phân giải và tỉ lệ màn hình khác
nhau, cho phép những thiết bị có nhiều độ phân giải hơn.
 Bạn có thể tìm kiếm danh bạ, ứng dụng, nhạc, tin nhắn,… tất cả đều chỉ thao
tác trong một hộp tìm kiếm.
 Giao diện màu xanh trắng đặc trưng của Android, có thể hiển thị các ứng
dụng miễn phí và trả phí hàng đầu. Giao diện camera mới, tích hợp với trình
xem ảnh tốt hơn, giảm thời gian chờ giữa hai lần chụp ảnh.
1.2.5 Android 2.0 và 2.1 Eclair
Android 2.0
Đầu tháng 9 năm 2009, Android 2.0 đã được ra mắt trên chiếc
Motorola Droid cùng các tính năng mới:
 Hỗ trợ nhiều tài khoản người dùng: Lần đầu tiên, nhiều tài khoản Google có
thể được đăng nhập trên cùng một thiết bị chạy Android. Google giờ đây cho
phép những nhà phát triển bên thứ ba tích hợp dịch vụ của họ vào trong mục
Account này, đồng thời hỗ trợ tự động đồng bộ hóa.
 Quick Contact: Gửi email, gọi điện, nhắn tin với thao tác đơn giản.
 Cải tiến bàn phím ảo.
 Trình duyệt mới: hỗ trợ HTML5, bao gồm luôn khả năng phát video ở chế
độ toàn màn hình. Hộp địa chỉ kết hợp với thanh tìm kiếm cũng lần đầu xuất
hiện trên Android.
 Giao diện mới: các biểu tượng đẹp hơn, sang trọng hơn, gọn gàng hơn nhiều
so với trước.


8
Android 2.1
Ra mắt chủ yếu để sửa lỗi và thêm hàm API để lập trình viên can thiệp sâu
hơn vào hệ thống và nó hỗ trợ thêm vài tính năng như Live Wallpaper, chuyển
giọng nói thành văn bản và một màn hình khóa mới.
1.2.6 Android 2.2 Froyo
Android 2.2 được ra mắt trong năm 2010. Giao diện màn hình chính đã được
thay đổi, từ 3 màn hình chính tăng lên thành 5 màn hình. Dãy nút kích hoạt nhanh
chế độ gọi điện, web và App Drawer cũng đã xuất hiện.
Tính năng trạm phát Wifi (Wifi Hotspot) cũng xuất hiện, cách copy, paste
mới tốt hơn. Nhiều tính năng bảo mật mới cũng xuất hiện. Việc hỗ trợ duyệt web
với Flash là điểm đáng quan tâm. Bổ sung thêm tính năng di chuyển một phần ứng
dụng từ bộ nhớ máy sang thẻ nhớ, giúp tiết kiệm dung lượng cho điện thoại.
1.2.7 Android 2.3 Gingerbread
Nửa năm sau khi FroYo xuất hiện, Google đã trở lại với bản Android 2.3.
Google giới thiệu nó với nhiều tính năng mới, tập trung vào việc phát triển game,
đa phương tiện và phương thức truyền thông mới.
Các tính năng mới:
 Giao diện: Giao diện màu đen tuyền, màu sắc này giúp các thiết bị tiết kiệm
pin hơn.
 Hai thanh chặn khi chọn văn bản: Thanh chặn này giúp người dùng có thể
chọn từng kí tự một, tiện lợi hơn.
 Bàn phím được cải tiến: Các phím đẹp hơn, đen hơn và cả kí tự cũng được
thay đổi.
 Công cụ quản lí pin và ứng dụng: Một công cụ mới đã ra mắt với biểu đồ
nhằm theo dõi mức độ tiêu thụ pin cùng việc quản lí ứng dụng đang chạy sẽ
giúp đỡ người dùng.

9
 Hỗ trợ máy ảnh trước.

 Hỗ trợ kết nối NFC.
1.2.8 Android 3.x HonyComb
Honeycomb là phiên bản Android dành riêng cho máy tính bảng. Android
3.0 là nền tảng cho Android 4.0 với các tính năng như sử dụng tông màu đen và
xanh dương làm tông màu chủ đạo, màn hình chính và tiện ích cũng được thiết kế
lại, không còn nút bấm vật lí (Home, Search, Menu), cải thiện thanh hành động
(Action Bar). Ngoài ra, Honeycomb còn hỗ trợ cho việc bố cục ứng dụng theo
nhiều cột để hướng đến việc hỗ trợ máy tính bảng tốt hơn.
1.2.9 Android 4.0 Ice Cream Sandwich
Cuối năm 2011, Google chính thức giới thiệu điện thoại Galaxy Nexus, thiết
bị đầu tiên trên thị trường sử dụng Android 4.0 Ice Cream Sandwich. Android 4.0
hỗ trợ một bộ font mới tên là Roboto được cho là tối ưu hóa để dùng trên các màn
hình độ phân giải càng ngày càng cao, đồng thời để hiển thị được nhiều thông tin
hơn trên màn hình. Hệ thống thông báo của Android đã được làm mới hoàn toàn,
đẹp hơn, tiện dụng hơn, nhất là tính năng trượt ngang để xóa từng thông báo riêng
lẻ. Bàn phím cũng được làm mới với khả năng tự động sửa lỗi cao hơn, việc sao
chép, cắt dán chữ và nội dung cũng tốt hơn bao giờ hết.
1.2.10 Android 4.1 Jelly Bean
 Giao diện đơn giản hơn giúp chúng ta dễ dàng theo dõi những thông tin xuất
hiện trên màn hình, đặc biệt là khi điều khiển các ứng dụng.
 Sự xuất hiện của Google Now với việc nâng cao khả năng tìm kiếm, thay đổi
giao diện, tự động theo dõi thói quen sử dụng để đưa ra những thông tin
chính xác và thích hợp với người dùng hơn.

10
 Nhưng quan trọng hơn hết của Jelly Bean không phải là về giao diện hay ứng
dụng mới mà về Project Butter giúp mang lại độ mượt chưa từng có cho
Android.
1.2.11 Android 4.2 Jelly Bean
Ngày 30/10/2012, Google chính thức tuyên bố cập nhật hệ điều hành

Android của hãng lên phiên bản 4.2 và vẫn giữ nguyên tên gọi “Jelly Bean”.
Android 4.2 mang trong mình nhiều tính năng mới như hỗ trợ Miracast, bàn phím
có thể nhập liệu bằng cách vẽ các đường nét từ kí tự này đến kí tự khác, chế độ
chụp ảnh toàn cảnh, ứng dụng Gmail mới và còn rất nhiều thứ khác nữa.
Trong quá trình giới thiệu Android 4.2, Google rất tập trung nói về Miracast.
Google cũng đã áp dụng một số kĩ thuật từ camera Street View của hãng cho tính
năng chụp ảnh toàn cảnh mới có tên Photo Sphere.
Một cải tiến lớn và quan trọng của Android 4.2 đó là việc hỗ trợ nhiều tài
khoản người dùng trên máy tính bảng để có thể dễ dàng chia sẻ trong gia đình hoặc
nơi làm việc. Mỗi tài khoản sẽ có dữ liệu ứng dụng của riêng họ.
1.2.12 Android 4.3 Jelly Bean
Ngày 24/7/2013, Google đã chính thức ra mắt hệ điều hành này. Đây là
phiên bản Android mới nhất đang có mặt trên thị trường và đi kèm những tính năng
mới như hỗ trợ kết nối Bluetooth Smart, bộ API OpenGL ES 3.0, bổ sung tính năng
sử dụng Wifi để định vị ngay cả khi người dùng tắt kết nối này đi cùng nhiều thay
đổi lớn nhỏ khác.
Google bổ sung thêm một tính năng mới cho Android 4.3 đó là Restricted
Profile. Mỗi thành viên sẽ có một “hồ sơ” riêng của mình và chỉ có thể làm được
những gì được chỉ định trong “hồ sơ”.

11
1.2.13 Android 4.4 Kitkat
 Google tiết lộ rằng “mục tiêu của chúng tôi với Android KitKat đó là mang
trải nghiệm Android đáng kinh ngạc đến cho mọi người”. Những cải tiến trên
Android Kitkat bao gồm chế độ toàn màn hình, hiệu ứng chuyển cảnh màn
hình, Storage Access Framework, Chromium WebView, NFC, cổng hồng
ngoại…
 Giao diện: Font chữ màu đen, thể hiện rõ các dòng chữ trên thanh thông báo.
Có bộ biểu tượng thư mục mới, giao diện nhìn chung được làm phẳng bớt,
loại bỏ các chi tiết đổ bóng và thêm hiệu ứng trong suốt vào nhiều phần.

 Thao tác nhanh hơn, kết hợp dịch vụ tìm kiếm Google Search cho phép dò và
tự động liên kết các danh bạ có sẵn trên Internet vào số điện thoại mới.
 Nhắn tin Text Messages được gộp chung với ứng dụng nhắn tin và liên lạc
online.
 Bàn phím mặc định được bổ sung thêm các biểu tượng.
 Thay đổi giao diện dễ dàng hơn.
1.2.14 Android 5.0 Lollipop
Sau hơn một năm Android 4.0 KitKat ra mắt, Google đã chính thức ra mắt
phiên bản mới nhất với tên gọi Android Lollipop, được đánh giá là hệ điều hành có
những thay đổi rõ rệt và đáng kể nhất trong lịch sử Android từ trước đến nay.
 Thiết kế "Material" mới.
 Ngôn ngữ đồ họa mới của Android được lấy cảm hứng từ thiên nhiên, vật lý
và phong cách đậm, đổ bóng giống như in ấn.
 Android trên mọi màn hình.
 Thiết kế báo nhắc hoàn toàn mới
 Hỗ trợ chip 64 bit
 Cải thiện thời lượng pin

12
 Mở khóa dựa trên bối cảnh
 Tách bạch công việc và giải trí
 Tìm kiếm bối cảnh cải tiến
1.3 Kin trúc h u hành Android
Hệ điều hành Android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux
(phiên bản 2.6), tầng Libraries & Android runtime, tầng Application Framework và
trên cùng là tầng Application.

Hình 1.1: Kiến trúc hệ điều hành Android

13

1.3.1 Tng ht nhân Linux
Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt
nhân Linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi
hoạt động của điện thoại muốn thi hành được thì đều thực hiện ở mức cấp thấp. Ở
lớp này bao gồm quản lý bộ nhớ, giao tiếp với phần cứng, thực hiện bảo mật, quản
lý tiến trình.
Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được
nâng cấp và chỉnh sửa rất nhiều để phù hợp với tính chất của những thiết bị cầm
tay, như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu
kết nối mạng không dây.
Tầng này có các thành phần chủ yếu:
- Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận
những điều khiển của người dùng trên màn hình (di chuyển, cảm ứng…).
- Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ
camera trả về.
- Bluetooth Driver: Điều khiển thiết bị thu và phát sóng Bluetooth.
- USB driver: Quản lý hoạt động của các cổng giao tiếp USB.
- Keypad driver: Điều khiển bàn phím.
- Wifi driver: Chịu trách nhiệm về việc thu phát sóng wifi.
- Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tín hiệu
dạng audio thành tín hiệu số và ngược lại.
- Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô
tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông
được thực hiện.

14
- M-System Driver: Quản lý việc đọc, ghi… lên các thiết bị như thẻ nhớ SD,
flash.
- Power Management: Giám sát việc tiêu thụ điện năng.
1.3.2 Tng Library

Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể
sử dụng, các thư viện đó được tập hợp thành một số nhóm như:
- Thư viện hệ thống (System C library): Thư viện dựa trên chuẩn C, được sử
dụng bởi hệ điều hành.
- Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát và ghi
các loại định dạng âm thanh, hình ảnh, video thông dụng.
- Thư viện web (LibWebCore): Đây là thành phần để xem nội dung trên web,
được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để
các ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công
nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX…
- Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng.
- …
1.3.3 Phn Android Runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có
thể hoạt động. Runtime có 2 bộ phận tương tự như mô hình chạy Java trên máy tính
thường. Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như Java IO,
Collection, File Access. Thứ hai là một máy ảo Java (Dalvik Virtual Machine).
Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của Android
không được chạy trên JRE của Sun mà là chạy bằng máy ảo Dalvik do Google phát
triển.

15
1.3.4 Tng Application Framework
Tầng này xây dựng bộ công cụ – các phần tử ở mức cao để các lập trình viên
có thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả năng sử
dụng chung để tiết kiệm tài nguyên.
Đây là một nền tảng mở, điều đó có 2 điều lợi:
- Với các hãng điện thoại: Có thể tùy biến để phù hợp với cấu hình điện thoại
mà họ sản xuất cũng như để có thể có nhiều mẫu mã, style hợp thị hiếu người dùng.
Vì thế nên tuy cùng chung nền tảng Android mà điện thoại của Google có thể khác

với Motorola, HTC, T-Mobile, Samsung…
- Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầng
trên mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên
tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc. Một
tập hợp API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy
nền, liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao…
1.3.5 Tng Application
Đây là tầng ứng dụng giao tiếp với người sử dụng, bao gồm các ứng dụng
như:
- Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành: Gọi điện, quản
lý danh bạ, duyệt web, nhắn tin, lịch làm việc, đọc email, bản đồ, quay phim chụp
ảnh…
- Các ứng dụng được cài thêm như các phần mềm học tiếng Anh, các trò chơi,
từ điển…
Các chương trình có đặc điểm là:
- Viết bằng Java có phần mở rộng là apk.

16
- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine (máy
ảo) được dựng lên để phục vụ cho nó.
- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời
điểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên với mỗi ứng dụng
chỉ có duy nhất một thực thể được phép chạy. Điều đó có tác dụng hạn chế sự lạm
dụng tài nguyên, giúp hệ thống hoạt động tốt hơn.
- Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn
khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống.
- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di
động khác, Android cho phép một ứng dụng của bên thứ 3 chạy nền. Các ứng dụng
đó chỉ có một hạn chế là không được phép sử dụng quá 5% công suất CPU. Điều
đó nhằm để tránh độc quyền trong sử dụng CPU.

- Ứng dụng không có điểm vào cố định, không có phương thức main để bắt
đầu.
1.4 H thng tp tin trên h u hành Android
1.4.1 Tng quan v h thng file trên Android
Trong Android các file được tổ chức lưu trữ thành các thư mục theo mô hình
phân cấp. Tham chiếu đến 1 file bằng tên hoặc đường dẫn. Các câu lệnh thao tác
file cho phép thực hiện các chức năng như dịch chuyển, sao chép toàn bộ thư mục
cùng với các thư mục con chứa trong nó.
Có thể sử dụng các ký tự, dấu gạch dưới, chữ số, dấu chấm và dấu phảy để
đặt tên file. Không được bắt đầu một tên file bằng dấu chấm hay chữ số. Những ký
tự khác như “/”, “?”, “*”, là ký tự đặc biệt được dành riêng cho hệ thống. Chiều dài
của tên file có thể tới 256 ký tự. Trong hệ điều hành Android có sự phân biệt tên
file chữ hoa và chữ thường, điều đó có nghĩa là trong cùng một thư mục có thể tồn
tại những file có tên là: File, FILE, file… và chúng là những file khác nhau.

17
Tất cả các file trong Android có chung cấu trúc vật lý là chuỗi các byte. Cấu
trúc thống nhất này cho phép Android áp dụng khái niệm file cho mọi thành phần
dữ liệu trong hệ thống. Thư mục cũng như các thiết bị được xem như file. Chính
việc xem mọi thứ như các file cho phép Android quản lý và chuyển đổi dữ liệu một
cách dễ dàng. Một thư mục chứa các thông tin về thư mục, được tổ chức theo một
định dạng đặc biệt. Các thành phần được xem như file, chúng được phân biệt dựa
trên kiểu file: Ordinary file, directory file, character device file và block device file.
1.4.2 Các kiu file trên Android
Trong hệ điều hành như Windows, người ta phân biệt rõ file (tập tin) và folder (hay
directory: thư mục) là 2 thành phần khác hẳn nhau. Tuy nhiên trên hệ điều hành
Android (cũng như Linux) thì coi directory cũng là file và nó là một loại file đặc
biệt.
1.4.3 T chc quyn s hu và quyn hn trên file
Tương tự trên Linux, với hệ điều hành Android một file có thể liên kết với

một người sử dụng và một nhóm người sử dụng. Sự liên kết đó là một tập hợp các
quyền hạn truy cập bao gồm quyền được phép đọc (read), được phép ghi (write) và
được phép thực thi (execute).
Cụ thể như sau: Một file sẽ có những quyền hạn tương ứng với 9 ký tự theo
mẫu sau: Với ký tự r w x nghĩa là có quyền tương ứng với ký hiệu viết tắt đó, “-”
nghĩa là không có quyền hạn đó.
1.5 Các thành phn ca mt ng dng trên Android
Các thành phần: Việc hiểu được các thành phần tạo nên một ứng dụng
Android là rất cần thiết cho việc lập trình. Các thành phần này được chia làm 6 loại
bao gồm:

×