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

Xây dựng chương trình dạy chữ cái cho các bé mầm non

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.94 MB, 87 trang )

LỜI CẢM ƠN
Để hoàn thành đồ án 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 cô Nông Thị Hoa đã tận tình hướng dẫn, truyền đạt những kinh
nghiệm quý giá cho em trong suốt quá trình nghiên cứu và thực hiện đề tài.
Đồ án tốt ngiệ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 đã học. Đồng thời, 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 đề tài. Sau một thời gian em tập trung công sức cho
đề tài và làm việc tích cực, đặc biệt là nhờ sự chỉ đạo và hướng dẫn tận tình của cô
Nông Thị Hoa đã giúp cho em hoàn thành đề tài một cách thuận lợi và gặt hái
được những kết quả 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 nghiệm rất quý báu cho công việc 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 và 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 cho quá trình học tập của chúng em.
Kính chúc quý thầy cô mạnh khoẻ, 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 của báo cáo này là do em tự tìm hiểu,
nghiên cứu dưới sự định hướng của Cô giáo hướng dẫn. Nội dung báo cáo này
không sao chép và vi phạm bản quyền từ bất kỳ công trình nghiên cứu nào.
Nếu những lời cam đoan trên không đúng, em xin chịu hoàn toàn trách
nhiệm trước pháp luật.

Thái Nguyên, tháng 6 năm 2016


Sinh viên
NGUYỄN THỊ HƯƠNG

2


MỤC LỤC
LỜI CẢM ƠN

1

LỜI CAM ĐOAN 2
MỤC LỤC

3

LỜI MỞ ĐẦU

5

CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID
1.1. Tổng quan về hệ điều hành Android 8
1.1.1. Giới thiệu chung về hiệu hành android 8
1.2. Kiến trúc và thành phần Android

9

1.2.1. Kiến trúc của nền tảng Android 9
1.2.2. Tầng Linux kernel 10
1.2.3. Tầng Library và Android Runtime


10

1.2.4. Tầng khung ứng dụng(Application Framework)
1.2.5. Tầng Application 14
1.3. Các thành phần cơ bản của ứng dụng Android
1.4. Vòng đời Android

14

15

1.5. Các thành phần cơ bản trong Android

19

1.5.1. XML unit 19
1.5.2 Các lay out 24
1.5.3. Android Manifest 24
1.5.4. File R.java 26
1.5.5. Button và ToggleButton 27
1.5.6. TextView và EditText

28

1.5.7. CheckBox và RadioButton
1.5.8. SQLite

29


30

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1. Khảo sát

34
3

34

13

8


2.1.1. Giới thiệu bài toán 34
2.1.2. Tâm lý trẻ mẫu giáo

35

2.2. Các mẫu chữ hiện có 36
2.3 Khảo sát các phần mềm học chữ đã có
2.4. Phân tích yêu cầu

38

39

2.4.1. Yêu cầu chức năng39
2.4.2. Yêu cầu phi chức năng


39

2.5. Phân tích thiết kế với UML

39

2.6.1. Biểu đồ Use Case 39
2.7. Biểu đồ trình tự 43
2.7.1. Biểu đồ trình tự cho chức năng học chữ cái

43

2.7.2. Biểu đồ trình tự cho chức năng tập viết 43
2.7.3. Biểu đồ trình tự cho chức năng thực hành
2.8. Biểu đồ lớp

44

2.8.1. Biểu đồ lớp cho chức năng hoc tập
2.8.2. Biểu đồ lớp chức năng học viết 45
2.8.3. Biều đồ lớp chức năng thực hành45
CHƯƠNG 3: DEMO

46

3.1. Thư viện hình ảnh

46


3.2. Thư viện âm thanh

46

3.3. Thư viện video 47
3.4. Giao diện ứng dụng

47

KẾT LUẬN 59
TÀI LIỆU THAM KHẢO 60

4

44

44


DANH MỤC HÌNH ẢNH
Hình 1.1 Android timeline 8
Hình 1.2 Mô hình kiến trúc nền tảng Android
Hình 1.3. Nhân Linux trên Android

10

10

Hình 1.4. Thư viện lập trình ứng dụng trên Android


10

Hình 1.5. Khung ứng dụng trên Android 13
Hình 1.6. Các ứng dụng trên Android
Hình 1.7 Biểu đồ Activity state

14

16

Hình 1.8 Project Explorer 19
Hình 1.9 Minh hoạ cho Button, EditText, CheckBox

30

Hình 1.10 Chương trình SQLite Database Browser

31

Hình 2.1. Biểu đồ Use Case tổng quát

40

Hình 2.2 Biểu đồ usecase học bảng chữ cái
Hình 2.3 Biểu đồ usecase thực hành

42

Hình 2.4 Biểu đồ usecase học viết


42

41

Hình 2.5 Biểu đồ trình tự cho chức năng học chữ cái

43

Hình 2.6 Biểu đồ trình tự cho chức năng học viết

43

Hình 2.7 Biểu đồ trình tự cho chức năng thực hành

44

Hình 2.8 Biểu đồ lớp học tập

44

Hình 2.9 Biểu đồ lớp học viết

45

Hình 2.10 Biểu đồ lớp thực hành 45
Hình 3.1 Thư viện hình ảnh46
Hình 3.2 Thư viện âm thanh
Hình 3.3 thư viện video

46


47

Hình 3.4 Giao diện màn hình
Hình 3.5 Bé học chữ A

48

Hình 3.6 Bé học chữ L

48

Hình 3.7 Bé học chữ V

49

47

5


Hình 3.8 Bé học chữ C

49

Hình 3.9 Bé học chữ M

50

Hình 3.10 Bé học chữ k


50

Hình 3.11 Bé học chữ h

51

Hình 3.12 Bé học viết chữ a

51

Hình 3.13 Bé học viết chữ â

52

Hình 3.14 Bé học viết chữ k

52

Hình 3.15 Bé học viết chữ d

53

Hình 3.16 Bé học viết chữ h

53

Hình 3.17 Bé học viết chữ đ

54


Hình 3.18 Bé học viết chữ g

54

Hình 3.19 Bé học viết chữ o

55

Hình 3.20 Bé học viết chữ A

55

Hình 3.21 Bé học viết chữ Â

56

Hình 3.22 Bé học viết chữ C

56

Hình 3.23 Bé học viết chữ D

57

Hình 3.24 Chức năng thực hành

57

Hình 3.25 Đáp án thực hành đúng 58

Hình 3.26 Đáp án thực hành sai

58

6


LỜI MỞ ĐẦU
Ngày nay, sự phát triển của thị trường điện thoại di động ngày càng trở nên
mạnh mẽ, kéo theo sự phát triển xu hướng lập trình phần mềm ứng dụng cho các
thiết bị di động. Phần mềm, ứng dụng cho điện thoại di động hiện nay rất đa dạng
và phong phú trên các hệ điều hành di động cũng phát triển mạnh mẽ và đang thay
đổi từng ngày.
Các hệ điều hành J2ME, Android, IOS, Hybrid, Web based Mobile Application
đã có rất phát triển trên thị trường truyền thông di động. Trong đó dù mới bước chân
vào làng điện thoại di động nhưng Android đã lần lượt hạ gục những đối thủ tầm cỡ và
trở thành hệ điều hành tăng trưởng nhanh nhất thế giới. Android là một nền tảng hệ
điều hành mã nguồn mở và dựa hoàn toàn vào một ngôn ngữ lập trình rất mạnh là Java
để phát triển các ứng dụng. Việc hỗ trợ Java ngay từ trong nền tảng nên việc viết các
ứng dụng và ngay cả việc sử dụng các chức năng của phần cứng là hoàn toàn dễ dàng
thông qua việc sử dụng bộ công cụ hỗ trợ lập trình được cung cấp miễn phí là Android
SDK. Những điều đó đã cho thấy đây là nền tảng ứng dụng có thể phát triển xa trong
tương lai nó hoàn toàn có thể cạnh tranh với các hệ điều hành đã có trước đó và đang
là hệ điều hành được nhiều người ưa chuộng.
Em đã chọn đề tài: “Xây dựng chương trình dạy chữ cái cho các bé mầm
non”. Với mục đích là tìm hiểu công nghệ lập trình mới hiện nay, tìm hiểu về ngôn
ngữ, môi trường làm việc, cách hoạt động và lập trình chương trình ứng dụng cho
điện thoại di động.
Trong thời gian làm đề tài em được giúp đỡ và trực tiếp chỉ bảo tận tình
của cô Nông thị Hoa. Em xin chân thành cảm ơn cô đã giúp đỡ em hoàn thành

báo cáo này.
Mặc dù đã cố gắng hoàn thiện đề tài với tất cả sự nỗ lực của bản thân,
nhưng không thể tránh khỏi những thiếu sót.
Kính mong quý Thầy Cô tận tình chỉ bảo!
7


Em xin chân thành cảm ơn!

8


CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID
1.1. Tổng quan về hệ điều hành Android
1.1.1. Giới thiệu chung về hiệu hành android
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi
Linux do công ty Android Inc. (California, Mỹ) thiết kế. Công ty này sau đó
được Google mua lại vào nĕm 2005 và bắt đầu xây dựng Android Platform. Các
thành viên chủ chốt tại ở Android Inc. gồm có: Andy Rubin, Rich Miner, Nick
Sears, and Chris White.

Hình 1.1 Android timeline
Và sau tiếp, vào năm 2007 thuộc liên minh thiết bị cầm tay mã nguồn mở
(Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễn thông và
thiết bị cầm tay như:
Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG,
Marvell

Technology


Group,

Motorola,

Nvidia,

Qualcomm,

Samsung

Electronics, SprintNextel, T-Mobile, ARM Holdings, Atheros Communications,
Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and
Vodafone Group,…
9


Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn
cho nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng
Android. Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết,
các nhà khai thác và các lập trình viên thiết bị cầm tay.
Phiên bản SDK lần đầu tiên phát hành vào tháng 11 nĕm 2007, hãng
T-Mobile cǜng công bố chiếc điện thoại Android đầu tiên đó là chiếc TMobile G1, chiếc smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày
sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản Android SDK release
Candidate 1.0. Trong tháng 10 nĕm 2008, Google được cấp giấy phép mã nguồn
mở cho Android Platform.
Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc
của nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử
dụng lại các thành phần từ những ứng dụng khác. Việc tái sử dụng không chỉ
được áp dụng cho cho các dịch vụ mà nó còn được áp dụng cho cả các thành
phần dữ liệu và giao diện người dùng.

Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được
gọi là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không
bị ràng buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết
bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một
thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một bản hợp
đồng nào. Vào khoảng cùng thời gian đó thì Google cǜng cho phát hành một
phiên vản vá lỗi 1.1 của hệ điều hành này. Ở cả hai phiên bản 1.0 và 1.1 Android
chưa hỗ trợ soft-keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý.
Android cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tư nĕm
2009, cùng với một số tính nĕng khác. Chẳng hạn như nâng cao khả nĕng ghi
âm truyền thông, vật dụng, và các live folder.
1.2. Kiến trúc và thành phần Android
1.2.1. Kiến trúc của nền tảng Android
10


Hệ điều hành android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux (Phiên
bản 2.6), tầng Tầng Libraries & Android runtime, Tầng Application Framework và
trên cùng là tầng Application.

Hình 1.2 Mô hình kiến trúc nền tảng Android
1.2.2. Tầng Linux kernel

Hình 1.3. Nhân Linux trên Android
Android sử dụng nhân Linux 2.6 làm nhân cho các dịch vụ hệ thống như
bảo mật, quản lý bộ nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng), ngăn xếp
mạng và trình điều khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không
dây, v.v…). Nhân Linux này cũng có vai trò như một lớp trừu tượng giữa phần
cứng và phần mềm.
1.2.3. Tầng Library và Android Runtime

Android có một thư viện khá phong phú cung cấp sẵn để người lập trình có
thể sử dụng. Hình sau là sơ đồ tóm tắt về hệ thống thư viện này.

11


Hình 1.4. Thư viện lập trình ứng dụng trên Android
a. Android runtime
Android có một tập các thư viện nòng cốt để cung cấp hầu hết các chức năng
sẵn có trong thư viện cốt lõi của ngôn ngữ lập trình Java. Android Runtime: Bao
gồm máy ảo Dalvik và các thư viện Android.
Các thư viện cơ bản: Các ứng dụng Android được phát triển trên môi trường
Java, nhưng Dalvik lại không phải là một Java VM. Các thư viện cơ bản của
Android cung cấp hầu hết các chức năng có trong thư viện cơ bản của Java cũng
như là thư viện riêng của Android.
Máy ảo Dalvik: Dalvik là máy ảo để chạy các ứng dụng trên Android, đã
được tối ưu để đảm bảo rằng một thiết bị có thể chạy được nhiều Instance một cách
hiệu quả. Nó dựa vào nhân Linux để thực hiện đa luồng và quản lý bộ nhớ cấp
thấp.
b. Library
Android cung cấp một số các APIs cho phát triển ứng dụng. Danh sách các
API cơ bản sau được cung cấp bởi tất cả các thiết bị trên nền Android:
- Android.util: Gói tiện ích cơ bản bao gồm nhiều lớp mức thấp như là các
lớp quản lý (List, Stack…) lớp xử lý chuỗi, lớp xử lý XML.
- Android.os: Gói hệ điều hành cung cấp truy cập đến các dịch vụ cơ bản như
là chuyển tin nhắn, thông tin chéo, đồng hồ và gỡ lỗi.
- Android.graphics: Cung cấp các lớp đồ họa mức thấp thực hiện các chức
năng đồ họa, màu, vẽ cơ bản.
12



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



Web-based bao gồm một lơp webview để tạo ra giao diện web, nhúng trong ứng
dụng và một trình quản lý cookie.
Cùng với các API của Android, còn có một tập các thư viện C/C++ như:
- OpenGL: Thư viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn
OpenGLES 1.0 API.
- FreeType: Hỗ trợ xử lý bitmap và font vector.
- GGL: Thư viện cơ bản, dùng để cung cấp các engine đồ họa 2D.
- Libc: Thư viện C chuẩn, được tối ưu cho các thiết bị Linux-based.
- SQLite Engine: Cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu của
ứng dụng.
- SSL: Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer trong bảo mật
truyền thông Internet.
Ngoài các thư viện chuẩn của Android, để đáp ứng tiêu chí phù hợp với nhiều
thiết bị khác nhau, Android còn có thể có các API phụ thuộc thiết bị như
android.location, android.media, android.opengl, android.hardware, android.bluetooth,
android.net.wifi và android.telephony.
1.2.4. Tầng khung ứng dụng(Application Framework)

Hình 1.5. Khung ứng dụng trên Android
Kiến trúc của Android khuyến khích khái niệm thành phần sử dụng lại, cho
phép công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác với
quyền truy cập được quản lý bởi khai báo.
14


Cơ chế đó cho phép người lập trình tạo ra một trình quản lý danh bạ hoặc
trình quay số điện thoại mà có các thành phần người khác có thể tạo mới giao diện
và mở rộng chức năng thay vì tạo lại chúng.
Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả các ứng

dụng, cung cấp một framework cho mọi mọi phần mềm được xây dựng:
- Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả quản
lý các tầng Activity.
- Views: Được sử dụng để tạo lập các giao diện người dùng cho các Activity.
- Notification Mamager: Cung cấp một cơ chế cố định và quy củ cho việc gửi
các thông báo đến người dùng.
- Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng.
- Resource Manager: Hỗ trợ các thành phần không thuộc mã nguồn như là
chuỗi ký tự, đồ họa được đặt bên ngoài.
1.2.5. Tầng Application

Hình 1.6. Các ứng dụng trên Android
Đây là lớp trên cùng của kiến trúc nền tảng Android. Android sẽ hoạt động
với một bộ các ứng dụng bao gồm ứng dụng thư điện tử, gửi tin nhắn, lịch, bản đồ,
trình duyệt web, danh bạ v.v… Tất cả các ứng dụng được viết bằng ngôn ngữ Java.
Các ứng dụng này có thể được cung cấp sẵn hoặc được phát triển bởi những lập
trình viên.
1.3. Các thành phần cơ bản của ứng dụng Android
Một ứng dụng trên Android được cấu thành từ 6 thành phần cơ bản sau:
Activity: hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng. Khi
15


khởi động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được
gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác.
Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu,
đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy.
Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để
quản lý và chia sẻ dữ liệu giữa các ứng dụng.
Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các

thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc mong
muốn. VD: khi mở 1 trang web, thì cần gửi 1 intent đi để tạo 1 activity mới hiển
thị trang web đó.
Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới. VD:
viết 1 chương trình thay thế cho phần gọi điện mặc định của Android, khi đó cần 1
Broadcast Receiver để nhận biết các Intent là các cuộc gọi tới.
Notification: đưa ra các cảnh báo mà không làm cho các Activity phải
ngừng hoạt động.
Activity, Service, Broadcast Receiver và Content Provider mới là những
thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong
AndroidManifest
 Kích hoạt các thành phần ứng dụng:
Trong Android, mặc định, hệ thống sẽ khởi động ứng dụng của bạn trong
một tiến trình riêng biệt và giới hạn quyền kích hoạt trực tiếp các Component trong
ứng dụng khác. Do đó, để kích hoạt một component trong ứng dụng khác, bạn
không thể sử dụng cách thông thường mà phải thông qua một đối tượng đặc biệt
gọi là intent. Đối tượng này sẽ gửi yêu cầu của bạn đến hệ thống và yêu cầu hệ
thống kích hoạt Component giúp bạn.
Intent là một thông điệp bất đồng bộ dùng để kích hoạt các Application
Component như Activity, Service và Broadcast Receiver. Riêng với Content
Provider bạn phải dùng một đối tượng có tên là ContentResolver để kích hoạt.
16


1.4. Vòng đời Android
Android có cơ chế quản lý các process theo chế độ ưu tiên. Các process
có priority thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm
bảo tài nguyên.
Foreground process: Là process của ứng dụng hiện thời đang được người
dùng tương tác.

Visible process: là process của ứng dụng mà activity đang hiển thị đối với
người dùng (onPaused() của activity được gọi).
Service process: là Service đang running.
Background process: là process của ứng dụng mà các activity của nó ko
hiển thị với người dùng (onStoped() của activity được gọi).
Empty process: process không có bất cứ 1 thành phần nào active. Theo chế
độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên là các
empty process.
Vòng đời của Android Activity:
Như đã giới thiệu ở trên , Actitvity là thành phần quan trọng nhất và đóng
vai trò chính trong xây dựng ứng dụng Android. Hệ điều hành Android quản lý
Activity theo dạng stack: khi một Activity mới được khởi tạo, nó sẽ được xếp lên
đầu của stack và trở thành running activity, các Activity trước đó sẽ bị tạm dừng và
chỉ hoạt động trở lại khi Activity mới được giải phóng.
Activity bao gồm 4 state:
- Active (running): Activity đang hiển thị trên màn hình (foreground).
- Paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost
focus). VD: một activity mới xuất hiện hiển thị giao diện đè lên trên activity cũ,
nhưng giao diện này nhỏ hơn giao diện của activity cũ, do đó ta vẫn thấy được 1
phần giao diện của activity cũ nhưng lại không thể tương tác với nó.
- Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng
thái stop.
17


- 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 đó.


Hình 1.7 Biểu đồ Activity state
Vòng đời của Activity:
- Entire lifetime: Từ phương thức onCreate( ) cho tới onDestroy( )
18


- Visible liftetime: Từ phương thức onStart( ) cho tới onStop( )
- Foreground lifetime: Từ phương thức onResume( ) cho tới onPause( )
Khi xây dựng Actitvity cho ứng dụng cần phải viết lại phương thức onCreate( )
để thực hiện quá trình khởi tạo. Các phương thức khác có cần viết lại hay không tùy
vào yêu cầu lập trình.
Các phương thức của vòng đời:
Phương thức: onCreate()
 Được gọi khi activity lần đầu tiên được tạo.
 Ở đây bạn làm tất cả các cài đặt tĩnh – tạo các view, kết nối dữ liệu đến
list…
 Phương thức này gửi qua một đối tượng Bundle chứa đựng từ trạng thái
trước của Activity.
 Luôn theo sau bởi onStart().
Phương thức: onRestart()
 Được gọi trước khi một activity đã được dừng, chỉ một khoảng đang
khởi động lần nữa(stared again).
 Luôn theo sau bởi onStart().
Phương thức: onStart()
 Được gọi trước khi một activity visible với người dùng.
 Theo sau bởi onResume() nếu activity đến trạng thái foreground hoặc
onStop() , nó trở nên ẩn.
Phương thức: onResume()
 Được gọi trước khi activity bắt đầu tương tác với người dùng.
 Tại thời điểm này activity ở trên đỉnh của stack activity.

 Luôn theo sau bởi onPause().
Phương thức: onPause()
 Được gọi khi hệ thống đang resuming activity khác.
19


 Phương thức này là điển hình việc giữ lại không đổi dữ liệu.
 Nó nên được diễn ra một cách nhanh chóng bởi vì activity kế tiếp sẽ
không được resumed ngay cho đến khi nó trở lại.
 Theo sau bởi onResume() nếu activity trở về từ ở trước, hoặc bởi
onStop() nếu nó trở nên visible với người dùng.
 Trạng thái của activity có thể bị giết bởi hệ thống.
Phương thức: onStop()
 Được gọi khi activity không thuộc tầm nhìn của người dùng.
 Nó có thể diễn ra bởi vì nó đang bị hủy, hoặc bởi vì activity khác vừa
được resumed và bao phủ nó.
 Được theo sau bởi onRestart() nế activity đang trở lại để tương tác với
người dùng, hoặc onDestroy() nếu activity đang bỏ.
 Trạng thái của activity có thể bị giết bởi hệ thống.
Phương thức: onDestroy()
 Được gọi trước khi activity bị hủy.
 Đó là lần gọi cuối cùng mà activity này được nhận.
 Nó được gọi khác bởi vì activity đang hoàn thành, hoặc bởi vì hệ thống
tạm thời bị hủy diệt để tiết kiệm vùng nhớ.
XML trong Android:
Không giống như lập trình java thông thường, lập trình android ngoài các
lớp được viết trong *.java còn sử dụng XML để thiết kế giao diện cho ứng dụng.
Tuy nhiên vẫn hoàn toàn có thể thiết kế 1 giao diện như ý muốn mà không cần tới
XML nào, nhưng sử dụng XML sẽ đơn giản công việc đi rất nhiều. Đồng thời sử
dụng XML sẽ giúp việc chỉnh sửa ứng dụng sau này trở nên dễ dàng.

Về nguyên tắc, khi lập trình ứng dụng thì thiết kế giao diện bằng XML và
cài đặt các xử lý khi tương tác với giao diện trong code java.
Để có thể lập trình viết các ứng dụng cho Android thì cần phải sử dụng đến
20


bộ công cụ cần thiết. Muốn phát triển ứng dụng Android có thể sử dụng 1 máy tính
chạy Mac, Linux, Window,..
1.5. Các thành phần cơ bản trong Android
1.5.1. XML unit
Bên khung Project Explorer bên trái đi tới thư mục res, có 3 thư mục con:
- Drawable: thư mục chứa các hình ảnh để làm icon hoặc tài nguyên cho
giao diện...
- Layout: chứa các file xml để thiết kế giao diện.
- Values: chứa các giá trị sử dụng trong ứng dụng được người lập trình định
nghĩa, như các dòng ký tự (string), các màu (color), các themes...
- Raw: chứa các file âm thanh dùng trong ứng dụng.Một số các thuộc tính
để điều chỉnh cho cách thành phần giao diện, các thuộc tính này được gọi ra kèm
với tiền tố “android:”

21


Hình 1.8 Project Explorer
Layout_width: Chiều rộng của thành phần
Layout_height: Chiều cao của thành phần
Layout_marginTop: Khoảng cách từ thành phần đó lên cạnh trên của màn hình
22



Layout_marginBottom: Khoảng cách từ thành phần đó lên cạnh trên của
màn hình.
Layout_marginLeft: Khoảng cách từ thành phần đó sang cạnh trái của
màn hình.
Layout_marginRight: Khoảng cách từ thành phần đó sang cạnh phải của
màn hình.
Layout_gravity: Vị trí của thành phần trên màn hình
layout_x, layout_y: Toạ độ hiển thị của thành phần trên màn hình (cái này
sử dụng với AbsoluteLayout).
Ví dụ 1 đoạn XML thiết kế giao diện
Mã:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" />android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:id="@+id/edit_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/edit_hint"/>
android:id="@+id/text_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/text_color"
android:textSize="28px"
android:typeface="monospace"/>
23



</LinearLayout>
Trong đoạn XML này được khai báo một Linear Layout với 2 thành phần
con của nó là 1 Edit Text (dùng để gõ xâu ký tự) với 1 Text View (hiển thị xâu ký
tự). Linear Layout được khai báo với từ khóa orientation nhằm chỉ ra chiều sắp xếp
của 2 thành phần con là chiều dọc.Còn với layout_width, layout_height có thể cho
giá trị bằng "fill_parent" hoặc "wrap_content" để thông báo thành phần này sẽ có
chiều rộng (dài) phủ đầy thành phần cha hoặc chỉ vừa bao đủ nội dung.
Trong Edit Text và Text View có từ khóa id, từ khóa này cho phép khai báo
id của các thành phần để lấy về trong code
Ngoài ra từ khóa hint trong Edit Text cho phép hiện ra phần nội dung mờ
khi Edit Text vẫn chưa có ký tự nào. "@string/edit_hint" thông báo lấy trong file
strings.xml xâu có tên là edit_hint. textColor của Text View thông báo đoạn ký tự
sẽ được hiển thị với màu lấy trong file colors.xml, textSize chỉ ra cỡ chữ bằng 28
pixel và typeface chỉ ra kiểu chữ là monospace.
Ví dụ file strings.xml. Khai báo và định nghĩa cho các chuỗi được sử
dụng ở main
Mã:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Example!</string>
<string name="app_name">Example 1</string>
<string name="edit_hint">Enter the work here</string>
</resources>
Ví dụ file colors.xml. Khai báo và định nghĩa các màu cần dùng:
Mã:
<?xml version="1.0" encoding="utf-8"?>
<resources> <color name="text_color">#ff3300</color>
</resources>
24



25


×