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

Xây dựng ứng dụng quản lý chi tiêu trên nền tảng android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.34 MB, 86 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 QUẢN LÝ CHI TIÊU
TRÊN NỀN TẢNG ANDROID

Giảng viên hướng dẫn : ThS. HỒ NGỌC TÚ
Sinh viên
: TRẦN TIẾN ANH
Lớp
: 11CNTT2

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


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp

LỜI CẢM ƠN
Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc đến tất cả các thầy cô trong
khoa Tin học Trường Đại học Sư phạm – Đại học Đà Nẵng đã tận tình chỉ bảo và
truyền đạt cho em rất nhiều kiến thức về chuyên môn cũng như kỹ năng trong nghề
nghiệp trong bốn năm vừa qua .
Đồng thời em xin gửi lời cảm ơn đến Trung tâm giải pháp công nghệ thông
tin và truyền thông viettel ICT đã tạo điều kiện cho em được tham gia thực tập tại
đơn vị cũng như truyền đạt những kiến thức quý báu trong công việc cũng như cuộc


sống. Xin cảm ơn đến các anh (chị) trong trung tâm đặc biệt em gửi tới lời cảm ơn đến
anh Phạm Đức Chương đã tận tình chỉ dạy và giúp đỡ em trong quá trình làm đồ án
thực tập và Khóa Luận tốt nghiệp.
Em xin chân thành cảm ơn đến thầy giáo hướng dẫn ThS. Hồ Ngọc Tú đã tận
tâm hướng dẫn và định hướng cho em ngay từ những bước đầu bắt tay vào thực hiện
khóa luận này cho đến khi hồn thành. Với sự chỉ bảo đó em đã gặt hái cho mình được
những kiến thức quý báu để hồn thành tốt khóa luận tốt nghiệp cũng như đúc kết lại
những kiến thức được học tập trong thời gian qua.
Mặc dù đã cố gắng hết sức và sự giúp đỡ của thầy giáo hướng dẫn để thực hiện
hoàn chỉnh khóa luận tốt nghiệp này. Song do buổi đầu mới làm quen với công tác
nghiên cứu khoa học, tiếp cận với thực tế của đề tài, cũng như hạn chế về kiến thức và
kinh nghiệm nên không thể tránh khỏi những thiếu sót nhất định mà bản thân chưa thấy
được. Em rất mong được góp ý của quý Thầy, Cơ giáo và các bạn để bản báo cáo khóa
luận hoàn chỉnh hơn.
Em xin trân trọng cảm ơn !

SVTH: Trần Tiến Anh

Trang i

GVHD: ThS.Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp

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 các anh (chị) trong Trung tâm giải pháp CNTT và Truyền
thông Viettel ICT và giáo viên hướng dẫn ThS. Hồ ngọc Tú.
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 hồn tồn trách nhiệm.

Sinh Viên
Trần Tiến Anh

SVTH: Trần Tiến Anh

Trang ii

GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu


MỤC LỤC
LỜI MỞ ĐẦU............................................................................................................ 1
1.

Lý do chọn đề tài .............................................................................................. 1

2.

Mục tiêu nghiên cứu ......................................................................................... 1

3.

Đối tượng nghiên cứu....................................................................................... 1

4.

Phạm vi nghiên cứu .......................................................................................... 1

5.

Phương pháp nghiên cứu.................................................................................. 1

6.

Nội dung của đề tài .......................................................................................... 2

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT ....................................................................... 3
1.1. Giới thiệu về hệ điều hành ANDROID ......................................................... 3
1.1.1. Android là gì? .......................................................................................... 3
1.1.2. Lịch sự phát triển của Android ............................................................... 3

1.1.3. Delving với máy ảo Dalvik ..................................................................... 6
1.1.4. Kiến trúc của Android ............................................................................. 6
1.1.5. Chu kỳ sống của hệ điều hành Android ................................................... 9
1.1.6. Các thành phần cơ bản của Android ...................................................... 11
1.1.7. Các thành phần giao diện trong Android .............................................. 15
1.1.8. Cơ sở dữ liệu trong Android (SQLite) .................................................. 16
1.1.9. JSON trong Android.............................................................................. 16
1.1.10. Tìm hiểu Web Service ........................................................................... 18
1.2.

Tìm hiểu về PHP Framework CodeIgniter ........................................... 19

1.2.1. Khái niệm .............................................................................................. 19
SVTH: Trần Tiến Anh

Trang iii

GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu

1.2.2. Cài đặt Framework codeIgniter ............................................................. 19
1.2.3. Mô hình Model –View- Controller ....................................................... 20
1.2.4. Cấu trúc Codelgniter ............................................................................. 21
1.2.5. Dòng chảy dữ liệu trong Codeigniter .................................................... 22
1.2.6. Codeigniter URL ................................................................................... 23
1.2.7. Model..................................................................................................... 23

1.2.8. Controller............................................................................................... 24
1.2.9. View ...................................................................................................... 25
CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ ........................................................ 26
2.1.

Phân tích và thiết kế hệ thống ................................................................ 26

2.1.1. Đặc tả bài toán ....................................................................................... 26
2.1.2. Đặc tả yêu cầu của bài toán ................................................................... 26
2.1.3. Đặc tả chức năng ................................................................................... 28
2.1.4. Phân tích hệ thống ................................................................................. 34
2.1.5. Biểu đồ lớp ............................................................................................. 45
2.1.7. Biểu đồ tuần tự ...................................................................................... 50
2.1.8. Sơ đồ thuật toán ..................................................................................... 53
2.2.

Phân tích và thiết kế cơ sở dữ liệu .......................................................... 56

2.2.1. Cấu trúc bảng ........................................................................................... 56
2.2.2. Sơ đồ thực thể quan hệ ............................................................................ 58
2.3.

Phân tích và Thiết kế Web Service ....................................................... 59

2.3.1. Mơ hình hoạt động Web Service ............................................................. 59

SVTH: Trần Tiến Anh

Trang iv


GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu

2.3.2. Các API .................................................................................................... 59
CHƯƠNG 3. KẾT QUẢ VÀ ĐÁNH GIÁ ........................................................... 61
3.1. Kết quả .......................................................................................................... 61
3.1.1. Màn hình đăng nhập ............................................................................... 61
3.1.2. Màn hình chính ....................................................................................... 61
3.1.3. Màn hình chức năng ............................................................................... 62
3.1.4. Màn hình thêm giao dich ........................................................................ 63
3.1.5. Màn hình cập nhật giao dich ................................................................... 63
3.1.6. Màn hình sổ chi tiêu ............................................................................... 64
3.1.7. Màn hình sổ nợ ....................................................................................... 64
3.1.8. Màn hình chọn biểu đồ ........................................................................... 65
3.1.9. Màn hình Dự tính chi tiêu ....................................................................... 65
3.1.10. Màn hình sổ tiết kiệm ............................................................................ 66
3.1.11. Màn hình đăng ký ................................................................................. 66
3.1.12. Màn hình đồng bộ dữ liệu ..................................................................... 67
3.1.13. Màn hình cài đặt ................................................................................... 67
3.2.

Hướng dẫn cài đặt ứng dụng trên điện thoại ........................................ 68

3.3.

Kiểm thử ứng dụng .................................................................................. 70


3.4.

Đánh giá .................................................................................................... 71

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.............................................................. 72
TÀI LIỆU THAM KHẢO. ...................................................................................... 73
PHỤ LỤC.................................................................................................................. 74

SVTH: Trần Tiến Anh

Trang v

GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu

DANH MỤC HÌNH
Hình 1.1. Kiến trúc phân tầng của Android .................................................................... 6
Hình 1.2. Sơ đồ Activity stack ..................................................................................... 10
Hình 1.3. Chu kỳ sống của Activity ............................................................................. 10
Hình 1.4. Sơ đồ hoạt động của một Activity................................................................ 12
Hình 1.5. Sơ đồ hoạt động intent ................................................................................. 12
Hình 1.6. Sơ đồ hoạt động service ............................................................................... 13
Hình 1.7. Cấu trúc file Manifest................................................................................... 14
Hình 1.8. Sơ đồ ViewGroup......................................................................................... 15
Hình 1.9. Sơ đồ tương tác giữa User và Webservice. .................................................. 18

Hình 1.10. Thư mục codeignter ..................................................................................... 19
Hình 1.12. Cấu trúc CodeIgniter ................................................................................... 21
Hình 2.1. Sơ đồ use case tổng quát .............................................................................. 36
Hình 2.2. Biểu đồ use case giao dịch ........................................................................... 37
Hình 2.3. Biểu đồ user case chi tiêu ............................................................................. 38
Hình 2.4. Biểu đồ use case sổ nợ ................................................................................. 38
Hình 2.5.

Biểu đồ use case biểu đồ ............................................................................. 39

Hình 2.6.

Biểu đồ use case đồng bộ dữ liệu ................................................................ 40

Hình 2.7.

Biểu đồ use case khơi phục dữ liệu ............................................................. 40

Hình 2.8.

Biểu đồ use case xem dữ liệu online ........................................................... 41

Hình 2.9.

Biểu đồ use case cài đặt .............................................................................. 41

Hình 2.10. Mối quan hệ giữa các đối tượng.................................................................. 49
Hình 2.11. Sơ đồ lớp ..................................................................................................... 49
Hình 2.12. Biểu đồ tuần tự đăng nhập .......................................................................... 50
Hình 2.13. Biều đồ tuần tự thêm giao dịch ................................................................... 50

Hình 2.14. Biểu đồ tuần tự quản lý chi tiêu .................................................................. 51

SVTH: Trần Tiến Anh

Trang vi

GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu

Hình 2.15. Biểu đồ tuần tự quản lý sổ tiết kiệm ........................................................... 51
Hình 2.16. Biểu đồ tuần tự đồng bộ dữ liệu .................................................................. 52
Hình 2.17. Biểu đồ tuần tự khơi phục dữ liệu ............................................................... 52
Hình 2.18. Sơ đồ thuật tốn đăng nhập ......................................................................... 53
Hình 2.19. Sơ đồ thuật tốn đăng ký ............................................................................. 53
Hình 2.20. Sơ đồ thuật tốn thêm giao dịch .................................................................. 54
Hình 2.21. Sơ đồ thuật tốn đồng bộ dữ liệu ................................................................ 54
Hình 2.22. Sơ đồ thuật tốn khơi phục dữ liệu ............................................................. 55
Hình 2.23. Sơ đồ thực thể quan hệ ................................................................................ 58
Hình 3.4. Hình ảnh màn hình thêm giao dịch .............................................................. 63
Hình 3.5. Hình ảnh màn hình cập nhật giao dịch ......................................................... 63
Hình 3.6. Hình ảnh màn hình sổ chi tiêu ..................................................................... 64
Hình 3.7. Hình ảnh màn hình sổ nợ ............................................................................. 64
Hình 3.8. Hình ảnh màn hình chọn biểu đồ ................................................................. 65
Hình 3.9. Hình ảnh màn hình danh sách dự tính.......................................................... 65
Hình 3.10. Hình ảnh màn hình sổ tiết kiệm ................................................................... 66
Hình 3.11. Hình ảnh màn hình đăng ký ......................................................................... 66

Hình 3.12. Hình ảnh đồng bộ dữ liệu ............................................................................. 67
Hình 3.13. Hình ảnh màn hình cài ................................................................................. 67
Hình 3.14. Hình ảnh cài đặt ứng dụng ........................................................................... 68
Hình 3.15. Hình ảnh chọn mục cài đặt ........................................................................... 69
Hình 3.16. Hình ảnh cài đặt hồn tất.............................................................................. 69

SVTH: Trần Tiến Anh

Trang vii

GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu

DANH MỤC BẢNG
Bảng 2.1. Bảng use case tổng quan .............................................................................. 35
Bảng 2.2. Bảng use case giao dịch .............................................................................. 36
Bảng 2.3. Bảng use case sổ chi tiêu ............................................................................. 37
Bảng 2.4. Bảng use case sổ nợ ..................................................................................... 38
Bảng 2.5. Bảng use case biểu đồ .................................................................................. 39
Bảng 2.6. Bảng use case đồng bộ ................................................................................. 40
Bảng 2.8. Lớp tài khoản ............................................................................................... 45
Bảng 2.9. Lớp đăng ký ................................................................................................. 45
Bảng 2.10. Lớp đăng nhập ............................................................................................ 45
Bảng 2.11. Lớp thu chi .................................................................................................. 46
Bảng 2.12. Lớp vay nợ .................................................................................................. 46
Bảng 2.13. Lớp sổ chi tiêu ............................................................................................ 47

Bảng 2.14. Lớp dự tính chi tiêu .................................................................................... 47
Bảng 2.15. Lớp tiết kiệm ............................................................................................... 48
Bảng 2.16. Lớp đồng bộ dữ liệu.................................................................................... 48
Bảng 2.17. Lớp khôi phục dữ liệu ................................................................................. 48
Bảng 2.18. Lớp tạo cơ sở dữ liệu .................................................................................. 48
Bảng 2.19. Bảng cơ sở dữ liệu thu chi .......................................................................... 56
Bảng 2.20. Bảng cơ sở dữ liệu vay nợ .......................................................................... 56
Bảng 2.21. Bảng cơ sở dữ liệu login ............................................................................. 57
Bảng 2.22. Bảng cơ sở dữ liệu dự tính .......................................................................... 57
Bảng 2.23. Bảng cơ sở dữ liệu tiết kiệm ....................................................................... 57

SVTH: Trần Tiến Anh


Trang viii

GVHD: ThS. Hồ Ngọc


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu

DANH MỤC BẢNG VIẾT TẮT
STT

Từ đầy đủ

Từ viết tắt


1

PHP

Hypertext Preprocessor

2

CSDL

Cơ sở dữ liệu

3

SQL

Structured Query Language

4

MVC

Model – View -Controllers

5

CSV

Comma Separated Values


6

XML

Extensible Markup Language

SVTH: Trần Tiến Anh

Trang ix

GVHD: ThS. Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp

LỜI MỞ ĐẦU
1. Lý do chọn đề tài
Việc ứng dụng công nghệ thông tin vào cuộc sống đã trở thành hoạt động không
thể thiếu của con người trong thời kỳ cơng nghiệp hóa, hiện đại hóa. Hiện nay, việc
quản lý chi tiêu của cá nhân có thể được thực hiện một cách đơn giản, hiệu quả hơn
bằng việc sử dụng những phần mềm tin học trên máy tính. Giờ đây việc lưu trữ,
quản lý bằng điện thoại giúp con người có thể tiết kiệm thời gian, giải phóng con
người khỏi các cơng việc ghi chép và tính tốn bằng giấy bút và giảm sự nhầm lẫn
khi tính tốn.
Xuất phát từ thực tế việc chi tiêu hàng ngày của bản thân cũng như gia đình và
bạn bè, Tơi đã phân tích những vấn đề thường xảy ra trong quản lý chi tiêu của cá
nhân, thấy được sự cần thiết của ứng dụng quản lý chi tiêu cho những cá nhân trong
gia đình.

Bên cạnh đó, điện thoại thơng minh đã trở nên phổ biến và được nhiều người sử
dụng nhất. Vì thế tơi sử dụng cơng nghệ lập trinh di động để thực hiện đề tài “Xây
dựng ứng dụng quản lý chi tiêu trên nền tảng Android”.
2. Mục tiêu nghiên cứu
Xây dựng ứng dụng quản lý chi tiêu để quản lý các khoản thu chi, sao cho người
dùng có thể chi tiêu một cách hợp lý.
3. Đối tượng nghiên cứu
 Khách thể nghiên cứu
-

Thiết bị dòng điện thoại hệ điều hành Android

 Đối tượng nghiên cứu: Ứng dụng quản lý thu chi
4. Phạm vi nghiên cứu
Mơi trường lập trình di động trên nền tảng Android để phát triển ứng dụng thu
chi cho cá nhân.
5. Phương pháp nghiên cứu
- Tìm các tài liệu trên website và các giáo trình liên quan đến đề tài
SVTH: Trần Tiến Anh

Trang 1

GVHD: ThS.Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp

- Tổng hợp các ý kiến của khách hàng để xây dụng các chức năng.

- Sử dụng các mơ hình của hệ thống về các trình tự của chức năng cũng như hệ
thống.
- Phân tích và thiết kế hệ thống thông tin
- Hệ quản trị cơ sơ dữ liệu nâng cao
- Ngơn ngữ lập trình Java và PHP
- Tìm hiểu cơng nghệ mới như Framework CodeIgniter
- Ngơn ngữ lập trình Android
- Trí tuệ nhân tạo
- Cơng cụ và phát triển phần mềm
- Xây dựng ứng dụng trên nền tảng Android dưa trên ngơn ngữ Java lập trình trên
cơng cụ Eclipse SDK
6. Nội dung của đề tài
Bố cục của đề tài gồm 3 chương.
Chương 1. Cơ sở lý thuyết
Chương 2. Phân tích và thiết kế
Chương 3. Kết quả và đánh giá

SVTH: Trần Tiến Anh

Trang 2

GVHD: ThS. Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT
1.1. Giới thiệu về hệ điều hành ANDROID

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ạ
ngục những đối thủ tầm cỡ và trở thành hệ điều hành tăng trưởng nhất trên thế giới.
Mỗi phiên bản Android luôn thu hút mối quan tâm lớn của giới công nghệ và các
nhà sản xuất.
1.1.1. Android là gì?
Android là một hệ điều hành dành cho thiệt bị di động như Smartphone, tablet
hay netbook, Android do Google phát triển giữa trên nền tảng Linux kernel và các
phần mềm mã nguồn mở.
Android là một hệ điều hành mở mã nguồn chính duy nhất với 12 triệu dòng mã
bao gồm 3 triệu dòng mã XML, 2.8 triệu dòng mã C, 2.1 triệu dòng mà Java và 7.5
triệu dòng mã C++.
1.1.2. Lịch sự phát triển của Android
Tháng 10/2003, Android được thành lập tại Palo Alto, California, Hoa kỳ do
Andy Runbin, Rich Miner đồng sáng lập và cùng một số thành viên khác chủ trì, với
múc đích phát triển hay tao ra cá thiệt bị di động thông minh để phục vụ cho con
người.
Bước đầu, hệ điều hành Android chi đơn thuần là phần mềm trên điện thoại di
động. 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 (Califonia, mỹ) thiết kế. Công ty này sau đó được google
mua lại vào năm 2005 và bắt đầu xây dựng Android Platform.
Và sau tiếp, vào cuối năm 2007, thuộc về liên minh thiết bị cầm tay mã nguồn
mở (Open Handset Alliance). Mục tiêu của liên minh này là nhanh chóng đổi mới để
đáp ứng tốt hơn do nhu cầu của 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,
các nhà khai thác và các lập trình viên cho các thiết bị cầm tay.

SVTH: Trần Tiến Anh

Trang 3


GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu

Các phiên bản của hệ điều hành Android từ 2003 đến hiện nay.
 Androi 1.5: Cupcake
-

Ra mắt: Ngày 30-04-2009

-

Cupcake có bàn phím ảo có khả năng dự đốn từ đang gõ, hỗ trợ các chế độ
xem video, giao diện widget.

 Android 1.6: Donut
-

Ra mắt: Ngày 30-09-2009

-

Khắc phục những chức năng lỏng lẻo của Cupcake và phát triển thêm chức
năng tìm kiếm bằng giọng nói.

 Android 2.0: Eclair
-


Ra mắt: Ngày 26-10-2009

-

Eclair cải tiến về giao diện và hệ thống, phát triển mạnh về chế độ chụp ảnh,
kết nối Bluetooth, hỗ trợ nền ảnh động.

 Andoird 2.2: Froyo
-

Ra mắt: Ngày 20-05-2010

-

Phiên bản 2.2 (Froyo) mang Adobe Flash đến Android, kéo theo hàng loạt
ứng dụng và game trên nền Flash. Người dùng cũng có thể xem video clip
nền Flash như YouTube và “ra lệnh” thực hiện cuộc gọi qua Bluetooth.

-

Một chức năng mới trong Froyo được nhóm người dùng lưu động yêu thích
là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android thành
thiết bị phát sóng Wi-Fi từ kết nối 3G. Tính năng này được sử dụng rất phổ
biến đến ngày nay.

 Android 2.3: Gingerbread
-

Ra mắt: Ngày 6-12-2010


-

Đến cuối năm 2012, Gingerbread vẫn đang “phủ sóng” trên rất nhiều thiết bị
dùng Android, chiếm đến hơn phân nửa (54%). Google hợp tác Samsung
trình làng dịng smartphone đầu tiên sử dụng Gingerbread mang tên Nexus
S, hỗ trợ công nghệ giao tiếp tầm gần NFC.

SVTH: Trần Tiến Anh

Trang 4

GVHD: ThS. Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp
-

Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép theo
dõi và truy xuất đến các tập tin đã tải về máy. Hệ thống này hỗ trợ nhiều
camera cho các thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu
quả hơn, tiết kiệm thời lượng pin.

 Android 3.0: Honeycomb
-

Ra mắt: Ngày 22-02-2011


-

Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao diện
phù hợp với cách sử dụng máy tính bảng, bàn phím ảo thân thiện hơn, hỗ trợ
xử lý đa tác vụ (multi-tasking), cho phép chuyển đổi qua lại các ứng dụng
đang cùng chạy. Không chỉ có bề mặt được trau chuốt, phần lõi hệ thống có
các cải tiến tương thích với phần cứng như hỗ trợ chip xử lý (CPU) đa lõi,
tăng tốc phần cứng.

 Android 4.0: Ice Cream Sanwich
-

Ra mắt: Ngày 19-10-2011

-

Android 4.0 đưa chức năng truy xuất nhanh các ứng dụng thường dùng vào
phần bên dưới giao diện chủ, tùy biến widget, dễ sắp xếp và duyệt danh sách
ứng dụng hơn. Các ứng dụng đã có thể truy xuất nhanh từ màn hình khóa
thiết bị (Lock screen), hiện các hãng sản xuất thiết bị chỉ mới cho phép
Camera có thể chọn nhanh từ Lock screen.

 Android 4.1: Jelly Bean
-

Ra mắt: Ngày 9-7-2012

-

Máy tính bảng Nexus 7, sản phẩm hợp tác giữa Google và Asus, là thiết bị

dùng Jelly Bean đầu tiên ra mắt. Android 4.1 nâng tầm hoạt động cho hệ
điều hành của Google, trở thành hệ điều hành cho thiết bị di động hàng đầu
hiện nay, đe dọa cả “ông lớn” Windows.

 Android 4.2,4.3: ra mắt cùng tên phiên bản vào năm 2013
 Android 4.4: Kitkat
- Ra mắt: Ngày 07-2014
SVTH: Trần Tiến Anh

Trang 5

GVHD: ThS. Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp

 Android 5.0: Lollipop
 Hiện nay phiên bản mới nhất của Android là 5.4.
1.1.3. Delving với máy ảo Dalvik
Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị di động
Android. Nó chạy cả ứng dụng đã được chuyển đổi thành một file thực thi Dalvik
(dex). Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ nhớ và tốc
độ xử lý. Dalvik đã được thiết kế và viết bởi Dan Bornstein người đã đặt tên cho nó
sau khi đến tham một ngơi làng đánh cá nhỏ có tên là Dalvik ở đảo Eyjafjrour, nơi
mà một số tổ tiên của ơng sinh sống.
Từ góc nhìn của một nhà phát triển, Dalvik trơng giống như máy ảo java nhưng
thực tế thì hoàn toàn khác. Khi nhà phát triển viết một ứng dụng dành cho Android,
anh ta thực hiện cả đoạn mã trong mơi trường Java sau đó nó sẽ được biên dịch sang

các bytecode của java.
1.1.4. Kiến trúc của Android
Mơ hình tổng quát các thành phần của hệ điều hành Android.

Hình 1.1. Kiến trúc phân tầng của Android
1.1.4.1. Tầng ứng dụng
Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng cơ bản
được cài đặt đi liền với hệ điều hành Android như gọi điện (phone), Quản lý danh bạ
(contacts), duyệt web browser, nhắn tin SMS, lịch làm việc (calender) đọc Email,
google map và còn nhiều ứng dụng khác nữa. Tất cả các ứng dụng trên đều chạy trên
hệ điều hành Android và bằng ngôn ngữ java.
SVTH: Trần Tiến Anh

Trang 6

GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu

1.1.4.2. Application framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà
phát triển khả năng xây dụng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát
triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các
dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanh
trang thái.
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử dụng
bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử

dụng lại các thành phần, bất kỳ ứng dụng có thể xuất bản khả năng của mình và ứng
dụng nào khác sau đó có thể sử dụng những khả năng để bảo mật được thực thi với
khuôn khổ. Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thông bao
gồm:
-

View Manager: Một tập hợp rất nhiều các view có khả năng kế thừa lẫn nhau

dùng để thiết kế phần giao diện ứng dụng như : gridview, tableview, linearlayout,
button…
-

Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cung

cấp công cụ điều khiển các Activity.
-

Telephony Manager: cung cấp công cụ để thực hiện việc liên lạc như gọi điện

thoại.
-

Location Manager: Cho phép xác định vị trí của điên thoại dựa vào hệ thống

định vị toàn cầu GPS và Google Maps.
-

Window Manager: Quản lý công việc xây dựng và hiển thị các giao diện người

dụng cũng như tổ chức quản lý các giao diện giữa các ứng dụng.

-

Notication Manager: Quản lý việc hiển thị các thông báo (như có tin nhắn mới,

có Email mới).
-

Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các file

hình ảnh, âm thanh, layout, string những thành phần không viết bởi ngơn ngữ lập
trình).

SVTH: Trần Tiến Anh

Trang 7

GVHD: ThS. Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp
-

Content Provide: 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 là chia sẽ dữ liệu giữa các ứng dụng đó.
1.1.4.3. Library
Thành phần có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử
dụng, các thư viện đó được tập hợp thành một số nhóm như:

-

Thư viện hệ thống: Là thư viện dựa trên chuẩn C, được sử dụng chỉ bởi hệ điều

hành.
-

Thư viện Media: Có nhiều code để hỗ trợ việc phát và ghi các loại định dạng

âm thanh hình ảnh, video thơng dụng.
-

Thư viện web: Đây là thành phần để xem nội dung trên web, được sử dụng để

xây dụng phần mềm duyệt web cũng như để nhúng các ứng dụng vào. Để hỗ trợ
nhiều cộng nghệ mạnh như HTML5, JavaScript, CSS, DOM, AJAX…
-

Surface Manage: quản lý hiện thị 2D và 3D.

-

SGL công nghệ 2D.

-

SQLite: Quản lý database của ứng dụng.

1.1.4.4. Android Runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngơn ngữ Java có thể

hoạt động. Phần này có 2 bộ phận tương tự như mơ hình chạy Java trên máy tính.
Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như JAVA, IO,
Collections, File Access. Thứ hai là một máy áo java.
Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều
hành android không được chạy bằng JRE (Java Runtime Environment).
1.1.4.5. Linux kernel
Hệ điều hành Android được phát triển dựa trên hạt nhân linux, cụ thể là hạt nhân
linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi hoạt
động của điện thoại muốn thi hành đươc thì đều được thực hiện ở mức cấp thấp ở
lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng
(driver model), thực hiện bảo mật (security), quản lý tiền trình (process).

SVTH: Trần Tiến Anh

Trang 8

GVHD: ThS. Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp
Các thành phần của nhân Linux.

- Display Driver: Điều khiển việc hiện thị lên màn hình cũng như thu nhận những
điều khiển của người dùng lên màn hình (di chuyển, cảm ứng).
- Camera Drive: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ camera
trả về.
- Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth.
- USB driver: Quản lý hoạt động của các cổng giao tiếp USB.

- Keypad driver: Điều khiển bàn phím.
- Wifi Driver: chịu trách nhiệm về việc thu phát sóng wifi.
- Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dưới
dạng audio thành tín hiệu số và ngược lại.
1.1.5. Chu kỳ sống của hệ điều hành 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 code cần được chạy và sẽ cịn chạy cho đến khi.
-

Khơng phụ thuộc

-

Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ

1.1.5.1. Chu kỳ sống thành phần
Các thành phần của ứ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 đến lúc kết thúc giữa nó có thể là một activity đang thực hiện hoặc đang tạm
dừng.
1.1.5.2. 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 một Activity đang
chạy.
Sơ đồ của Activity stack thể hiện như sau.

SVTH: Trần Tiến Anh

Trang 9

GVHD: ThS. Hồ Ngọc Tú



Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp

Hình 1.2. Sơ đồ Activity stack
1.1.5.3. Các trạng thái chu kỳ sống.
Một Activity có 3 trạng thái
- Activity hoặc Running
- Paused
- Stopped
Sơ đồ trạng thái của Activity như sau.

Hình 1.3. Chu kỳ sống của Activity
1.1.5.4. 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 trình sống riêng. Và ứ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.

SVTH: Trần Tiến Anh

Trang 10

GVHD: ThS. Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp

1.1.6. Các thành phần cơ bản của Android
1.1.6.1. Activity và Intent
 Activity

Một Activity thể hiện một giao diện đồ họa người dùng. Ví dụ một
Activity có thể biểu diễn một danh sách các menu item để người dùng có thể chọn
và có thể hiện thị ảnh cùng với tiêu đề. Một ứng dụng gửi tin nhắn văn bản có thể
có một hoạt động là hiển thị một danh sách các liên hệ để gửi tin nhắn tới, hoạt
động thứ hai là viết tin nhắn tới liên hệ được chọn, các hoạt động khác nữa là xem
lại tin nhắn cũ hay thay đổi cài đặt. Mặc dù chúng làm việc cùng nhau để tạo
thành một giao diện người dùng, mỗi Activity độc lập với những cái khác. Mỗi
Activity là một lớp con của lớp cơ sở Activity.
Một ứng dụng có thể gồm chỉ một Activity hay nhiều Activity. Thơng
thường, một trong số các Activity được đánh dấu như là Activity đầu tiên phải
được trình diễn tới người dùng khi ứng dụng được khởi động. Chuyển từ một
Activity sang Activity khác được hoàn thành bằng cách cho activity hiện thời
khởi động Activity kế tiếp.
Một cây phân cấp view được đặt trong một cửa sổ Activity bằng phương
thức Activity.setconview().content(), view là một đối tượng view ở gốc của cây
phân cấp.
Class cơ sở Activity và vòng đời của một hoạt động như sau.
-

OnCreate(): Được gọi khi tạo ra lần đầu tiên.

-

OnCtart(): Được gọi khi hoạt động trở lên hữu hình.

-


onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử dụng.

-

onPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt
động trước đó.

-

onStop(): Được gọi khi hoạt động khơng cịn hiển thị với người dùng.

-

onDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống.

SVTH: Trần Tiến Anh

Trang 11

GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp
-

Xây dựng ứng dụng quản lý chi tiêu

onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại một
lần nữa.


Hình 1.4. Sơ đồ hoạt động của một Activity
 Intent
Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity.
Là cầu nối giữa các Activity, ứng dụng Android thường bao gồm nhiều Activity,
mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau.
Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng như truyền các
dữ liệu cần thiết tới một Activity khác. Điều này cũng giống như việc di chuyển qua
lại giữa các Forms trong lập trình Windown Form.

Hình 1.5. Sơ đồ hoạt động intent

SVTH: Trần Tiến Anh

Trang 12

GVHD: ThS. Hồ Ngọc Tú


Báo cáo Khóa luận tốt nghiệp

Xây dựng ứng dụng quản lý chi tiêu

1.1.6.2. Service trong Android
Một service khơng có giao diện trực quan, nó chạy trên nền tảng trong một
khoảng thời gian khơng xác định. Ví dụ một service có thể chơi nhạc nền hay nạp dữ
liệu trên mạng hay xử lý một vấn đề gì đó. Mỗi service được mở rộng từ lớp cơ sở
service.
Giống như các Activity và các thành phần khác, service chạy trong thread chính
của tiến trình ứng dụng. Vì thế chúng khơng thể ngăn chặn những thành phần khác

hay giao diện người dùng, chúng thường tạo ra các thread khác cho các nhiệm vụ
hao tốn thời gian.

Hình 1.6. Sơ đồ hoạt động service
1.1.6.3. Broadcast Reveicer
Broadcast Reveicer là một thành phần khơng làm gì ngồ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ư thay đổi múi giờ

-

Thơng báo pin yếu

-

Thay đổi ngơn 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 Receiver mở rộng từ lớp cơ sở Broadcast
Receiver.

SVTH: Trần Tiến Anh

Trang 13

GVHD: ThS. Hồ Ngọc Tú



Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp
1.1.6.4. Content Provider

Một content provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả dụng
cho các ứng dụng khác. Dữ liệu có thể được lưu trữ trong hệ thống file, trong một cơ
sở dữ liệu SQL item hay trong một các khác nào đó.
1.1.6.5. AndroidManifest.xml
Trước khi Android có thể khởi động một thành phần ứng dụng, nó phải biết rằng
thành phần đó tồn tại. vì vậy ứng dụng khai báo những thành của mình trong một
Manifest đươc gắn vào Android packace, file apk này chứa mã của ứng dụng và tài
nguyên của nó.
Cấu trúc của một file Manifest.

Hình 1.7. Cấu trúc file Manifest
-

Application
Thẻ <application>, bên trong thẻ này chứa các thuộc tính được định
nghĩa cho ứng dụng Android như:
- Android:icon =”drawable resource” đây là đường dẫn để trỏ tới
file icon khi cài đặt ứng dụng.
- Android:name =”string” là tên chúng ta cần hiện thì tên ứng
dụng.
- Android:theme =”drawble theme” thuộc tính này đặt theme cho
ứng dụng.

-


Permssion

SVTH: Trần Tiến Anh

Trang 14

GVHD: ThS. Hồ Ngọc Tú


Xây dựng ứng dụng quản lý chi tiêu

Báo cáo Khóa luận tốt nghiệp

Bao gồm các thuộc tính chỉ quyền truy xuất và sử dụng tài nguyên của
ứng dụng. khi cần sử dụng một tài nguyên nào trong file MainiFest của ứng
dụng cần khai báo như sau.
- SDK version
Thẻ xác định phiên bản SDK của ứng dụng và được khai báo như sau.
1.1.7. Các thành phần giao diện trong Android
1.1.7.1. View
Trong một ứng dụng Android, giao diện người dùng được xây dụng từ các đối
tượng View và ViewGroup. Có nhiều kiểu View và ViewGroup mỗi kiểu là một hậu
duệ của class view và tất cả các kiểu đó được gọi là Widget.
Trong Android platform, các screen được bố trí theo một kiểu cấu trúc phân cấp
như hình dưới đây.

Hình 1.8. Sơ đồ ViewGroup
1.1.7.2. ViewGroup
ViewGroup thực chất là một view hay đúng hơn Viewgroup là các widget

Layout được dùng để bố trí các đối tượng khác trong một screen. Có một số loại
viewGroup như sau:
-

LinearLayout
LinearLayout được dùng để bố trí các thành phần giao diện theo chiều
ngang hoặc chiều dọc nhưng trên một line duy nhất mà khơng có xuống
dịng.
LinearLayout làm cho các thành phần trong nó khơng bị phụ thuộc vào
kích thước của màn hình. Các thành phần trong LinearLayout được dàn theo
nhưng tỷ lệ cân xứng dựa vào các tàng buộc giữa các thành phần.

-

FrameLayout

SVTH: Trần Tiến Anh

Trang 15

GVHD: ThS. Hồ Ngọc Tú


×