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

Tìm hiểu hệ điều hành android xây dựng ứng dụng trò chơi xếp hình trên điện thoại di động

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.91 MB, 81 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC SƢ PHẠM
KHOA TIN HỌC


KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN
NGÀNH CƠNG NGHỆ THƠNG TIN
ĐỀ TÀI:
TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID
XÂY DỰNG ỨNG DỤNG TRÒ CHƠI XẾP HÌNH
TRÊN ĐIỆN THOẠI DI ĐỘNG.

SINH VIÊN:

NGUYỄN VĂN PHƢƠNG

LỚP:

09CNTT2

CBHD:

PGS.TS LÊ VĂN SƠN

ĐÀ NẴNG, 5/2013
i


LỜI CẢM ƠN
Đầu tiên, Em xin gởi lời cảm ơn chân thành đến các Thầy, Cô ở khoa Tin học,
trường Đại học Sư Phạm, Đại học Đà Nẵng, đã tận tình dạy dỗ, dìu dắt em suốt các


năm theo học đại học.
Em xin gửi lời cảm ơn đến thầy Lê Văn Sơn, người tận tình hướng dẫn, giúp đỡ,
động viên em hoàn thành luận văn này.
Cuối cùng, con cảm ơn Ba, Mẹ và những người thân đã khích lệ, động viên con
trong thời gian học tập, nghiên cứu để có được thành quả như ngày hôm nay.
Em chân thành cảm ơn
Đà Nẵng, ngày 08 tháng 05 năm 2013
Sinh viên thực hiện

Nguyễn Văn Phương

ii


LỜI CAM ĐOAN
Tôi xin cam đoan :
1. Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của thầy Lê Văn Sơn.
2. Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên
tác giả, tên cơng trình, thời gian, địa điểm công bố.
3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,
tôi xin chịu hoàn toàn trách nhiệm.

Sinh viên

Nguyễn Văn Phương

iii



MỤC LỤC
MỞ ĐẦU ...... ……………………………………………………………………….1
I.

Đặt vấn đề ......................................................................................................... 1

II.

Mục đích, ý nghĩa và phạm vi đề tài ................................................................ 1

II.1.

Tên đề tài .......................................................................................................... 1

II.2.

Mục đích và ý nghĩa ......................................................................................... 2

II.3.

Phạm vi đề tài ................................................................................................... 2

III.

Những việc sẽ giải quyết trong đề tài ............................................................... 2

III.1. Các bước thực hiện ........................................................................................... 2
III.2. Dự kiến kết quả đạt được ................................................................................. 2
IV.


Nội dung luận văn tốt nghiệp ........................................................................... 3

CHƢƠNG I. GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID…………………..4
I.

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

I.1.

Các chức năng chính của hệ điều hành ............................................................ 4

I.2.

Các thành phần của hệ điều hành ..................................................................... 5

I.3.

Phân loại hệ điều hành...................................................................................... 5

II.

Tổng quan về hệ điều hành Android ................................................................ 6

II.1.

Lịch sử Android ................................................................................................ 6

II.2.

Các phiên bản của hệ điều hành Android (Android Platform) ......................... 7


II.3.

Ứng dụng của Android và sự phát triển của Android trong tương lai ............. 7

III.

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

III.1. Các thành phần cấu tạo nên Android (Android Architecture) ......................... 8
III.2. Hệ thống tập tin trên hệ điều hành Android ................................................... 11
III.3. So sánh giữa các hệ điều hành ........................................................................ 13
III.4. Các thành phần tạo nên ứng dụng Android (Android Application
Components) .............................................................................................................. 14
CHƢƠNG II. LẬP TRÌNH ỨNG DỤNG TRÊN HĐH ANDROID………..23
I.

Lập trình ứng dụng Android ........................................................................... 23

I.1.

Thiết lập môi trường phát triển ứng dụng ...................................................... 23

I.2.

Các thành phần trong Android Project ........................................................... 23

II.

Mơ hình Web service ..................................................................................... 25

iv


II.1.

Giới thiệu công nghệ ...................................................................................... 26

II.2.

Đặc điểm của dịch vụ web ............................................................................. 26

II.3.

Kiến trúc của dịch vụ Web ............................................................................. 28

II.4.

Xây dựng dịch vụ Web ................................................................................... 29

III.

Công nghệ Bluetooth và lập trình với Bluetooth trên Android ...................... 31

III.1. Khái niệm cơng nghệ Bluetooth ..................................................................... 31
III.2. Lập trình với Bluetooth trên Android ............................................................. 31
CHƢƠNG III. XÂY DỰNG ỨNG DỤNG TRÒ CHƠI XẾP HÌNH……...37
I.

Phân tích ......................................................................................................... 37


I.1.

Mơ tả bài tốn ................................................................................................. 37

I.2.

Luật chơi và cách chơi .................................................................................... 39

I.3.

Cách tính điểm................................................................................................ 39

I.4.

Đối tượng người chơi ..................................................................................... 40

I.5.

Phân tích yêu cầu ............................................................................................ 40

II.

Thiết kế ........................................................................................................... 41

II.1.

Use Case ......................................................................................................... 41

II.2.


Xây dựng kiến trúc chương trình ................................................................... 42

II.3.

Xây dựng cấu trúc dữ liệu và thuật toán......................................................... 44

II.4.

Biểu đồ lớp ..................................................................................................... 47

II.5.

Biểu đồ trạng thái ........................................................................................... 49

II.6.

Các màn hình chính trong trị chơi ................................................................. 51

II.7.

Cài đặt và kiểm thử......................................................................................... 55

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN……………………………………….66
III.

Kết quả đề tài .................................................................................................. 66

III.1. Những kết quả đã làm được ........................................................................... 66
III.2. Những vấn đề chưa làm được......................................................................... 66
IV.


Hướng phát triển đề tài ................................................................................... 66

IV.1. Lưu trạng thái của trò chơi khi Người chơi rời khỏi ứng dụng ...................... 67
IV.2. Hoàn thiện mơ hình phát triển trị chơi online ............................................... 67
PHỤ LỤC .... ………………………………………………………………………68
TÀI LIỆU THAM KHẢO………………………………………………………...69

v


DANH MỤC HÌNH

TÊN HÌNH VẼ

HÌNH

TRANG

Hình 1

Biểu tượng cho một số phiên bản Android

7

Hình 2

Samsung Galaxy S 4

8


Hình 3

Kiến trúc của hệ điều hành Android

8

Hình 4

Activity Lifecycle

18

Hình 5

Service Lifecycle

20

Hình 6

Truyền Intent và số liệu sang Activity khác

21

Hình 7

Tạo mới 1 ứng dụng Android

23


Hình 8

Mơ hình web service

25

Hình 9

Kiến trúc dịch vụ web service

28

Hình 10

u cầu kích hoạt Blutooth

32

Hình 11

u cầu tạo sẵn sàng

35

Hình 12

Yêu cầu ghép nối thiết bị

36


Hình 13

Giao diện trị chơi Slide Block

37

Hình 14

Biểu đồ UseCase

42

vi


Hình 15

Kiến trúc Game Loop của trị chơi

43

Hình 16

Biểu đồ lớp AndroidFileIO

47

Hình 17


Biểu đồ lớp TileView

48

Hình 18

Biểu đồ lớp Piece

48

Hình 19

Biểu đồ lớp Settings

48

Hình 20

Biểu đồ trạng thái Ingame

49

Hình 21

Biểu đồ trạng thái cho tồn bộ hệ thống

50

Hình 22


Màn hình Logo

51

Hình 23

Màn hình Ask for sound

51

Hình 24

Màn hình lựa chọn kiểu đăng nhập

52

Hình 25

Màn hình đăng nhập theo tài khoản đăng ký ở hệ thống

52

Hình 26

Màn hình đăng nhập theo tài khoản khơng cần đăng kí bởi

53

hệ thống
Hình 27


Màn hình MainMenu

53

Hình 28

Màn hình giao diện trong trị chơi

54

Hình 29

Màn hình thơng tin về tác giả của sản phẩm

54

Hình 30

Màn hình thơng tin chi tiết của người chơi

55

Hình 31

Menu và các button trong trò chơi

56
vii



DANH MỤC BẢNG
TÊN BẢNG

STT

TRANG

Bảng 1

Kiểu file trong Linux

12

Bảng 2

Quyền sở hữu và quyền hạn trên file

12

Bảng 3

Bảng hai phương thức trong một activity

15

Bảng 4

Kiểm thử giao diện


57

Bảng 5

Kiểm thử chức năng

59

Bảng 6

Kết quả kiểm thử

65

Bảng 7

Các công cụ phát triển ứng dụng về phần cứng

68

Bảng 8

Các công cụ phát triển ứng dụng về phần mềm

68

viii


DANH MỤC TỪ VIẾT TẮT

STT

TÊN VIẾT TẮT

TÊN ĐẦY ĐỦ

1

User

2

OS

3

State

Trạng thái

4

Menu

Trình đơn

5

DVM


Dalvik Virtual Machine

6

JVM

Java Virtual Machine

7

JDK

Java Development Kit

8

J2ME

Java 2 Mocro Edition

9

PDA

Personal Digital Assistant

10

CPU


Central Processing Unit

11

SDK

Software Development Kit

Người sử dụng

Operating System

ix


MỞ ĐẦU
I.

Đặt vấn đề

Từ lâu trò chơi là một phần không thể thiếu trên các máy điện thoại di động. Một
trong số đó là trị chơi Snake được bắt nguồn từ một chiếc điện thoại di động mà
Nokia trình làng năm 1997 có tên là Nokia 6110 đã mở ra một kì ngun mới cho
lĩnh vực lập trình trị chơi trên điện thoại di động.
Nhưng với sự hạn chế về đồ họa, tốc độ xử lý, cốt truyện trò chơi đã nhanh
chóng gây nhàm chán đối với người chơi. Và các cơng nghệ lập trình game lần lượt
ra đời như Brew, App Store, J2ME và đặc biệt là Android. Android là hệ điều hành
trên điện thoại di động được xây dựng dựa trên nền tảng Linux. Ban đầu nó được
phát triển bởi Android Inc, và đã được Google mua lại, và gần đây là liên minh thiết
bị cầm tay mở rộng (Open Handset Alliance). Android cho phép các nhà phát triển

viết mã được quản lý bằng ngôn ngữ Java, điều khiển thiết bị thông qua các thư viện
Java do Google phát triển.
Các thiết bị di động sử dụng hệ điều hành Android với phần cứng mạnh mẽ, các
nút bấm chơi trò chơi chuyên dụng. Thế giới trò chơi trên smart phone lại gần như
thống trị cả thế giới. Trò chơi được xây dựng trên các thiết bị di động này có hình
ảnh mượt mà hơn, tốc độ xử lý mạnh mẽ hơn cùng với những hiệu ứng rất gần với
thực tế hơn.
Cùng với đó là các loại hình trị chơi trí tuệ ln có khả năng thu hút số đơng
người chơi, đặc biệt là số người chơi thích thử thách, đấu trí.
Vì vậy em quyết định phát triển trị chơi Xếp hình với phiên bản Slide Block trên
thiết bị di động sử dụng hệ điều hành Android(2.2). Với mục đích tìm hiểu rõ hơn
về Android, các tính năng của nó và nâng cao kĩ thuật lập trình cá nhân. Hi vọng sẽ
tạo ra được một sản phẩm có ích, đẹp mắt thu hút người chơi.
II.

Mục đích, ý nghĩa và phạm vi đề tài

II.1. Tên đề tài
Nghiên cứu công nghệ phát triển Trò chơi trên điện thoại di động sử dụng hệ
điều hành android ứng dụng vào xây dựng trò chơi Xếp hình với 2 chức năng: người
chơi offline với 3 cấp độ Dễ, Bình thường,Khó, và người chơi cũng có thể chơi
online với nhiều người chơi khác thông qua bluetooth và internet. Người chơi có thể

SVTH: Nguyễn Văn Phương
Lớp : 09CNTT2

Trang 1


Tổng quan đề tài


đăng nhập vào trị chơi thơng qua 2 quyền user: người chơi đăng nhập với quyền
Guest thông tin của người chơi không được lưu trữ lại trên hệ thống, và người chơi
đăng nhập với tài khoản đã đăng kí của hệ thống thì thơng tin sẽ được lưu trữ lại.
II.2. Mục đích và ý nghĩa
Xây dựng ứng dụng trị chơi trên với mục đích và ý nghĩa như sau:
 Tạo ra một ứng dụng trò chơi Xếp hình trên thiết bị di động sử dụng hệ
điều hành Android với giao diện trực quan, đẹp mắt phục vụ nhu cầu giải
trí đặc biệt là những người đam mê, thích thử thách Trí tuệ.
 Nâng cao kĩ năng lập trình, quản lý dự án, giải quyết vấn đề.
 Nghiên cứu và nắm bắt được nền tảng lập trình trên hệ điều hành android.
 Sử dụng thành thạo một số công cụ hỗ trợ trong môi trường làm việc
II.3. Phạm vi đề tài
Ứng dụng trên các thiết bị di động sử dụng trên hệ điều hành Android 2.2 có
hỗ trợ kết nối Internet và Bluetooth. Slide Block là một trò chơi trí tuệ có khả năng:
 Người chơi có thể chơi nhiều cấp độ. Nâng cao kĩ năng logic cũng như
đây là một hình thức giải trí.
 Chơi với bạn bè trên thiết bị di động có hỗ trợ kết nối Internet, nâng tính
cạnh tranh giữa các người chơi, kích thước màn hình tương tự nhau.
III.

Những việc sẽ giải quyết trong đề tài

III.1. Các bƣớc thực hiện
 Tìm hiểu thơng tin liên quan.
 Xem xét bàn bạc tính khả thi của các yêu cầu trong ứng dụng.
 Xác định thời gian thực hiện và hoàn thành dự án.
 Lên kế hoạch để thực hiện dự án.
 Phân tích các yêu cầu của dự án.
 Phân tích thiết kế từng chi tiết của từng module.

 Dựa vào bảng phân tích thiết kế tiến hành code ứng dụng.
 Tiến hành kiểm thử ứng dụng.
 Báo cáo sẽ được viết song song trong suốt quá trình làm dự án.
III.2. Dự kiến kết quả đạt đƣợc
Slide Block hi vọng sẽ đáp ứng được một số yêu cầu như sau:

SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 2


Tổng quan đề tài

 Xây dựng hoàn chỉnh 2 chức năng.
 Đồ họa của ứng dụng đẹp mắt, các thao tác khi chơi đơn giản và tiện
dụng.
IV.

Nội dung luận văn tốt nghiệp

Tồn bộ luận văn gồm có 3 chương và phần mở đầu:
Mở đầu
Chương 1: Hệ điều hành Android
Chương 2: Tìm hiểu lập trình ứng dụng trên nền tảng Android
Chương 3: Xây dựng ứng dụng trị chơi Xếp hình
Kết luận và hướng phát triển đề tài

SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2


Trang 3


Hệ điều hành Android và lập trình ứng dụng trên Android

CHƢƠNG I. GIỚI THIỆU HỆ ĐIỀU HÀNH
ANDROID
I.

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 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ó
[6].
Ngày nay, khái niệm hệ điều hành khơng chỉ là trên máy 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 dộ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ó phải chạy
trên hệ thống máy có cấu hình máy hạn chế về tốc độ 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ử dụng một lượng điện
nă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 để
đảm 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, MACOS, LINUX,
UNIX.
 Trên điện thoại thông minh: Android, Symbian, Window Mobile, iPhone
OS, BlackBerry, S60, Bada OS, Palm OS.

 Ngồi ra cịn có các hệ điều hành chạy trên mainframe, server, thẻ chip.
I.1.

Các chức năng chính của hệ điều hành
Hệ điều hành có 2 chức năng chính sau:
 Quản lý chia sẻ tài nguyên. Tài nguyên ở đây là bao gồm:
+ Tài nguyên phần cứng (CPU, bộ nhớ, các thiết bị).
+ Tài nguyên phần mềm (các file, chương trình dùng chung).

SVTH: Nguyễn Văn Phương
Lớp : 09CNTT2

Trang 4


Hệ điều hành Android và lập trình ứng dụng trên Android
 Tạo lập 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 [6].
I.2.

Các thành phần của hệ điều hành
Hệ điều hành nói chung gồm các thành phần sau:
 Thành phần quản lý tiến trình.
 Thành phần quản lý bộ nhớ.
 Thành phần quản lý nhập xuất.
 Thành phần quản lý tệp tin.
 Thành phần bảo vệ hệ thống.
 Thành phần dịch lệnh.
 Thành phần quản lý mạng [6].


I.3.

Phân loại hệ điều hành
Theo loại thiết bị mà hệ điều hành hoạt động gồm có:
 Hệ điều hành dành cho máy MainFrame.
 Hệ điều hành dành cho máy Server.
 Hệ điều hành dành cho máy nhiều CPU.
 Hệ điều hành dành cho máy tính cá nhân (PC).
 Hệ điều hành dành cho máy PDA.
 Hệ điều hành dành cho máy chuyên biệt.
 Hệ điều hành dành cho thẻ chip (SmartCard).
Theo số user và số chương trình cùng hoạt động gồm có:
 Hệ điều hành đơn nhiệm một người dùng.
 Hệ điều hành đa nhiệm một người dùng.
 Hệ điều hành đa nhiệm nhiều người dùng.
Theo góc độ người dùng gồm có:
 Một người dùng.

SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 5


Hệ điều hành Android và lập trình ứng dụng trên Android
 Nhiều người dùng (mạng ngang hàng, mạng có máy chủ).
Theo hình thức xử lý:
 Hệ thống xử lý theo lô.
 Hệ thống xử lý theo lô đa chương.
 Hệ thống chia sẻ thời gian.

 Hệ thống song song.
 Hệ thống phân tán.
 Hệ thống xử lý thời gian thực [6].
II.

Tổng quan về hệ điều hành Android

II.1. Lịch sử Android
“Máy tính ngày càng trở nên “thân thiện” với con người hơn và ngày càng trở
nên tiện dụng hơn, ở bất kỳ nơi đâu và bất kỳ lúc nào” – Y.HASHIMI & SATYA
KOMATINENI (Pro Android Book – 2009 ).
Tháng 7 năm 2005, Google mua lại Android Inc, đó là tên một dự án do một số
cơng ty nhỏ thành lập có trụ sở tại Palo Alto, California, USA. Những nhà đồng
sáng lập nên Android được chuyển sang làm việc tại Google trong đó có Andy
Rubin ( đồng sáng lập cơng ty Danger ), Rich Miner (đồng sáng lập công ty Wildlife
Communication), Nick Sears (từng là phó chủ tịch T-Mobile) và Chris white
(trưởng nhóm thiết kế và phát triển giao diện tại WebTV) . Tại thời điểm đó có rất ít
thơng tin về dự án Android, ngoại trừ việc họ đang phát triển phần mềm cho điện
thoại di động [7].
Ở trụ sở của Google, nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết
bị di động dựa trên nhân Linux. Đến tháng 9 năm 2007, InformationWeek đăng tải
một nghiên cứu của Evalueserve cho biết Google đã nộp đơn xin cấp bằng sáng chế
trong lĩnh vực điện thoại di động [7].
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở rộng OHA (Open
Handset Alliance) bao gồm nhiều công ty trong đó có Google, HTC, Intel, LG,
Motorola, Nvidia, Qualcomm, Samsung Elecstronic, T-Mobile, Sprint Nextel, Tập
đoàn Marvell Technology, Texas Instruments, Tập đồn Broadcom được thành lập
với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động, cùng với việc thành
SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2


Trang 6


Hệ điều hành Android và lập trình ứng dụng trên Android
lập OHA, họ đồng thời giới thiệu Android một nền tảng cho thiết bị di động được
xây dựng trên nhân Linux version 2.6 [7].
II.2. Các phiên bản của hệ điều hành Android (Android Platform)

Hình 1.

Biểu tượng cho một số phiên bản Android

II.3. Ứng dụng của Android và sự phát triển của Android trong tƣơng lai
Android chỉ mới hiện diện trên thị trường điện thoại di động vào năm 2008
nhưng đã có những bước tiến vượt bậc trong lĩnh vực phát triển ứng dụng cho thiết
bị Mobile và Smartphone [7].
Tuy là một nền tảng đi sau nhưng số lượng ứng dụng Android tăng nhanh
chóng, từ năm 2008 đến tháng 1 năm 2012 thì số ứng dụng của Android lên đến
130.000 ứng dụng tăng gấp 6 lần [7].
Các hãng sản xuất thiết bị di động như Samsung, HTC, Motorola, LG, Acer,
Sony đã có hướng chọn việc phát triển các thiết bị di động của mình chạy hệ điều
hành Android làm chiến lược. Mặc dù hầu hết các ứng dụng hiện trên Android
Market đa số là miễn phí ( 57 % ) nhưng bù lại Android lại đang có đơng đảo người
sử dụng ưa thích cho đến hiện tại và số lượng sẽ cịn tiếp tục tăng trong tương lai.
Bên cạnh đó sự ra mắt của các dòng sản phẩm Smartphone chạy nền Android gần
đây như sự bùng nổ mạnh mẽ của công nghệ này, chứng tỏ vai trị của mình trong
thế giới thiết bị thông minh.
SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2


Trang 7


Hệ điều hành Android và lập trình ứng dụng trên Android
Lấy dẫn chứng cụ thể hãng điện thoại Samsung ra mắt chiếc điện thoại đình
đám Samsung Galaxy SII chạy hệ điều hành Android 2.3 vào ngày 22 tháng 3 năm
2011 và ngày 14 tháng 3 vừa qua cho ra mắt chiếc điện thoại Samsung Galaxy S4.

Hình 2.

Samsung Galaxy S 4

Đầu tháng 3 năm 2011 Google cho phát hành phiên bản SDK r10 hỗ trợ công
cụ phát triển ứng dụng cho nền tảng Android 3.0, một nền tảng mới đầy hứa hẹn mở
ra kỷ nguyên cho các thiết bị thông minh. Đặc biệt hơn phiên bản này đã được cài
đặt trên một dòng máy của Motorola-Xoom Tablet [7].
III.

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

III.1. Các thành phần cấu tạo nên Android (Android Architecture)

Hình 3.
SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Kiến trúc của hệ điều hành Android
Trang 8



Hệ điều hành Android và lập trình ứng dụng trên Android
III.1.1 Tầng Application
Android cung cấp bộ ứng dụng cốt lõi bao gồm một ứng dụng email, chương
trình tin nhắn SMS, lịch, bản đồ, trình duyệt, địa chỉ liên hệ. Tất cả các ứng dụng
được viết bằng ngơn ngữ lập trình Java.
III.1.2 Tầng Application Framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà
phát triển, lập trình viên khả năng xây dựng các ứng dụng vô cùng phong phú và
sáng tạo. Các nhà phát triển, lập trình viên có thể tự do tận dụng các thiết bị phần
cứng, thông tin địa điểm truy cập, chạy các dịch vụ nền, thiết lập hệ thống cảnh báo,
và thêm các thông báo trạng thái và nhiều hơn nữa.
Các lập trình viên có tồn quyền truy cập đến các API trong cùng một
Framework, thường được sử dụng bởi các ứng dụng cơ bản. Kiến trúc của tầng ứng
dụng được thiết kế đơn giản cho việc tái sử dụng các thành phần; bất kỳ ứng dụng
nào cũng có thể public và các ứng dụng khác có thể sử dụng chúng. Cơ chế này cho
phép các thành phần tương tự được thay thế bởi người dùng.
Tất cả các ứng dụng cơ bản là một tập hợp các dịch vụ và các hệ thống, bao
gồm:
 Có nhiều thành phần phong phú và mở rộng cho việc thể hiện (Views)
UI và xây dựng ứng dụng như List, Grid, Text box, Button và thậm chí
các mã nhúng cho một trình duyệt web.
 Content Providers cho phép các ứng dụng có thể truy cập dữ liệu từ
những ứng dụng khác ( như là Contact) hoặc để chia sẻ dữ liệu với các
ứng dụng khác.
 Một Resource Manager cung cấp truy cập đến các tài nguyên Phi Mã
(Non-code) như Strings, Graphic, và các file Layout.
 Một Notification Manager cho phép tất cả các ứng dụng hiển thị những
thông báo trên thanh trạng thái.
 Một Activity Manager thì quản lý vịng đời của một ứng dụng và cung

cấp một Navigation Backstack phổ biến.

SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 9


Hệ điều hành Android và lập trình ứng dụng trên Android
III.1.3 Tầng Libraries
Android cài đặt một số thư viện C/C++ được sử dụng bởi nhiều thành phần
khác nhau của hệ thống Android. Một số thư viện cơ bản được liệt kê dưới đây:
 System library C – có nguồn gốc từ thư viện chuẩn của C (libc) được
chỉnh để nhúng vào các thiết bị dựa trên Linux.
 Thư viện media dựa trên PacketVideo‟s OpenCore; thư viện này hỗ trợ
playback và record nhiều định dạng audio và video phổ biến, cũng như
định dạng của một số ảnh bao gồm MPEG4, H.246, MP3, AAC, AMR,
JPG và PNG.
 Sureface Manager: quản lý truy cập để hiển thị các subsystem và
seamlessly
 Libwebcore một engine web mạnh mẽ chứa những tính năng của trình
duyệt web Android và trình duyệt web nhúng.
 SGL có các thư viện hỗ trợ cho lập trình 2D
 3D Libraries OPEN GL hỗ trợ cho lập trình 3D
 Freetype
SQLite một cơ sở dữ liệu nhỏ gọn nhưng mạnh mẽ cho tất cả các ứng dụng.
III.1.4 Tầng Android Runtime
Android bao gồm một tập hợp các thư viện cơ bản cung cấp hầu hết các chức
năng có sẵn trong các thư viện lõi của ngơn ngữ lập trình Java.
Mỗi ứng dụng Android chạy trong q trình riêng của nó với trường hợp riêng

của mình, của máy ảo Dalvik. Dalvik được viết sao cho thiết bị có thể chạy nhiều
máy ảo (VMs) một cách hiệu quả. Các máy ảo Dalvik thực thi các file trong một
Dalvik Executable (.dex) được tối ưu hóa trong bộ nhớ một cách tối thiểu. VM dựa
trên đăng ký và chạy các lớp được biên dịch bởi trình biên dịch ngôn ngữ Java mà
được chuyển đổi thành định dạng file .dex bởi các công cụ “dx”.
Các máy ảo Dalvik dựa trên nhân Linux cho các chức năng cơ bản như luồng
và quản lý bộ nhớ ở mức độ thấp.

SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 10


Hệ điều hành Android và lập trình ứng dụng trên Android
III.1.5 Linux Kernel
Android được xây dựng dựa trên Linux phiên bản 2.6 cho hệ thống bao gồm
các dịch vụ cốt lõi như bảo mật, quản lý bộ nhớ, quản lý tiến trình, mạng ngăn xếp
(network stack) và mơ hình điều khiển (driver model). Hạt nhân (Kernel) cũng hoạt
động như một lớp trừu tượng hóa giữa phần cứng và phần cịn lại của phần mềm
ngăn xếp.
III.2. Hệ thống tập tin trên hệ điều hành Android
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 tập tin.
III.2.1 Tổng quan về hệ thống tập tin trên Android
Trong Android, các tập tin đượ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
tập tin 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 tập tin. Không được bắt đầu một tên tập tin 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 vật lý 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.
III.2.2 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ệ
SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 11


Hệ điều hành Android và lập trình ứng dụng trên Android
đ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:

Chữ cái biểu diễn

Kiểu file


D

Thư mục (Directory)

B

File kiểu khối (block-type special file)

C

File kiểu ký tự (character-type file)

L

Liên kết tượng trưng (symbolic link)

P

File đường ống (pipe)

S

Socket

-

File bình thường (regular file)
Bảng 1. Kiểu file trong Linux


III.2.3 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 (excute).
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 đó.
Owner
r/-

w/-

Owner Group
x/-

r/-

w/-

Other
x/-

r/-

w/-

x/-

Bảng 2. Quyền sở hữu và quyền hạn trên file

 3 ký tự đầu tiên là quyền hạn chủ nhân 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.

SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 12


Hệ điều hành Android và lập trình ứng dụng trên Android
III.2.4 Cây thư mục trên hệ điều hành Android
Thư mục (có thể gọi là file) 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.
III.3. So sánh giữa các hệ điều hành
III.3.1 So sánh giữa hệ điều hành trên di dộng và hệ điều hành trên máy tính
 Giống nhau 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. Pin 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 pin, đ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.
 Màn hình càng lớn và càng sáng thì sẽ tốn điện càng nhiều.
 Bộ nhớ lớn thì chi phí về điện cũng sẽ cao.
 Bộ vi xử lý càng nhanh thì càng tốn điện.
 Đ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.
 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 ln 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.
 Đ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
SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 13


Hệ điều hành Android và lập trình ứng dụng trên Android
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.
 Việc hiển thị giao diện trên một khung hình nhỏ cũng là đ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ị 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.
 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.
III.3.2 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:
 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ứ hai
sử dụng).
 Android được phát triển từ nhân Linux do đó nó có thể chạy tốt trên nhiều
dịng điện thoại khác nhau. Có độ tương thích cao với các loại phần cứng
khác nhau nhiều hơn so với các hệ điều hành di động còn lại.
 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 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.
III.4. Các thành phần tạo nên ứng dụng Android (Android Application
Components)
III.4.1 Activity
 Khái niệm Activity.

SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 14


Hệ điều hành Android và lập trình ứng dụng trên Android
Activity là một thành phần cơ bản của ứng dụng Android. Mỗi activity thực
hiện một chức năng của ứng dụng, trong một ứng dụng Android ln có một
MainActivity, khi ta chạy ứng dụng thì Activity này được gọi thực thi trước và thể
hiện những giao diện hay các control lên màn hình để người dùng có thể tương tác.

Một ứng dụng thường bao gồm nhiều activity có mối liên quan với nhau, và
các activity này hoạt động theo cơ chế hàng đợi (queue mechanism ) có nghĩa khi
một activity đang hoạt động nhưng một activity khác được kích hoạt hoặc activity
đó có độ ưu tiên lớn hơn (priority) thì activity trước đó sẽ chuyển sang trạng thái
Stop hoặc Pause để activity này thực hiện.
 Tạo một Activity
Để tạo một activity bạn cần tạo một lớp con kế thừa từ lớp Activity. Trong lớp
con bạn cần thực hiện các phương thức callback (callback method) mà hệ thống sẽ
thực hiện khi chuyển đổi giữa các activity trong vịng đời của nó, bao gồm các trạng
thái như Khởi tạo, Dừng, Chạy lại hay Ngừng hẳn. Trong đó có 2 phương thức hay
dùng nhất là:
Tên phương thức

Mô tả

onCreate()

Phương thức này dùng để khởi tạo một Activity, ở trong
phương thức này bạn nên khởi tạo các thành phần thiết yếu
cho activity đó. Quan trọng nhất là bạn phải gọi câu lệnh
setContentView() để định nghĩa layout cho activity đó.

onPause()

Hệ thống sẽ gọi phương thức này khi người dùng chuyển sang
một activity khác. Bạn có thể thêm những câu lệnh hay gọi
activity khác khi điều này xảy ra.

Bảng 3. Bảng phương thức trong một activity
 Thực hiện một giao diện người dùng

Giao diện người dùng cho một hoạt động được cung cấp bởi một hệ thống các
quan điểm, đối tượng dẫn xuất từ lớp View. Mỗi đối tượng View được trình bày trên
khơng gian hình chữ nhật (Màn hình Mobile) và ta có thể xử lý những sự kiện thông
qua các câu lệnh trên các đối tượng View đó.
SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 15


Hệ điều hành Android và lập trình ứng dụng trên Android
 Khai báo activity trong manifest
Bạn cần khai báo activity trong tập tin AndroidManifest để nó có thể truy cập
vào hệ thống. Để khai báo cần cần mở tập tin AndroidManifest trong Project của
bạn rồi thêm một thẻ <activity> ở bên trong cặp thẻ <application> như sau:
<manifest ..>
<application >
<activity android:name=.ExampleActivity/>
..
</application >
..
</manifest >

Bạn có thể thêm một số thuộc tính khác cho activity như label, icon, theme style.
 Sử dụng intent filters
Một Activity cũng có thể chỉ định những bộ lọc khác nhau tùy mục đích sử
dụng, các yếu tố lọc được để trong thẻ <intent-filter> bao gồm các yếu tố để có thể
kích hoạt activity đó.
<activity android:name=".ExampleActivity" android:icon="@drawable/app_icon">
<intent-filter>

<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

Các phần tử trong thẻ tab <action> xác định thực hiện hành động của ứng dụng
đối với activity đó. Cịn các phần tử trong thẻ <category> xác định activity này nên
được liệt kê khi khởi tạo ứng dụng hệ thống (cho phép người dùng gọi activity đó).
 Bắt đầu một Activity

SVTH: Nguyễn Văn Phương
Lớp: 09CNTT2

Trang 16


×