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

Khoá luận tốt nghiệp xây dựng chương trình ứng dụng từ điển anh việt trên hệ điều hành 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 (885.62 KB, 60 trang )

TR Ư Ờ N G Đ Ạ• I HỌC s ư PHẠM
HÀ N•Ộ I 2




KHOA CÔNG N G H Ệ TH Ô NG TIN

NGÔ HƯƠNG LY

XÂY DựNG CHƯƠNG TRÌNH
ỨNG DỤNG TỪ ĐIỂN ANH - VIỆT
TRÊN HỆ ĐIÈU HÀNH ANDROID

KHÓA LUÂN TỐT NGHIÊP ĐAI HOC






Chuyên ngành: Sư phạm Tin học

HÀ NỘI, 2016




TR Ư Ờ N G ĐẠ• I HỌC s ư PHẠM
HÀ N•Ộ I 2





KHOA CÔNG NGHỆ TH ÔNG TIN

NGÔ HƯƠNG LY

XÂY DƯNG CHƯƠNG TRÌNH
ỨNG DỤNG TỪ ĐIỂN ANH - VIỆT
TRÊN HỆ ĐIỀU HÀNH ANDROID
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC








Chuyên ngành: Sư phạm Tin học

Người hướng dẫn khoa học
PGS.TS. TRỊNH ĐÌNH THẲNG

HÀ NỘI - 2016


LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn PGS.TS. Trinh Đình Thắng,
trường Đại học Sư phạm Hà Nội 2 đã trực tiếp hướng dẫn và chỉ bảo tận tình

cho em hoàn thành khoá luận này.
Em cũng xin gửi lời cảm ơn đến các thầy, cô giáo trong khoa Công
nghệ Thông tin, trường Đại học Sư phạm Hà Nội 2, những người đã giúp đỡ,
tạo điều kiện cho em trong suốt quá trình học tập và nghiên cứu.
Cuối cùng em xin bày tỏ lòng biết ơn tới gia đình và bạn bè đã giúp đỡ,
động viên em rất nhiều trong suốt quá trình học tập để em có thể thực hiện tốt
khoá luận này.
Tuy đã có những cố gắng nhất định nhưng do thời gian và trình độ có
hạn nên chắc chắn khoá luận này còn nhiều thiếu sót và hạn chế. Kính mong
nhận được sự góp ý của thầy, cô giáo và các bạn.
Hà Nội, tháng 05 năm 2016
Sinh viên

Ngô Hương Ly


LỜI CAM ĐOAN
Tên em là: NGÔ HƯƠNG LY
Sinh viên lớp: K38 - Sư phạm Tin học, khoa Công nghệ Thông tin,
trường Đại học sư phạm Hà Nội 2.
Em xin cam đoan:
1. Đề tài “Xây dựng chương trình ứng dụng từ điển Anh - Việt
trên hệ điều hành Android” là sự nghiên cứu của riêng em, dưới
sự hướng dẫn của thầy giáo PGS.TS. Trịnh Đình Thắng.
2. Khoá luận hoàn toàn không sao chép của tác giả nào khác.
Nếu sai em xin hoàn toàn chịu trách nhiệm.
Hà Nội, tháng 5 năm 2016
Người cam đoan

Ngô Hương Ly



MỤC LỤC
MỞ ĐẦU..................................................................................................................1
CHƯƠNG 1: C ơ SỞ LÝ THUYẾT...................................................................... 4
1.1. Lịch sử Android...............................................................................................4
1.2. Kiến trúc Android............................................................................................5
1.3. Các thành phần cơ bản và cấu trúc của một ứngdụng Android...................... 6
1.3.1. Các thành phần cơ bản của một ứng dụng Android.............................6
1.3.2. Cấu trúc của một ứng dụng Android....................................................13
1.4. Các công nghệ lưu trữ dữ liệu của Android...................................................14
1.4.1. Shared Preferences...............................................................................14
1.4.2. Internal Storage.................................................................................... 15
1.4.3. External Storage................................................................................... 15
1.4.4. Content Provider.................................................................................. 15
1.4.5. Cơ sở dữ liệu SQLite............................................................................ 15
1.5. Text to speech................................................................................................ 16
CHƯƠNG 2: PHẨN TÍCH HỆ THỐNG.............................................................. 18
2.1. Khảo sát hệ thống........................................................................................... 18
2.1.1. Khảo sát hệ thống................................................................................. 18
2.1.2. Xác định yêu cầu hệ thống...................................................................21
b. Yêu cầu phi chức năng...............................................................................22
2.2. Phân tích hệ thống..........................................................................................22
2.2.1. Biểu đồ use case...................................................................................22
2.2.2. Biểu đồ lớ p...........................................................................................25
2.2.3. Biểu đồ ữạng thái.................................................................................26


CHƯƠNG 3: THIẾT KẾ HỆ THỐNG.................................................................27
3.1. Biểu đồ tương tá c...........................................................................................27

3.1.1. Biểu đồ tương tác cho chức năng tra từ .............................................. 27
3.1.2. Biểu đồ tương tác cho chức năng xóa ừong danh sách từ đã tra ....... 28
3.3.3. Biểu đồ tương tác cho chức năng xem danh sách nhắc từ .................. 29
3.2. Biểu đồ lớp chi tiết.........................................................................................29
3.3. Biểu đồ hoạt động.......................................................................................... 31
3.3.1. Biểu đồ hoạt động miêu tả usecase Translate......................................31
3.3.2.

Biểu

đồ

hoạt

động

miêu

tả

usecase

SeeAListOfTheTranslatedWords................................................................... 31
3.4. Biểu đồ thành phần.........................................................................................32
CHƯƠNG 4: XÂY DựNG ỨNG DỤNG............................................................33
4.1. Phát biểu bài toán........................................................................................... 33
4.2. Cài đặt và thử nghiệm.................................................................................... 33
4.2.1 Kỹ thuật xử lý nguồn dữ liệu của từ điển..............................................33
4.2.2. Kỹ thuật xử lý tra từ .............................................................................33
4.2.3. Kỹ thuật xử lý xem danh sách từ đã tr a .............................................. 36

4.2.4. Kỹ thuật xử lý nhắc từ ..........................................................................39
4.2.5. Kỹ thuật xử lý danh sách nhắc từ .........................................................43
4.2.6. Kỹ thuật xử lý phát âm.........................................................................44
4.2.7. Kỹ thuật xử lý tra từ từ tin nhắn...........................................................45
4.2.8. Kỹ thuật xử lý thêm từ .........................................................................46
4.3. Một số giao diện của ứng dụng......................................................................47
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN........................................................... 49


TÀI LIỆU THAM KHẢO


DANH MỤC BẢNG BIỂU
Bảng 2.1. Danh sách các usecase..................................................................... 23
Bảng 3.1. Danh sách các thuộc tính lớp Word.................................................30
Bảng 3.2. Danh sách các phương thức lóp Word............................................ 30


DANH MỤC HÌNH VẼ
Hình 1.1. Kiến trúc Android.............................................................................. 5
Hình 1.2. Vòng đời hoạt động của Activity.......................................................7
Hình 1.3. Vòng đời hoạt động của một service................................................. 9
Hình 2.1. Ảnh minh hoạ cho từ điển Anh - Việt Vlook 1.6............................18
Hình 2.2. Ảnh minh hoạ cho từ điển Lạc Việt (Anh - Việt) 2.5..................... 19
Hình 2.3. Ảnh minh hoạ cho Dictionary English Vietnamese 2.2.2............... 20
Hình 2.4. Ảnh minh hoạ cho từ điển TFlat 5.3.4.............................................20
Hình 2.5. Biểu đồ usecase tổng quát................................................................22
Hình 2.6. Biểu đồ usecase cho chức năng tra từ..............................................23
HÌnh 2.7. Biểu đồ usecase cho chức năng xem danh sách từ đã tra................24
Hình 2.8. Biểu đồ usecase cho chức năng nhắc từ.......................................... 24

Hình 2.9. Biểu đồ lớp....................................................................................... 25
Hình 2.10. Biểu đồ trạng thái lớp Word chức năng tra từ............................... 26
Hình 2.11. Biểu đồ trạng thái lớp Word chức năng thêm từ........................... 26
Hình 3.1. Biểu đồ tương tác cho chức năng tra từ...........................................27
Hình 3.2. Biểu đồ tương tác cho chức năng xoá trong danh sách từ đã tra.. ..28
Hình 3.3. Biểu đồ tương tác cho chức năng nhắc từ......................................29
Hình 3.4. Biểu đồ lớp chi tiết........................................................................... 29
Hình 3.5. Biểu đồ hoạt động miêu tả usecase Traslate.................................... 31
Hình 3.6. Biểu đồ hoạt động miêu tả usecase SeeWordHistory...................... 31
Hình 3.7. Biểu đồ thành phần...........................................................................32
Hình 4.1. Giao diện chính của ứng dụng......................................................... 47
Hình 4.2. Giao diện tra từ.................................................................................48
Hình 4.3. Giao diện danh sách những từ đã tra............................................... 48



MỞ ĐẦU
1. Lý do chọn đề tài
Trong thời đại công nghệ thông tin phát triển như hiện nay, điện thoại
di động là một thiết bị không thể thiếu trong đời sống con người và ngày càng
có sự phát triển mạnh mẽ. Các dòng điện thoại thông minh được tích họp
nhiều chức năng, cấu hình mạnh và kích thước ngày càng nhỏ gọn đang dần
chiếm lĩnh thị trường. Đáp ứng xu thế phát triển đó, 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 phát triển vượt bậc.
Có rất nhiều nền tảng di động phổ biến như IOS, WindowPhone,
Android, Symbia... nhưng Android của Google đang là hệ điều hành phổ biến
nhất thế giới. Do Android có mã nguồn mở nên cho phép các nhà phát triển
thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và
phân phối Android một cách tự do. Những ưu điểm dễ thấy của Android

chính là khả năng tùy biến nhanh chóng, dễ làm quen, ứng dụng hỗ ữợ phong
phú tương thích với đa cấu hình phần cứng của các nhà sản xuất. Bên cạnh đó
nhu càu sử dụng các ứng dụng trên hệ điều hành Android trên khắp thế giới là
rất cao.
Cùng với sự phát triển mạnh mẽ của hệ điều hành Android và nhu cầu
học tiếng Anh mọi lúc mọi nơi của người sử dụng, đã có rất nhiều từ điển
Anh - Việt được xây dựng trên hệ điều hành Android. Bên cạnh những ưu
điểm thì một số ứng dụng vẫn còn những mặt hạn chế như chỉ dừng lại ở mức
dịch từ, ưa từ, phát âm từng từ mà chưa đáp ứng được những đòi hỏi cao hơn
của người sử dụng. Ngoài việc tra từ bằng cách nhập từ thông thường, nhiều
người sử dụng muốn tra từ bằng tin nhắn, ngoài ra còn muốn xem danh sách
các từ đã ừa, cập nhật thêm từ mói, nhắc từ khi muốn học từ mới...
Xuất phát từ ý tưởng xây dựng một ứng dụng từ điển Anh - Việt phát
huy những ưu điểm của những từ điển trước và hoàn thiện, phát triển thêm
các chức năng mà người dùng mong muốn, em đã chọn đề tài “Xây dựng

1


chương trình ứng dụng từ điển Anh - Việt ữên hệ điều hành Android” làm
khóa luận tốt nghiệp.
2. Mục đích nghiên cứu
Mục đích của khóa luận là nghiên cứu hệ điều hành Android và xây
dựng ứng dụng từ điển Anh - Việt trên hệ điều hành Android.
3. Nhiệm vụ nghiên cứu
Trên cơ sở lý thuyết đã nghiên cứu, nhiệm vụ của khóa luận là phân
tích, thiết kế và xây dựng ứng dụng từ điển Anh - Việt.
4. Đổi tượng và phạm vỉ nghiên cứu
- Đối tượng nghiên cứu: Hệ điều hành Android và ứng dụng từ điển
Anh - Việt

- Phạm vi nghiên cứu: ứng dụng từ điển Anh - Việt trên hệ điều hành
Android.
5. Ý nghĩa khoa học và thực tiễn của đề tài
- Ý nghĩa khoa học: Hệ điều hành Android ra đòi, phát triển và có cơ sở
khoa học vững chắc giúp cho việc xây dựng ứng dụng trên điện thoại thông
minh trở nên dễ dàng. Hiện nay, việc xây dựng ứng dụng từ điển Anh - Việt
trên hệ điều hành Android bao gồm nhiều chức năng đang được các lập trình
viên và các nhà phát triển ứng dụng quan tâm và phát triển.
- Ý nghĩa thực tiễn: ứng dụng từ điển Anh - Việt được xây dựng thành
công sẽ giúp cho người sử dụng tra nghĩa của từ tiếng Anh trong quá trình học
tiếng Anh hoặc dịch thuật.
6. Phương pháp nghiên cứu
a. Phương pháp nghiên cứu lý luận
Nghiên cứu qua việc đọc sách báo và các tài liệu liên quan nhằm xây
dựng cơ sở lý thuyết của đề tài và các biện pháp cần thiết để giải quyết các
vấn đề của đề tài.

2


b. Phương pháp chuyên gia
Tham khảo ý kiến của các chuyên gia để có thể thiết kế chương trình
phù hợp với yêu cầu thực tiễn. Nội dung xử lý nhanh đáp ứng được yêu cầu
ngày càng cao của người sử dụng.
c. Phương pháp thực nghiệm
Thông qua quan sát thực tế, yêu cầu của cơ sở, những lý luận được
nghiên cứu và kết quả đạt được qua những phương pháp trên.
7. Cấu trúc khóa luận
Ngoài phần mở đầu, kết luận và hướng phát triển, tài liệu tham khảo
khóa luận gồm các chương nội dung, cụ thể như sau:

Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích hệ thống
Chương 3: Thiết kế hệ thống
Chương 4: Xây dựng ứng dụng

3


CHƯƠNG 1: C ơ SỞ LÝ THUYẾT
1.1. Lịch sử Android
Android là một hệ điều hành trên điện thoại di động, được phát triển
trên cơ sở của hệ điều hành Linux. Ban đầu nó được phát triển bởi một công
ty có cùng tên là Android, Inc. Vào năm 2005, như một chiến lược của việc
gia nhập vào thị trường điện thoại di động, Google đã mua lại Android và tiếp
quản công việc phát triển đó.
Google muốn Android trở nên mở và miễn phí. Vì lí do đó, hầu hết
code của Android đều được phát hành dưới dạng open source Apache License,
điều đó có nghĩa là bất kì người nào muốn sử dụng Android chỉ việc tải về bộ
cài đặt Android. Hơn nữa, các nhà cung cấp (thường là các nhà sản xuất phần
cứng) có thể thêm những phần mở rộng độc quyền vào Android và tùy chỉnh
Android để tạo nên sự khác biệt so với các sản phẩm khác. Mô hình phát triển
đơn giản làm cho Android rất hấp dẫn và thu hút sự quan tâm của rất nhiều
nhà cung cấp. Điều này đặc biệt đúng với các công ty bị ảnh hưởng bởi hiện
tương Iphone của Apple, một sản phẩm cự kỳ thành công đã tạo nên cuộc
cách mạng của nền công nghiệp di động. Trong các công ty ấy bao gồm cả
Motorola và SonyEricson, các công ty này trong nhiều năm đã phát hệ điều
hành trên điện thoại di động của họ. Và họ nhận thấy Android như là một giải
pháp: họ sẽ tiếp tục design phần cứng và sử dụng Android sử dụng Android
làm hệ điều hành. Trong thế giới smartphone, phần mềm là phần quan trọng
nhất quyết định thành công, các nhà sản xuất thiết bị nhận thấy Android là hi

vọng lớn nhất để thách thức lại sự tấn công của Iphone.
Android bắt đàu vói bản beta đàu tiên vào tháng 11 năm 2007 và bản
thương mại đầu tiên Android 1.0 được phát hành vào tháng 9 năm 2008. Kể
từ tháng 4 năm 2009, phiên bản Android được phát triển đặt theo chủ đề bánh
kẹo và phát hành theo bảng chữ cái: Cupcake (1.5), Donut (1.6), Eclair (2.02.1), Froyo (2.2-2.23), Gingerbread (2.3-2.3.7), Honeycomb (3.0-3.2.6), Ice
Cream Sandwich (4.0-4.0.4), Jelly Bean (4.1-4.3), KitKat (4.4), Lollipop

4


(5.0-5.1.1). Vào 3 tháng 9 2013, Google công bố rằng 1 tỉ thiết bị đã được
kích hoạt hiện sử dụng hệ điều hành Android trên toàn cầu.
1.2. Kiến trúc Androỉd
Hệ điều hành Android được chia thành 5 thành phần trong 4 lớp, mô
hình dưới đây sẽ cho ta cái nhìn tổng quát về kiến trúc Android:
APPLICATIONS
Home

Contacts

Phone

Browser

APPLICATION FRAMEWORK
Activity Manager

Package Manager

W indow Manager


Telephony Manager

Content Providers

Resource M anager

VÌỄW System

Location M anager

Notification Manager

ANDROID RUNTIME

LIBRARIES
Surface Manager

Média Framework

SQLite

Cars Libraries

OpenGL / ES

FreeTyfiÈ

W ebKit


Dalvlk Virtual MachlHỄ

SGL

SSL

llttt

LINUX KERNEL
Display Driver

Camera Driver

Flash M emory Driver

Binder (IRQ Driver

Keypad Driver

Wi-FI Driver

Audio Drivers

Power Management

Hình 1.1. Kiến trúc Android
• Linux kernel
Đây là nhân của Android. Lớp này có các trình điều khiển thiết bị cấp
thấp cho các thành phàn phàn cứng khác nhau của một thiết bị Android
• Libraries

Libraries bao gồm tất cả các mã cung cấp các tính năng chính của hệ
điều hành Android. Ví dụ như SQLite library cung cấp cơ sở dữ liệu hỗ trợ
cho các ứng dụng có thể sử dụng nó để lưu trữ dữ liệu. Hay như WebKit
library cung cấp những hàm dùng cho duyệt web.

5


• Android runtime
Tại cùng lớp với Libraries, Android runtime cung cap một tập các core
library mà cho phép các lập trình viên viết ứng dụng Android sử dụng ngôn
ngữ lập trình Java. Android runtime cũng bao gồm các máy ảo Dalvik cho
phép mọi ứng dụng Android chạy trên tiến trình riêng của nó. Dalvik là một
máy ảo được thiết kế đặc biệt cho Android và tối ưu hóa cho các thiết bị chạy
bằng pin với bộ nhớ và CPU hạn chế.
• Application framework
Application framework đưa ra những khả năng khác nhau của hệ điều
hành Android cho những nhà phát triển mà họ có thể đưa vào app của họ.
• Application
Application là lớp ở trên cùng, bạn sẽ thấy những app liên quan đến
thiết bị Android (như là Phone, Contact, Browser...) cũng như các ứng dụng
mà bạn phải tải từ Android market.
1.3. Các thành phần cơ bản và cấu trúc của một ứng dụng Android
1.3.1. Các thành phần cơ bản của một ứng dụng Android
Một ứng dụng Android có các thành phần cơ bản sau:
a. Activity
Mỗi activity là một cửa sổ hiển thị giao diện người dùng. Thông thường,
một ứng dụng có thể gồm chỉ một activity hay nhiều activity và mục đích
chính của activity là tương tác với người dùng. Từ thời điểm một activity xuất
hiện ừên màn hình cho đến khi nó được ẩn đi, nó đã đi qua một số giai đoạn

gọi là vòng đời hoạt động của một acticity. Hiểu rõ vòng đời hoạt động của
acticity là rất quan trọng để đảm bảo rằng ứng dụng của bạn hoạt động một
cách chính xác.
Lớp cơ sở Activity định nghĩa một loạt các sự kiện ảnh hưởng đến vòng
đời hoạt động của Activity. Lớp Activity định nghĩa các sự kiện sau đây:
- onCreate(): Được gọi khi activity được tạo ra lần đầu tiên.
- onStart(): Được gọi khi activity được hiển thị với ngưòi dùng.
- onResume(): Được gọi khi activity bắt đầu tương tác với người dùng.
6


- onPause(): Được gọi khi acticity hiện thời được tạm dừng và activity
trước đó được resumed.
- onStop(): Được gọi khi activity không còn hiển thị với người dùng
- onDestroy(): Được gọi trước khi activity bị phá hủy bởi hệ thống (có
thể do ngưòi dùng hoặc hệ thống để tiết kiệm bộ nhớ)
- onRestart(): Được gọi khi activity đã được dừng lại và đang khỏi
động lại.
Vòng đời hoạt động của Activity
Activity

launched

c




anRÊSurrve<)



onFiestaJlO

oi>Start(>

User navigates
lo liie activity

App prosBsã ^

■*

Activity
rurmi né

killed______

I
Another activity comes

irsto trs©foreground

A p p s w lih hi-gíier pfl'torily
n e e d in e m o r y



+

-onFauseo


User returns
la lỉie activliy



I
Tits- acùviOy IS
DO lorgei visrae



us«r nav*&a.te-s
to ti-ve- aciivily

______ p

The activity is finishing ot
being đestío^ed bv the âysiem
ofiDeslroyiJ

I
Activity

( to w n

Hình 1.2. Vòng đời hoạt động của Activity
- Toàn bộ thòi gian sống của một activity xảy ra giữa lời
gọi hàm onCreateO và onDestroyO. Activity của bạn nên thực hiện thiết đặt
toàn cục “global setup” như định nghĩa layout trong hàm onCreate(), và trả lại

toàn bộ tài nguyên ưong phương thức onDesữoyO. Ví dụ, nếu một activity có
một tuyến đang chạy ngầm để download dữ liệu, nó có thể tạo ra tuyến đó
trong phương thức onCreateO và dừng tuyến trong phương thức onDestroyO.
- Thời gian sống thật (visible lifetime) của một activity xảy ra giữa lòi
gọi phương thức onStartO và onStopO. Trong suốt thời gian này, người dùng
có thể nhìn thấy activity trên màn hình và tương tác với chúng. Ví dụ, onStopO

7


được gọi khi một activity mới bắt đầu. Giữa hai phương thức này, bạn có thể
quản lý các nguồn tài nguyên cần thiết để hiển thị activity tới người dùng.
- Thời gian chờ foreground lifetime của một activity xảy ra giữa hai lời
gọi onResumeO và onPause(). Một activity có thể thường xuyên chuyển trạng
thái thành trạng thái chờ và hoạt động- ví dụ, onPause() được gọi khi thiết bị
phần cứng ở trạng thái ngủ hoặc một hộp thoại xuất hiện. Bởi vì trạng thái
này có thể xảy ra thường xuyên nên mã lệnh trong hai phương thức này nên
được viết cẩn thận để tăng tốc độ chuyển giữa các chế độ.
b. Service
Service là một thành phần của một ứng dụng Android được chạy bên
trong nền để xử lý các công việc trong thời gian dài và không cung cấp giao
diện ngưòi dùng . Ví dụ như ứng dụng download có thể tải dữ liệu ưên mạng
về máy mà không ngăn chặn người dùng tương tác với các ứng dụng khác.
Một service gồm hai trạng thái cơ bản:
- Started: Một service được gọi là started khi một thành phần của ứng
dụng, chẳng hạn như là activity, start nó bằng cách gọi phương thức
startService(). Mỗi lần được started, service chạy bên dưới vô thòi hạn, thậm
chí ngay cả khi thành phần started nó bị huỷ.
- Bound: Một service được gọi là bound khi một thành phần ứng dụng
liên kết với nó bằng cách gọi phương thức bindService(). Một dịch yụ ràng

buộc cung cấp một giao diện client - server cho phép các thành phần tương
tác với server, gửi yêu cầu, nhận kết quả, thậm chí tương tự trong việc giao
tiếp với interprocess.

8


Hình 1.3. Vòng đời của một service
c. Content Provider
Content providers quản lý truy cập tới dữ liệu. Chúng đóng gói dữ liệu,
và cung cấp cơ chế cho phép định nghĩa bảo mật dữ liệu. Content providers là
giao diện chuẩn kết nối dữ liệu trong một tiến trình cùng với mã nguồn chạy
trong các tiến trình khác.
Khi bạn muốn kết nối tới dữ liệu trong content provider, bạn sử đối
tượng ContentResolver trong ứng dụng Context để giao tiếp vối provider
như một máy khách. Đối tượng ContentResolver giao tiếp với đối tượng, một
thể hiện của lớp triển khai từ giao diện ContentProvider. Đối tượng provider
nhận dữ liệu yêu cầu từ clients, xử lý yêu cầu và trả lại kết quả.
Bạn không cần phát triển provider của riêng bạn nếu không muốn chia
sẻ dữ liệu với các ứng dụng khác. Tuy nhiên, bạn cần provider của minh để
cung cấp những gợỉ ý cho tìm kiếm trong ứng dụng của bạn. Bạn luôn cần
9


provider vì nếu bạn muốn sao chép và dán dữ liệu phức tạp hoặc các tệp từ
ứng dụng của bạn sang ứng dụng khác.
Android tự nó đã bao gồm content providers để quản lý dữ liệu như
audio, video, images, và các thông tin liên hệ của bạn. Bạn có thể nhìn thấy
một vài thông tin được liệt kê bằng cách sử gói


android.provider.Các

provider này có thể kết nối tới các ứng dụng Android khác vói một số hạn chế
nhất định.
Một số chủ đề quan trọng của Content Provider:
- Content Provider Basics
- Creating a Content Provider
- Calendar Provider
- Contact Provider
d. Broadcast Receiver
Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc
nhận và đáp lại các thông báo broadcast. Nhiều broadcast khởi đầu trong mã
hệ thống - ví dụ như thông báo múi giờ thay đổi, pin yếu, ảnh đã được chụp,
hay người dùng đã thay đổi ngôn ngữ ... 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. Tuy
nhiên chúng có thể bắt đầu một activity để đáp lại thông tin mà chúng nhận,
hay chúng có thể sử dụng NotificationManager để cảnh báo người dùng.
Notifications có thể lấy sự chú ý của người dùng bằng nhiều cách như lóe
sáng đèn sau, rung, tạo ra âm thanh,.... Chúng thường tạo một biểu tượng
trong thanh ữạng thái, nhờ đó người dùng có thể mở để lấy thông điệp.

10


e. Intents và Intent filter

Intents được sử dụng nhưg một cơ chế gửi thông điệp triệu gọi một
hành động để xử lý, thường đi kèm với dữ liệu.
Bạn có thể sử dụng Intents để hỗ trợ sự tương tác giữa bất kỳ thành
phần ứng dụng trên một thiết bị Android. Nó trả ra một tập các thành phần
độc lập tới một thành phần đơn lẻ, kết nối bên trong hệ thống.
Intents thường được sử dụng để bắt đàu một Activity mới, bên trong
hoặc bên ngoài ứng dụng.
Intents cũng có thể được sử dụng để quảng bá các thông điệp trên toàn
hệ thống. Bất kỳ ứng dụng nào đăng ký một Broadcast Receiver cũng có thể
lắng nghe và lấy dữ liệu từ đối tượng Intents gửi thông điệp.
Sử dụng Intents để lan truyền các hành động - sự kiện bên trong các
ứng dụng giống nhau - là một phần cơ bản của nguyên lý thiết kế Android.
Trong phần lớn các trường hợp, Intents được sử dụng để ràng buộc các
thành phần trong ứng dụng của bản. Intents được sử dụng để bắt đầu (start)
hoặc dừng (stop) và chuyển giữa các Activity trong một ứng dụng. Tuy nhiên
nó cũng có thể sử dụng để kích hoạt các Service.
Để mở một màn hình ứng dụng khác (Activity) trong ứng dụng của bạn,
gọi phương thức startActivity, thông qua một Intent.
startActivityịmyIntent);
Khi phương thức này được gọi, nó sẽ tìm và kích hoạt một Activity đơn
mà nó tìm thấy trong ứng dụng. Khi sử dụng startActivity, ứng dụng của bạn
sẽ không nhận bất kỳ thông báo nào đến khi quá trình kích hoạt kết thúc.
f. Process và Thread
Một ứng dụng có thể bao gồm một hay nhiều tiến trình. Một tiến trình
là một đơn vị cơ bản khi một chương trình được thực thi. Một hoặc nhiều
tuyến (Thread) luôn chạy bên trong một tiến trình. Tuyến là một thực thể
trong một tiến trình, nó có thể được lập lịch cho việc thực thi. Một tiến trình
bắt đàu với một tuyến đơn, luôn gọi đến một tuyến chính hoặc mặc định. Hơn
thế nữa, tuyến có thể được tạo ra một cách tự động nếu cần thiết.
11



Process
Mỗi ứng dụng là một tiến trình có tài nguyên và không gian bộ nhớ
riêng. Trong một tiến trình có thể có một hoặc nhiều tuyến.
Android có thể quyết định tắt một tiến trình tại một vài thời điểm, khi
bộ nhớ đầy và được yêu cầu bởi các tiến trình khác. Các thành phần ứng dụng
chạy trong tiến trình bị chết là kết quả của việc gọi hàm hủy. Một tiến trình
được khởi động trở lại khi các tiến trình khác kích hoạt chúng.
Khi quyết định tiến trình nào bị hủy, Android đánh ừọng số quan trọng
của tiến trình đó với người dùng. Ví dụ, hệ thống sẽ tắt tiến trình hosting vì nó
không xuất hiện ữên màn hình trong thòi gian dài, do đó, phụ thuộc vào trạng
thái của các thành phần đang chạy mà hệ thống sẽ quyết định hủy tiến trình
nào.
Thread
Thông thường dùng Thread để xử lý các code xử lý nặng, hoặc mất thời
gian có thể gây chậm chương trình hoặc giao diện bị block.
Thread khá thông dụng và trong Android dùng lớp Thread
của

Java. Mặc định, mỗi ứng dụng chạy trong một process và code được

thực thi trong thread chính của process đó.
Nếu code xử lý quá lâu, không kịp phản hồi lại các sự kiện người dùng
trong 5 giây thì sẽ xuất hiện dialog “Application is not responding” và người
dùng có thể đóng ứng dụng ngay lập tức.
Dù không bị đóng ứng dụng thì việc ứng dụng bị chậm
là khó chấp nhận.
Handle
Trong Android, để tiện việc giao tiếp giữa 2 thread ta dùng đối tượng

Handler.
Ngoài ra, có thể dùng Handler để đặt xử lý một yêu cầu nào đó sau một
khoảng thời gian xác định.

12


1.3.2. Cấu trúc của một ứng dụng Android
Android project là một hệ thống thư mục và file chứa toàn bộ source
code, tài nguyên,... mà mục đích cuối cùng là để đóng gói thành một file .apk
duy nhất. File có đuôi .apk là file ứng dụng của Android .
Trong một thư mục project, có một số thành phần (file, thư mục con)
được tạo ra mặc định, còn lại phần lớn thì sẽ được tạo ra sau nếu cần trong
quá trình phát triển ứngdụng. cấu trúc đầy đủ của một thư mục project:
- src/: Chứa toàn bộ source code (file .java hoặc .aidl).
- bin/ : Thư mục chức file Output sau khi build. Đây là nơi bạn có thể
tìm file .apk.
- gen/ : Chứa các file .java tham chiếu vói tất cả resource có trong
project. Bạn không nên sửa file này, tất cả resource trong project tự động biên
dịch vào lớp này để bạn có thể gọi chúng
- res/: Chứa các tài nguyên (resources) cho ứng dụng, chẳng hạn như
file hình ảnh, file layout, các chuỗi (string),...
- anim/ : Chứa các file .xml dùng cho việc thiết lập các hiệu ứng động
(animation)
- color/ : Chứa các file .xml dùng định nghĩa màu sắc.
- drawable/ :Chứa file hình ảnh (png, jpeg, gif), file .xml định nghĩa
cách vẽ các loại hình dạng khác nhau (shape).
- layouư: Chứa file .xml dùng để dựng giao diện người dùng.
- menu/: Chứa file .xml quy định application menu.
- raw/ : Chứa các file media, chẳng hạn như .mp3 hay .ogg

- values/: Chứa file .xml định nghĩa các giá trị. Khác với các resource
trong các thư mục khác, resource ở thư mục này khi được định danh trong lớp
R thì sẽ không sử dụng file name để định danh, mà sẽ được định danh theo
quy định bên ừong file .xml đó.
- xml/: Dùng chứa các file .xml linh tinh khác, chẳng hạn như file xml
quy định app widget, search metadata,...
- libs/ : Chứa các thư viên riêng.
13


- AndroidManifest.xml/ : File kiểm soát cách các thành phần ữong ứng
dụng (activity, service, intent receiver,...) tương tác với nhau, cách ứng dụng
tương tác với các ứng dụng khác, cũng như đăng ký các quyền hạn về sử dụng
tài nguyên trong máy.
- build.properties : Tùy chỉnh các thiết lập cho hệ thống build, nếu bạn
sử dụng Eclipse thì file này không cần thiết.
- build.xml: Chỉ sử dụng khi bạn dùng dòng lệnh (command line) để
kiến tạo project.
- default.properties: File này chứa các thiết lập cho project, chẳng hạn
như build target, min SDK version,... tốt hơn hết là không nên chỉnh sửa file
này bằng tay.
1.4. Các công nghệ lưu trữ dữ liệu của Android
1.4.1. Shared Preferences
Android cung cấp đối tượng Shared Preferences để giúp bạn lưu trữ
những dữ liệu đơn giản. Ví dụ ứng dụng của bạn cho phép người dùng lưu
font size của text được hiển thị trong ứng dụng. Trong trường họp này bạn
cần lưu size của text để khi người dùng truy xuất vào lần tiếp theo text sẽ
được load với size đã lưu. Bạn có nhiều cách để làm như vậy. Bạn có thể lưu
dữ liệu vào một file, nhưng bạn cần phải làm các thao tác quản lý file đó. Và
vì thế, nếu bạn có những mẩu thông tin nhỏ cần lưu trữ thì việc lưu chúng vào

file sẽ trở nên nặng nề. Một lựa chọn khác là lưu dữ liệu vào database nhưng
cũng không phù họp. Bạn chỉ cần sử dụng Shared Preferences, lưu dữ liệu
dưới dạng name/ value và dữ liệu đó sẽ tự động được lưu dưới dạng file xml
cho bạn.
• Tao và lưu trữ Preferences
Để tạo và thay đổi một Shared Provider, gọi phương thức
getSharedPreferences trên ứng dụng. Shared Provider chia sẻ dữ liệu thông
qua các thành phần của một ứng dụng nhưng không có khả năng chia sẻ tới
các ứng dụng khác. Để thay đổi một Shared Provider dùng lớp
SharedPreferences.Editer. Lấy đối tượng Editer bằng việc gọi phương thức
14


edit() ừên đối tượng Shared Provider mà bạn muốn thay đổi. Để lưu lại các
thay đổi, gọi hàm commit().
• Lấy về giá trị Preferences chia sẻ
Truy cập tới dữ liệu được chia sẻ thông qua phương thức
getSharedPreferences.
Thông qua tên của Shared Preferences bạn muốn truy cập, và sử dụng
phương thức get<type> để lấy về giá trị, trong đó type là kiểu dữ liệu được
lưu trữ trước đó.
1.4.2. Internal storage
- File được lưu trực tiếp trên thiết bị bộ nhớ trong.(Internal Storage)
- Dữ diệu này là private và chỉ chịu sự quản lí của chính ứng dụng đang
chạy nó, các ứng dụng khác không thể truy cập được.
1.4.3. External storage
Dữ liệu được lưu trữ ở bộ nhớ ngoài ( External Storage )
• Ưu điểm:
- Không gian lưu trữ lớn
- Dễ di chuyển giữa các thiết bị: máy tính, điện thoại di động

- Dễ thay thế nâng cấp
• Nhược điểm:


- Tính bảo mật không cao : dữ liệu được sử dụng chung.
ĩ

f I 1A

_



A _______

.

_ A

Ịi l

À

- Toc độ truy cập thap.
1.4.4. Content Provider
Cung cấp một giao diện cho việc lưu trữ và chia sẻ các dữ liệu riêng tư.
Bạn có thể điều khiển truy cập tới Content Provider để sử dụng các quyền cơ
bản của hệ thống.
1.4.5. Cơ sở dữ liệu SQLite
SQLite cơ bản là 1 hệ quản trị cơ sở dữ liệu thu nhỏ, nó không có

server, thao tác trên file và có thể sử dụng bởi bất cứ hệ điều hành nào.

15


×