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

Xây dựng phần mềm học tiếng anh tổng hợp 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 (1.39 MB, 97 trang )

LỜI CẢM ƠN
Để hoàn thành bài đồ án tốt nghiệp này, lời đầu tiên em xin gửi lời biết ơn
chân thành và sâu sắc nhất đến thầy giáo Th.S Nguyễn Văn Việt đã tận tình hướng
dẫn, truyền đạt những kinh nghiệm quý báu cho em trong suốt quá trình làm đồ án.
Em xin gửi lời cảm ơn đến các thầy cô giáo trong khoa Công nghệ thông tin
cùng toàn thể các thầy cô giáo đã truyền đạt vốn kiến thức quý báu cho em trong
suốt quá trình học tâp vừa qua. Em đã được các thầy cô cung cấp và truyền đạt tất
cả kiến thức chuyên môn cần thiết và quý giá nhất. Ngoài ra, em còn được rèn
luyện một tinh thần học tập và làm việc độc lập, sáng tạo. Đây là nền tảng hết sức
cần thiết để có thể thành công khi bắt tay vào nghề nghiệp trong tương lai.
Đồ án tốt nghiệp là cơ hội để em có thể áp dụng, tổng kết lại những kiến
thức mà mình được học. Đồng thời, em rút ra được những kinh nghiệm thực tế và
quý giá trong suốt quá trình thực hiện đồ án. Sau một thời gian khá dài, em tập
trung công sức cho đồ án và làm việc tích cực, đặc biệt nhờ sự chỉ đạo và hướng
dẫn tận tình của thầy Th.S Nguyễn Văn Việt cùng với các thầy cô trong trường Đại
học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên, đã giúp em hoàn
thành đồ án một cách thuận lợi và gặt hái được những kết quả như mong muốn.
Bên cạnh những kết quả khiêm tốn mà em đạt được, chắc chắn không tránh khỏi
những thiếu sót khi thực hiện báo cáo của mình, kính mong thầy cô thông cảm. Sự
phê bình, góp ý của quý thầy cô sẽ là nhưng bài học kinh nhiệm quý báu cho công
việ thực tế của em sau này.
Em cũng xin chân thành cảm ơn Ban lãnh đạo nhà trường cùng toàn thể các
thầy cô giáo trong nhà trường đã tạo mọi điều kiện thuận lợi, cung cấp cơ sở vật
chất, trang thiết bị cần thiết trong quá trình học tập của em tại trường.
Kính chúc quý thầy cô mạnh khỏe, tiếp tục đạt được nhiều thắng lợi trong
nghiên cứu khoa học và sự nghiệp trồng người.
Em xin chân thành cảm ơn!

1



LỜI CAM ĐOAN
Em xin cam đoan toàn bộ nội dung trong đồ án này là do tự em đọc và
nghiên cứu các tài liệu, khảo sát các phần mềm hiện nay . Từ đó viết ra cơ sở lý
thuyết và xây dựng chương trình “phần mềm học tiếng Anh tỏng hợp trên
Android”.
Mọi nguồn tham khảo, trích dẫn trong đồ án đều được ghi rõ nguồn gốc.
Người cam đoan

Nguyễn Văn Phú

2


MỤC LỤC
LỜI CẢM ƠN ..........................................................................................................1
LỜI CAM ĐOAN ....................................................................................................2
MỤC LỤC................................................................................................................3
DANH MỤC HÌNH ẢNH .......................................................................................6
MỞ ĐẦU:.................................................................................................................7
CHƯƠNG 1: LÝ THUYẾT ANDROID..................................................................8
I.

GIỚI THIỆU ANDROID...............................................................................8
1.1.

Khái niệm android...................................................................................8

1.1.1.

Android khác với các hệ điều hành chạy trên thiết bị di động khác.8


1.1.2.

Đặc tính mở của android ..................................................................8

1.2.

Kiến trúc android......................................................................................9

1.2.1.

Android Flatform..............................................................................9

1.2.2.

Tầng Linux Kernel. ........................................................................10

1.2.3.

Native Labraries. ............................................................................10

1.2.4.

Tầng Runtime. ................................................................................10

1.2.5.

Tầng Application Framework ........................................................11

II.


MÔI TRƯỜNG LẬP TRÌNH...................................................................13

2.1.

Các công cụ cần thiết để lập trình trên android và hướng dẫn cài đặt. .13

2.1.1.

Các công cụ cần thiết để lập trình. .................................................13

2.1.2.

Chúng ta có 2 bước chính: Cài đặt JDK và Adroid Studio. ...........13

2.2.

Chu kỳ sống của ứng dụng android.......................................................13

2.2.1.

Chu kỳ sống thành phần. ................................................................13

2.2.2.

Activity Stack. ................................................................................13

2.2.3.

Các trạng thái của chu kỳ sống.......................................................14


2.2.4.

Chu kỳ sống của ứng dụng. ............................................................15

2.2.5.

Các sự kiện trong chu kỳ sống của ứng dụng.................................15
3


2.2.6.

Thời gian sống của ứng dụng. ........................................................16

2.2.7.

Thời gian hiển thị của Activity.......................................................16

2.2.8.

Các hàm thực thi.............................................................................16

2.3.

Thành phần giao diện trong android .....................................................17

2.3.1.

View ...............................................................................................17


2.3.2.

ViewGroup .....................................................................................17

2.4.

Các control ............................................................................................18

2.4.1.

Button .............................................................................................18

2.4.2.

ListView. ........................................................................................19

2.4.3.

EditText ..........................................................................................19

2.4.4.

TextView ........................................................................................19

2.4.5.

CheckBox .......................................................................................20

2.4.6.


MenuOption....................................................................................20

2.4.7.

ContextMenu ..................................................................................21

2.4.8.

Tùy biến control (Custom Control) ................................................21

III.

LẬP TRÌNH TRÊN ANDROID ..............................................................22

3.1.

Giới thiệt Intents....................................................................................22

3.1.1.

Thành phần Intent...........................................................................22

3.1.2.

Sử dụng Intent khởi động cho Activities........................................23

3.1.3.

Intent không tường minh thực thi Activity.....................................23


3.1.4.

Intent tường minh thực thi Activity...............................................24

3.1.5.

Sử dụng Intent để truyền thông tin ra ngoài Activity.....................24

3.2.

Giới thiệu Adapter.................................................................................24

3.2.1.

Một số Adapter...............................................................................25

3.2.2.

Sử dụng Adapter hiển thị dữ liệu ...................................................25

3.3.

Kỹ thuật lưu trữ dư liệu trong android ..................................................25

3.4.

Lưu trữ dữ liệu ứng dụng một cách đơn giản........................................26

3.4.1.


Tạo và lưu dữ liệu với Shared Preferences ....................................26
4


3.4.2.
3.5.

Truy xuất Shared Preferences.........................................................27

Cơ sở dữ liệu trong android ..................................................................27

3.5.1.

Giới thiệu SQLite ...........................................................................27

3.5.2.

Cursors và ContentValues ..............................................................27

3.5.3.

Sử dụng SQLiteOpenHelper ..........................................................28

3.5.4.

Truy xuất và tạo cơ sở dữ liệu không dung SQLiteHelper.............28

3.5.5.


Truy vấn cơ sở dữ liệu....................................................................29

3.5.6.

Lấy kết quả từ Cursors ...................................................................29

3.5.7.

Thêm, cập nhật và xóa dòng...........................................................30

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG............................................31
DEMO CHƯƠNG TRÌNH ....................................................................................31
I.

PHÂN TÍCH THIẾT KẾ HỆ THỐNG ........................................................31
1.1.

Thực trạng..........................................................................................31

1.2.

Mục tiêu của đề tài.............................................................................31

1.3.

Đối tượng ...........................................................................................31

1.4

Ý nghĩa của phần mềm ......................................................................31


1.5

Yêu cầu chức năng.............................................................................32

1.6

Yêu cầu phi chức năng.......................................................................33

II.

Biểu đồ ..................................................................................................33

2.1

Biểu đồ UseCase................................................................................33

2.2

Biểu đồ trình tự ..................................................................................43

III.

DEMO CHƯƠNG TRÌNH.......................................................................51

3.1 Giao diện chính của phần mềm .................................................................51
3.2 Giao diện chức năng luyện nghe ...............................................................53
3.3

Giao diện chức năng luyện nói..............................................................55


3.4 Giao diện chức năng luyện đọc .................................................................56
3.5 Chức năng luyện viết.................................................................................57
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .............................................................58
5


TÀI LIỆU THAM KHẢO:.....................................................................................59
NHẬN XÉT CỦA GIÁO VIÊN ............................................................................60

6


DANH MỤC HÌNH ẢNH
Hình 1.1. Kiến trúc Android

12

Hình 2.1. UseCase tổng quan

34

Hình 2.2. UseCase tra cứu từ vựng
Hình 2.3. UseCase luyện nghe

36

Hình 2.4. UseCase luyện nói

37


Hình 2.5. UseCase luyện đọc

38

Hình 2.6. UseCase luyện viết

39

35

Hình 2.7. UseCase học ngữ pháp 40
Hình 2.8. UseCase kiểm tra – tests41
Hình 2.9. UseCase phương pháp học

42

Hình 2.10. Biểu đồ trình tự chức năng luyện nghe

43

Hình 2.11. Biểu đồ trình tự chức năng luyện nói 44
Hình 2.12. Biểu đồ trình tự chức năng luyện đọc45
Hình 2.13. Biểu đồ trình tự chức năng luyện viết46
Hình 2.14. Biểu đồ trình tự học ngữ pháp 47
Hình 2.15. Biểu đồ tuần tự kiểm tra - test 48
Hình 2.16. Biểu đồ trình tự tra cứu từ vựng

49


Hình 2.17. Biểu đồ trình tự phương pháp học

50

Hình 2.18. Giao diện mở đầu của phần mềm.

51

Hình 2.19. Giao diện tùy chọn chính.

52

Hình 2.20. Danh sách các bài nghe

53

Hình 2.21. Màn hình nghe đoạn hội thoại 54
Hình 2.22. Giao diện chức năng luyện nói
Hình 2.23. Chức năng đọc sách

55

56

Hình 2.24. Màn hình đang đọc chuyện "The sleeping beauty" 57
Hình 2.25. Chức năng viết 57
7


8



MỞ ĐẦU:
Với hơn 1,5 tỉ người dùng, tiếng Anh là ngôn ngữ phổ biến nhất thế giới.
Tiếng Anh được coi là ngôn ngữ chung quốc tế.Tất cả các nước phát triển đều sử
dụng tiếng Anh. Như vậy, tiếng Anh có thể coi là cầu nối để hội nhập với thế giới
tốt hơn. Với ý nghĩa lớn như vậy, em đã mạnh dạn làm đồ án với đề tài “xây dựng
phần mềm học tiếng Anh tổng hợp trên hệ điều hành Android” để người Việt mình
có thêm một công cụ học tiếng Anh tiện lợi, hiệu quả.
Trên cửa hàng Google Play đã có khá nhiều phần mềm học tiếng Anh cho
thiết bị chạy Android như “tflat” nhưng chỉ tập trung vào từng khía cạnh riêng lẻ của
tiếng Anh. Do đó, em mạnh dạn làm đề tài xây dựng phần mềm học tiếng Anh tổng
hợp cho thiết bị chạy Android. Phần mềm tổng hợp 4 kỹ năng chính trong việc học
tiếng Anh cũng giống như các ngôn ngữ khác đó là: nghe, nói, đọc, viết, và một số
chức năng khác….Hy vọng phần mềm sẽ giúp ích cho người Việt học tốt tiếng Anh.
Mặc dù đã cố gắng hết sức, tập trung tâm huyết làm đồ án này, em nghĩ
rằng vẫn không tránh khỏi thiếu sót. Em rất mong nhận được phản hồi, đóng góp
quý báu từ thầy cô, bạn bè, và người dùng để phần mềm ngày càng hoàn thiện hơn.
Em xin chân thành cảm ơn các thầy cô khoa Công nghệ thông tin đã tạo mọi
điều kiện để em hoàn thành đề tài này. Em xin cảm ơn chân thành giảng viên Th.S
Nguyễn Văn Việt trực tiếp nhiệt tình hướng dẫn em làm đề tài này. Lời cuối, em
xin chúc thầy cô và các bạn sức khỏe, công tác tốt.

Thái Nguyên, tháng 5 năm 2016
Sinh viên
Nguyễn Văn Phú

9



10


CHƯƠNG 1: LÝ THUYẾT ANDROID

 GIỚI THIỆU ANDROID
 Khái niệm android
Trước hết Android là 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 và những phần mềm trung gian
(middleware) để hổ trợ các ứng dụng mà người sử dụng cần đến. Một cách
định nghĩa không quá chuyên môn thì có thể coi Android là tên một nền tảng
mở cho thiết bị di động của Google (gồm hệ điều hành, middleware và một số
ứng dụng cơ bản). Android sẽ đương đầu với một số hệ điều hành (viết tắt là
HDH) dành cho thiết bị di dộng khác đang hâm nóng thị trường như Windows
Mobile, Symbian và dĩ nhiên là cả OS X (iPhone).
Có thể nói một cách nôm na rằng Android là một HDH chạy trên thiết bị di
động, cũng giống như Windows, Linux hay Mac chạy trên máy vi tính vậy.
 Android khác với các hệ điều hành chạy trên thiết bị di động khác
Android đã thu hút sự chú ý của giới công nghệ toàn cầu khi đứa con của
Google sử dụng giấy phép mã nguồn mở. Đó là sản phẩm kết tinh từ ý tưởng của
khối Liên minh thiết bị cầm tay do Google dẫn đầu, gồm 34 thành viên là các công
ty hàng đầu về công nghệ và di động toàn cầu như Qualcomm, Intel, Motorola,
Texas Instrucments, LG Electronics, các nhà mạng như T-Mobile, Sprint Nextel,
NTT Comodo, và China Mobile.
Các nhà phát triển có thể sử dụng miễn phí bộ Kit Android Software
Developement để xây dựng các ứng dụng của mình.
 Đặc tính mở của android
Android được xây dựng để cho phép các nhà phát triển tạo ra các ứng dụng
di động hấp dẫn, tận dụng tất cả các tính năng của một chiếc điện thoại cung cấp.


11


Nó được xay dựng để thực sự mở. Ví dụ, một ứng dụng có thể gọi bất kỳ chức
năng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản, hoặc sử dụng
bằng máy ảnh, giúp nhà phát triển tạo ra các ứng dụng phong phú cho người dử
dụng. Android được xây dựng trên mã nguồn mở Linux Kernel. Hơn nữa, nó sử
dụng máy ảo tùy chỉnh được thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng
của thiết bị di động.
Android không phân biệt giữa các ứng dụng lõi và các ứng dụng của bên
thứ 3. Tất cả có thể được xây dựng để có thể truy cập bằng khả năng của một thiết
bị di động cung cấp cho người sử dụng với một dải rộng các ứng dụng và dịch vụ.
Với các thiết bị xây dựng trên android, người dụng hoàn toàn có thể thích ứng với
điện thoại đến lợi ích của họ. Với android, một nhà phát triển có thể xây dựng một
ứng dụng cho phép người dùng xem vị trí của bạn bè của họ và thông báo khi họ
đang có trong vùng phụ cận cho phép kết nối.
Android cung cấp truy cấp đến một loạt các thư viện công cụ hữu ích và có
thể được sử dụng để xây dựng các ứng dụng phong phú. Ví dụ, android cho phép
các thiết bị giao tiếp với nhau tạo điều kiện cho đồng đẳng rich-to-peer trong ứng
dụng xã hội. Ngoài ra, android bao gồm một tập đầy đủ các công cụ đã được xây
dựng công phu, với việc cung cấp nền tảng phát triển, với năng suất và cái nhìn
sâu vào ứng dụng.
 Kiến trúc android.
“Understanding Android” là cách mà ta tiếp cận lập trình Android và thấu
hiểu kiến trúc hệ thống của nó. Chúng ta có thể không cần hiểu rõ cấu trúc của một
hệ điều hành nhưng chúng ta vẫn có thể lập trình trên hệ điều hành đó, đây là điều
mà nhà sản xuất muốn khi release SDK với một framework có sẵn của họ. Như
chúng ta đã biết điều này cũng có mặt tốt mặt xấu. Framework là một nền tảng cao
cấp dành cho lập trình viên, nó đều có giới hạn của nó, chúng ta có thể chỉ lập trình
ứng dụng phổ biến, không nên tiến tới những ứng dụng cao cấp đi xâu vào hệ

thống của hệ điều hành.
12


 Android Flatform.
Bao gồm hệ điều hành Android với dày đủ tính năng, các ứng dụng và các
tầng trung gian để developer có thể mở rộng, tùy chỉnh hoặc thêm vào các
component của họ.
Có 4 tầng cơ bản trong hệ điều hành android: Application Framework,
Android Runtime, Native Libraries, Linux Kernel. Mỗi tầng làm việc đều nhờ sự
giúp đỡ của tầng bên dưới.
 Tầng Linux Kernel.
Đây là nhân của hệ điều hành Android, mọi xử lý của hệ thống đều phải
thông qua tầng này. Linux Kernel cung cấp các trình điều khiển thiết bị phần cứng
(driver)

như:

camera,

USB,

Wifi,

Bluetooth,

Display.

Power


Management....Android dựa trên phiên bản Linux 2.6 lựa chọn các tính năng cốt
lõi như bảo mật, quản lý bộ nhớ, quản lý tiến trình, mạng stack, và các trình điều
khiển phần cứng. Kernel hoạt động như một lớp trừu tượng giữa phần cứng và
phần mềm của hệ thống.
 Native Labraries.
 System C library – có nguồn gốc từ thư viện chuẩn C (libc), điều khiển các thiết
bị nhúng trên Linux.
 Media Library – mở rộng từ PacketVideo’sOpenCORE: thư viện hỗ trợ
playback và recording của nhiều định dạng video và image phổ biến: MPEG4,
H.264, MP3, AAC, ARM, JPG, NPG.
 Surface Manager: quản lý việc hiển thị và kết hợp đồ họa 2D và 3D.
 LibWebCore: Android dùng lại webkit engine cho việc render trình duyệt mặc
định của HĐH android browser và cho dạng web nhúng (như HTML nhúng).
 SGL – 2D engine.
 3D libraries – thư viện 3D dựa trên OpenGL ES 1.0 API, có nâng cấp tăng tốc
“hardware 3D acceleration”.
13


 FreeType – render bitmap và vector font.
 SQLite – quản lý database và ứng dụng.
 Tầng Runtime.
Mỗi ứng dụng Android chạy trên một proccess riêng của Dalvik VM (máy
ảo). Dalvik được viết để chạy nhiều máy ảo cùng lúc một cách hiệu quả trên cùng
một thiết bị.
Máy ảo Dalvik thực thi các file mang định dạng .dex (Dalvik Excutable),
định dạng này là định dạng đã được tối ưu hóa chỉ để chiếm một vùng nhớ vừa đủ
và nhỏ nhất có thể. VM chạy các class (đã được compile trước đó bởi một trình
biên dịch ngôn ngữ java), sở dĩ VM chạy được các class nhớ này nhờ chương trình
DX tool đã convert các định dạng .dex.

 Tầng Application Framework
Đây là tầng mà Google xây dựng cho các developer để phát triển các ứng
dụng của họ trên Android, chỉ bằng cách gọi các hàm API có sẵn mà Google đã
viết để sử dụng các tính năng của phần cứng mà không cần hiểu cấu trúc các tầng
phía dưới.
Bằng cách cung cấp một nền phát triển mở. Android 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 chỉ truy cập, các dịch vụ
chạy nền, thiết bị hệ thống báo thức, thêm thông báo cho các thanh trạng thái, và
nhiều hơn nữa.
Tất cả các ứng dụng thường gồm một số các dịch vụ và hệ thống cơ bản
sau:
 View UI dùng để xây dựng các layout của ứng dụng bao gồm: list view,
text field, button, dialog, form....
 Content Providers cho phép các ứng dụng có thể truy cập dữ liệu từ các
ứng dụng khác, hoặc để chia sẻ dữ liệu của riêng ứng dụng.
14


 Resources Manager: cung cấp cách thức truy cập đến non-code resource
như các asset, graphic, image, music, video,...
 Notification Manager: cho phép tất cả các ứng dụng hiển thị thông báo
của mình trên hệ điều hành.
 Activity Manager: quản lý vòng đời của các ứng dụng.

Hình 1.1. Kiến trúc Android

15



16


 MÔI TRƯỜNG LẬP TRÌNH.
 Các công cụ cần thiết để lập trình trên android và hướng dẫn cài đặt.
 Các công cụ cần thiết để lập trình.
 Hệ điều hành: window 7, 8, 8.1 và 10, Ubuntu.
 Công cụ lập trình: JDK và Android Studio.
 Chúng ta có 2 bước chính: Cài đặt JDK và Adroid Studio.
 Bước 1: Vào địa chỉ
để
download JDK. Download xong tiến hành cài đặt.
 Bước 2: Vào địa chỉ

để download
Android Studio và tiến hành cài đặt.
 Chu kỳ sống của ứng dụng android.
Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho
ứng dụng khi codes cần được xây dựng, khởi chạy và sẽ còn chạy cho đến khi:
 Nó không phụ thuộc.
 Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác.
Một sự khác thường và đặc tính cơ bản của Android là thời gian sống của
tiến trình ứng dụng không được điều khiển trực tiếp bởi chính nó. Thay vào đó, nó
được xác định bởi hệ thống qua một kết hợp của:
 Những phần của ứng dụng mà hệ thống biết đang chạy.
 Những phần đó quan trọng như thế nào đối với người dùng.
 Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống.
 Chu kỳ sống thành phần.
Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc
bắt đầu khởi tạo cho đến thời điểm kết thúc, đôi lúc chúng ta có thể actice (visible

17


hoặc invisible) hoặc inactive.
 Activity Stack.
Bên trong hệ thống các activity được quản lý như một activity stack. Khi
một activity mới được start, nó được đặt ở đỉnh của stack và trở thành activity đang
chạy, activity trước sẽ ở dưới activity mới và sẽ không thấy trong suốt quá trình
activity mới tồn tại.
Nếu người dùng nhấn nút Back thì activity kế tiếp của stack sẽ di chuyển
lên trên và trở thành active.

 Các trạng thái của chu kỳ sống.

18


Một Activity chủ yếu có 4 thành phần chính:
 Active hoặc running: Khi Active là được chạy trên màn hình. Activity
này tập trung vào những thao tác của người dùng trên ứng dụng.
 Paused: Activity là được tạm dừng (paused) khi mất focus nhưng người
dùng vẫn trông thấy. Có nghĩa là một Activity mới ở trên nó nhưng
không bao phủ đầy màn hình. Một Activity tạm dừng là còn sống nhưng
có thể bị kết thúc bởi hệ thống trong trường hợp thiếu vùng nhớ.
 Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác. Nó vẫn còn trạng
thái và thông tin thành viên trong nó. Người dùng không thấy nó và
thường bị loại bỏ trong trường hợp hệ thống cần vùng nhớ cho tác vụ
khác.

19



 Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình
theo nguyên tắc ưu tiên. Các Activity ở trạng thái stop hoặc paused cũng
có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải
khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó.
 Chu kỳ sống của ứng dụng.
Trong một ứng dụng Android có chứa nhiều thành phần và mỗi thành phần
đều có một chu kỳ sống riêng. Ứng dụng chỉ được gọi là kết thúc khi tất cả các
thành phần trong ứng dụng kết thúc. Activity là một thành phần cho phép
người dùng giao tiếp với ứng dụng. Tuy nhiên khi tất cả các activity kết thúc và
người dùng không còn giao tiếp được với ứng dụng nữa không có nghĩa là ứng
dụng đã kết thúc. Bởi vì ngoài activity là thành phần có khả năng tương tác với
người dùng còn có các thành phần khác có khả năng tương tác với người dùng
như Service, Broadcast receier. Có nghĩa là những thành phần không tương tác
với người dùng có thể chạy background dưới sự giám sát của HDH cho đến khi
người dùng tự tắt chúng.
 Các sự kiện trong chu kỳ sống của ứng dụng.
Nếu một Activity được tạm dừng hoặc dừng hẳn, hệ thống có thể bỏ qua
thông tin của nó từ vùng nhớ bởi việc gọi hàm finish() của nó, hoặc đơn giản là
kill tiến trình của nó. Khi nó được hiển thị lần nữa với người dùng, nó phải
được hoàn toàn restart và phục hồi lại trạng thái trước đó. Khi một Activity
chuyển qua chuyển lại giữa các trạng thái, nó phải khai báo việc chuyển của nó
bằng việc gọi hàm transition.

Tất cả các phương thức là những móc nối mà chúng ta có thể override để
20


làm tương thích công việc trong ứng dụng khi thay đổi trạng thái. Tất cả các

Activity bắt buộc phải có onCreate() để khởi tạo ứng dụng. Nhiều Activity sẽ cũng
thực hiện onPause() để xác nhận việc thay đổi dữ liệu và mặt khác chuẩn bị dừng
hoạt động với người dùng.
 Thời gian sống của ứng dụng.
Bảy phương thức chuyển tiếp định nghĩa trong chu kỳ sống của một
Activity. Thời gian sống của một Activity diễn ra giữa lần gọi onCreate() đến trạng
thái cuối cùng gọi onDestroy(). Một Activity khởi tạo toàn bộ trạng thái toàn cục
trong onCreate(), giải phóng các tài nguyên đang tồn tại trong onDestroy().
 Thời gian hiển thị của Activity.
Visible lifetime của một activity diễn ra giữa lần gọi một onStart() cho đến
khi gọi onStop(). Trong suốt khảng thời gian này người dùng có thể lấy activity
hiển thị trên màn hình, có nghĩa là nó không bị foreground hoặc đang tương tác
với người dùng. Giữa 2 phương thức người dùng có thể duy trì tài nguyên để hiển
thị activity đến người dùng.
 Các hàm thực thi.
 OnCreate(...): hàm này được gọi khi lớp Activity được khởi tạo, dùng để
thiết lập giao diện ứng dụng và thực thi những thao tác cơ bản.
 onStart(): hàm này được gọi khi lớp ứng dụng xuất hiện trên màn hình.
 onResume(): hàm được gọi ngay sau OnStart hoặc khi người dùng
focus ứng dụng, hàm này sẽ đưa ứng dụng lên top màn hình.
 onPause(): hàm được gọi khi hệ thống đang focus đến 1 activity trước đó.
 onStop(): hàm được gọi khi một activity khác được khởi động và focus.
 onRestart(): đưọc gọi khi ứng dụng chuyển sang onStop(), nhưng muốn
khởi động lại bằng onStart().
21




22



 Thành phần giao diện trong android
 View

Trong android giao diện người dùng thường được xây dựng từ các đối tượng
View. Trong android flatform, các screen luôn được bố trí theo một kiểu cấu trúc
phân cấp như hình trên. Một screen là một tập hợp các layout và các widget được
bố trí có thứ tự. Để thể hiện một screen thì trong hàm onCreate() của mỗi activity
cần phải gọi một hàm là setContentView(R.layout.main), hàm này sẽ load giao
diện từ file main.xml để phân tích thành mã bytecode.
 ViewGroup
ViewGroup là sự mở rộng của class view hay nói cách khác ViewGroup
chính là các WidgetLayout được dùng để bố trí các đối tượng khác trong một
screen. Có các loại ViewGroup sau:
 Linear layout: dùng để bố trí các thành phần giao diện theo chiều ngang
hay chiều dọc nhưng trên một line duy nhất mà không có xuống dòng.
 Frame layout: được dùng để bố trí các đối tượng theo kiểu giống như các
layout trong Photoshop. Những đối tượng nào thuộc layer bên dưới sẽ bị
che khuất bởi các đối tượng khác thuộc layer nằm trên. Frame layout
thường được sử dụng muốn tạo các đối tượng có khung hình bền ngoài
chẳng hạn như contact image button.
 Table layout: được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc
cần bố trí các widget theo row hoặc column
 Absolute Layout: được sử dụng để bố trí các widget vào vị trí bất kỳ trong
layout dựa vào 2 thuộc tính tọa độ x, y. Tuy nhiên, kiểu layout này rất ít khi
được sử dụng bởi tọa độ của các đối tượng luôn luôn cố định và không
23



điều chỉnh được khoảng cách giữa các đối tượng. Khi chuyển đối tượng
sang màn hình khác với màn hình thiết kế ban đầu thig vị trí của các đối
tượng sẽ không còn được chính xác như ban đầu.
 Relative layout: cho phép bố trí các widget theo một trục đối xứng ngang
hoặc dọc. Để đặt được đúng vị trí thì các widget cần được xác định mối
quan hệ ràng buộc nào đó với các widget khác. Các ràng buộc này là các
ràng buộc trái, phải, trên, dưới so với một weidget hoặc so với layout
parrent. Dựa vào những mối ràng buộc đó mà relative layout cũng không
phụ thuộc vào kich thước của screen thiết bị. Ngoài ra, nó còn có ưu điểm
giúp tiết kiệm các layout sử dụng nhằm mục đích giảm tài nguyên sử dụng
khi load đồng thời đẩy nhanh quá trình xử lý.
 Các control
 Button
Sở dĩ widget button được giới thiệu đầu tiên trong số các widget khác là
vì đây là đối tượng có thể nói là được dùng nhiều nhất trong hầu hết các ứng
dụng Android.
Để thiết kế giao diện với một button ta có 2 cách như sau:
Android:layout_width="wrap_content"
Android:layout_height="wrap_content
"
Android:id="@+id/cmdButton1"
Android:text="Touch me!"
/>
Thực ra nếu không phải đòi hỏi phải custom lại một widget thì không cần
phải sử dụng tới code. Trong một số trường hợp bắt buộc chúng ta phải custom các
widget để cho phù hợp với hoàn cảnh. Chẳng hạn như trong game, các menu hay
các nút điều khiển,…
 ListView.
24



Được sử dụng để thể hiện một danh sách các thông tin theo từng cell. Mỗi
cell thông thường được load lên từ một file XML đã được cố định trên đó số lượng
thông tin và loại thông tin cần được thể hiện.
Để thể hiện được một list thông tin lên một screen phải có 3 yếu tố
chính:
 Data Source: có thể là một array list, hashmap hoặc bất kỳ một cấu trúc
dữ liệu kiểu danh sách nào đó.
 Adapter: là một class trung gian giúp ánh xạ dữ liệu trong Data Source
vào đúng vị trí hiển thị trên List View.
 List View: là đối tượng để thể hiện các thông tin trong Data Source ra
một cách trực quan và người dùng có thể thao tác trực tiếp trên đó.
 EditText
Trong android, đối tượng Edit Text được xử dụng như một Text Field hoặc
một Text Box. Giá trị android:singleLine bằng false, edittext sẽ là một TextBox,
ngược lại nó là một TextField.

25


×