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

Xây dựng ứng dụng học tiếng nhật 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 (4.83 MB, 70 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
Đề tài :

XÂY DỰNG ỨNG DỤNG HỌC TIẾNG NHẬT
TRÊN NỀN TẢNG ANDROID

Giảng viên hướng dẫn : PGS. TSKH TRẦN QUỐC CHIẾN
Sinh viên

: TRƯƠNG THỊ NGỌC ÁNH

Lớp

: 11CNTT2

Đà Nẵng, tháng 05 năm 2015


LỜI CẢM ƠN
Trước hết em xin chân thành cảm ơn đến quý thầy cô khoa Tin học
trường Đại Học Sư Phạm Đà Nẵng, đặc biệt là những thầy cô đã tận tình dạy
bảo em trong suốt quá trình học tập tại trường.
Em xin gởi lời biết ơn sâu sắc đến PGS.TSKH Trần Quốc Chiến đã dành
nhiều thời gian và tâm huyết để giúp em hoàn thành luận văn tốt nghiệp.
Em xin gởi lời cảm ơn chân thành đến công ty CP Công Nghệ Tâm Hợp
Nhất đã tạo điều kiện thuận lợi, hỗ trợ em hoàn thành luận văn. Em cũng xin
gởi lời cảm ơn đến anh Nguyễn Lê Sĩ Nguyên và các anh chị trong cơng ty đã


tận tình hướng dẫn và chỉ bảo em trong thời gian vừa qua.
Trong quá trình thực hiện luận văn tốt nghiệp, em đã ln cố gắng hồn
thành luận văn của mình một cách tốt nhất. Nhưng kinh nghiệm cũng như vốn
kiến thức còn hạn chế nên khơng tránh khỏi những thiếu xót của bản thân. Rất
mong thầy cô, các bạn nhận xét và góp ý thêm để em ngày càng hồn thiện tốt
hơn.
Xin trân trọng cảm ơn!


LỜI CAM ĐOAN
Tôi xin cam đoan:
1. Những nội dung trong báo cáo 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 PGS.TSKH Trần Quốc Chiến.
2. Mọi tham khảo dùng trong báo cáo này đề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

Trương Thị Ngọc Ánh


NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………

…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
………………………………………………………………………………....
Đà Nẵng, ngày

tháng

năm 2015

Chữ ký của giảng viên hướng dẫn


MỤC LỤC
DANH MỤC BẢNG BIỂU .............................................................................. i
DANH MỤC HÌNH VẼ ..................................................................................ii
MỞ ĐẦU .......................................................................................................... 1
1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI ............................................................. 1
2. MỤC TIÊU NGHIÊN CỨU ...................................................................... 2
3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU .......................................... 2
4. PHƯƠNG PHÁP NGHIÊN CỨU ............................................................. 2
5. BỐ CỤC ĐỀ TÀI ...................................................................................... 3

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT .............................................................. 4
1.1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID .................................. 4
1.1.1 Giới thiệu hệ điều hành Android....................................................... 4
1.1.2 Lịch sử phát triển .............................................................................. 5
1.1.3 Các phiên bản của hệ điều hành Android ......................................... 6
1.1.4 Ưu nhược điểm của hệ điều hành Android ....................................... 6
1.1.5 Kiến trúc của hệ điều hành Android ................................................. 7
1.1.6 Các thành phần của ứng dụng ......................................................... 10
1.1.7 Các thành phần của một Android Project ....................................... 13
1.1.8 Lưu trữ dữ liệu với SQLite ............................................................. 14
1.2 GOOGLE CLOUD MESSAGING ....................................................... 15
1.2.1 Giới thiệu Google Cloud Messaging .............................................. 15
1.2.2 Quy trình hoạt động ........................................................................ 16
1.3 WEB SERVICE .................................................................................... 17
1.3.1 Giới thiệu về Web Service .............................................................. 17
1.3.2 Đặc điểm của Web Service ............................................................. 17
1.3.3 Ưu và nhược điểm........................................................................... 17


1.4 JSON ..................................................................................................... 18
1.4.1 Json là gì ?....................................................................................... 18
1.4.2 Json Object ...................................................................................... 19
1.4.3 Json Array ....................................................................................... 19
1.4.4 Các bước để parse Json ................................................................... 19
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ ...................................................... 20
2.1 XÁC ĐỊNH YÊU CẦU ......................................................................... 20
2.2 PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG ...................................... 21
2.2.1 Sơ đồ phân rã chức năng ................................................................. 21
2.2.2 Sơ đồ ngữ cảnh ............................................................................... 21
2.2.3 Sơ đồ dòng dữ liệu mức đỉnh .......................................................... 22

2.2.4 Biểu đồ Activity .............................................................................. 22
2.2.5 Một số kịch bản đa sử dụng ............................................................ 25
2.3 PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU ................................... 26
2.3.1 Sơ đồ thực thể liên kết (ERD) ......................................................... 26
2.3.2 Sơ đồ quan hệ dữ liệu ..................................................................... 27
2.3.3 Các lược đồ quan hệ........................................................................ 27
CHƯƠNG 3. KẾT QUẢ ĐẠT ĐƯỢC ........................................................ 34
3.1 WEBSITE QUẢN LÝ ỨNG DỤNG HỌC TIẾNG NHẬT ...................... 34
3.1.1 Bài học ............................................................................................ 34
3.1.2 Từ vựng ........................................................................................... 34
3.1.3 Ngữ pháp ......................................................................................... 35
3.1.4 Ví dụ ngữ pháp................................................................................ 36
3.1.5 Gởi thông báo ................................................................................. 36
3.1.6 Câu hỏi luyện tập ............................................................................ 37
3.1.7 Web API ......................................................................................... 37
3.2 GIAO DIỆN ỨNG DỤNG HỌC TIẾNG NHẬT TRÊN ANDROID .... 39


3.2.1 Splash screen................................................................................... 39
3.2.2 Menu ............................................................................................... 40
3.2.3 Menu bài học .................................................................................. 40
3.2.4 Popup menu .................................................................................... 41
3.2.5 Học bảng chữ cái ............................................................................ 42
3.2.6 Học phát âm .................................................................................... 43
3.2.7 Học chào hỏi cơ bản........................................................................ 43
3.2.8 Học số đếm ..................................................................................... 44
3.2.9 Học cách nói thời gian .................................................................... 45
3.2.10 Học từ vựng .................................................................................. 46
3.2.11 Học ngữ pháp ................................................................................ 47
3.2.12 Notification ................................................................................... 48

3.2.13 Học Hán Tự................................................................................... 49
3.2.14 Menu luyện tập ............................................................................. 49
3.2.15 Luyện tập bảng chữ cái ................................................................. 50
3.2.16 Luyện tập chào hỏi ........................................................................ 51
3.2.17 Luyện tập số đếm .......................................................................... 52
3.2.18 Luyện tập thời gian ....................................................................... 53
3.2.19 Luyện tập từ vựng ......................................................................... 54
3.2.20 Luyện tập ngữ pháp ...................................................................... 55
3.2.21 Luyện tập Hán Tự ......................................................................... 56
3.2.22 Tìm kiếm ....................................................................................... 57
3.2.23 Thơng báo kết quả luyện tập ......................................................... 58
KẾT LUẬN VÀ KIẾN NGHỊ ...................................................................... 59
TÀI LIỆU THAM KHẢO ............................................................................ 60


i

DANH MỤC BẢNG BIỂU
Số hiệu bảng

Tên bảng

Trang

2.1

Kịch bản sử dụng chức năng học tiếng Nhật

25


2.2

Kịch bản sử dụng chức năng luyện tập

25

2.3

Kịch bản sử dụng chức năng tìm kiếm

26


ii

DANH MỤC HÌNH VẼ
Số hiệu

Tên hình vẽ

hình vẽ

Trang

1.1

Mơ hình kiến trúc nền tảng Android

7


1.2

Quy trình hoạt động Google Cloud Messaging

17

2.1

Sơ đồ phân rã chức năng

21

2.2

Sơ đồ ngữ cảnh

21

2.3

Sơ đồ dòng dữ liệu mức đỉnh

22

2.4

Biểu đồ Activity “Học tiếng Nhật”

22


2.5

Biểu đồ Activity “Luyện tập”

23

2.6

Biểu đồ Activity “Tải dữ liệu”

23

2.7

Biểu đồ Activity “Tìm kiếm”

24

2.8

Biểu đồ Activity “Đăng ký GCM”

24

2.9

Sơ đồ thực thể liên kết (ERD)

26


2.10

Sơ đồ quan hệ dữ liệu

27

3.1

Giao diện phần bài học

34

3.2

Giao diện phần từ vựng

35

3.3

Giao diện phần ngữ pháp

35

3.4

Giao diện phần ví dụ ngữ pháp

36


3.5

Giao diện phần push notification

36

3.6

Giao diện phần câu hỏi luyện tập

37

3.7

Cơ sở dữ liệu dạng chuỗi Json

38

3.8

Màn hình Splash Screen

39

3.9

Giao diện menu

40


3.10

Giao diện menu bài học

41


iii

3.11

Popup menu

41

3.12

Giao diện học bảng chữ cái

42

3.13

Giao diện học phát âm

43

3.14

Giao diện học chào hỏi cơ bản


44

3.15

Giao diện phần học số đếm

45

3.16

Giao diện phần học thời gian

46

3.17

Giao diện phần học từ vựng

47

3.18

Giao diện phần học ngữ pháp

48

3.19

Notification


48

3.20

Giao diện phần học Hán Tự

49

3.21

Giao diện menu luyện tập

50

3.22

Giao diện phần luyện tập chữ cái

51

3.23

Giao diện luyện tập chào hỏi

52

3.24

Giao diện luyện tập số đếm


53

3.25

Giao diện luyện tập thời gian

54

3.26

Giao diện luyện tập từ vựng

55

3.27

Giao diện luyện tập ngữ pháp

56

3.28

Giao diện luyện tập Hán Tự

57

3.29

Giao diện tìm kiếm từ


58

3.30

Kết quả luyện tập

58


1

MỞ ĐẦU
1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Hiện nay, rất nhiều các công ty của Nhật đang chuyển hướng trọng tâm
hoạt động kinh doanh sang thị trường Việt Nam. Khi đó, nhân lực cần thiết là
những người có khả năng nói tiếng Nhật và hầu hết những người như thế đều
trở thành nhà điều hành quản lý. Trong tương lai các doanh nghiệp Nhật Bản
sẽ càng ngày càng hướng tới Việt Nam và khi đó, khả năng giao tiếp tiếng
Nhật sẽ là điểm lợi cho cơng cuộc tìm kiếm việc làm.
Do đó, cùng với sự phát triển của các thiết bị thơng minh cũng như hệ
điều hành Android, có rất nhiều sản phẩm được cung cấp để nhằm hỗ trợ cho
việc học tiếng Nhật. Tuy nhiên, bản thân nhận thấy rằng đa số các ứng dụng
đó đều xây dựng theo dạng giáo trình, chưa hướng đến đối tượng người bắt
đầu học. Nếu những người mới bắt đầu học khi học qua những ứng dụng này
thì họ sẽ khơng nắm được kiến thức sơ cấp, khơng biết được mình sẽ tiếp tục
học lên mức độ nào. Một số ứng dụng thì có hướng đến người bắt đầu học
nhưng lại chưa đáp ứng đủ nội dung học tập cần thiết. Nội dung cần thiết cho
người học mới bắt đầu học thì lại được xây dựng bởi nhiều ứng dụng riêng lẻ.
Chính vì vậy, đề tài được xây dựng để thực hiện được hai mục đích là hỗ

trợ cho những người đang học tiếng Nhật tại các trung tâm và giúp cho những
người đi làm, những sinh viên, học sinh… có thể tự học tiếng Nhật tại nhà.
Từ kinh nghiệm bản thân đã từng học qua lớp sơ cấp tiếng Nhật và vốn ngoại
ngữ tiếng Nhật sẽ xây dựng một ứng dụng học tiếng Nhật hiệu quả. Nội dung
ứng dụng sẽ hướng đến đối tượng mới bắt đầu học. Trong ứng dụng, người
dùng sẽ được học bảng chữ cái Hiragana, bảng chữ Katakana, cách phát âm,
cách nói số đếm, thời gian, chữ hán tự cơ bản, bộ hán tự cơ bản, từ vựng, ngữ
pháp và người dùng sẽ được luyện tập những phần mà mình đã học.


2

2. MỤC TIÊU NGHIÊN CỨU
 Nghiên cứu về nền tảng Android và xây dựng ứng dụng bẳng ngôn ngữ
Android.
 Nghiên cứu và thiết kế giao diện phù hợp cho tất cả các thiết bị.
 Tìm hiểu ngơn ngữ lập trình PHP và áp dụng vào xây dựng Web
Service trả về cơ sở dữ liệu dưới dạng chuỗi Json.
 Tìm hiểu cách tương tác dữ liệu giữa điện thoại Android và Web
Service.
 Tìm hiểu, nghiên cứu Google Cloud Messaging để push notification về
điện thoại khi có dữ liệu mới được cập nhật.
 Tìm hiểu cách triển khai một ứng dụng trên Google play store.
3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
 Đối tượng nghiên cứu:
- Kiến trúc hệ điều hành Android.
- Lập trình ứng dụng trên nền tảng Android.
- Xây dựng Web Service bằng ngôn ngữ PHP.
- Kỹ thuật Push Notifications sử dụng Google Cloud Messaging.
 Phạm vi nghiên cứu:

- Ngôn ngữ lập trình Android và PHP
- Web Service
- Cách tương tác dữ liệu giữa Web Service và điện thoại.
- Cách sử dụng Google Cloud Messaging.
4. PHƯƠNG PHÁP NGHIÊN CỨU
 Tìm hiểu, khảo sát các ứng dụng trên nền tảng Android sử dụng Web
Service, Google Cloud Messaging, nghiên cứu và ứng dụng kỹ thuật
vào đề tài.


3

 Phân tích các yêu cầu của người dùng, từ đó thiết kế giao diện ứng
dụng đơn giản, dễ sử dụng nhưng hiệu quả cao.
 Đề xuất các chức năng cho ứng dụng, cũng như nhận phản hồi chức
năng từ giảng viên hướng dẫn và từ đó đưa ra các giải pháp hợp lý phù
hợp với xu thế phát triển của phần mềm.
 Tham khảo ý kiến của giáo viên dạy tiếng Nhật để xây dựng nội dung
của ứng dụng phù hợp và đạt hiệu quả cao.
 Ngoài ra sử dụng các phương pháp nghiên cứu khác như nghiên cứu tài
liệu, giáo trình hay các tài liệu tham khảo có liên quan đến hệ thống cần
xây dựng.
5. BỐ CỤC ĐỀ TÀI
Bố cục đề tài gồm 3 chương với các nội dung cơ bản sau:
 Chương 1: Cơ sở lý thuyết
- Tổng quan về hệ điều hành Android.
- Giới thiệu Web Service, cấu trúc Json.
- Giới thiệu các kỹ thuật và công nghệ sử dụng trong đề tài.
 Chương 2: Phân tích thiết kế
- Phân tích hệ thống, trình bày rõ các chức năng của ứng dụng.

- Phân tích thiết kế cơ sở dữ liệu.
- Thiết kế giao diện người dùng.
 Chương 3: Kết quả đạt được
- Demo website quản lý ứng dụng học tiếng Nhật
- Demo Web API
- Demo ứng dụng B-Japanese


4

CHƯƠNG 1

CƠ SỞ LÝ THUYẾT
1.1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID
1.1.1 Giới thiệu hệ điều hành Android
Android [6] được phát triển bởi tập đoàn Google, phiên bản đầu tiên ra
đời năm 2008. Hệ điều hành Android được xây dựng trên một nền tảng mở,
và một bộ thư viện đa năng, mạnh mẽ với nguyên lý mở, nên Android đã
nhanh chóng được cộng đồng lập trình viên di động hưởng ứng mạnh mẽ.
Nền tảng Android được tích hợp nhiều tính năng nổi bật:
 Android là một hệ điều hành nhân Linux, đảm bảo sự tương tác với
các phần cứng, quản lý bộ nhớ, điều khiển các tiến trình tối ưu cho
các thiết bị di động.
 Bộ ứng dụng khung cho phép sử dụng lại và thay thế các thành
phần riêng lẻ.
 Máy ảo Dalvik được tối ưu cho các thiết bị di động, chạy các ứng
dụng lập trình trên ngơn ngữ Java.
 Các thư viện cho phát triển ứng dụng mã nguồn mở bao gồm
SQLite, WebKit, OpenGL và trình quản lý đa phương tiện.
 Hỗ trợ các chuẩn đa phương tiện phổ biến, thoại trên nền GSM,

Bluetooth EDGE, 3G và Wifi.
 Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc …
 Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, cơng cụ
sửa lỗi, tích hợp với Eclipse SDK.
Android cung cấp một tập hợp đầy đủ các phần mềm cho thiết bị di động
bao gồm: hệ điều hành, các khung ứng dụng và các ứng dụng cơ bản.


5

1.1.2 Lịch sử phát triển
 Tháng 10/2013, Android được thành lập tại Palo Alto, California, Hoa
Kỳ do Andu Rubin, Rich Miner và một số thành viên khác chủ trì, với
mục đích để phát triển hay tạo ra các thiết bị di động thơng minh hơn
phục vụ cho các mục đích cho lợi ích con người.
 Tháng 8/2005, Google mua lại Android Inc với giá 50 triệu USD. Các
nhân viên chính của Android Inc, trong đó có Andy Rubin, Rich
Miner vẫn tiếp tục làm việc tại công ty.
 Tháng 9/2007, Information Week đăng tải một nghiên cứu của
Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế
trong lĩnh vực điện thoại di động.
 Tháng 11/2007, Liên minh thiết bị cầm tay mở rộng (Open Handset
Alliance) đã 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.
 Từ tháng 10/2008, hệ điều hành Android đã chính thức trở thành phần
mềm mã nguồn mở. Theo đó, các cơng ty thứ ba được phép thêm
những ứng dụng của riêng họ vào Android và bán chúng mà không
cần phải hỏi ý kiến Google.
 Tháng 11/2008, Liên minh Open Handset Alliance ra mắt gói phát triển
phần mềm Android SDK cho nhà lập trình.

 Tháng 12/2008, có thêm 14 thành viên mới gia nhập dự án Android
được công bố, gồm có ARM Holdings, Atheros Communications,
Asutek Computer Inc, Vodafone Group Pic, Garmin Ltd, Softbank,
Sony Ericsson và Toshiba Corp.
 Từ năm 2009 đến nay, số lượng smartphone nền tảng Android tăng
trưởng mạnh mẽ.


6

1.1.3 Các phiên bản của hệ điều hành Android
 Từ lúc ra mắt phiên bản đầu tiên cho tới nay, Android đã có rất nhiều
bản nâng cấp. Đa số đều tập trung vào việc vá lỗi và thêm những tính
năng mới.
 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 ”. Hiện tại các phiên bản chính
của Android [7] bao gồm:
 Android Cupcake 1.5, 4/2009
 Android Donut 1.6, 9/2009
 Android Eclair 2.0 + 2.1, 10/2009
 2.2 Android Froyo 5/2010
 Android Gingerbread 2.3, 12/2010
 Android Honeycomb 3.0, 2/2011
 Android 4.0 Ice Cream Sandwich, cuối 2011
 Android Jelly Bean 4.1 +4.2, 2012
 Android 4.3 Jelly Bean 4.3, 24/4/2013
 Android 4.4 KitKat, 15/10/2013
 Android L, 26/06/2014

1.1.4 Ưu nhược điểm của hệ điều hành Android
a. Ưu điểm của hệ điều hành Android
 Google Android là nền tảng mở, cho phép người dùng có thể tùy
biến nền tảng theo ý thích, hơn nữa lại có một Liên minh thiết bị
cầm tay mở hậu thuẫn, Google Android đang là đối thủ xứng tầm
của iPhone.


7

 Google đang tích cự mở rộng cộng đồng phát triển các ứng dụng
cho Android. Bộ công cụ phát triển phần mềm (SDK) đầy đủ, hỗ trợ
đa nền (Linux, Windows hay Mac OS) do chạy trên máy ảo Java.
 Thư viện ngày càng hoàn thiện, dễ dàng cho người lập trình.
b. Nhược điểm của hệ điều hành Android
 Hệ điều hành phân mảnh, không thống nhất trên các thiết bị, giới
hạn về độ “mở”.
 Nhiều lỗ hổng bảo mật.
1.1.5 Kiến trúc của hệ điều hành Android

Hình 1. 1 Mơ hình kiến trúc nền tảng Android


8

a. Applications
Hệ điều hành Android tích hợp sẵn một số ứng dụng cơ bản như Email
Client, SMS, lịch điện tử, bản đồ, trình duyệt web, sổ liên lạc và một số ứng
dụng khác.Ngồi ra tầng này cũng chính là tầng chứa các ứng dụng được phát
triển bằng ngôn ngữ Java.

b. Application Framwork
- Tầng này của hệ điều hành Android cung cấp một nền tảng phát triển
ứng dụng mở qua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra các
ứng dụng vô cùng sáng tạo và phong phú. Các nhà phát triển ứng dụng được
tự do sử dụng các tính năng cao cấp của thiết bị phần cứng như: thông tin
định vị địa lý, khả năng chạy dịch vụ dưới nền, thiết lập đồng hồ báo thức,
thêm notification vào status bar của màn hình thiết bị.
- Tầng này bao gồm một tập các services và thành phần sau:
 Một tập phong phú và có thể mở rộng bao gồm các đối tượng View
được dùng để xây dựng ứng dụng như: list, grid, textbox, button và
thậm chí là một trình duyệt web có thế nhúng vào ứng dụng.
 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 hoặc chia sẽ dữ liệu của chúng.
 Resource Manager: Cung cấp khả năng truy xuất các tài nguyên noncode như hình ảnh hoặc file layout.
 Notification Manager: Cung cấp khả năng hiển thị custom alert trên
thanh status bar.
 Activity Manager: Giúp quản lý vòng đời của một ứng dụng.
c. Libraries
 Media libraries: Bộ thư viện hỗ trợ trình diễn và ghi các định dạng
âm thanh và hình ảnh phổ biến.


9

 Surface manager: Quản lý hiển thị nội dung 2D và 3D.
 LibWebCore: Một web browser engine hiện đại được sử dụng trong
trình duyệt của Android lần trong trình duyệt nhúng web view được
sử dụng trong ứng dụng.
 SGL: Engine hỗ trợ đồ họa 2D.
 3D libraries: Một thể hiện được xây dựng dựa trên các APIs của

OpenGL ES 1.0. Những thư viện này sử dụng các tăng tốc 3D bằng
phần cứng lẫn phần mềm để tối ưu hóa hiển thị 3D.
 FreeType: Bitmap và vector font rendering.
 SQLite: Cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu của
ứng dụng.
 System C library: Tối ưu hóa cho các thiết bị chạy trên nền Linux.
d. Android runtime
- Hệ điều hành Android tích hợp sẳn một tập hợp các thư viện cốt lõi
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 của Android chạy trên một tiến trình của riêng
nó cùng với một thể hiện của máy ảo Dalvik. Máy ảo Dalvik thực tế là một
biến thể của máy ảo Java được sửa đổi, bổ sung các công nghệ đặc trưng của
thiết bị di động. Nó được xây dựng với mục đích làm cho các thiết bị di động
có thể chạy nhiều máy ảo một cách hiệu quả. Trước khi thực thi, bất kì ứng
dụng Android nào cũng được convert thành file thực thi với định dạng nén
Dalvik Executable (.dex). Định dạng này được thiết kế để phù hợp với các
thiết bị hạn chế về bộ nhớ cũng như tốc độ xử lý. Ngoài ra máy ảo Dalvik sử
dụng bộ nhân Linux để cung cấp các tính năng như thread, low-level memory
management.


10

e. Linux Kernel
- 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 dây, …). 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.
1.1.6 Các thành phần của ứng dụng

a. Activity
 Trong ứng dụng Android, Activity đóng vai trị là một màn hình, nơi
người dùng có thể tương tác với ứng dụng.
 Một ứng dụng có thể có một hoặc nhiều Activity, Activity được khởi
chạy đầu tiên khi ứng dụng hoạt động được gọi là “MainActivity”.
 Activity có thể hiển thị ở chế độ tồn màn hình, hoặc ở dạng cửa sổ
với một kích thước nhất định.
 Các Activity có thể gọi đến các Activity khác, Activity được gọi sẽ
nhận được tương tác ở thời điểm đó.
 Vịng đời của một Activity:
- Một Activity có 4 trạng thái:
+ 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.
+ 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ớ.


11

+ Killed hay Shut down khi 1 activity đang paused hay stopped,
hệ thống sẽ xóa activity ấy ra khỏi bộ nhớ.
b. Services
 Service được sử dụng để thực thi các tác vụ cần nhiều thời gian, thực
hiện ở chế độ ngầm và thường không cần giao diện hiển thị.
 Service có thể được khởi chạy và hoạt động xuyên suốt ngay cả khi
ứng dụng không hoạt động.

 Một số tác vụ cần thực hiện bằng Service:
 Trình diễn các tập tin đa truyên thông như nhạc, phim…
 Kết nối và thực hiện tải các nội dung thông qua Internet
 Truy xuất đọc ghi tập tin
c. Broadcast Receivers
 Thành phần ứng dụng cho phép truyền tải các thông báo trên phạm
vi tồn hệ thống. Khơng có giao diện nhưng có thể thực hiện thông
báo qua thanh trạng thái.
 Broadcast Receiver truyền thông báo ở hai dạng:
 Hệ thống: Các thông báo được truyền trực tiếp từ hệ thống như: tắt
màn hình, pin yếu, thay đổi kết nối…
 Ứng dụng: Xây dựng các truyền thông báo đến các thành phần
trong ứng dụng như: khởi động Service, tải nội dung đến ứng dụng
d. Content Provider
 Content Provider xây dựng cách thức truy xuất tập hợp dữ liệu ứng
dụng, dữ liệu có thể lưu trữ ở nhiều dạng như: SQLite, tập tin, tài
nguyên Web hoặc bất kì thư mục lưu trữ nào.
 Có thể sử dụng Content Provider để xây dựng các ứng dụng sử dụng
chung nguồn tài nguyên hoặc sử dụng riêng.


12

 Trong Android, một số Content Provider được xây dựng sẵn: danh
bạ, tài nguyên đa truyền thông, lịch.
e. View
 View được sử dụng để tạo ra các điều khiển trên màn hình cho phép
nhận các tương tác từ người dùng cũng như hiển thị các thông tin cần
thiết.
 View bao gồm hai dạng: các điều khiển đơn lẻ (View) và tập hợp

nhiều điều khiển đơn lẻ (ViewGroup).
 Một số View thường dùng:
 TextView: Hiển thị 1 khung text và cho phép người dùng thay đổi.
 ImageView: Hiển thị 1 hình ảnh xác định từ file tài nguyên hay
qua 1 content provider.
 Button: Hiển thị 1 nút nhấn.
 Checkbox: Hiển thị 1 nút nhấn với 2 trạng thái khác nhau.
 KeyboardView: Hiển thị bàn phím ảo để nhập liệu.
 WebView: Hiển thị các trang web bằng Webkit.
 Một số ViewGroup thường dùng:
 LinearLayout: Các view được xếp theo 1 hàng hay 1 cột duy nhất.
 AbsoluteLayout: Cho phép xác định chính xác vị trí của từng
view.
 TableLayout: Sắp xếp các view theo các cột và hàng. Mỗi hàng có
thể có nhiều view, mà mỗi view sẽ tạo nên 1 ô.
 RelativeLayout: Cho phép xác định vị trí các view theo mối quan
hệ giữa chúng (VD; canh trái, phải,...).
 FrameLayout: Là 1 placeholder cho phép đặt lên đó 1 view duy
nhất. View đặt lên FrameLayout ln được canh lề trái phía trên.


13

 ScrollView: Là 1 FrameLayout đặc biệt cho phép trượt (scroll) 1
danh sách dài hơn kích thước màn hình.
f. Intent
 Intent là đối tượng mang thông điệp, cho phép tạo ra các yêu cầu
hành động giữa các thành phần trong ứng dụng, hoặc giữa các ứng
dụng với nhau.
 Được sử dụng nhiều trong ba trường hợp sau:

 Khởi động Activity
 Khởi động Service
 Chuyển phát thông tin cho Broadcast Receiver
g. Notification
 Notification được xây dựng cho mục đích gửi các thông báo đến
người dùng thông qua thanh trạng thái.
 Giao diện Notification khơng thuộc giao diện ứng dụng, nhưng có
thể tùy chỉnh giao diện Notification thông qua các phương thức có
sẵn.
1.1.7 Các thành phần của một Android Project
a. Src
 Đây là thư mục chứa mã nguồn.
 Nơi chứa tất cả các lớp do người dùng xác định, bao gồm lớp hoạt
động mặc định.
b. Gen
 Nơi chứa các file .R tự sinh ra trong project.
 Tệp R.java bên trong thư mục này chứa các tham chiếu tĩnh tới tất cả
tài nguyên hiện có trong thư mục res.


14

c. Bin
 Chứa file cài đặt .apk để chép vào thiết bị.
d. Res
 Thư mục chứa tất cả các tài nguyên cho dự án.
 Nó bao gồm các tài nguyên sau:
- Drawable – hdpi: Tài nguyên cho mảng hình phân giải cao.
- Drawable – ldpi: Tài nguyên cho mảng hình phân giải thấp.
- Drawable – mdpi: Tài nguyên cho mảng hình phân giải trung bình.

- Layout: chứa file xml giao diện Activity.
- Value: strings.xml khai báo các ánh xạ cho chuỗi.
 Ta có thể tạo thêm các thư mục để chứa tài nguyên trong thư mục
res.
e. AndroidManifest.xml
 Chứa các cấu hình chung cho tồn bộ project.
 File này được tự động sinh ra khi tạo một Android Project.
1.1.8 Lưu trữ dữ liệu với SQLite
a. SQLite là gì?
 SQLite [7] là phần mềm quản lý cơ sở dữ liệu SQL nhưng không
giống như hầu hết các cơ sở dữ liệu SQL khác, SQLite khơng có một
máy chủ riêng biệt để xử lý.
 Đặc điểm:
 SQLite gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất,
không cần cài đặt, không cần cấu hình mà có thể sử dụng ngay.
 Dữ liệu database cũng được lưu ở một file duy nhất.
 Không có khái niệm user, password hay quyền hạn trong SQLite
Database.


15

b. Cài đặt và sử dụng SQLite trong Android
 SQLiteOpenHelper: Một lớp trợ giúp để hỗ trợ việc tạo ra CSDL và
quản lý phiên bản cho chúng.
 SQLiteDatabase: Lớp chứa các phương thức dùng để quản lý CSDL
như INSERT, UPDATE, DELETE, SELECT…
c. Một số chú ý
 Version: Phải lớn hơn 0 (throw IllegalAgrumentException)
 DB_NAME: Nếu thay đổi tên database sẽ gọi lại onCreate() và tạo 1

database mới
 Hàm onCreate() chỉ được gọi khi file database được tạo mới
 Hàm onUpgrade() chỉ được gọi khi version có sự thay đổi so với
phiên bản hiện tại
1.2 GOOGLE CLOUD MESSAGING
1.2.1 Giới thiệu Google Cloud Messaging
 Google Cloud Messaging (GCM) [8] là một dịch vụ cho phép gửi dữ
liệu từ máy chủ của bạn đến các thiết bị Android của người dùng, và
ngược lại.
 GCM được sử dụng cho hoạt động giao dịch giữa các ứng dụng và máy
chủ hỗ trợ đầu cuối. Cloud Messaging hiện đang được tích hợp vào
Google Play Services.
 GCM là hồn tồn miễn phí và khơng giới hạn băng thơng. Dịch vụ
hoạt động trên các gói dữ liệu có dung lượng nhỏ hơn 4kb và tin nhắn
tới thiết bị Android là tức thời (Push notification).
 GCM là phù hợp cho việc xây dựng các ứng dụng nhắn tin tức thời
hoặc tương tác giữa người dùng và nhà phát triển ứng dụng.


×