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

Xây dựng phần mềm học tiếng anh giao tiếp trên nền tảng 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.97 MB, 114 trang )

LỜI CẢM ƠN
Sau một thời gian tìm hiểu đề tài “ Xây dựng phần mềm học tiếng anh
giao tiếp trên nền tảng Android ”, em đã hoàn thành tiến độ dự kiến. Để đạt
được kết quả này, em đã nỗ lực thực hiện và đồng thời cũng nhận được rất nhiều
sự giúp đỡ, quan tâm, ủng hộ của các thầy cô, bạn bè và gia đình.
Em xin chân thành cảm ơn giảng viên hướng dẫn: Th.S Hoàng Thị Cành –
Bộ môn Công nghệ phần mềm – Trường Đại học Công nghệ thông tin và truyền
thông – Đại học Thái Nguyên đã tận tình giúp đỡ em hoàn thành đồ án tốt nghiệp
này.
Em cũng xin chân thành cảm ơn Trung tâm nghiên cứu và phát triển ứng
dụng di động, Đại học Công nghệ thông tin và truyền thông, đặc biệt là thầy
Nguyễn Quốc Bảo là người hướng dẫn em trong suốt quá trình em hoàn thiện đồ
án. Cảm ơn thầy đã tận tình giúp đỡ, chỉ bảo em để em có thể hoàn thành báo cáo
này.
Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học
Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã nhiệt tình giảng
dạy và truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại
trường.
Em xin chân thành cảm ơn các thầy, cô giảng viên thuộc bộ môn Công nghệ
phần mềm đã trang bị cho em những kiến thức chuyên ngành rất hữu ích để em
hoàn thành đề tài và phục vụ cho công việc của em sau này.
Vì thời gian có hạn nên không thể tránh khỏi những thiếu sót, em rất mong
nhận được sự đóng góp ý kiến từ thầy cô và các bạn. Em xin chân thành cảm ơn !

1


LỜI CAM ĐOAN
Em xin cam đoan đây là công trình nghiên cứu của riêng em và được sự
hướng dẫn của Ths. Hoàng Thị Cành. Các nội dung nghiên cứu, kết quả trong đề
tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây. Những


số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được
chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham
khảo.
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của
các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc.
Nếu phát hiện có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm về nội
dung đồ án của mình. Trường đại học Công nghệ thông tin và Truyền thông Thái
Nguyên không liên quan đến những vi phạm tác quyền, bản quyền do em gây ra
trong quá trình thực hiện (nếu có).

2


MỤC LỤC
LỜI CẢM ƠN
1
LỜI CAM ĐOAN 2
MỤC LỤC 3
LỜI NÓI ĐẦU
5
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
8
1.1 Android và lịch sử phát triển .....................................................................8
1.1.1 Lịch sử Android ..................................................................................8
1.1.2 Các phiên bản HĐH Android .............................................................9
1.2 Kiến trúc Android....................................................................................12
1.2.1 Linux Kernel.....................................................................................12
1.2.2 Library và Android Runtime.............................................................13
1.2.3 Application .......................................................................................16
1.3 Các thành phần của Android ...................................................................16

1.3.1 Thành phần của một chương trình Android......................................16
1.3.2 Các thành phần trong giao diện Widget............................................19
1.3.3 Bắt sự kiện trong Android ...............................................................20
1.3.4 Menu .................................................................................................20
1.4 Hệ quản trị CSDL SQLite .......................................................................21
1.4.1 Giới thiệ về SQLite...........................................................................21
1.4.2 Các bước thực hiện .............................................................................22
1.4.3 Sử dụng Cơ sở dữ liệu..........................................................................24
1.5 Trí tuệ nhân tạo ...........................................................................................25
1.5.1 Tổng quan về khoa học Trí tuệ nhân tạo..............................................25
1.5.2 Đối tượng và mục tiêu nghiên cứu của trí tuệ nhân tạo....................25
1.5.3 Vai trò của Trí Tuệ Nhân Tạo..............................................................26
1.5.4 Các kỹ thuật Trí tuệ nhân tạo ...............................................................26
1.5.5 Lịch sử phát triển của Trí Tuệ Nhân Tạo.............................................28
1.5.6 Một số vấn đề Trí tuệ nhân tạo quan tâm .........................................29
1.5.7 Các khái niệm cơ bản........................................................................30
1.5.8 Một số chuyên ngành của Trí tuệ nhân tạo ..........................................31
1.6 Tổng quan về AIML....................................................................................32
1.6.1 AIML là gì ?.........................................................................................32
1.6.2. Các Category và đặc tính của AIML...................................................32
1.7 Tổng quan về Java......................................................................................34
1.7.1 Lịch sử.................................................................................................34
1.7.2 Các đặc trưng của Java........................................................................36
3


CHƯƠNG 2: KHẢO SÁT, PHÂN TÍCH THIẾT KẾ PHẦN MỀM 39
2.1 Xác định yêu cầu đề tài............................................................................39
2.1.1 Tóm tắt yêu cầu.................................................................................39
2.1.2 Nội dung ...........................................................................................39

2.1.3 Mục tiêu ............................................................................................39
2.1.4 Các bước nghiên cứu ........................................................................39
2.2 Khảo sát ...................................................................................................39
2.2.1 Các ứng dụng hiện có .......................................................................39
2.2.2 Đề xuất ứng dụng mới ......................................................................42
2.2.3 Xác định yêu cầu...............................................................................42
2.3.4 Hướng giải quyết và kế hoạch thực hiện.............................................43
2.3 Phân tích chương trình.............................................................................43
2.3.1 Biểu đồ Use Case..............................................................................43
2.3.2 Biểu đồ trình tự ...................................................................................48
2.3.3 Biểu đồ cộng tác ...............................................................................52
2.3.4 Biểu đồ Class .......................................................................................57
2.3.5 Biểu đồ hoạt động tổng quát.............................................................63
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH HỌC TIẾNG ANH GIAO TIẾP
TRÊN NỀN TẢNG ANDROID 64
3.1 Giới thiệu chương trình...............................................................................64
3.2 .Hướng dẫn sử dụng ....................................................................................68
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN77
TÀI LIỆU THAM KHẢO 79
LỜI NHẬN XÉT 80

DANH MỤC HÌNH ẢNH
Hình 1.1 : Logo các phiên bản hệ điều hành Android ........................................... 9
Hình 1.2: Biểu tượng Robot Android................................................................... 11
Hình 1.3: Kiến trúc Android ................................................................................ 12
Hình 1.4: Kiến trúc Linux Kernel ........................................................................ 13
Hình 1.5: Kiến trúc Framework ........................................................................... 15
Hình 1.6: Vòng đời hoạt động của 1 ứng dụng Android...................................... 17
4



Hình 1.7: Quá trình hoạt động của Itent............................................................... 17
Hình 1.8 : Vòng đời của Service .......................................................................... 18
Hình 2.1 Ứng dụng SpeakingPal......................................................................... 40
Hình 2.2 Ứng dụng Busuu ................................................................................... 41
Hình 2.3 Ứng dụng Pera Pera ............................................................................. 42
Hình 2.4 Biểu đồ UseCase ................................................................................... 44
Hình 2.5 Biểu đồ trình tự UseCase Learn Pronunciation By Video .................... 48
Hình 2.6 Biểu đồ trình tự UseCase Send Feedback to Developer ....................... 48
Hình 2.7 Biểu đồ trình tự UseCase Learn By Level ............................................ 49
Hình 2.8 Biểu đồ trình tự UseCase Learn By Topic ............................................ 49
Hình 2.9 Biểu đồ trình tự UseCase Learn Vocabulary ........................................ 50
Hình 2.10 Biểu đồ trình tự UseCase Learn Contexual Communication............. 50
Hình 2.11 Biểu đồ trình tự UseCase Review Vocabulary................................... 51
Hình 2.12 Biểu đồ trình tự UseCase Review Sentences Learned ....................... 51
Hình 2.13 Biểu đồ trình tự UseCase Practice With Bot...................................... 52
Hình 2.14 Biểu đồ cộng tác UseCase Pronuncication By Video ........................ 52
Hình 2.15 Biểu đồ cộng tác UseCase Send Feedback ........................................ 53
Hình 2.16 Biểu đồ cộng tác UseCase Learn By Level......................................... 53
Hình 2.17 Biểu đồ cộng tác UseCase Learn By Topic......................................... 54
Hình 2.18 Biểu đồ cộng tác UseCase Learn Vocabulary..................................... 54
Hình 2.19 Biểu đồ cộng tác UseCase Learn Contexual Communocation ........... 55
Hình 2.20 Biểu đồ cộng tác UseCase Review Vocabulary................................. 55
Hình 2.21 Biểu đồ cộng tác UseCase Review Sentences Learned ...................... 56
Hình 2.22 Biểu đồ cộng tác UseCase Practice With Bot ..................................... 56
Hình 2.23 Biểu đồ class MainActivity................................................................. 57
Hình 2.24 Biểu đồ class ExerciseActivity............................................................ 58
Hình 2.25 Biểu đồ class VocabularyActivity....................................................... 59
Hình 2.26 Biểu đồ class DialogeActivity............................................................. 60
5



Hình 2.27 Biểu đồ class VocaPracActivity.......................................................... 61
Hình 2.28 Biểu đồ class DialogePracActivity...................................................... 62
Hình 2.29 Biểu đồ class PronunciationActivity................................................... 63
Hình 2.30 Biểu đồ Hoạt động tổng quát .............................................................. 63
Hinh 3.1 Màn hình khởi động của chương trình.................................................. 64
Hình 3.2 Giao diện màn hình chính ..................................................................... 65
Hình 3.3 Giao diện màn hình chính ..................................................................... 65
Hình 3.4 Giao diện menu ..................................................................................... 66
Hình 3.5 Giao diện bài học theo Level Elementary ............................................. 66
Hình 3.6 Giao diện gửi phản hồi cho nhà phát triển ............................................ 67
Hình 3.7 Giao diện học Phát âm theo video........................................................ 67
Hình 3.8 Giao diện học Phát âm theo video........................................................ 68
Hình 3.9 Giao diện bài học theo chủ đề Color ( Level Beginer ) ........................ 68
Hình 3.10 Giao diện bài học từ vựng................................................................... 69
Hình 3.11 Giao diện chương trình đánh giá phát âm ........................................... 70
Hình 3.12 Giao diện Flashcard câu ví dụ............................................................. 71
Hình 3.13 Giao diện học bài hội thoại ................................................................. 71
Hình 3.14 Giao diện thu âm tiếng nói .................................................................. 72
Hình 3.15 Giao diện hội thoại và đánh giá........................................................... 72
Hình 3.16 Giao diện đổi vai hội thoại .................................................................. 73
Hình 3.17 Giao diện luyện tập từ vựng ................................................................ 74
Hình 3.18 Giao diện luyện tập câu....................................................................... 75
Hình 3.19 Giao diện phím menu .......................................................................... 75
Hình 3.20 Giao diện phím menu .......................................................................... 76

6



LỜI NÓI ĐẦU
Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu những năm 1990 và
theo thời gian số lượng các thuê bao cũng như các nhà cung cấp dịch vụ đi động
tại Việt Nam ngày càng tăng. Do nhu cầu trao đổi thông tin ngày càng tăng và nhu
cầu sử dụng sản phẩm công nghệ cao nhiều tính năng, cấu hình cao, chất lượng tốt,
kiểu dáng mẫu mã đẹp, phong phú nên nhà cung cấp phải luôn luôn cải thiện, nâng
cao những sản phẩm của mình. Do đó việc xây dựng các ứng dụng cho điện thoại
di động đang là một ngành công nghiệp mới đầy tiềm năng và hứa hẹn nhiều sự
phát triển vượt bậc của ngành khoa học kĩ thuật.
Cùng với sự phát triển của thị trường điện thoại di động là sự phát triển
mạnh mẽ của xu hướng lập trình phần mềm ứng dụng cho các thiết bị di động.
Phần mềm, ứng dụng cho điện thoại di động, máy tính bảng hiện nay rất đa dạng
và phong phú trên các hệ điều hành di động cũng phát triển mạnh mẽ và đang thay
đổi từng ngày. Các hệ điều hành Android được phát triển nhằm cạnh tranh với các
hệ điều hành di động khác như iOS (Apple), BlackBerry OS, Windows Mobile
(Microsoft), Symbian (Nokia), Bada (SamSung), WebOS (Palm)… đã có rất phát
triển trên thị trường truyền thông di động.
Trong vài năm trở lại đây, hệ điều hành Android ra đời với sự kế thừa
những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ
tiên tiến nhất hiện nay, đã được nhà phát triển bởi hãng công nghệ rất nổi tiếng
hiện nay là Google hậu thuẫn. Android đã nhanh chóng là đối thủ cạnh tranh mạnh
mẽ với các hệ điều hành trước đó và đang là hệ điều hành di động của tương lai và
được nhiều người ưa chuộng nhất.
Ngày nay, với sự phát triển chóng mặt của các thiết bị di động như vậy,
cùng với nhu cầu học tập mọi lúc mọi nơi không chỉ trên sách vở, máy tính mà còn
có thể mang đi mọi nơi, dùng mọi thời điểm là rất cần thiết. Chính vì vậy em đã
chọn đề tài “Xây dựng phần mềm học tiếng anh giao tiếp trên hệ điều hành
7



Android” với mục đích nghiên cứu, tìm hiểu về hệ điều hành Android và xây
dựng chương trình học tiếng anh để có thể đáp ứng được nhu cầu học tập, giao tiếp
tiếng anh mọi lúc, mọi nơi.

8


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
 Android và lịch sử phát triển

 Lịch sử Android
Android là 1 nền tảng phần mềm dựa trên mã nguồn mở Linux OS (Kernel
2.6) cho máy di động, máy tính bảng và những phần mềm trung gian (middleware).
Nó không đơn thuần là 1 hệ điều hành, 1 công cụ lập trình hay 1 phần mềm trung
gian mà nó gồm tất cả.
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi
Linux do công ty Android Inc. (California, Mỹ) thiết kế. Công ty này sau đó được
Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform.
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh thiết bị cầm tay mã
nguồn mở (Open Handset Alliance). Mục tiêu của liên minh này là nhanh chóng
đổi mới để đáp ứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đầu tiên của nó
chính là nền tảng Android. Android được thiết kế để phục vụ nhu cầu của các nhà
sản xuất thiết bị, các nhà khai thác và các lập trình viên thiết bị cầm tay.
Phiên bản SDK (Software Development Kit) lần đầu tiên phát hành vào
tháng 11 năm 2007, hãng T-Mobile cũng công bố chiếc điện thoại Android đầu
tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trên nền tảng
Android. Một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản
Android SDK release Candidate 1.0. Trong tháng 10 năm 2008, Google được cấp
giấy phép mã nguồn mở cho Android Platform.
Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là

Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng
buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là
cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có
thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào. Vào
khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên bản vá lỗi 1.1
của hệ điều hành này. Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ soft9


keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý. Android cố định
vấn đề này bằng cách phát hành SDK 1.5 vào tháng tư năm 2009, cùng với một số
tính năng khác. Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật dụng,
và các live folder.

 Các phiên bản HĐH Android
Android đã trải qua một số các cập nhật kể từ lần đầu phát hành. Những cập
nhật này nhìn chung có nhiệm vụ vá các lỗ hổng và thêm các tính năng mới vào hệ
điều hành.

Hình 1.1 : Logo các phiên bản hệ điều hành Android
Android những thế hệ đầu tiên 1.0 (9-2008) và 1.1 (2-2009) chưa có tên gọi
chính thức. Từ thế hệ tiếp theo, mỗi bản nâng cấp đều được đặt với những mã tên
riêng dựa theo các món ăn hấp dẫn theo thứ tự bảng chữ cái từ “C-D-E-F-G-H-I-JK-L-M”. Hiện tại các phiên bản chính của Android bao gồm:

10


Android 1.5 (Cupcake): Ra mắt tháng 4-2009: Phiên bản này có một số
tính năng đáng chú ý như: khả năng ghi lại và xem video thông qua chế độ máy ghi
hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại, tích hợp bàn
phím ảo với khả năng đoán trước văn bản, tự động kết nối với một thiết bị

Bluetooth trong một khoảng cách nhất định, các widget và thư mục mới có thể cài
đặt linh động trên màn hình chủ.
Android 1.6 (Donut): Ra mắt tháng 9-2009: Phiên bản này giúp nâng cao
trải nghiệm trên kho ứng dụng Android Market, tích hợp giao diện tùy biến cho
phép người dùng xóa nhiều ảnh cùng lúc, nâng cấp Voice Search, nâng cấp khả
năng tìm kiếm bookmarks, history, contacts và web trên màn hình chủ, bước đầu
hỗ trợ màn hình độ phân giải WVGA.
Android 2.0/2.1 (Eclair): Ra mắt tháng 10-2009: Phiên bản này có sự cải thiện
rõ rệt trong giao diện người dùng, tối ưu hóa tốc độ phần cứng, hỗ trợ nhiều kích cỡ và
độ phân giải màn hình hơn, thay đổi giao diện duyệt web và hỗ trợ chuẩn HTML5,
Exchange ActiveSync 2.5, nâng cấp Google Maps 3.1.2, camera zoom kĩ thuật số tích
hợp đèn flash, nâng cấp bàn phím ảo và kết nối Bluetooth 2.1.
Android 2.2 (Froyo): Ra mắt tháng 5-2010: Phiên bản này chú trọng nâng
cấp tốc độ xử lí, giới thiệu engine Chrome V8 JavaScript, hỗ trợ Adobe Flash10.1,
thêm tính năng tạo điểm truy cập Wi-Fi. Một tính năng đáng chú ý khác hỗ trợ
chuyển đổi nhanh chóng giữa các ngôn ngữ và từ điển trên bàn phím đồng thời cho
phép cài đặt và cập nhật ứng dụng ở các thiết bị mở rộng bộ nhớ. Một trong những
smartphone đầu tiên chạy phiên bản Android 2.2 Froyo là LG Optimus One.
Android 2.3 (Gingerbread): Ra mắt tháng 12-2010: Phiên bản này được
nâng cấp đáng kể giao diện người dùng, cải thiện bàn phím ảo, thêm tính năng
copy/paste, hỗ trợ công nghệ giao tiếp tầm sóng ngắn NFC, hỗ trợ chuẩn video
WebM và nâng cao tính năng copy–paste. Cùng với phiên bản Gingerbread,
Google cũng ra mắt điện thoại đầu tiên của hãng sử dụng nền tảng này là Google
Nexus S.
11


Android 3.2 (Honeycomb): Ra mắt tháng 2-2011: Đây là phiên bản hệ
điều hành dành riêng cho máy tính bảng tablet với giao diện mới tối ưu hóa cho
tablet, từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt

mail..). Honeycomb hỗ trợ bộ xử lí đa nhân và xử lý đồ họa đồng thời hỗ trợ nhiều
màn hình home khác nhau, cho phép người dùng dễ dàng tùy biến giao diện nếu
muốn.
Android 4.0 (Ice-cream sandwich): Ra mắt tháng 10-2011, là sự kết hợp
giữa Gingerbread và Honeycomb và sẽ chạy trên tất cả các thiết bị như điện thoại,
máy tính bảng, máy tính xách tay…
Android 4.1 (Jelly Bean): Ra mắt 9-7-2012: Máy tính bảng Nexus 7, sản
phẩm hợp tác giữa Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra mắt.
Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều
hành cho thiết bị di động hàng đầu hiện nay, đe dọa cả "ông lớn" Windows.

Hình 1.2: Biểu tượng Robot Android
Android 4.2 (vẫn là Jelly Bean): Ra mắt tháng 11-2012: Chỉ sau gần năm
tháng ra mắt Android 4.1, Google tiếp tục bồi thêm sức nặng cho Android với
phiên bản 4.2 và vẫn mang tên mã Jelly Bean.
Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp
12


ảnh (Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính năng
lướt chọn từ rất hay trong bàn phím ảo. Chức năng "bom tấn" hỗ trợ nhiều tài
khoản người dùng (multi-user profile) lần đầu tiên được áp dụng trong Android 4.2
nhưng chỉ có người dùng máy tính bảng thừa hưởng chức năng này.
Android 4.3 (vẫn là Jelly Bean): Ra mắt vào ngày 24-7-2013, không có
thay đổi lớn về cả giao diện lẫn cấu trúc so với Android 4.1 và 4.2 trước đó, phiên
bản 4.3 có thể coi là một bản nâng cấp nhỏ mà Google dành cho hệ điều hành của
hãng.
Android 4.4 (Kitkat): Ra mắt vào 1-11-2013, chấm dứt chuỗi ngày “nhàm
chán” với ba phiên bản khác nhau của Android Jelly Bean. KitKat được coi là
phiên bản Android “dễ tính” nhất từ trước đến nay khi nó được thiết kế cho tất cả

các thiết bị có bộ nhớ RAM 512MB trở lên.
Android 5.0 Lollipop: Sau hơn một năm Android 4.0 KitKat ra mắt,
Google đã chính thức trình làng phiên bản hậu duệ mới nhất với tên gọi Android
Lollipop, được đánh giá là hệ điều hành có những thay đổi rõ rệt và đáng kể nhất
trong lịch sử Android từ trước đến nay. Thiết kế "Material" mới: Ngôn ngữ đồ họa
mới của Android được lấy cảm hứng từ thiên nhiên, vật lý và phong cách đậm, đổ
bóng giống như in ấn. Nói cách khác, đó là một thiết kế dựa trên những đặc tính
của giấy.
Android M (Mash Mallow): ra mắt vào ngày 29-05-2015 là bản cập nhật
không quá lớn nhưng nó giúp hệ điều hành của Google trở nên thông minh, tối ưu
và hoàn hảo hơn so với phiên bản Lollipop.
 Kiến trúc Android
Mô hình tổng quát các thành phần của hệ điều hành Android:

13


Hình 1.3: Kiến trúc Android

 Linux Kernel
Hệ điều hành android được phát triển dựa trên hạt nhân linux, cụ thể là hạt
nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi
hoạt động của điện thoại muốn thi hành được thì đều đượ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).

14


Hình 1.4: Kiến trúc Linux Kernel

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...
 Các thành phần của 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...).
 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.
 Power Madagement: 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.
15


 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.

 Library và Android Runtime
Phần này có 2 thành phần là phần Library và Android Runtime.

 Library
Thành 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)(Libc): 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 codec để hỗ trợ việc phát
và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng.
 Thư viện web (LibWebCore) : Đây là thành phần để xem nội dung trên
web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như
để các ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công
nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX..
 Surface Manage: Quản lý hiển thị 2D và 3D.
 SGL công nghệ 2D
 SQLite : Quản lý database của ứng dụng.
 Free Type: Dùng cho hiển thị ảnh, font.
 SSL(Secure Socket Layer): Tầng thiết lập giao dịch an toàn trên 2 ứng
dụng trên 1 cổng (socket).
 Open GL/EL: Hỗ trợ thư viện tùy chọn 3D tĩnh và động.

 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
16


IO, Collections, File Access. Thứ

hai là một máy ảo java (Dalvik Virtual

Machine).




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 khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà
phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập,
các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanh
trạng thái, và nhiều, nhiều hơn nữa.

Hình 1.5: Kiến trúc Framework
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử
dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn giản hóa
việc sử dụng lại các thành phần. Cơ bản tất cả các ứng dụng là một bộ các dịch vụ
và các hệ thống, bao gồm:
 View Manage: Một tập hợp rất nhiều các View có khả năng kế thừa lẫn
nhau dùng để thiết kế phần giao diện ứng dụng như: gridview, tableview,
linearlayout…
 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ư
17


gọi điện thoại.
 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).
 Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các
ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụ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)... 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 widget các ứng dụng của bên thứ 3…
 Các thành phần của Android

 Thành phần của một chương trình Android
 Activity và Intent
Activity:
Một activity thể hiện một giao diện đồ họa người dùng. Mặc dù chúng làm
việc cùng nhau để tạo thành một giao diện người dùng, mỗi activity độc lập với
những cái khác. Mỗi activity là một lớp con của lớp cơ sở Activity.
18


Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời
của một hoạt động. Class Activity định nghĩa các sự kiện sau đây:
 onCreate(): Được gọi khi hoạt động được tạo ra lần đầu tiên.
 onStart(): Được gọi khi hoạt động trở nên hữu hình so với người dùng.

 onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử
dụng.
 onPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt
động trước đó.
 onStop(): Được gọi khi hoạt động không còn hiển thị với người dùng.
 onDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống
(bằng tay hoặc bằng hệ thống để bảo tồn bộ nhớ).
 onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại
một lần nữa.

19


Hình 1.6: Vòng đời hoạt động của 1 ứng dụng Android
Intent:
Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một
Activity. Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều
Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc
khác nhau. Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng
20


như truyền các dữ liệu cần thiết tới một Activity khác.

Hình 1.7: Quá trình hoạt động của Itent

21





Service
Một service không có giao diện trực quan, nó chạy trên nền trong một

khoảng thời gian không xác định. Ví dụ một service có thể chơi nhạc nền, hay nó
nạp dữ liệu trên mạng hay tính toán cái gì đó và cung cấp kết quả cho activity cần
đến nó. Mỗi service mở rộng từ lớp cơ sở Service.

Hình 1.8 : Vòng đời của Service

 Broadcast Reveive
Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc nhận
22


và đáp lại các thông báo broadcast. Các ứng dụng có thể tạo ra các broadcast,
chẳng hạn để ứng dụng khác biết được một số dữ liệu đã được tải về thiết bị và sẵn
sàng cho việc sử dụng chúng.
Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thông báo
nào mà nó cho là quan trọng. Tất cả các receiver mở rộng từ lớp cơ sở
BroadcastReceiver. Broadcast Receiver không hiển thị một giao diện người dùng.

 Content Provider
Một content provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả
dụng cho các ứng dụng khác. Dữ liệu có thể được lưu trữ trong hệ thống file, trong
một cơ sở dữ liệu SQLite, hay trong một cách khác nào đó. Content provider mở
rộng lớp cơ sở ContentProvider để cài đặt một tập các chuẩn các phương thức cho
phép các ứng dụng khác đạt được và lưu trữ dữ liệu của kiểu mà nó điều khiển.
Tuy nhiên, các ứng dụng không gọi trực tiếp các phương thức này, chúng sử dụng
một đối tượng ContentResolver và gọi các phương thức của nó. Một

ContentResolver có thể nói chuyện với bất cứ content provider nào, chúng cộng
tác với provider để quản lý giao tiếp liên tiến trình.

 Manifest File
Trước khi Android có thể khởi động một thành phần ứng dụng, nó phải biết
rằng thành phần đó tồn tại. Vì vậy, ứng dụng khai báo những thành phần của mình
trong một manifest file được gắn vào Android package, file .apk này cũng giữ
chứa mã của ứng dụng và các tài nguyên.
Manifest file là một file XML có cấu trúc và thường được đặt tên là
AndroidManifest.xml cho mọi ứng dụng. Nó thực hiện một số bổ sung để khai báo
các thành phần của ứng dụng, như là nêu tên các thư viện ứng dụng cần đến, và
xác định các quyền hạn của ứng dụng muốn được cấp.

 Giao diện người dùng trong Android
Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng
cách sử dụng View và ViewGroup đối tượng. Có nhiều loại quan điểm và các
23


nhóm view, mỗi một trong số đó là hậu duệ của lớp View. View objects là các đơn
vị cơ bản của biểu hiện giao diện người dùng trên nền tảng Android. Các class
xem như là cơ sở phục vụ cho class con được gọi là "widget", trong đó cung cấp
đầy đủ các đối tượng thực hiện giao diện, giống như các lĩnh vực văn bản và nút.
Class ViewGroup phục vụ như là cơ sở cho lớp con được gọi là "layouts", cung
cấp các loại khác nhau của kiến trúc bố trí, như linear và relative.

 Các thành phần trong giao diện Widget
Có rất nhiều cách bố trí giao diện. Sử dụng nhiều hơn và các loại khác nhau
của các view group, bạn có thể cấu trúc views con và view groups trong vô số
cách. Xác định các nhóm xem được cung cấp bởi Android (gọi là layouts) bao gồm

LinearLayout, RelativeLayout, TableLayout, GridLayout và các layout khác. Mỗi
layout cung cấp một bộ duy nhất của các thông số bố trí được sử dụng để xác định
vị trí của views con và cơ cấu layout để tìm hiểu về một số các loại khác nhau của
các view group được sử dụng cho một layout, đọc giao diện đối tượng thường
gặp.

 Bắt sự kiện trong Android
Khi đã thêm một số Views/widgets đến giao diện. Để được thông báo về UI
events người dùng, cần phải làm một trong hai điều: Xác định một sự kiện nghe và
đăng ký nó với các View. Đây là cách lắng nghe sự kiện. Các class View có một
phương pháp gọi là On<something>().
Ghi đè một callback method hiện cho View. Đây là những gì nên làm gì khi
đã thực hiện lớp View của riêng bạn và muốn lắng nghe cho các sự kiện cụ thể xảy
ra trong nó. Ví dụ về các sự kiện có thể xử lý bao gồm màn hình là
touchedonTouchEvent() khi trackball là di chuyển onTrackballEvent() hoặc khi
một phím trên thiết bị được nhấn onKeyDown(). Điều này cho phép xác định các
hành vi mặc định cho từng sự kiện bên trong tuỳ chỉnh View và xác định xem sự
kiện này cần được thông qua ngày để View con khác. Một lần nữa, đây là những
callbacks View class, do đó, cơ hội duy nhất của bạn để xác định đó là khi bạn xây
24


dựng một phần tùy chỉnh.

 Menu
Menu đơn có một phần quan trọng của giao diện người dùng trong một ứng
dụng. Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức năng ứng
dụng và cài đặt. Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bằng cách bấm
phím MENU trên thiết bị. Tuy nhiên, cũng có thể thêm Context Menus, có thể hiển
thị khi người sử dụng máy nhấn và nắm giữ phím trên một mục. Thực đơn cũng

được hệ thống phân cấp cấu trúc bằng cách sử dụng một xem, nhưng bạn không
xác định cấu trúc này cho mình.
Thay vào đó, xác định onCreateOptionsMenu() or onCreateContext Menu()
gọi method cho hoạt động của mình và tuyên bố các mục mà mình muốn bao gồm
trong menu của mình. Trong một thời gian thích hợp, Android sẽ tự động tạo ra hệ
thống View phân cấp cần thiết cho menu, và rút ra trong mỗi menu items đó.
 Hệ quản trị CSDL SQLite
Mỗi ứng dụng đều sử dụng dữ liệu, dữ liệu có thể đơn giản hay đôi khi là cả
1 cấu trúc. Trong Android thì hệ cơ sở dữ liệu được sử dụng là SQLite Database,
đây là hệ thống mã nguồn mở được sử dụng rộng rãi trong các ứng dụng (Mozilla
Firefox sử dụng SQLite để lưu trữ các dữ liệu về cấu hình, iPhone cũng sử dụng cơ
sở dữ liệu là SQLite).
Trong Androidd, cơ sở dữ liệu mà bạn tạo cho 1 ứng dụng thì chỉ ứng dụng
đó có quyền truy cập và sử dụng, các ứng dụng khác thì không. Khi được tạo, cơ
sở dữ liệu SQLite được chứa trong thư mục:
/data/data//databases.

 Giới thiệ về SQLite
 SQLite là một SQL embedded database engine. SQLite không có server,
nó đọc và ghi dữ liệu trực tiếp xuống file.
 Định dạng file của SQLite là cross-platform. Ta có thể sao chép, sử
dụng dữ liệu ở bất cứ hệ điều hành nào.
25


×