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

Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình (Tetris) (Có source code)

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 (2.61 MB, 37 trang )

Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu
NHẬN XÉT
(Của giảng viên hướng dẫn)





























Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu
Phụ lục 1
Bảng các ký tự viết tắt
Ký tự Nghĩa của từ Trang
PDA Personal Digital Assistant - Thiết bị kỹ thuật số hỗ trợ cá nhân 1
OS Operating system – Hệ điều hành 1
3G Third-generation technology – Công nghệ 3G 2
OpenGL Open Graphics Library – Thư viện đồ hoạ mở 2
XML eXtensible Markup Language -Ngôn ngữ Đánh dấu Mở rộng 3
NFC Near Field Communication – Truyền thông giao tiếp gần 7
CSS Cascading Style Sheets - Tập tin định kiểu theo tầng 10
DOM Document Object Model - Tài liệu Mô hình Đối tượng 10
HTML HyperText Markup Language-Ngôn ngữ Đánh dấu Siêu văn bản

10
AJAX Asynchronous JavaScript and XML - JavaScript và XML không
đồng bộ
10
IO Input/Output – Thiết bị nhập/xuất 10
JVM Java Virtual Machine – Máy ảo java 10
SMS Short Message Services - Dịch vụ tin nhắn ngắn 12
rwx Read/write/execute – Đọc/viết/thực thi 14
API Application Programming Interface – Lập trình giao diện ứng
dụng
22
SDK Software Development Kit – Bộ công cụ phát triển phần mềm 23

JDK Java Development Kit - Bộ công cụ phát triển java 23
ADT Android Development Tools – Những công cụ phát triển
Android
25
APK Android PacKage file 29

Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu
Phụ lục 2
Bảng hình ảnh sử dụng trong bài
Hình ảnh Trang
Hình 1: Quá trình phát triển của hệ điều
hành Android

6
Hình 2: Kiến trúc hệ điều hành Android 8
Hình 3: Bảng biểu diễn kiểu file trong
Android
14
Hình 4: Cấu truc phân cấp thư mục trong
Android
16
Hình 5: Thị phần các bản phân phối các
phiên bản Android 9/2012
19
Hình 6: Top 10 thiết bị chạy Android
phổ biến nhất thế giới
tính đến thời điểm hiện tại
20

Hình 7: Giao diện ứng dụng 21
Hình 8: Mô hình tương tác của ứng dụng 22
Hình 9: Chu kỳ sống của Activity
23
Hình 10: Android SDK 24
Hình 11: Cài đặt ADT-plugin 25
Hình 12: Tạo mới project Android
Application
26
Hình 13: Thông tin project 27
Hình 14: Hoàn thành việc tạo mới
project
27
Hình 15: Project Android App Trò chơi
xếp hình
28
Hình 16: Thư mục res của ứng dụng 29
Hình 17: Xuất ra file ứng dụng Android 29
Hình 18: Thiết kê giao diện ứng dụng 30
Hình 19: Menu của ứng dụng 30
Hình 20: Lưu điểm của người chơi 31
Hình 21: Popup kết thúc trò chơi. 31

Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu
Mục Lục
NỘI DUNG 1

A.


GIỚI THỆU CHUNG VỀ HỆ ĐIỀU HÀNH 1

1.

Sơ lược về các hệ điều hành 1

2.

Giới thiệu về android 2

3.

Sơ lược về lịch sử phát triển 3

4.

Các phiên bản chính thức đã ra mắt 7

5.

Kiến trúc hệ điều hành Android. 7

6.

Hệ thống tập tin trên hệ điều hành. 12

7. So sánh giữa các hệ điều hành. 16
B.


VIẾT ỨNG DỤNG ANDROID: TRÒ CHƠI XẾP HÌNH 21

I.

Phân tích ứng dụng 21

1.

Phân tích 21

2.

Các mô hình hóa của chương trình 22

II. Xây dựng ứng dụng 23
1.

Tiến hành cài đặt công cụ phát triển 23

2.

Xây dựng ứng dụng 26

III.

Thiết kế giao diện 29

1.

Giao diện ứng dụng 29


2. Menu của ứng dụng 30
3.

Kết thúc trò chơi 30

C.

KẾT LUẬN 32


Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 1
NỘI DUNG
A. GIỚI THỆU CHUNG VỀ HỆ ĐIỀU HÀNH
1. Sơ lược về các hệ điều hành
Hệ điều hành là chương trình chạy trên các hệ thống máy tính, quản lý các tài
nguyên trên máy tính và là môi trường cho các chương trình ứng dụng chạy trên nó.
Ngày nay khái niệm hệ điều hành không chỉ trên máy vi tính mà còn được mở
rộng cho nhiều thiết bị điện tử khác chẳng hạn như điện thoại thông minh (smart
phone),các thiết bị cầm tay PDA….
Như vậy hệ điều hành di động là hệ điều hành chạy trên hệ thống máy có tính di
động cao. Với đặc thù đó, hệ điều hành di động phải có những khả năng đặc biệt mà
những hệ điều hành thông thường không có được. Chẳng hạn như nó chạy trên máy có
cấu hình máy hạn chế về tốc độ bộ vi xữ lý, bộ nhớ sử dụng, phải chạy được ổn định
liên tục trong một thời gian dài mà chỉ sử một lượng năng lượng nhưng nhỏ, trong suốt
thời gian chạy đó có thể duy trì các kết nối mạng không dây để đam bảo việc liên lạc.
 Một số hệ điều hành tiêu biểu:
- Trên máy tính cá nhân: MS DOS,MS WINDOW, MAC OS, LINUX, UNIX.

- Trên thiết bị di động: Android, Symbian, Window Phone, iOS, BlackBerry,
Bado OS, Palm OS.
Ngoài ra còn có các hệ điều hành chạy trên mainframe, server, thẻ chíp,….
 Các chức năng chính của hệ điều hành
Quản lý chia sẻ tài nguyên
- Tài nguyên phần cứng (CPU, bộ nhớ, các thiết bị IO)
- Tài nguyên phần mềm (các file, các ứng dụng dùng chung)
Tạo môi trường ảo ít phụ thuộc vào phần cứng để các phần mềm ứng dụng hoạt
động, phục vụ người dùng.
 Phân loại hệ điều hành
- Theo loại thiết bị mà hệ điều hành hoạt động
- Theo số user và số chương trình cùng hoạt động
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 2
o Hệ điều hành đơn nhiệm một người dùng
o Hệ điều hành đa nhiệm một người dùng
o Hệ điều hành đa nhiệm nhiều người dùng
o …
- Theo góc độ người dùng
o Một người dùng
o Nhiều người dùng
- Theo mô hình xử lý
o Hệ thống xử lý theo lô
o Hệ thống xử lý theo lô đa chương
o Hệ thống chia sẻ thời gian
o Hệ thống song song
o Hệ thống phân tán
o Hệ thống xử lý thời gian thực
2. Giới thiệu về android

Android là một hệ điều hành di động dựa trên nền tảng linux phiên bản 2.6 dành
cho các dòng điện thoại SmartPhone. Đầu tiên được ra đời bởi công ty liên hợp
Android, sau đó được Google mua lại và phát triển từ năm 2005 và trở thành một hệ
điều hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưa chuộng nhiều trên thế
giới.
Hệ điều hành Android một hệ điều hành rất mạnh, có bảo mật cao, hỗ trợ được
nhiều công nghệ tiên tiến, tương thích với nhiều phần cứng, hỗ trợ nhiều loại bộ nhập
dữ liệu như keyboard, touch và trackball. Android là hệ điều hành di động nên có khả
năng kết nối cao với các mạng không dây. Hỗ trợ công nghệ OpenGL nên có khả năng
chơi các phương tiện media, hoạt hình cũng như trình diễn các khả năng đồ họa khác
cực tốt, là tiền đề để phát triển các ứng dụng có giao diện phức tạp chẳng hạn như là
các trò chơi.
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 3
Android liên tục được phát triển, mỗi bản cập nhật từ google là mỗi lần Android
được tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệ
mới. Chẳng hạn như theo một đánh giá thì Android phiên bản 2.2 hoạt động nhanh hơn
bản 2.1 tới 450%. Hiện nay, phiên bản mới nhất 4.2 phát hành 2012 và đang tiếp tục
được cập nhật.
Năm 2008, hệ điều hành Android đã chính thức mở toàn bộ mã nguồn, điều đó
cho phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao cho
phù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọng nữa là hệ điều hành mở
này hoàn toàn miễn phí, không phải trả tiền nên giúp họ tiết kiệm khá lớn chi phí phát
triển hệ điều hành. Những điều đó là cực kỳ tốt không chỉ đối với các hãng sản xuất
điện thoại nhỏ mà ngay cả với những hãng lớn như Samsung, HTC….
Với Google, vì Android hoàn toàn miễn phí, Google không thu tiền từ những
hãng sản xuất điện thoại, tuy không trực tiếp hưởng lợi từ Android nhưng bù lại, những
dịch vụ của hãng như Google Search, Google Maps,… nhờ có Android mà có thể dễ
dàng xâm nhập nhanh vào thị trường di động vì mỗi chiếc điện thoại được sản xuất ra

đều được tích hợp hàng loạt dịch vụ của Google. Từ đó hãng có thể kiếm bội, chủ yếu
là từ các nguồn quảng cáo trên các dịch vụ đó.
Với các nhà phát triển ứng dụng (developers), việc hệ điều hành Android được sử dụng
phổ biến đồng nghĩa với việc họ có thể thoải mái phát triển ứng dụng trên nền Android
với sự tin tưởng là ứng dụng đó sẻ có thể chạy được ngay trên nhiều dòng điện thoại
của các hãng khác nhau. Họ ít phải quan tâm là đang phát triển cho điện thoại nào,
phiên bản bao nhiêu vì nền tảng Android là chung cho nhiều dòng máy, máy ảo Java đã
chịu trách nhiệm thực thi những ứng dụng phù hợp với mỗi dòng điện thoại mà nó
đang chạy. Tất cả các chương trình ứng dụng được viết bằng ngôn ngữ Java kết hợp
với XML nên có khả năng tương thích cao.
3. Sơ lược về lịch sử phát triển
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 4
 Năm 2003, một công ty hoạt động trong lĩnh vực phát triển phần mềm cho các
thiết bị di động mang tên là Android được thành lập bởi 4 thành viên là:
- Andy Rubin (nhà đồng sáng lập công ty Danger - công ty chuyên về các nền
tảng, phần mềm, thiết kế, và dịch vụ cho các thiết bị điện toán di động).
- Rich Miner (nhà đồng sáng lập công ty truyền thông Wildfire
Communications).
- Nick Sears (một trong những vị phó chủ tịch của nhà cung cấp mạng viễn
thông di động T-Mobile ở Mỹ).
- Chris White (trưởng bộ phận thiết kế và phát triển giao diện của WebTV).
 Năm 2005, sau hơn 2 năm hoạt động thì Android được Google mua lại với một
khoản tiền không được tiết lộ và chính thức trở thành một trong những công ty
con của gã khổng lồ ngành tìm kiếm. Đồng thời cả Andy Rubin, Rich Miner và
Chris White đều quyết định tiếp tục làm việc tại chính công ty của mình sau khi
được mua lại. Ở thời điểm đó, nhiều người không thực sự chú ý vào thương vụ
này, thế nhưng nó lại đánh dấu bước đi đầu tiên của Google trong thị trường
thiết bị di động thế giới.

 Tại Google, một nhóm nghiên cứu đứng đầu là Rubin đã bắt đầu phát triển một
nền tảng dành cho thiết bị di động dựa trên nhân của hệ điều hành Linux. Và sau
đó, hệ điều hành này cũng được giới thiệu đến các nhà phát triển phần cứng lẫn
phần mềm, báo hiệu sự có mặt của một "ngôi sao" khác trên "thiên hà" thị
trường công nghệ di động.
 Đến tháng 12 năm 2006, suy đoán về ý định gia nhập thị trường truyền thông di
động của Google tiếp tục được củng cố sau khi BBC và The Wall Street Journal
cho biết rằng hãng này muốn đưa ứng dụng và chức năng tìm kiếm của mình lên
các thiết bị di động. Lập tức ngay sau đó, nhiều tin đồn về chiếc điện thoại mang
thương hiệu Google xuất hiện khắp các phương tiện truyền thông.
 Tháng 5 năm 2007, liên minh các nhà sản xuất thiết bị cầm tay - Open Handset
Alliance (OHA) được thành lập bao gồm Google và một số thành viên khác của
cộng đồng Linux mở như: Broadcom Corporation, Google, HTC, Intel, LG,
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 5
Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung
Electronics, Sprint Nextel, T-Mobile và Texas Instruments. Mục tiêu của OHA
là phát triển tiêu chuẩn mở cho các thiết bị di động và sản phẩm đầu tiên của
liên minh này đó là Android, một nền tảng di động được xây dựng trên nhân
Linux phiên bản 2.6.
 Tính cho đến thời điểm này, Google Android đã có 6 phiên bản chính thức và 1
phiên bản được đặt tên theo những món tráng miệng, với ngụ ý người dùng sẽ
dễ dàng sử dụng hệ điều hành của họ như thưởng thức các món ăn đó. Các phiên
bản Android có tên mã lần lượt là: Cupcake 1.5, Donut 1.6, Éclair 2.0, Froyo
2.2, Gingerbread 2.3, Honeycomb 3.0/3.1 và phiên bản Android 4.0 Ice Cream
Sandwich.
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 6


Hình 1: Quá trình phát triển của hệ điều hành Android
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 7
4. Các phiên bản chính thức đã ra mắt
 Android 1.5 Cupcake: đây là phiên bản đầu tiên với nhiều tính năng và cải
tiến mới mang tính văn phòng đến cho người dùng T-Mobile G1. Điểm nổi
bật ở phiên bản này là người dùng có thể quay video và tải lên YouTube từ
chính thiết bị của mình.
 Android 1.6 Donut: nâng cao khả năng hỗ trợ ứng dụng thông qua Android
Market trên các thiết bị và một số tính năng trên có trên nền tảng.
 Android 2.2 Froyo: cải thiện tốc độ thực thi, hỗ trợ Adobe Flash và thêm
chức năng tethering cho phép biến chiếc điện thoại thành một điểm phát
wifi.
 Android 2.3 Gingerbread: tiếp tục nâng cấp giao diện người dùng, cải thiện
bàn phím cảm ứng, tính năng sao chép dữ liệu (copy/paste) và hỗ trợ truyền
thông gần (NFC – Near Field Communication)
 Android 3.0/3.1 Honeycomb: đây là phiên bản hệ điều hành Android dành
riêng cho máy tính bảng được phát hành nhằm đạt được hiệu quả cao hơn
trong việc sử dụng các thiết bị có kích thước màn hình lớn và giới thiệu thêm
một số tính năng mới trên giao diện người dùng cho máy tính bảng.
5. Kiến trúc hệ điều hành Android.
Hệ điều hành Android có 4 tầng từ dưới lên trên:
- Tầng kernel Linux (Phiên bản 2.6).
- Tầng Libraries & Android runtime.
- Tầng Application Framework.
- Tầng Application.
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình


Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 8

Hình 2: Kiến trúc hệ điều hành Android
a. Tầng hạt nhân Linux (Linux Kernel layer)
Hệ điều hành Android được phát triển dựa trên hạt nhân linux, cụ thể là linux
kernel 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 được thực hiện ở mức cấp thấp ở lớp này
bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver
model), thực hiện bảo mật (security), quản lý tiến trình (process).
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à sửa đổi 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ần kết nối mạng không
dây….
Tầng này có các thành phần chủ yếu :
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 9
- 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 lên màn hình (di chuyển, cảm ứng…).
- Camera Driver : Điều kiể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ị phát và thu 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ính 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.

- M-System Driver : Quản lý việc đọc ghi… lên các thiết bị nhớ như thẻ SD,
flash.
- Power Madagement : Giám sát việc tiêu thụ điện năng.
Tầng Library và Android runtime: Phần này có 2 thành phần là phần Library và
Android Runtime.
b. Tầng Libraries.
 Libraries
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 chỉ bởi hệ điều hành.
- Thư viện Media (Media Libraries) : Có nhiều mã để 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.
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 10
- 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.
- …
 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. Phần này 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,
Collections, 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 hệ điều

hành Android không được chạy bằng JRE của Oracle (JVM) mà là chạy bằng máy ảo
Dalvik do Google phát triển.
c. 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 sản xuất đ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ó nhiều mẫu mã, style (phong cách) 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 hẳn với Motorola, HTC, T-Mobile, Samsung…
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 11
- 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 …
Giới thiệu một số thành phần của phần này:
- Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cung
cấp công cụ điều khiển các Activity.
- Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọi điện
thoại.
- XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực.
- Location Manager: Cho phép xác định vị trí của điện thoại thoại dựa vào hệ
thống định vị toàn cầu GPS và Google Maps.
- Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người dùng
cũng như tổ chức quản lý các giao diện giữa các ứng dụng.
- Notication Manager : Quản lý việc hiển thị các thông báo (như báo có tin nhắn,

có e-mail mới ).
- Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các file
hình ảnh, âm thanh, layout, string. (Những thành phần không được viết bởi ngôn
ngữ lập trình).
- …
d. Tầng Application
Đây là lớp ứng dụng giao tiếp với người 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 là gọi điện (phone), quản lý
danh bạ (Contacts), duyệt web (Browser), nhắn tin (SMS), lịch làm việc (Calendar),
đọc e-mail (Email-Client), bản đồ (Map), quay phim chụp ảnh (camera)…
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 12
Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các trò chơi
(Game), từ điển…
Các chương trình có các đặc điểm là :
- Viết bằng Java, phần mở rộng là apk.
- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng
lên để phục vụ cho nó. Nó có thể là một Active Program (Chương trình có giao
diện với người sử dụng) hoặc là một background (chương trình chạy nền hay là
dịch vụ).
- 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 thì có duy nhất một thực thể (instance) được phép chạy mà thôi. Đ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ằn 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ứ ba được phép chạy nền. Các
ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dung quá

5~10% công suất CPU, điều đó nhằn để tránh độc quyền trong việc sử dụng
CPU.
6. Hệ thống tập tin trên hệ điều hành.
Vấn đề quản lý hệ thống tập tin. Phần này có điểm thuận lợi để tìm hiểu đó là vì
được phát triển từ nhân linux nên hệ thống tập tin trên Android cực kỳ giống hệ thống
tập tin trên linux như là về cách tổ chức, những quyền hạn của người sử dụng lên file…
a. Tổng quan về hệ thống file trên Android.
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 13
Trong Android, các file được tổ chức thành các thư mục, theo mô hình phân cấp.
Tham chiếu đến một file bằng tên và đườ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 1 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
Tất cả các file trong Android có chung cấu trúc là chuỗi các byte (byte stream). 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ư các 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.
b. Các kiểu file trên Android
Trong nhiều hệ điều hành như window, 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.
Thực tế còn một số loại file nữa có thể liệt kê theo bảng sau :
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 14

Hình 3: Bảng biểu diễn kiểu file trong Android
c. Tổ chức quyền sở hữu và quyền hạn trên file
Tương tự trên hệ thống linux, trên 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ý tự viết tắt đó, – nghĩa là không có
quyền hạn đó.
3 ký tự đầu tiên là quyền hạn người sở hữu file
3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu file
3 ký tự cuối là quyền hạn của những người không thuộc nhóm sở hữu file.
Ví dụ : Một file có dãy ký tự biểu diễn quyền hạn là rwxr-xr— thì điều đó có nghĩa :
3 ký tự đầu là rwx : người sở hữu có thể đọc, ghi và thực thi file.
3 ký tự tiếp theo là r-x thì nhóm tài khoản sở hữu file có quyền đọc và thực thi file chứ
không có quyền ghi, chỉnh sửa file.
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 15
3 ký tự cuối là r– nghĩa là những người không sở hữu file chỉ được phép đọc mà không
thể chỉnh sửa hay thực thi file.
Trên hệ thống Android, để biết xem được quyền hạn đó, ta có thể sử dụng câu lệnh ls –
l –d. Ví dụ : ls -l -d /mnt/sdcard/TimHieuAndroid để xem quyền hạn của file
/mnt/sdcard/TimHieuAndroid thì có thể trả về kết quả như sau:

d-rwxr-xr system sdcard_rw 2012-12-9 21:00 TimHieuAndroid
Thì những thông tin có thể lấy về là :
- Ký tự đầu tiên là chữ d : vậy file đó có kiểu là thư mục hay là file bao hàm
- Chuỗi ghi quyền hạn là rwxr-xr thì có nghĩa
o (rwx): Người sở hữu được phép đọc, chỉnh sửa và thực thi file
o (r-x): Nhóm tài khoản sở hữu được phép đọc, thực thi file.
o (r ) : Những người không sở hữu file được phép đọc, không ghi, không
thực thi file.
- Chuỗi miêu tả file : sdcard_rw nghĩa là đây thuộc thiết bị thẻ nhớ sd, đọc và ghi
được.
- 2012-12-9 21:00 Thời gian chỉnh sửa lần cuối.
- TimHieuAndroid: tên của file.
Ngoài ra có 2 lệnh khác cũng hữu dụng là lệnh chown để thay đổi quyền sở hữu
file, lệnh chmod để thay đổi quyền hạn liên quan đến file và lệnh chgrp để thay đổi
nhóm người sở hữu file.
d. Cây thư mục trên hệ điều hành Android
Thư mục root là thư mục gốc của tất cả các file thư mục còn lại. Dưới nó có chứa
một số file thư mục hệ thống. Mỗi thư mục (trừ thư mục root) đều có một thư mục cha
chứa nó, bản thân nó cũng có thể có nhiều file thư mục con. Cấu trúc đó có thể mô tả
bằng một cây thư mục có dạng như sau :
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 16
Hình 4: Cấu truc phân cấp thư mục trong Android

Giới thiệu một vài thư mục tiêu biểu :
- /(root) : Là thư mục gốc. Là thư mục duy nhất không có thư mục cha.
- / mnt : thư mục chứa thiết bị lưu động (removeable).
- /system : chứa những thành phần cơ bản nhất của hệ thống.
- /ect : chứa những file cấu hình của hệ thống, nó cực kỳ quan trọng vì sự hoạt

động của hệ thống đều bị chi phối ở những file cấu hình này.
- /system/lost+found : chứa những tập tin bị mất lúc khởi động máy.
- /system/font : chứa những font chữ hiển thị được.
- /system/lib : chứa các thư viện để các phần mềm hoạt động (các phần mềm viết
bằng ngôn ngữ java).
- /system/app : chứa các file apk của phần mềm. (Các file cài đặt ứng dụng, kiểu
như MSI trong window hay dev trong Linux).
- /system/bin : Chứa các chương trình nội trú của hệ thống.
- ….
7. So sánh giữa các hệ điều hành.
a. So sánh giữa hệ điều hành di động và hệ điều hành trên desktop
- Giống nhau
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 17
Về bản chất hệ điều hành, những thành phần lõi hệ điều hành.
- Khác nhau
Hệ điều hành di động: hoạt động trên các thiết bị nhỏ gọn, hạn chế nhất là về vấn
đề năng lượng. Nguồn năng lượng thì có hạn, vì thế tất cả các thành phần trên thiết bị
đều phải tối ưu để tiết kiệm năng lượng, điều đó nảy sinh nhiều mâu thuẩn với nhu cầu
sử dụng của người dùng.
o Màn hình càng lớn và càng sáng thì sẻ tốn năng lượng càng nhiều.
o Bộ nhớ lớn thì chi phí về năng lượng cũng sẻ cao.
o Bộ vi xử lý càng mạnh thì càng tốn năng lượng.
Điều đó chưa kể đến việc thiết bị di động thì phải nhỏ gọn, nhẹ nhàng, vì vậy
càng đè nặng việc phải tối ưu phần cứng.
Khi đó hệ điều hành di động cũng có trách nhiệm phải tối ưu hoạt động của mình để
tiết kiệm năng lượng một cách tối đa.
o Nó phải quản lý các ứng dụng không để các ứng dụng chạy chiếm quá nhiều
tài nguyên, tránh sự độc quyền, xung đột, tranh chấp tài nguyên giữa các

ứng dụng trong khi các hệ điều hành chạy desktop thì ít chú ý hơn. Hệ điều
hành di động luôn có bộ công cụ quản lý điện năng sử dụng trong máy,
trong những tình huống cần thiết thì hệ thống sẻ tự tắt những ứng dụng
không cần thiết để duy trì các chương trình cần thiết hơn hoạt động.
o Đa số các hệ điều hành trên desktop đều cho phép nhiều ứng dụng chạy
đồng thời (đa nhiệm) và khá tự do. Trong khi đó, các hệ điều hành chạy trên
di động thường không cho phép chạy đa nhiệm, hoặc có đa nhiệm thì các
ứng dụng bị giới hạn khá nhiều.
o Việc hiển thị giao diện trên một khung hình nhỏ cũng điều khó khăn hơn so
với hệ điều hành chạy trên desktop, thường thì trên hệ điều hành di động
gần như không có giao diện cửa sổ cho phép nhiều ứng dụng cùng hiển thị
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 18
một lúc mà chỉ là một giao diện mà trên đó mỗi thời điểm chỉ hiển thị một
giao diện của một ứng dụng mà thôi.
o Hệ điều hành di động phải có khả năng hoạt động liên tục không ngừng nghĩ
để đảm bảo liên lạc, đảm bảo kết nối của thiết bị tới mạng không dây cần
kết nối trong khi vẫn di chuyển. Vì thế cần được thiết kế đặc biệt hơn so với
hệ điều hành trên desktop.
b. So sánh hệ điều hành Android với các hệ điều hành di động khác
- Giống nhau : Đều là hệ điều hành di động nên mang đầy đủ bản chất của hệ điều
hành di động nói chung.
- Khác nhau :
o Android là hệ điều hành mã nguồn mở và miễn phí trong khi các hệ điều hành
di động còn lại đều là nguồn đóng và có phí (khi một hãng thứ ba sử dụng).
o Android được phát triển từ nhân linux và nó có thể chạy tốt trên nhiều dòng
điện thoại khác nhau.
o Các ứng dụng chạy trên Android được viết bằng Java trong khi đó, ứng dụng
trên các hệ điều hành khác chủ yếu là viết bằng C/C++/Object C. Ngay cả

symbian có hỗ trợ Java thì cũng khác so với Android, trong khi hệ điều hành
Android sử dụng máy ảo Java là Dalvik VM do chính Google phát triển thì
Symbian lại sử dụng máy ảo Java là J2ME của Sun Microsystem.
Một vài con số về Android sau 5 năm ra đời và phát triển:

- Theo Google, hiện mỗi ngày có trung bình khoảng 1,3 triệu sản phẩm chạy
Android mới được kích hoạt trên toàn cầu.
- Tính đến thời điểm hiện tại, trên toàn cầu có khoảng 570 triệu thiết bị sử dụng
Android.
- Trung bình mỗi người Mỹ sở hữu 2 thiết bị chạy Android (smartphone và máy
tính bảng) và gần 1/10 dân số thế giới đang sở hữu thiết bị chạy Android.
- Theo Google, số lượng thiết bị Android sẽ cán mốc 1 tỷ trước khi nền tảng di
động này cán mốc 6 tuổi. Như vậy Android sẽ mất ít thời gian hơn so với Facebook để
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 19
cán mốc 1 tỷ người dùng (Facebook mất gần 8 năm để đạt được điều này). Điều này
thực sự ấn tượng bởi lẽ tài khoản Facebook có thể đăng ký miễn phí, trong khi muốn sở
hữu Android, người dùng sẽ phải mất khoản tiền để sở hữu thiết bị.
- Một điều khá thú vị đó là 2 phiên bản đầu tiên của Android, phiên bản 1.0 và 1.1
không được Google đặt tên mã. Chỉ đến khi phiên bản Android 1.5, Google mới bắt
đầu sử dụng tên mã cho nền tảng di động của mình (Android 1.5 có tên gọi Cupcake),
Android 2.1 (có tên mã Eclair),…


Hình 5: Thị phần các bản phân phối các phiên bản Android 9/2012

Mặc dù đã ra mắt khá lâu tuy nhiên Android 2.3 Gingerbread vẫn là phiên bản
Android phổ biến nhất thế giới với 54% số lượng thiết bị Android. Đứng thứ 2 là
Android 4.0 Ice Cream Sandwich với 25,8%. Nền tảng mới nhất Android 4.1 Jelly

Bean hiện chỉ mới chiếm 2.7%.

Google có thói quen lựa chọn tên món ăn để đặt cho các phiên bản Android của
mình, đồng thời quy tắc đặt tên theo thứ tự alphabet, nghĩa là tên gọi của phiên bản sau
sẽ là chữ cái đứng sau của phiên bản trước.
Cụ thể, tên gọi các phiên bản Android của Google là: Android 1.5 (Cupcake),
Android 1.6 (Donut), Android 2.1 (Eclair), Android 2.2 (Froyo), Android 2.3
(Gingerbread), Android 3.0 (Honeycomb), Android 4.0 (Ice Cream Sandwich),
Android 4.1 (Jelly Bean).
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 20

Hiện tại số lượng ứng dụng trên kho ứng dụng Google Play của Google dành
cho nền tảng Android là 700.000 ứng dụng.

Có đến 8/10 thiết bị chạy Android phổ biến nhất thế giới thuộc dòng sản phẩm
Galaxy của Samsung, bao gồm Galaxy S II, Galaxy S III, Galaxy S, Galaxy Note,
Galaxy Y, Galaxy Ace, Galaxy Tab 10.1 và Galaxy Nexus.


Hình 6: Top 10 thiết bị chạy Android phổ biến nhất thế giới
tính đến thời điểm hiện tại
Tìm hiểu hệ điều hành Android và viết ứng dụng trò chơi xếp hình

Nhóm thực hiện: Vũ Đình Phú & Hoàng Thị Diệu 21
B. VIẾT ỨNG DỤNG ANDROID: TRÒ CHƠI XẾP HÌNH


Hình 7: Giao diện ứng dụng

I. Phân tích ứng dụng
1. Phân tích
- Mô tả trò chơi:
o Người chơi cần xếp các mảnh rơi từ góc trên của màn hình xuống.
o Bắt đầu trò chơi, điểm của người chơi là 0 điểm.
o Xếp đủ một hàng mà không trống ô nào thì hàng đó sẽ biến mất, điểm
của người chơi sẽ tăng lên 1.
o Số điểm chính là số hàng mà người chơi đã xếp thành công.
o Trong trò chơi 7 mảnh có kiểu dáng khác nhau.
o Nếu đầy vùng chơi mà không có chỗ cho mảnh mới xuất hiện thì trò chơi
kết thúc

×