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

Xây dựng ứng dụng hỗ trợ học tiếng anh chuyên ngành công nghệ thông tin trên 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 (2.19 MB, 63 trang )

TRƯỜNG ĐẠI HỌC HÙNG VƯƠNG
KHOA KỸ THUẬT - CÔNG NGHỆ
-----------------------

TRẦN NGỌC HẰNG

XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC TIẾNG ANH
CHUYÊN NGÀNH CƠNG NGHỆ THƠNG TIN
TRÊN ANDROID

KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC
Ngành: Công nghệ Thông tin

Phú Thọ, 2017


TRƯỜNG ĐẠI HỌC HÙNG VƯƠNG
KHOA KỸ THUẬT - CÔNG NGHỆ

-----------------------

TRẦN NGỌC HẰNG

XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC TIẾNG ANH
CHUYÊN NGÀNH CƠNG NGHỆ THƠNG TIN
TRÊN ANDROID

KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC
Ngành: Công nghệ Thông tin

NGƯỜI HƯỚNG DẪN: ThS. Đinh Thái Sơn



Phú Thọ, 2017


LỜI CẢM ƠN
Để hồn thành khóa luận này, em xin tỏ lòng biết ơn sâu sắc đến thầy giáo
ThS. Đinh Thái Sơn, đã tận tình hướng dẫn trong suốt quá trình làm bài khóa
luận tốt nghiệp.
Em chân thành cảm ơn quý thầy, cô trong khoa Kỹ thuật – Công nghệ,
trường Đại học Hùng Vương đã tận tình truyền đạt kiến thức trong những năm
em học tập. Với vốn kiến thức được tiếp thu trong q trình học khơng chỉ là
nền tảng cho q trình nghiên cứu khóa luận mà cịn là hành trang quý báu để
em bước vào đời một cách vững chắc và tự tin.
Cuối cùng em kính chúc quý thầy, cô dồi dào sức khỏe, đạt được nhiều
thành công tốt đẹp trong cuộc sống cũng như thành công trong sự nghiệp cao
quý của mình.
Em xin chân thành cảm ơn!
Việt Trì, 4 tháng 5 năm 2017

ĐẠI HỌC HÙNG VƯƠNG


MỤC LỤC
LỜI CẢM ƠN .............................................................................................. i
MỤC LỤC .................................................................................................. ii
DANH MỤC VIẾT TẮT ............................................................................ iv
DANH MỤC BẢNG ................................................................................... v
DANH MỤC HÌNH ẢNH .......................................................................... vi
A. MỞ ĐẦU................................................................................................ 1
1. Đặt vấn đề nghiên cứu .......................................................................... 1

1.1. Sự cần thiết phải nghiên cứu ........................................................... 1
1.2. Căn cứ khoa học và thực tiễn .......................................................... 1
2. Mục tiêu nghiên cứu của đề tài ............................................................. 2
2.1. Mục tiêu chung ............................................................................... 2
2.2. Mục tiêu cụ thể ............................................................................... 2
3. Đối tượng và phạm vi nghiên cứu ......................................................... 2
3.1. Đối tượng nghiên cứu ..................................................................... 2
3.2. Phạm vi nghiên cứu ........................................................................ 2
4. Phương pháp nghiên cứu ...................................................................... 2
4.1. Tiến trình nghiên cứu...................................................................... 2
4.2. Phương pháp nghiên cứu................................................................. 2
5. Bố cục đề tài ........................................................................................ 3
B. NỘI DUNG NGHIÊN CỨU .................................................................... 4
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ............................................................. 4
1.1. Lịch sử ra đời của hệ điều hành Android. ........................................ 4
1.2. Giao diện người dùng của Android. ................................................ 5
1.3. Ứng dụng của Android. ................................................................... 6
1.4. Kiến trúc và các thành phần. ........................................................... 6
1.4.1. Kiến trúc tổng quát ................................................................... 6
1.4.2. Hệ điều hành ............................................................................. 7
1.5. Ngôn ngữ Java. ............................................................................. 20
1.5.1. Giới thiệu về Java. .................................................................. 20
1.5.2. Các đặc trưng của Java ............................................................ 21
1.5.3. Các kiểu chương trình Java. .................................................... 23
1.5.4 Máy ảo Java (JVM-Java Virtual Machine) ............................... 24
1.5.5. Cấu trúc của một chương trình Java. ....................................... 25
1.5.6. Các biến. ................................................................................. 26
ĐẠI HỌC HÙNG VƯƠNG



1.5.7. Phương thức trong một lớp (method). ...................................... 27
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG ........................... 29
2.1. Xác định yêu cầu. ......................................................................... 29
2.1.1. Các chức năng chính của chương trình .................................... 29
2.1.2. Biểu đồ UserCase .................................................................... 29
2.2. Phân tích thiết kế .......................................................................... 30
2.2.1 Sơ đồ phân cấp chức năng ........................................................ 30
2.2.2 Sơ đồ luồng dữ liệu .................................................................. 31
2.2.3. Mơ hình tổng qt. .................................................................. 33
2.2.4 Mơ hình lớp ............................................................................. 34
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG. .................................................. 39
3.1. Danh sách các màn hình ............................................................... 39
3.2. Chi tiết các trang .......................................................................... 40
3.2.1. Trang chính (Home) ................................................................ 40
3.2.2. Các trang về tài liệu ................................................................ 41
3.2.3. Trang tra từ điển ..................................................................... 44
3.2.4. Các trang về ngữ pháp ............................................................. 45
3.2.5. Các trang video ....................................................................... 47
3.2.6. Các trang về trắc nhiệm........................................................... 49
3.2.7. Trang giới thiệu ...................................................................... 52
C. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .............................................. 53
D. TÀI LIỆU THAM KHẢO ..................................................................... 54

ĐẠI HỌC HÙNG VƯƠNG


DANH MỤC VIẾT TẮT
Chữ viết tắt

Viết đầy đủ


Ý nghĩa
Giao diện lập trình ứng dụng

1

API

Application
Programming
Interface

2

GPS

Global Positioning
System

Hệ thống định vị tồn cầu

3

GSM

Global System for
Mobile
Communications

Hệ thống thơng tin di động

tồn cầu

4

JRE

Java Runtime
Environment

Được sử dụng để cung cấp môi
trường runtime

5

PDA

Personal Digital
Assistant

Thiết bị kỹ thuật số hỗ trợ cá
nhân

Secure Sockets
Layer

Tiêu chuẩn của công nghệ bảo
mật, truyền thơng mã hố giữa
máy chủ Web server và trình
duyệt (browser)


eXtensible Markup
Language

Ngôn ngữ đánh dấu mở rộng

STT

6

SSL

7

XML

ĐẠI HỌC HÙNG VƯƠNG


DANH MỤC BẢNG
Số
trang
33

Tên bảng
Bảng 2.1 Danh sách các thực thể
Bảng 2.2 Bảng từ điển

34

Bảng 2.3 Bảng câu hỏi


34

Bảng 2.4 Code màn hình tài liệu

35

Bảng 2.5 Code cho chức năng hiển thị tài liệu đuôi txt

37

Bảng 2.6 Code chức năng phát âm.

37

Bảng 2.7 Code chức năng xem video

38

Bảng 3.1 Danh sách các màn hình

39

Bảng 3.2 Mơ tả chi tiết màn hình chính

40

Bảng 3.3 Mơ tả chi tiết màn hình chọn tài liệu

41


Bảng 3.4 Mơ tả chi tiết màn hình nội dung tài liệu

42

Bảng 3.5 Mơ tả chi tiết màn hình dịch tài liệu

43

Bảng 3.6 Mơ tả chi tiết màn hình tra từ điển

44

Bảng 3.7 Mơ tả chi tiết màn hình lựa chọn ngữ pháp.

45

Bảng 3.8 Mơ tả chi tiết màn hình hiển thị nội dung ngữ pháp.
Bảng 3.9 Mô tả chi tiết màn hình chọn video

46

Bảng 3.10 Mơ tả chi tiết màn hình hiển thị video

48

Bảng 3.11 Mơ tả chi tiết màn hình lựa chọn câu hỏi.

49


Bảng 3.12 Mơ tả chi tiết màn hình nội dung câu hỏi.
Bảng 3.13 Mơ tả chi tiết màn hình giới thiệu.

50

47

52

ĐẠI HỌC HÙNG VƯƠNG


DANH MỤC HÌNH ẢNH
Số
trang
5

Tên hình ảnh
Hình 1.1. Giao diện hệ điều hành Android
Hình 1.2 Kiến trúc tổng quát hệ điều hành Android.

7

Hình 1.3 Các thành phần nhân Linux

7

Hình 1.4 Các thư viện

8


Hình 1.5 Android Runtime

10

Hình 1.6 Khung ứng dụng

11

Hình 1.7 Vịng đời của một activity
Hình 1.8 Sơ đồ chuyển trạng thái của service

14

Hình 2.1 Biểu đồ UserCase

30

Hình 2.2 Sơ đồ phân cấp chức năng

30

Hình 2.3 Sơ đồ luồng dữ liệu mức khung cảnh

31

Hình 2.4 Sơ đồ luồng dữ liệu mức đỉnh

32


Hình 2.5 Sơ đồ luồng dữ liệu chức năng Tra từ

32

Hình 2.6 Sơ đồ lường dữ liệu chức năng Học ngữ pháp

32

Hình 2.7 Sơ đồ luồng dữ liệu chức năng Xem video

32

Hình 2.8 Sơ đồ luồng dữ liệu chức năng Làm bài tập trắc nghiệm

33

Hình 2.9 Mơ hình lớp

35

Hình 3.1 Màn hình chính

40

Hình 3.2 Màn hình chọn tài liệu

41

Hình 3.3 Màn hình nội dung tài liệu


42

Hình 3.4 Màn hình dịch nội dung

43

Hình 3.5 Màn hình tra từ điển

44

Hình 3.6 Màn hình lựa chọn ngữ pháp

45

Hình 3.7 Màn hình nội dung ngữ pháp

46

Hình 3.8 Màn hình lựa chọn video
Hình 3.9 Màn hình hiển thị video

47

Hình 3.10 Màn hình lựa chọn câu hỏi trắc nhiệm.

49

Hình 3.11 Màn hình nội dung câu hỏi trắc nhiệm.

50


Hình 3.12 Màn hình trả lời câu hỏi trắc nhiệm.

51

16

48

ĐẠI HỌC HÙNG VƯƠNG


Hình 3.13 Màn hình kết quả thi trắc nhiệm.

51

Hình 3.14 Màn hình giới thiệu

52

ĐẠI HỌC HÙNG VƯƠNG


A. MỞ ĐẦU
1. Đặt vấn đề nghiên cứu
1.1. Sự cần thiết phải nghiên cứu
Một điện thoại thông minh (smart phone) là một thiết bị di động cung
cấp nhiều tính năng tính tốn tiên tiến đa chiều, đa năng kết nối hơn một
thiết bị di động thông thường (feature phone). Điện thoại thông minh và
điện thoại di động thông thường đều có thể xem như một máy tính cầm tay

nhưng được tích hợp trong một mạng điện thoại di động.
Nhu cầu về các thiết bị di động tiên tiến với bộ xử lý mạnh mẽ, bộ nhớ
nhiều, màn hình lớn hơn, cùng với các hệ điều hành mạnh mẽ đã cực kỳ phát
triền trong vòng vài năm trở lại đây. Theo nghiên cứu của ComStore,
khoảng trên 45,5 triệu người ở Mỹ sử dụng điện thoại thông minh trong năm
2010, và đang tăng một cách nhanh chóng trong tổng số 234 triệu người sử
dụng điện thoại trên toàn nước Mỹ.
Tiếng Anh là một ngơn ngữ thuộc nhóm miền Tây của nhóm ngơn ngữ
German trong ngữ hệ Ấn - Âu. Đây là ngôn ngữ được sử dụng rộng rãi nhất
thế giới. Tiếng Anh được sử dụng phổ biến nhờ vào ảnh hưởng của Mỹ và
Anh trên các lĩnh vực kinh tế, chính trị, quân sự.... Ở nhiều nước, trong đó
có Việt Nam, người ta bắt buộc hoặc mặc định phải học Tiếng Anh để đi
làm.
Đối với ngành Công nghệ Thông tin, Tiếng Anh đóng một vai trị rất
quan trọng. Việc học Tiếng Anh chuyên nghành tin học được coi là khó đối
với học sinh – sinh viên Viêt Nam. Đề tài này sẽ hướng đến việc giúp đỡ
cho học sinh – sinh viên Việt Nam có một cách học Tiếng Anh tốt hơn,
thuận tiện hơn trên chiếc điện thoại Android của mình.
1.2. Căn cứ khoa học và thực tiễn
Công nghệ phát triển mạnh mẽ tạo nên một làn sóng mới để khai thác
sức mạnh của công nghệ, đặc biệt là trong công nghệ lập trình trên thiết bị di
động. Năm 2014, tốc độ tăng trưởng sản xuất và tiêu thụ smartphone đã tăng
từ 16-24%, dẫn đến yêu cầu phát triển ứng dụng trên thiết bị di động như vũ
1


bão. Cơn sốt smartphone khiến tất cả các doanh nghiệp sản xuất ứng dụng
phải giải quyết bài tốn lập trình nên các ứng dụng vừa đẹp, vừa tiện dụng,
vừa hay, phù hợp với thị hiếu và nhu cầu của người dùng. Và xu hướng này
chắc chắn sẽ còn phát triển trong 5-7 năm tới.

2. Mục tiêu nghiên cứu của đề tài
2.1. Mục tiêu chung
- Tìm hiểu về hệ điều hành Android.
2.2. Mục tiêu cụ thể
- Xây dựng ứng dụng học tiếng anh chuyên ngành trên thiết bị di động
chạy hệ điều hành Android.
3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
- Ứng dụng hỗ trợ học tiếng anh công nghệ thông tin trên thiết bị di
động chạy hệ điều hành Android.
3.2. Phạm vi nghiên cứu
- Về nội dung: Nghiên cứu về kiến trúc của hệ điều hành Android và
cài đặt các phần mềm cần thiết để có thể lập trình cho hệ điều hành Android.
Từ đó nghiên cứu xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị di
động chạy hệ điều hành Android.
- Về không gian: Trường đại học Hùng Vương.
- Về thời gian: 19/12/2016 đến 27/3/2017.
4. Phương pháp nghiên cứu
4.1. Tiến trình nghiên cứu
- Bước 1: Tìm hiểu về hệ điều hành Android và ngơn ngữ Java.
- Bước 2: Phân tích, thiết kế và xây dựng ứng dụng.
- Bước 3: Cài đặt ứng dụng vào điện thoại và chạy ứng dụng.
4.2. Phương pháp nghiên cứu
- Phương pháp phân tích và tổng hợp lý thuyết: Đọc sách và các tài
liệu liên quan đến hệ điều hành Android.
2


- Phương pháp phân tích và thiết kế ứng dụng: Thực hiện việc phân
tích và thiết kế ứng dụng.

- Phương pháp hỏi ý kiến chuyên gia: Hỏi ý kiến cũng như là đánh giá
khách quan của thầy hướng dẫn cũng như các chuyên gia trong lĩnh vực xây
dựng ứng dụng trên hệ điều hành Android.
- Phương pháp thử nghiệm: chạy thử nghiệm ứng dụng trên điện thoại
di động.
5. Bố cục đề tài
Đề tài được chia ra thành các phần:
A. Mở đầu
B. Nội dung nghiên cứu
+ Chương 1: Cơ sở lý thuyết
+ Chương 2: Phân tích và thiết kế ứng dụng
+ Chương 3: Xây dựng ứng dụng.
C. Kết luận và hướng phát triển
D. Tài liệu tham khảo.

3


B. NỘI DUNG NGHIÊN CỨU
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Lịch sử ra đời của hệ điều hành Android.
Tổng công ty Android (Android, Inc.) được thành lập tại Palo Alto,
California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty
Danger), Rich Miner (đồng sáng lập Tổng công ty Viễn thơng Wildfire),
Nick Sears (từng là Phó giám đốc T-Mobile), và Chris White (trưởng thiết
kế và giao diện tại WebTV) để phát triển, theo lời của Rubin, "các thiết bị di
động thơng minh hơn có thể biết được vị trí và sở thích của người dùng". Dù
những người thành lập và nhân viên đều là những người có tiếng tăm, Tổng
công ty Android hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang làm
phần mềm dành cho điện thoại di động. Trong năm đó, Rubin hết kinh

phí. Steve Perlman, một người bạn thân của Rubin, mang cho ông 10.000
USD tiền mặt nhưng từ chối tham gia vào công ty.
Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải
tiến hệ điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần
phát hành trước. Mỗi bản nâng cấp được đặt tên lần lượt theo thứ tự bảng
chữ cái, theo tên của một món ăn tráng miệng; ví dụ như phiên bản
1.5 Cupcake (bánh bơng lan nhỏ có kem) tiếp nối bằng phiên bản
1.6 Donut (bánh vòng). Phiên bản mới nhất hiện nay là 6.0 Marshmallow
(kẹo dẻo) và 7.0 Nougat Beta. Vào năm 2010, Google ra mắt loạt thiết
bị Nexus, một dịng sản phẩm bao gồm điện thoại thơng minh và máy tính
bảng chạy hệ điều hành Android, do các đối tác phần cứng sản xuất. HTC đã
hợp tác với Google trong chiếc điện thoại thông
minh Nexus đầu tiên, Nexus One. Kể từ đó nhiều thiết bị mới hơn đã gia
nhập vào dòng sản phẩm này, như điện thoại Nexus 4 và máy tính
bảng Nexus 10, lần lượt do LG và Samsung sản xuất. Google xem điện thoại
và máy tính bảng Nexus là những thiết bị Android chủ lực của mình, với
những tính năng phần cứng và phần mềm mới nhất của hệ điều hành
Android.
4


1.2. Giao diện người dùng của Android.

Hình 1.1. Giao diện hệ điều hành Android
Giao diện người dùng của Android dựa trên nguyên tắc tác động trực
tiếp, sử dụng cảm ứng chạm tương tự như những động tác ngoài đời thực
như vuốt, chạm, kéo giãn và thu lại để xử lý các đối tượng trên màn hình. Sự
phản ứng với tác động của người dùng diễn ra gần như ngay lập tức, nhằm
tạo ra giao diện cảm ứng mượt mà, thường dùng tính năng rung của thiết bị
để tạo phản hồi rung cho người dùng. Những thiết bị phần cứng bên trong

như gia tốc kế, con quay hồi chuyển và cảm biến khoảng cách được một số
ứng dụng sử dụng để phản hồi một số hành động khác của người dùng, ví dụ
như điều chỉnh màn hình từ chế độ hiển thị dọc sang chế độ hiển thị ngang
tùy theo vị trí của thiết bị, hoặc cho phép người dùng lái xe đua bằng xoay
thiết bị, giống như đang điều khiển vơ-lăng.
Ở phía trên cùng màn hình là thanh trạng thái, hiển thị thơng tin về
thiết bị và tình trạng kết nối. Thanh trạng thái này có thể "kéo" xuống để
xem màn hình thơng báo gồm thơng tin quan trọng hoặc cập nhật của các
ứng dụng, như email hay tin nhắn SMS mới nhận, mà không làm gián đoạn
hoặc khiến người dùng cảm thấy bất tiện. Trong các phiên bản đời đầu,
người dùng có thể nhấn vào thơng báo để mở ra ứng dụng tương ứng, về sau
này các thông tin cập nhật được bổ sung thêm tính năng, như có khả năng
lập tức gọi ngược lại khi có cuộc gọi nhỡ mà không cần phải mở ứng dụng
5


gọi điện ra. Thơng báo sẽ ln nằm đó cho đến khi người dùng đã đọc hoặc
xóa nó đi.
1.3. Ứng dụng của Android.
Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử
dụng Bộ phát triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ
các công cụ dùng để phát triển, gồm có cơng cụ gỡ lỗi, thư viện phần
mềm, bộ giả lập điện thoại dựa trên QEMU, tài liệu hướng dẫn, mã nguồn
mẫu, và hướng dẫn từng bước. Mơi trường phát triển tích hợp (IDE) được hỗ
trợ chính thức là Eclipse sử dụng phần bổ sung Android Development Tools
(ADT). Các công cụ phát triển khác cũng có sẵn, gồm có Bộ phát triển
gốc dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc
C++, Google App Inventor, một môi trường đồ họa cho những nhà lập trình
mới bắt đầu, và nhiều nền tảng ứng dụng web di động đa nền tảng phong
phú. Để vượt qua những hạn chế khi tiếp cận các dịch vụ của Google do

sự Kiểm duyệt Internet tại Cộng hòa Nhân dân Trung Hoa, các thiết bị
Android bán tại Trung Quốc lục địa thường được điều chỉnh chỉ được sử
dụng dịch vụ đã được duyệt.
Để vượt qua những hạn chế khi tiếp cận các dịch vụ của Google do
sự Kiểm duyệt Internet tại Cộng hòa Nhân dân Trung Hoa, các thiết bị
Android bán tại Trung Quốc lục địa thường được điều chỉnh chỉ được sử
dụng dịch vụ đã được duyệt.
1.4. Kiến trúc và các thành phần.
1.4.1. Kiến trúc tổng quát
Android bao gồm bốn thành phần sau:
 Hệ điều hành.
 Thư viện và các giao diện lập trình ứng dụng.
 Khung ứng dụng.
 Ứng dụng.

6


1.4.2. Hệ điều hành

Hình 1.2 Kiến trúc tổng quát hệ điều hành Android.
Android sử dụng nhân Linux 2.6 làm nhân cho các dịch vụ hệ thống
như bảo mật, quản lý bộ nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng),
ngăn xếp mạng và trình điều khiển thiết bị (giao tiếp USB, giao tiếp hồng
ngoại, không đây, v.v…). Nhân Linux này cũng có vai trị như một lớp trừu
tượng giữa phần cứng và phần mềm.
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ầu kết nối mạng khơng dây.

1.4.2.1. Các thành phần của nhân Linux.

Hình 1.3 Các thành phần nhân Linux
- 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…).
7


- Camera Driver : điều khiển hoạt động của camera, nhận luồng dữ liệu từ
camera về.
- Bluetooth Driver : Điều khiển thiết bị phát, thu sóng Bluetooth.
- USB 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í 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.
- Power Management : Giám sát việc tiêu thụ điện năng.
- M-system Driver : Quản lý việc đọc ghi… lên các thiết bị nhớ như thẻ SD,
flash.
- 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.
1.4.2.2. Thư viện.
Android cung cấp một số các APIs cho phát triển ứng dụng.

Hình 1.4 Các thư viện
Danh sách các API cơ bản sau được cung cấp bởi tất cả các thiết bị
trên nền Android:
- android.util: Gói tiện ích cơ bản bao gồm nhiều lớp mức thấp như là các
lớp quản lý (List, Stack…) lớp xử lý chuỗi, lớp xử lý XML.
- android.graphics: Cung cấp các lớp đồ họa mức thấp thực hiện các chức

năng đồ họa, màu, vẽ cơ bản.
8


- android.database: Cung cấp các lớp mức thấp bắt buộc cho việc điều khiển
cursor khi làm việc với các cơ sở dữ liệu.
- android.content: Các giao tiếp lập trình nội dung được dùng để quản lý
truy cập dữ liệu và xuất bản bằng cách cung cấp các dịch vụ thao tác với tài
nguyên, Content Provider và các gói.
- android.view: View là lớp giao diện người dùng cơ bản nhất. Tất cả giao
diện người dùng được tạo ra đều phải sử dụng một tập các View để cung cấp
cho các thành phần tương tác người dùng.
- android.widget: Xây dựng dựa trên gói View. Những lớp widget những
thành phần giao diện được tạo sẵn được sử dụng để tạo nên giao diện người
dùng. Các widget bao gồm danh sách, nút bấm, hộp nhập, các kiểu trình bày
(layout).
- com.google.android.maps: Bộ API mức cao cung cấp truy cập đến điều
khiển bản đồ sẵn trong Android từ ứng dụng được xây dựng. Bao gồm cả
lớp MapView cũng như Overlay và MapController để tương tác với bản đồ
bên trong ứng dụng.
- android.provider: Để tạo thuận lợi cho người phát triển truy cập đến các
Content Provider tiêu chuẩn (như là dữ liệu danh bạ), gói cung cấp
(Provider) bao gồm các lớp cho phép truy cập đến cơ sở dữ liệu chuẩn trong
tất cả các bản phân phối Android.
- android.telephony: Các API điện đàm cung cấp khả năng tương tác trực
tiếp với tầng điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi các
cuộc gọi, tình trạng các cuộc gọi và tin nhắn SMS.
- android.webkit: Gói WebKit cung cấp các API để làm việc với các nội
dung Web-based bao gồm một lớp WebView để tạo ra giao diện web, nhúng
trong ứng dụng và một trình quản lý cookie.

Cùng với các API của Android, cịn có một tập các thư viện C/C++ như:
- OpenGL: Thư viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn
OpenGLES 1.0 API.
- FreeType: Hỗ trợ xử lý bitmap và font vector.
9


- GGL: Thư viện cơ bản, dùng để cung cấp các engine đồ họa 2D.
- Libc: Thư viện C chuẩn, được tối ưu cho các thiết bị Linux-based.
- SQLite Engine: Cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu của
ứng dụng.
- SSL: Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer trong bảo mật
truyền thơng Internet.
Ngồi các thư viên chuẩn của Android, để đáp ứng tiêu chí phù hợp
với nhiều thiết bị khác nhau, Android cịn có thể có các API phụ thuộc thiết
bị như android. Location, android. Media, android. Open GL, android.
Hardware…
1.4.2.3 Android Runtime

Hình 1.5 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.
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(Java Runtime Enviroment)
của Sun (nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik (máy ảo
dalvik được đặt tên sau khi một nhà phát triển phần mềm của Google tạo ra
nó sau khi đi thăm một ngôi làng ở nơi tổ tiên ông sinh sống) do Google
phát triển, máy ảo davik thực thi cái tập tin davik(dex), khác với java là

chuyển sang dạng bytecode. Định dạng này được tối ưu hóa cho bộ nhớ tối
thiểu.
10


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(Java Runtime
Enviroment) của Sun (nay là Oracle)(JVM) mà là chạy bằng máy ảo Dalvik
(máy ảo dalvik được đặt tên sau khi một nhà phát triển phần mềm của
Google tạo ra nó sau khi đi thăm một ngơi làng ở nơi tổ tiên ông sinh sống)
do Google phát triển, máy ảo davik thực thi cái tập tin davik(dex), khác với
java là chuyển sang dạng bytecode. Định dạng này được tối ưu hóa cho bộ
nhớ tối thiểu.
1.4.2.4. Khung ứng dụng

Hình 1.6 Khung ứng dụng
Kiến trúc của Android khuyến khích khái niệm thành phần sử dụng
lại, cho phép công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng
dụng khác với quyền truy cập được quản lý bởi khai báo.
Cơ chế đó cho phép người lập trình tạo ra một trình quản lý danh bạ
hoặc trình quay số điện thoại mà có các thành phần người khác có thể tạo
mới giao diện và mở rộng chức năng thay vì tạo lại chúng.
Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả
các ứng dụng, cung cấp một framework cho mọi mọi phần mềm được xây
dựng:
- Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả quản
lý các tầng Activity.
- Views: Được sử dụng để tạo lập các giao diện người dùng cho Activity.
- Notification Manager: Cung cấp một cơ chế cố định và quy củ cho việc gửi
các thông báo đến người dùng.

- Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng.
- Resource Manager : Hỗ trợ các thành phần không thuộc mã nguồn như là
11


chuỗi ký tự đồ họa được đặt bên ngoài.
1.4.2.5. Các thành phần của một ứng dụng Android
Một ứng dụng trên Android được cấu thành từ bốn thành phần cơ bản sau:
 Activities.
 Services.
 Broadcast Receivers.
 Content Provider.
Ngồi ra cịn một số thành phần khác. Các thành phần này không nhất
thiết phải có mặt đầy đủ trong ứng dụng.
Chúng ta có thể xem các thành phần nào được sử dụng trong ứng dụng
bằng việc xem khai báo trong file AndroidManifest.xml.
 Hoạt động (Activity)
Một hoạt động là một giao diện người dùng trực quan mà người dùng
có thể thực hiện trên đó mỗi khi được kích hoạt. Một ứng dụng có thể có
nhiều hoạt động và chúng có thể gọi qua lại lẫn nhau. Mỗi Activity là một
dẫn xuất của lớp android.app.Activity.
Mỗi hoạt động có một cửa sổ để vẽ lên. Thơng cửa sổ này phủ đầy
màn hình, ngồi ra nó cũng có thể có thêm các cửa sổ con khác như là hộp
thoại.
Các hoạt động trong hệ thống được quản lý bởi một cấu trúc dữ liệu
ngăn xếp. Khi có một hoạt động được khởi tạo, nó đẩy vào trong ngăn xếp,
chuyển sang trạng thái thực thi và hoạt trộng trước đó sẽ chuyển sang trạng
thái chờ.
Một Activity có 3 trạng thái chính:
 Active hoặc running khi nó ở trên nhất màn hình và nhận tương tác

người dùng.
 Paused khi Activity khơng cịn là trọng tâm trên màn hình nhưng
vẫn
hiện thị trước người dùng.
12


 Stopped khi một Activity hoàn toàn bị che khuất, nó sẽ rơi vào
trạng thái Stopped.
Tuy nhiên, nó vẫn cịn lưu trữ tồn bộ thơng tin trạng thái và nó
thường bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ. Khi chuyển giữa
các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với các bước chuyển:
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
oid onPause()
void onStop()
void onDestroy()
Biểu đồ sau mô tả trạng thái trong vòng đời của một hoạt động. Hình
chữ nhật thể hiện các phương thức Callback mà chúng ta có thể khai báo để
gọi thực thi một số thao tác khi hoạt động chuyển sang trạng thái khác
(phương thức Callback là phương thức được gọi lại bởi một phương thức
khác khi có một sự kiện xảy ra). Các trạng thái chính của một hoạt động
được thể hiện bởi các hình viên thuốc.
Vịng đời của một hoạt động có thể được thể hiện trong những quá
trình sau:

13



Hình 1.7 Vịng đời của một activity
Tồn bộ thời gian sống của một hoạt động bắt đầu từ lời gọi đầu tiên
tới phương thức onCreate(Bundle) tới lời gọi phương thức onDestroy().
Trong quá trình này, một hoạt động sẽ khởi tạo lại tất cả các tài
nguyên cần sử dụng trong phương thức onCreate() và giải phóng chúng khi
phương thức onDestroy() được thực thi.
Thời gian sống có thể nhìn thấy của một hoạt động bắt đầu từ lời gọi
tới phương thức onStart(), cho tới khi phương thức onStop() của nó được
thực thi. Toàn bộ các tài nguyên đang được sử dụng bởi hoạt động vẫn tiếp
tục được lưu giữ, người dùng có thể thấy giao diện nhưng không tương tác
được với hoạt động do trong qua trình này hoạt động khơng ở trạng thái
chạy tiền cảnh.
Thời gian sống tiền cảnh của một hoạt động là q trình bắt dầu từ khi
có lời gọi tới phương thức onResume() và kết thúc bằng lời gọi tới phương
thức onPause(). Trong thời gian này, hoạt động chạy ở tiền cảnh và có thể
tương tác với người dùng.
 Dịch vụ (Service)
14


Một dịch vụ (Service) là các đoạn mã được thực thi ngầm bởi hệ thống
mà người sử dụng không thấy được. Mỗi service đều được mở rộng từ lớp
cơ sở là service trong gói android.app. Có thể kết nối tới hoặc kích hoạt một
Service thơng qua interface mà Service đưa ra.Ví dụ như một chương trình
chơi nhạc, sẽ có vài hoạt động cho phép người dùng duyệt danh sách các bài
hát và lựa chọn bài nào để phát. Tuy nhiên, chức năng chơi nhạc không được
thiết kế như một hoạt động bởi chúng ta sẽ muốn chuyển qua cửa sổ khác,
như khi soạn tin nhắn thì bài nhạc vẫn tiếp tục được chơi. Trong trường hợp
này, ứng dụng chơi nhạc sẽ khởi tạo một dịch vụ bằng cách sử dụng phương

thức:
Context.startService()
Một ứng dụng có thể dễ dàng thực hiện liên kết tới một dịch vụ đang
chạy bằng phương thức Context.bindService(). Khi đó dịch vụ này sẽ cung
cấp cho ứng dụng cơ chế để giao tiếp với chúng thông qua giao diện gọi là
IBinder (đối với dịch vụ chơi nhạc có thể cho phép dừng hoặc chuyển qua
bài nhạc kế tiếp).
Vòng đời của một dịch vụ được hiểu là quá trình hoạt động từ khi nó
được tạo ra cho tới khi bị loại khỏi hệ thống. Có hai cách thức để một dịch
vụ có thể được chạy trong hệ thống.
Khi hệ thống có lời gọi tới phương thức Context.startService(). Trong
trường hợp này, dịch vụ sẽ được thực hiện liên tục cho tới khi hệ thống gọi
phương thức Context.stopService(). Khi các ứng dụng gọi phương thức
Context.bindService() để tạo kết nối với dịch vụ. Ứng dụng sẽ nhận được
một đối tượng IBinder do dịch vụ trả lại để có thể gọi các phương thức
Callback phù hợp để truy cập tới các trạng thái của dịch vụ. Nếu do lời gọi
Context.bindService() mà dịch vụ được khởi tạo thì nó sẽ được thực thi cho
tới khi nào kết nối trên (tức là đối tượng IBinder) vẫn còn tồn tại.

15


Hình 1.8 Sơ đồ chuyển trạng thái của service
 Bộ nhận quảng bá (Broadcast Receivers)
Bộ nhận quảng bá có chức năng nhận và phản hồi lại các thông báo
quảng bá. Nhiều quảng bá có nguồn gốc từ mã hệ thống, ví dụ thơng báo
thay đổi múi giờ, pin yếu, ảnh đã chụp hay thay đổi ngơn ngữ. Các ứng dụng
có thể khởi động quảng bá, ví dụ để các ứng dụng khác biết rằng dữ liệu đã
được tải về xong trên thiết bị và sẵn sàng sử dụng.
Một ứng dụng có thể có bất kỳ số lượng bộ nhận quảng bá nào để

nhận những thơng báo quan trọng với nó. Tất cả các bộ nhận quảng bá được
kế thừa từ lớp BroadcastReceiver.
Bộ nhận quảng bá khơng có giao diện. Tuy nhiên, chúng có thể khởi
động một hoạt động để đáp lại thơng tin mà nó nhận được, hay chúng có thể
sử dụng NotificationManager để thông báo người dùng biết. Các thơng báo
có thể được sự chú ý của người dùng theo các cách các nhau như là sáng
màn hình, rung thiết bị, bật âm thanh nào đấy…Thông thường, chúng đặt
thông báo trên thanh trạng thái, nơi người dùng có thể nhận được thông báo.
 Content Provider

16


×