You are on page 1of 88

TRƢỜNG ĐẠI HỌC CẦN THƠ

KHOA KHOA HỌC TỰ NHIÊN


BỘ MÔN TIN HỌC ỨNG DỤNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

NGHIÊN CỨU VỀ LẬP TRÌNH DI ĐỘNG


VÀ XÂY DỰNG ỨNG DỤNG
“QUẢN L TÀI CHÍNH C NHÂN”

SINH VIÊN THỰC HIỆN GI O VIÊN HƯỚNG DẪN


Nguyễn Ngọc Thích ThS. Hồ Văn Tú
MSSV: 1108042
Lớp: Tin Học Ứng Dụng
Khóa: 36

Cần Thơ, 2014


TRƢỜNG ĐẠI HỌC CẦN THƠ
KHOA KHOA HỌC TỰ NHIÊN
BỘ MÔN TIN HỌC ỨNG DỤNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

NGHIÊN CỨU VỀ LẬP TRÌNH DI ĐỘNG


VÀ XÂY DỰNG ỨNG DỤNG
“QUẢN LÍ TÀI CHÍNH C NHÂN”
Sinh viên thực hiện Giáo viên hƣớng dẫn
Nguyễn Ngọc Thích ThS. Hồ Văn Tú
MSSV: 1108042
Cán bộ phản biện
TS Nguyễn Hữu H
ThS Lê Thị Diễm
Luận văn đƣợc bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Tin học
Ứng dụng Kho Kho học Tự nhiên, Trƣờng Đại học Cần Thơ vào ngày 19 tháng
05 năm 2014
Mã số đề tài:

Có thể tìm hiểu luận văn tại:


- Trung tâm Học liệu, Trƣờng Đại học Cần Thơ
- Website: http://www.lrc.ctu.edu.vn/

Cần Thơ, 2014


LỜI CẢM ƠN

Trên thực tế, không có sự thành công nào mà không gắn liền với những sự hỗ trợ,
giúp đỡ dù ít h y nhiều, dù trực tiếp h y gián tiếp củ ngƣời khác Trong suốt thời gi n từ
khi bắt đầu học tập ở giảng đƣờng đại học đến n y, tôi đã nhận đƣợc rất nhiều sự qu n
tâm, giúp đỡ củ quý thầy cô, gi đình cùng bạn bè
Đầu tiên, tôi xin gửi lời cảm ơn chân thành đến cô quý thầy cô Kho Kho Học Tự
Nhiên- Đại Học Cần Thơ đã truyền đạt, giảng dạy những kiến thức nền tảng trong suốt
quá trình ngồi trên ghế nhà trƣờng Đó là hành tr ng vào đời lập nghiệp củ tất cả chúng
tôi hôm nay.
Trong quá trình thực hiện hoàn thành luận văn này, tôi muốn gửi lời biết ơn chân
thành đến ch , mẹ đã động viên tạo điều kiện tốt để tôi đƣợc học tập, giúp tôi vƣợt qu
mọi khó khăn, thử thách trong cuộc sống
Bên cạnh đó, tôi xin chân thành cảm ơn thầy ThS. Hồ Văn Tú đã tận tâm giúp đỡ qu
từng buổi nói chuyện, thảo luận tìm hƣớng đi cho mục tiêu nghiên cứu công nghệ di
động Nếu không có những lời hƣớng dẫn, chỉ bảo củ thầy tôi nghĩ mình không thể hoàn
thành tốt bài luận văn củ mình đƣợc Một lần nữ xin chân thành cảm ơn thầy rất nhiều
Bƣớc đầu đi vào thực tế, tìm hiểu về lĩnh vực công nghệ di động, kiến thức củ tôi
c n hạn chế và c n nhiều bỡ ngỡ Do vậy, không tránh khỏi những thiếu sót là điều chắc
chắn, tôi rất mong nhận đƣợc những ý kiến đóng góp quý báu củ quý thầy cô bộ môn Tin
Học Ứng Dụng và đặc biệt là thầy ThS. Hồ Văn Tú để tôi hoàn thiện bài báo cáo củ
mình tốt hơn.
Sau cùng, tôi xin kính chúc quý thầy cô Kho Kho Học Tự Nhiên thật dồi dào sức
khỏe, niềm tin để tiếp tục thực hiện sứ mệnh c o quý trồng ngƣời cho thế hệ tƣơng l i
Trân trọng kính chào
Cần Thơ, 28 tháng 04 năm 2014
Sinh viên thực hiện

Nguyễn Ngọc Thích


MỤC LỤC
DANH MỤC HÌNH ẢNH ................................................................................................ 7
DANH MỤC BẢNG .......................................................................................................... 9
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT ...................................................................10
TÓM TẮT ......................................................................................................................11
ABSTRACT ...................................................................................................................12
Chƣơng 1: TỔNG QUAN ..........................................................................................1
1.1 ĐẶT VẤN ĐỀ ........................................................................................................ 1
1.2 MỤC TIÊU ............................................................................................................. 1
1.3 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ ......................................................................... 2
1.4 PHẠM VI ĐỀ TÀI .................................................................................................. 2
1.4.1 Phạm vi yêu cầu ............................................................................................... 2
1.4.2 Phạm vi ngƣời dùng ......................................................................................... 3
1.5 PHƢƠNG PHÁP NGHIÊN CỨU .......................................................................... 4
1.5.1 Lý thuyết .......................................................................................................... 5
1.5.2 Phần mềm sử dụng ........................................................................................... 5
1.5.3 Cài đặt và kiểm thử .......................................................................................... 6
1.5.4 Viết báo cáo ...................................................................................................... 6
Chƣơng 2: CƠ SỞ LÝ THUYẾT ...............................................................................7
2.1 LỊCH SỬ ANDROID ............................................................................................. 7
2.2 DELVING VỚI MÁY ẢO DALVIK ................................................................... 11
2.3 KIẾN TRÚC ANDROID ...................................................................................... 11
2.3.1 Tầng ứng dụng (Applic tion) ......................................................................... 12
2.3.2 Application framework .................................................................................. 12
2.3.3 Library ............................................................................................................ 12
2.3.4 Android runtime ............................................................................................. 13
2.3.5 Linux kernel ................................................................................................... 13
2.4 ANDROID EMULATOR ..................................................................................... 14
2.5 CÁC THÀNH PHẦN CỦA MỘT ANDROID PROJECT ................................... 15
2.5.1 AndroidManifest. xml .................................................................................... 15
2.5.2 File R. java ..................................................................................................... 16
2.6 CÁC THÀNH PHẦN TRONG MỘT ỨNG DỤNG ANDROID ......................... 17
2.7 CHU KỲ ỨNG DỤNG ANDROID ..................................................................... 19
2.7.1 Chu kỳ sống thành phần ................................................................................. 19
2.7.2 Activity stack ................................................................................................. 19
2.7.3 Các sự kiện trong chu kỳ sống củ ứng dụng ................................................ 20
2.7.4 Thời gi n sống củ ứng dụng ......................................................................... 20
2.7.5 Thời gi n hiển thị củ Activity ...................................................................... 20
2.7.6 Các phƣơng thức củ chu trình sống .............................................................. 20
2.8 CÁC THÀNH PHẦN GIAO DIỆN TRONG ANDROID ................................... 22
2.8.1 View ............................................................................................................... 22
2.8.2 Viewgroup ...................................................................................................... 23
2.8.3 Android User Interface ................................................................................... 25
2.8.4 ListView và Picker View ............................................................................... 29
2.8.5 Activity vs Intent ............................................................................................ 31
2.9 SQLITE TRONG ANDROID............................................................................... 33
Chƣơng 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ............................................35
3.1 MÔ TẢ HỆ THỐNG ............................................................................................ 35
3.2 ĐẶC TẢ CHỨC NĂNG ....................................................................................... 36
3.2.1 Đăng nhập ...................................................................................................... 36
3.2.2 Quản lý tài sản ................................................................................................ 36
3.2.3 Quản lý gi o dịch ........................................................................................... 36
3.2.4 Quản lý khoản cho v y................................................................................... 37
3.2.5 Quản lý nợ ...................................................................................................... 37
3.2.6 Quản lý kế hoạch chi tiêu ............................................................................... 37
3.2.7 Quản lý kế hoạch tiết kiệm............................................................................. 37
3.2.8 Quản lý d nh mục gi o dịch........................................................................... 38
3.2.9 Quản lý tài khoản ........................................................................................... 38
3.3 CƠ SỞ DỮ LIỆU .................................................................................................. 38
3.3.1 Xây dựng các thực thể .................................................................................... 38
3.3.2 Xây dựng các mối qu n hệ kết hợp ................................................................ 41
3.4 CÁC BIỂU ĐỒ HỆ THỐNG ................................................................................ 43
3.4.1 Biểu đồ Usec se ............................................................................................. 43
3.4.2 Biểu đồ Cl ss .................................................................................................. 48
3.4.3 Biểu đồ Sequence ........................................................................................... 52
3.4.4 Biểu đồ Activity ............................................................................................. 60
3.5 KẾT QUẢ ĐẠT ĐƢỢC ....................................................................................... 68
3.5.1 Một số hình ảnh ứng dụng ............................................................................. 68
3.5.2 Sơ đồ liên kết các Activity ............................................................................. 73
3.6 KIẾN THỨC ĐẠT ĐƢỢC ................................................................................... 74
3.7 ƢU ĐIỂM VÀ HẠN CHẾ .................................................................................... 74
3.8 CÁC VẤN ĐỀ CHƢA GIẢI QUYẾT .................................................................. 74
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .....................................................................75
KẾT LUẬN..................................................................................................................... 75
HƢỚNG PHÁT TRIỂN.................................................................................................. 75
TÀI LIỆU THAM KHẢO .............................................................................................. 76
DANH MỤC HÌNH ẢNH

Hình 2.1: Logo hệ điều hành Android ............................................................................. 9


Hình 2.2: Bàn phím ảo xuất hiện trên Android 1 5 ........................................................ 9
Hình 2.3: Chức năng cắt dán trên bàn phím và trình duyệt ........................................ 10
Hình 2.4: Mô hình kiến trúc Android ............................................................................ 12
Hình 2.5: Mô hình giữ máy ảo D lvik và N tive Code ............................................. 15
Hình 2.6 Android Emulator ............................................................................................ 15
Hình 2.7: Chu trình sống củ một Activity ................................................................... 18
Hình 2.8: Sơ đồ biểu diễn chu kỳ sống thành phần...................................................... 19
Hình 2.9: Mô hình Activity Stack .................................................................................. 19
Hình 2.10: Các sự kiện củ một chu kỳ sống ứng dụng .............................................. 20
Hình 2.11: Cấu trúc View trong ứng dụng Android .................................................... 22
Hình 2.12: Ví dụ về Table Layout ......................................................................... 22
Hình 2.13: Ví dụ minh họ Scroll View ................................................................ 24
Hình 2.14: Minh họ ContextMenu ....................................................................... 28
Hình 2.15: Ví dụ minh họ ListView ..................................................................... 29
Hình 2.16: Minh họ TimePicker .......................................................................... 30
Hình 2.17: Minh họ D tePicker ............................................................................ 30
Hình 2.18: Truyền dữ liệu giữ h i Activty .................................................................. 32
Hình 2.19: SQLite Manager ............................................................................................ 34
Hình 3.1: Biểu đồ usec se thể hiện tƣơng tác củ user Admin và user thƣờng ....... 43
Hình 3.2: Biểu đồ usec se đăng nhập ............................................................................ 44
Hình 3.3: Biểu đồ usec se d nh mục tài sản ................................................................. 44
Hình 3.4: Biểu đồ usec se d nh sách gi o dịch ............................................................ 45
Hình 3.5: Biểu đồ usec se khoản v y ............................................................................ 45
Hình 3.6: Biểu đồ usec se khoản nợ .............................................................................. 46
Hình 3.7: Biểu đồ usec se kế hoạch mu ...................................................................... 46
Hình 3.8: Biểu đồ usec se kế hoạch tiết kiệm .............................................................. 47
Hình 3.9: Biểu đồ usec se chuyển tiền .......................................................................... 47
Hình 3.10: Biểu đồ usec se quản lý tài khoản .............................................................. 48
Hình 3.11: Biểu đồ cl ss tài sản ...................................................................................... 48
Hình 3.12: Biểu đồ cl ss gi o dịch ................................................................................. 49
Hình 3.13: Biểu đồ cl ss quản lý v y............................................................................. 50
Hình 3.14: Biểu đồ cl ss kế hoạch tiết kiệm ................................................................. 51
Hình 3.15: Biểu đồ sequence chức năng Login ............................................................ 52
Hình 3.16: Biểu đồ sequence chức năng thêm tài sản ................................................. 53
Hình 3.17: Biểu đồ sequence chức năng thêm gi o dịch mới ..................................... 54
Hình 3.18: Biểu đồ sequence chức năng thêm khoản v y ........................................... 55
Hình 3.19: Biểu đồ sequence chức năng thêm kế hoạch tiết kiệm ............................. 56
Hình 3.20: Biểu đồ sequence chức năng xó tài sản .................................................... 57
Hình 3.21: Biểu đồ sequence chức năng cập nhật tài sản ............................................ 58
Hình 3.22: Biểu đồ sequence chức năng cập nhật gi o dịch ....................................... 59
Hình 3.23: : Biểu đồ Activity đăng nhập ứng dụng ..................................................... 60
Hình 3.24: Biểu đồ Activity thêm mới tài sản .............................................................. 61
Hình 3.25: Biểu đồ Activity thêm gi o dịch ................................................................. 62
Hình 3.26: Biểu đồ Activity thêm kế hoạch chi tiêu .................................................... 63
Hình 3.27: Biểu đồ Activity xó tài sản ........................................................................ 64
Hình 3.28: Biểu đồ Activity cập nhật tài sản ................................................................ 65
Hình 3.29: Biểu đồ Activity cập nhật kế hoạch tiết kiệm............................................ 66
Hình 3.30: Biểu đồ Activity cập nhật kế hoạch tiết kiệm............................................ 67
Hình 3.31: Login .................................................................................................... 68
Hình 3.32: Menu gi o diện .................................................................................... 69
Hình 3.33: Màn hình quản lý tài sản ...................................................................... 70
Hình 3.34: Thêm mới tài sản.................................................................................. 71
Hình 3.35: Cập nhật tài sản .................................................................................... 72
Hình 3.376 Sơ đồ liên kết các activity củ ứng dụng ............................................ 73
DANH MỤC BẢNG

Bảng 2.1: Các thuộc tính củ Intent ...................................................................... 35


Bảng 3.1: User ....................................................................................................... 40
Bảng 3.2: D nh mục tài sản ................................................................................... 41
Bảng 3 3: Loại tiền ................................................................................................ 41
Bảng 3 4: Gi o dịch................................................................................................ 41
Bảng 3 5: D nh mục gi o dịch ............................................................................... 42
Bảng 3 6: Kế hoạch mu ........................................................................................ 42
Bảng 3 7: Kế hoạch tiết kiệm ................................................................................ 43
Bảng 3 8: Công nợ ................................................................................................. 43
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT

Chữ viết tắt Nguyên nghĩa

2D Two Dimensional
3D Three Dimensional
ADT Android Development Tools
API Application Programming Interface
AVD Android Virtual Device
BSD Berkeley Software Distribution
DBMS Database Management System
IDE Integrated Development Enveronment
JDK Java Development Kit
PFM Personal Financial Management
SDK Software Development Kit
SMS Short Message Services
SOAP Simple Object Access Protocol
XML eXtensible Markup Language
TÓM TẮT

Ngày nay, với sự phát triển bùng nổ củ công nghệ thông tin nhằm phục vụ yêu cầu củ
cuộc sống, nhiều công nghệ mới r đời liên tục nhƣ website, công nghệ di động, điện toán
đám mây Trong số đó thì công nghệ di động ngày càng phát triển vô cùng mạnh mẽ. Có
thể nói công nghệ này sẽ là xu hƣớng trong tƣơng lai trên toàn thế giới.
Một trong số các hệ điều hành di động đ ng thịnh hành hiện n y thì Android đ ng phát
triển với tốc độ rất c o, chiếm thị phần c o về hệ điều hành đƣợc ƣ thích từ phí ngƣời
dùng trên toàn thế giới Chính vì thế ngày càng có nhiều nhà phát triển ứng dụng di động
dành cho Android với hàng ngàn sản phẩm r đời
Nhằm góp phần làm phong phú thêm kho ứng dụng củ Google Pl y cũng nhƣ phục vụ
yêu cầu củ cuộc sống, đề tài “Nghiên cứu lập trình di đ ng v x y d ng ứng d ng u n
l tài chính cá nhân” sẽ giúp cho ngƣời dùng có thể quản lý tài chính với các gi o dịch
thu chi hằng ngày rõ ràng. Từ đó giúp ngƣời dùng có kế hoạch chi tiêu, tiết kiệm cho phù
hợp Đặc biệt ứng dụng sẽ giúp ngƣời dùng sẽ xem lại đƣợc toàn bộ quá trình mình thu
chi thế nào theo thời gi n
Ứng dụng “ u n l tài chính cá nhân” đƣợc xây dựng dành riêng cho hệ điều hành
Android. Ứng dụng này có thể cài đặt ở phiên bản thấp nhất 3 0 và phiên bản c o nhất là
4.4.2 Jelly Bean.
Từ khóa: Android, lập trình di đ ng t i ch nh c nh n .
ABSTRACT

Nowadays, the explosion of information technology is more useful to meet the


requirement of life. There are many new technologies that are continually born such as
website, mobile technologies and cloud computing. One of the most strongly develop is
mobile technologies. It can be predicted that could be one of the most popular trends in
the future.
One of the most popular operating systems nowadays is Android. It is intensively
developing and accounts for high share for the trustiest operating system of customers.
Therefore, more and more developers mobile applications for Android operating system
with millions of new products.
To make the mobile applications store of Google Play more diversified as well as serve
the customers’needs, the topic “Mobile programming and Its applications on personal
financial management” is able to help users manage their personal financials with daily
financial transaction. It is necessary to help users to balance their budget and has a
suitable saving plan. Specially, the application help users reviewing their own income and
expenditure over time.
The "Personal Financial Management" is application on Android operating system. This
application can be installed either in the lowest version on the highes version of Jelly
Bean.
Keywords: Android, mobile programming, personal financial management.
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

CHƢƠNG 1: TỔNG QUAN


1.1 ĐẶT VẤN ĐỀ

Ngày n y với sự phát triển nh nh chóng củ công nghệ đặc biệt về công nghệ di động
đ ng đƣợc xem là xu hƣớng củ tƣơng l i Di động đã phát triển một cách vƣợt bậc với
nhiều nền tảng phần mềm nổi tiếng nhƣ Symbian, Window Mobile, Window Phone 8,
Android iOS … Trong những nền tảng trên thì Android đ ng phát triển không ngừng và
đƣợc đông đảo các nhà phát triển phần mềm nghiên cứu- xây dựng các ứng dụng Với
hàng trăm nghìn sản phẩm ứng dụng, g me… rất đ dạng đƣợc cộng đồng Android chi
sẻ trên Google Pl y (https://play. google. com/store) cả h i hình thức có phí và miễn phí
Vì s o Android lại đƣợc đông đảo các nhà phát triển phần mềm ƣ chuộng làm việc trên
hệ điều hành này?
 Thứ nhất: Sự thân thiện, ngôn ngữ lập trình dự trên J v là chủ yếu. Ngoài ra
Android là một hệ điều hành dạng mở nên tất cả mọi ngƣời có quyền c n thiệp phát
triển sản phẩm mà không cần phải chịu sự ràng buộc nào cả.
 Thứ h i: Tuy r đời s u các hệ điều hành khác dành cho di động nhƣng Android có
cộng đồng phát triển rất mạnh
Hằng ngày để quản lý việc thu chi cá nhân, ngƣời dùng thƣờng ít ghi lại để theo dõi hoặc
tổng kết. Ngƣời dùng có thể ghi lại, theo dõi và lên kế hoạch cho chi tiêu để có cách quản
lý hiệu quả hợp lý nhất thông qu n sản phẩm ứng dụng PFM. Lợi ích củ phần mềm giúp
ngƣời dùng quản lí chặt chẽ đƣợc quá trình thu chi hằng ngày theo thời gi n Việc xây
dựng ứng dụng di động nhƣ thế góp phần giải quyết yêu cầu thực tế củ cuộc sống.
Nghiên cứu lập trình di động và xây dựng ứng dụng quản lý tài chính cá nhân là một bƣớc
tiến trong việc nghiên cứu công nghệ mới, nó sẽ góp phần th y thế phƣơng pháp quản lý
thu chi cá nhân trên giấy tờ mất thời gi n và hiệu quả không c o Bên cạnh đó ứng dụng
di động này sẽ giúp cho ngƣời dùng có thể sử dụng một cách hiệu quả và nh nh chóng
nhất ở mọi lúc mọi nơi

1.2 MỤC TIÊU

Mục tiêu chính củ đề tài này là xây dựng ứng dụng “ u n l t i ch nh cá nhân” để phục
vụ cho ngƣời dùng có một sản phẩm tiện ích trên mobile hoặc trên tablet, giúp ngƣời
dùng có thêm lự chọn những sản phẩm tiện ích cho cuộc sống ngày n y. Thông qua sản
phẩm này giúp quản lý tài chính chặt chẽ, ghi chú lại các gi o dịch hằng ngày củ cá
nhân, thống kê báo cáo cho ngƣời dùng biết thu chi hằng tháng
1
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

1.3 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ

Xây dựng ứng dụng “ u n l t i ch nh c nh n” là một đề tài không hoàn toàn mới, đã
có một vài ứng dụng liên qu n tới lĩnh vực này Đây là một đề tài mới mà các luận văn
trƣớc đây chƣ giải quyết ở các khó trƣớc.

1.4 PHẠM VI ĐỀ TÀI

1.4.1 Phạm vi yêu cầu

Về cơ s thuyết:
 Nghiên cứu lịch sử hình thành và phát triển củ các công nghệ lập trình di động
Trên cơ sở đó, lự chọn một hệ điều hành di động yêu thích để phát triển ứng dụng
Cụ thể trong đề tài này sử dụng hệ điều hành Android củ Google để xây dựng ứng
dụng
 Nghiên cứu và vận dụng lý thuyết phân tích hệ thống để tìm hiểu xây dựng hệ
thống hiện tại, xây dựng các mô hình thực thể kết hợp, các biểu đồ nhƣ usec se,
ctivity để phục vụ cho đề tài nghiên cứu.
 Tìm hiểu các thành phần củ một Android project, cách xây dựng và liên kết các
Activity hoặc Intent trong Android Xử lí sự kiện trong Android thế nào
 Tìm hiểu hệ quản trị cơ sở dữ liệu SQLite.

Về chức năng:
Đề tài “Nghiên cứu về lập trình di đ ng v x y d ng ứng d ng u n l tài chính c
nhân” phải đảm bảo các chức năng (một phần củ hƣớng đề tài) sau:
 V i Ng i qu n tr Admin :
 Tạo mới d nh sách tài sản cần quản lý (tài sản chung, tài sản cá nhân).
 Cập nhật thông tin tài sản.
 Xó một tài sản bất kì khỏi ứng dụng
 Thêm mới, chỉnh sử , xó một gi o dịch thu/chi hằng ngày
 Thêm mới, chỉnh sử , xó một sự kiện cho một i đó v y nợ
 Thêm mới, chỉnh sử , xó một sự kiện thiếu nợ i đó.
 Thêm mới, chỉnh sử , xó khi thêm một kế hoạch chi tiêu hằng ngày
 Thêm mới, chỉnh sử , xó khi thêm một kế hoạch tiết kiệm
 Cho phép thêm tiền vào một sự kiện tiết kiệm để tích lũy theo thời gi n
2
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

 Cho phép rút tiền r từ một quỹ tiết kiệm nào đó để chi tiêu.
 Cho phép thêm mới d nh mục gi o dịch thƣờng sử dụng hằng ngày cả thu/chi
 Cập nhật mật khẩu
 Thêm mới, xó tài khoản ngƣời dùng khác khi th o tác với ứng dụng.
 V i Ng i s d ng User :
 Xem thông tin d nh sách các tài sản chung.
 Xem các gi o dịch thu chi trên các tài sản chung
 Xem các khoản cho v y trên các tài sản chung
 Xem các khoản nợ trên các tài sản chung
 Xem các khoản kế hoạch chi tiêu trên các tài sản chung
 Xem các khoản kế hoạch tiết kiệm trên các tài sản chung
 Xem các d nh mục gi o dịch trên các tài sản chung
 Cập nhật mật khẩu
Về kỹ thuật:
 Đảm bảo tính chính xác, kiểm tr toàn vẹn dữ liệu, kiểm trả lỗi phát sinh từ ngƣời
dùng, đảm bảo n toàn dữ liệu, bảo mật
 Gi o diện thân thiện với ngƣời dùng
 Tốc độ truy xuất dữ liệu nh nh
 Chƣơng trình mềm dẻo, dễ mở rộng và phát triển
 Hệ quản trị cơ sở dữ liệu SQLite.
 Ngôn ngữ lập trình Android.
 Một số kỹ thuật hỗ trợ: XML, lập trình hƣớng đối tƣợng J v …
 Môi trƣờng cài đặt AVD.
 Phát triển ứng dụng chạy trên máy thật

1.4.2 Phạm vi ngƣời dùng

Với Ng ời quản tr d in :
Ngƣời quản trị cần phải đăng nhập vào hệ thống để thực hiện các chức năng quản lý s u:
 Quản lý tài khoản ngƣời dùng: thêm tài khoản mới, đổi mật khẩu, quản lý d nh sách
tài khoản, xem thông tin đăng ký củ các ngƣời dùng khác.
 Quản lý d nh mục tài sản: thêm, sử , xó một tài sản nào đó Ngoài r có thể
chuyển tiền từ tài sản này s ng tài sản khác nếu đồng nhất về thể loại tiền tệ

3
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

 Quản lý gi o dịch: thêm mới, sử , xó bất kì một gi o dịch thuộc chi h y thu
 Quản lý khoản cho v y: thêm, sử , xó một khoản v y nào đó
 Quản lý khoản mƣợn nợ: thêm, sử , xó một khoản nợ nào đó.
 Quản lý kế hoạch chi tiêu: thêm mới, sử , xó một kế hoạch chi tiêu nào đó trong
tháng hoặc bất kì
 Quản lý kế hoạch tiết kiệm: thêm mới, sử , xó một kế hoạch chi tiêu nào đó
 Quản lý các d nh mục gi o dịch: thêm mới, sử , xó một d nh mục bất kì
Với Ng ời s dụng User :
Ngƣời dùng bình thƣờng đƣợc ngƣời quản trị phân quyền, và cần phải đăng nhập vào ứng
dụng để thực hiện các chức năng:
 Xem thông tin các tài sản chung củ gi đình
 Xem các gi o dịch thu chi hằng ngày
 Xem các khoản cho v y h y khoản mƣợn nợ từ ngƣời khác
 Xem kế hoạch mu h y tiết kiệm
 Xem các d nh mục gi o dịch củ từng tài sản,
 Xem hƣớng dẫn sử dụng

1.5 PHƢƠNG PHÁP NGHIÊN CỨU

Phân chi thời gi n, công việc hợp lý cho từng quá trình thực hiện đề tài luận văn Lên kế
hoạch và báo cáo tiến độ làm việc từ đó xem xét và điều chỉnh tiến độ cho phù hợp

NỘI DUNG CÔNG VIỆC THỜI GI N THỰC HIỆN

 Mô tả hệ thống  Từ 30/12/2013 đến 19/01/2014


 Phân tích hệ thống (tuần 1 – tuần 3)
 Vẽ mô hình Usecase – Class –  Từ 20/01/2014 đến 16/02/2014
Sequence – Activity (tuần 4 và tuần 7, 2 tuần nghỉ
 Xây dựng cơ sở dữ liệu Tết)
 Xây dựng gi o diện cùng các chức  Từ 17/02/2014 đến 16/03/2014
năng cơ bản củ hệ thống (tuần 8 – tuần 11)
 Cài đặt ứng dụng trên thiết bị thật  Từ 17/03/2014 đến 06/04/2014
 Viết thêm chức năng khác (tuần 12 – 14)
 Kiểm thử chƣơng trình  Từ 07/04/2014 đến 13/04/2014
 Viết báo cáo + Slide báo cáo  Từ 14/04/2014 đến 27/04/2014
4
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

(tuần 16 – tuần 17)

1.5.1 Lý thuyết

Về mặt cơ sở lý thuyết, với bƣớc đầu tìm hiểu công nghệ di động cần tìm hiểu các yêu
cầu s u để có thể phục vụ việc xây dựng ứng dụng nhƣ s u:
 Tìm hiểu yêu cầu thực tiễn, cũng nhƣ làm quen với các ứng dụng di động phổ biến
trên những nền tảng hệ điều hành khác nh u Xem xét, chọn đề tài có tính áp dụng
thực tiễn cho cuộc sống ngày n y.
 Tìm các tài liệu giới thiệu về lập trình di động trên nền tảng Android
 Xây dựng hệ thống thông tin cho ứng dụng (phân tích và thiết kế hệ thống)
 Tìm hiểu các thành phần, cách xây dựng ứng dụng Android: Activity, Android
SDK, AVD, Java- OOP, XML, Intent…
 Công cụ để lƣu trữ và truy xuất dữ liệu trên mobile đƣợc dùng phổ biến SQLite
 Tìm hiểu thêm về cơ sở dữ liệu SQLite.

1.5.2 Phần mềm sử dụng

Để có thể xác lập môi trƣờng lập trình ứng dụng di động trên Android. Chúng tôi cần có 2
thành phần cơ bản nhất đó là: Android SDK (Software Development Kit) chứ các
phiên bản Android, các hàm API cần thiết cũng nhƣ các công cụ hỗ trợ lập trình khác
và JDK (Java Development Kit) dùng để tạo r môi trƣờng thực thi máy ảo cho hệ điều
hành mà chúng tôi đ ng sử dụng
 Tải Android SDK tại đị chỉ http://developer.android.com/sdk/index.html. Khi tải
về Android SDK sẽ có định dạng *.exe trên môi trƣờng Windows và ZIP đối với
Linux và MacOS.
 Đối với JDK chúng tôi truy cập vào tr ng http://www.oracle.com/index.html để tải
và cài đặt phiên bản mới nhất để tăng tính ổn định và hỗ trợ tốt nhất
Một công cụ lập trình IDE (Integrated development environment) sẽ rất hữu ích và tiện
lợi Eclipse phiên bản 4 2 1 (Juno – Eclipse Classic) đƣợc xem là một trong những công
cụ hỗ trợ rất tốt trong việc lập trình ứng dụng Android
 Để có thể tạo cầu nối cho Eclipse với bộ Android SDK làm việc với nh u, chúng
tôi cần phải sử dụng thêm plugin ADT (Android Development Tool) cho Eclipse.
 Công cụ thiết kế hệ thống PowerDesigner 16 củ Syb se dùng để tạo r các mô
hình Usecase, Activity, Sequence, Class …
5
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

 Hệ điều hành sử dụng: Win 7 32 bit

1.5.3 Cài đặt và kiểm thử

 Cài đặt ứng dụng trên máy ảo AVD để kiểm thử.


 Kiểm tr lỗi và debug những phát sinh ngoại lệ củ ứng dụng trên máy ảo và máy
thật.

1.5.4 Viết báo cáo

Viết báo cáo kết quả thực hiện trong suốt quá trình tìm hiểu nghiên cứu xây dựng ứng
dụng

Đề tài b o gồm ba chƣơng: Chƣơng 1: Tổng Qu n Chƣơng này chủ yếu giới thiệu sơ lƣợc
về đề tài luận văn đƣợc thực hiện, khái quát về toàn bộ quá trình nghiên cứu; Chƣơng 2:
Cơ sở lý thuyết, Chƣơng này trình bày về cơ sở lý thuyết lập trình di động và các thành
phần qu n trọng trong lập trình di động trên hệ điều hành Android; Chƣơng 3: Phân tích
và thiết kế hệ thống, ở chƣơng này trình bày về mô tả đề tài một cách chi tết, các biểu đồ
củ hệ thống, kết quả nghiên cứu đề tài; Kết luận và hƣớng phát triển củ đề tài, Trong
phần này sẽ đánh giá lại ý nghĩ củ đề tài, đƣ r lời khẳng định thông qu kết quả thực
nghiệm, hƣớng mở rộng phát triển đề tài về mặt nội dung và ý nghĩ thực tiễn.

6
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

CHƢƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 LỊCH SỬ ANDROID

B n đầu, Android là hệ điều hành dành cho các thiết bị di động có màn hình cảm ứng và
máy tính bảng dự trên lõi Linux do công ty Android Inc (C liforni , Mỹ) thiết kế Công
ty này s u đó đƣợc Google mu lại vào năm 2005 và bắt đầu xây dựng Android Pl tform
Đến năm 2007 Android tuyên bố thành lập “Liên minh thi t cầm tay mở”- một hiệp hội
gồm các công ty phần cứng, phần mềm và viễn thông với mục tiêu đẩy mạnh các tiêu
chuẩn mở cho thiết bị di động 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.
Vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tôiy Mã Nguồn mở (Open H ndset
Alli nce) 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, Google, HTC, Intel, LG,Samsung Electronics, T-Mobile, Sony
Ericsson Toshi a Corp and Vodafone Group …
Mục tiêu củ Liên minh này là nh nh 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ủ nó chính là nền tảng Android Android đƣợc thiết
kế để phục vụ nhu cầu củ các nhà sản xuất thiết bị, các nhà kh i 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 T-Mobile G1, chiếc sm rt phone đầu tiên
dự trên nền tảng Android Một vài ngày s u đó, Google lại tiếp tục công bố sự r mắt
phiên bản Android SDK rele se C ndid te 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 qu n trọng trong kiến trúc củ
nó chính là cho phép các ứng dụng có thể tƣơng tác đƣợc với nh u 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
các dịch vụ mà nó c n đƣợc áp dụng cho cả các thành phần dữ liệu, gi o 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ủ 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 gi n đó thì
Google cũng cho phát hành một phiên bản vá lỗi 1 1 củ hệ điều hành này Ở cả h i phiên
bản 1 0 và 1 1 Android chƣ hỗ trợ soft-keybo rd mà đ i hỏi các thiết bị phải sử dụng bàn
7
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

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 c o khả năng ghi âm truyền
thông, vật dụng
 MỘT SỐ PHIÊN BẢN CỦ HỆ ĐIỀU HÀNH NDROID
Từ lúc r mắt phiên bản đầu tiên cho tới n y, Android đã có rất nhiều bản nâng cấp đ số
tập trung vào vá lỗi, nâng cấp, thêm các tính năng mới. Android những phiên bản đầu tiên
1.0 (9/2008) và 1.1 (02/2009) chƣ có tên gọi chính thức. Từ những phiên bản tiếp theo,
mỗi phiên bản mới đƣợc đặt với những tên riêng dự theo các món ăn hấp dẫn theo thứ tự
bảng chữ cái “C- D- E- F- G- H- I”. Hiện tại các phiên bản chính củ Android b o gồm:

Hình 2.1: Logo hệ điều hành Android


1.5 (Cupcake): R mắt vào tháng 04/2009. Phiên bản này có một số tính năng nổi bật
nhƣ: khả năng ghi và xem lại video thông qu chế độ máy ghi hình, tải video lên Youtube
và hình ảnh lên dịch vụ Pic s trực tiếp từ điện thoại, tích hợp bàn phím ảo với khả năng
đoán trƣớc văn bản, tự động kết nối với một thiết bị Bluetooth trong một khoảng cách
nhất định, các widget và thƣ mục mới có thể cài đặt linh động trên màn hình chủ.

Hình 2.2: Bàn phím ảo xuất hiện trên Android 1 5


1.6 (Donut): R mắt vào tháng 06/2009. Phiên bản này giúp nâng c o trải nghiệm trên
kho ứng dụng Android M rket. Tích hợp gi o diện tùy biến cho phép ngƣời dùng xó
8
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

nhiều ảnh cùng một lúc, nâng cấp Voice Se rch, nâng cấp khả năng tìm kiếm bookm rks,
contôict, history và web trên màn hình chủ, hỗ trợ độ phân giải WVGA.
2.0- 2.1 (Eclair): R mắt vào tháng 10/2009. Phiên bản này có sự cải thiện rõ rệt trong
gi o diện ngƣời dùng, tối ƣu hó tốc độ phần cứng, hỗ trợ nhiều kích cỡ và độ phân giải
màn hình hơn, th y đổi gi o diện duyệt web và hỗ trợ chuẩn HTML5, Exchange
ActiveSync 2.5, nâng cấp Google M p 3.1.2, camera zoom kĩ thuật số tích hợp đèn fl sh,
nâng cấp bàn phím ảo và nâng cấp Bluetooth 2.1
2.2 (Froyo): R mắt vào tháng 05/2010. Phiên bản này chú trọng đến nâng cấp tốc độ xử
lí, hỗ trợ Adobe Fl sh 10.1, giới thiệu engine Chrome V8 J v script, thêm tính năng tạo
điểm truy cập wifi. Hỗ trợ chuyển đổi nh nh chóng giữ các ngôn ngữ và từ điển trên bàn
phím đồng thời cho phép cài đặt và cập nhật ứng dụng ở các thiết bị mở rộng bộ nhớ.
2.3 (Gingerbread): R mắt vào tháng 12/2010. Phiên bản này đã nâng cấp đáng kể giao
diện ngƣời dùng, cải thiện bàn phím ảo, thêm tính năng copy/p ste, hỗ trợ chuẩn video
WebM và nâng c o tính năng copy- paste. Cùng với phiên bản Gingerbre d, Google cũng
r mắt điện thoại đầu tiên củ hãng sử dụng nền tảng này là Google Nexus S.

Hình 2.3: Chức năng cắt dán trên bàn phím và trình duyệt
3.0 (Honeycomb): R mắt vào tháng 02/2011. Phiên bản này dành riêng cho máy tính
bảng tôiblet với gi o diện tối ƣu hó cho tablet, từ các th o tác đều phụ thuộc vào màn
hình cảm ứng (lƣớt web, duyệt em il…. . ). Honeycomb hỗ trợ bộ xử lý đ nhân và xử lý
đồ họ đồng thời hỗ trợ nhiều màn hình home khác nh u, cho phép ngƣời dùng dễ dàng
tùy biến gi o diện nếu muốn. Các phiên bản Android 3.1 và 3.2 s u đó vẫn lấy tên mã là
Honeycomb, bổ sung một số tính năng mới nhƣ khả năng th y đổi kích cỡ widget, hỗ trợ
các thiết bị ngoại vi nhƣ bàn phím và t y cầm chơi g me.
9
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Số lƣợng máy tính bảng chạy Honeycomb không nhiều nhƣ Motorol Xoom, Asus Eee
Pad Transformer, Samsung Galaxy Tab 10.1 và hầu hết chúng đều đƣợc nâng cấp lên các
phiên bản mới hơn.
4.0 Ice Cream Sandwich (ICS): Là sự kết hợp giữ Gingerbre d và Honeycomb và sẽ
chạy trên tất cả các thiết bị nhƣ điện thoại, máy tính bảng…. Android 4.0 với tên mã Ice
Cre m S ndwich r mắt vào tháng 11/2011 cùng với chiếc G l xy Nexus, là thiết bị thứ
h i Google hợp tác với S msung trong chƣơng trình Nexus. Đây là phiên bản Android
đầu tiên đƣợc thiết kế chung cho cả sm rtphone và máy tính bảng, vì vậy khá nhiều tính
năng mới và các yếu tố thiết kế củ Ice Cre m S ndwich đƣợc kế thừ từ Honeycomb
nhƣ các phím ảo, điều chỉnh kích cỡ widget, chức năng đ tác vụ h y gi o diện 3D.
4.1 Android Jelly Bean: Đƣợc giới thiệu vào tháng 7/2012 tại hội nghị dành cho các nhà
phát triển củ Google (Google I/O), Android 4.1 Jelly Be n là bản nâng cấp bổ sung củ
Ice Cream Sandwich. Phiên bản này không có nhiều th y đổi về gi o diện bên ngoài mà
hầu hết những th y đổi qu n trọng ẩn chứ bên trong hệ điều hành.
Một trong những th y đổi qu n trọng nằm sâu bên trong hệ điều hành là Project Butter mà
theo Google là nó giúp cải thiệu rất nhiều hiệu năng cảm ứng và tốc độ xử lý đồ họ trên
điện thoại và máy tính bảng.
Tính năng mới qu n trọng thứ h i phải kể đến là Google Now cùng với khả năng điều
khiển bằng giọng nói hoạt động không cần kết nối mạng 3G h y WiFi. Tuy vậy, các tính
năng này không đƣợc ngƣời dùng Việt N m qu n tâm do chúng chƣ hỗ trợ tiếng Việt.
4.2 Android Jelly Bean: 4 tháng s u khi r mắt Android 4.1 Google tiếp tục công bố bản
cập nhật Android 4.2 vẫn sử dụng tên mã là Jelly Bean. H i thiết bị đầu tiên đƣợc giới
thiệu cùng với Android 4.2 là chiếc Nexus 4 và máy tính bảng Nexus 10.
Mặc dù chỉ là bản cập nhật nhỏ nhƣng Android 4.2 cũng có một số tính năng mới gồm
chế độ chụp ảnh 3600 PhotoSphere, hỗ trợ nhiều ngƣời dùng, chi sẻ nội dung trên điện
thoại lên các màn hình lớn, điều chỉnh các thiết lập (Wifi, độ sáng màn hình, chế độ máy
b y…) ng y trên th nh thông báo, chức năng D ydre m hiển thị thông tin khi điện thoại ở
chế độ màn hình khó , phóng to thu nhỏ trên Gm il và bàn phím ảo có thêm chức năng gõ
phím bằng cử chỉ giống nhƣ bàn phím Swype.
4.4 Android KitKat: Hiện n y Google đã tung bản Android 4.4 r thị trƣờng. Còn phiên
bản Android 5.0 với tên mã Key Lime Pie dự kiến sẽ là một bản nâng cấp lớn và r mắt
vào năm tới.

10
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.2 DELVING VỚI MÁY ẢO DALVIK

D lvik là máy ảo giúp các ứng dụng j v chạy đƣợc trên các thiết bị động Android. Nó
chạy các ứng dụng đã đƣợc chuyển đổi thành một file thực thi D lvik (dex).
Nó sẽ đƣợc biên dịch s ng các bytecode củ J v , tuy nhiên để thực thi đƣợc ứng dụng
này trên Android thì nhà phát triển phải thực thi một công cụ có tên là dx. Đây là công cụ
dùng để chuyển đổi bytecode s ng một dạng gọi là dex bytecode. "Dex" là từ viết tắt củ
"Dalvik executable" đóng v i tr nhƣ cơ chế ảo thực thi các ứng dụng Android.

2.3 KIẾN TRÚC ANDROID

Mô hình s u thể hiện một cách tổng quát các thành phần củ hệ điều hành Android. Mỗi
thành phần đƣợc đặc tả chi tiết bên dƣới.

Hình 2.4: Mô hình kiến trúc Android


11
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.3.1 Tầng ứng dụng (Application)

Hệ điều hành Android tích hợp sẵn một số ứng dụng cơ bản nhƣ: em il client, SMS, lịch
điện tử, contacts, browser, Phone và một số ứng dụng khác. Ngoài r tầng này cũng chính
là tầng chứ các ứng dụng.

2.3.2 Application framework

Tầng này củ hệ điều hành Android cung cấp một nền tảng phát triển ứng dụng mở qu
đó cho phép nhà phát triển ứng dụng có khả năng tạo r các ứng dụng vô cùng sáng tạo và
phong phú. Những nhà phát triển ứng dụng đƣợc tự do sử dụng các tính năng c o cấp củ
thiết bị phần cứng nhƣ: thông tin định vị đị lý, dịch vụ chạy nền, thiết lập đồng hồ báo
thức, thêm notification vào status b r củ màn hình thiết bị…Ngƣời phát triển ứng dụng
đƣợc phép sử dụng đầy đủ bộ API đƣợc dùng trong các ứng dụng tích hợp sẵn củ
Android. Kiến trúc ứng dụng củ Android đƣợc thiết kế nhằm mục đích đơn giản hó việc
tái sử dụng các thành phần (component). Qu đó bất kì ứng dụng nào cũng có thể công bố
các tính năng mà nó muốn chi sẻ cho các ứng dụng khác (Ví dụ: Ứng dụng em il có
muốn các ứng dụng khác có thể sử dụng tính năng gởi m il củ nó). Phƣơng pháp tƣơng
tự cho phép các thành phần có thể đƣợc th y thế bởi ngƣời sử dụng.
Cơ bản tất cả các ứng dụng là một tập các dịch vụ và các thành phần b o gồm:
 View System: tập hợp rất nhiều các đối tƣợng View đƣợc dùng để xây dựng ứng
dụng nhƣ: listview, gridview, text box, button, tableview, …và thậm chí là một
trình duyệt web có thể nhúng vào ứng dụng.
 Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng dụng
khác hoặc chi sẽ dữ liệu củ chúng.
 Resource Manager: Cung cấp khả năng truy xuất các tài nguyên không phải là mã
nguồn (non-code) nhƣ: loc lized Texts, graphics, layout files.
 Notification Manager: Cung cấp khả năng hiển thị custom lerts trên th nh status
bar.
 Activity Manager: Giúp quản lý v ng đời củ một ứng dụng và điều hƣớng các
activity.
2.3.3 Library
Android b o gồm một tập hợp các thƣ viện C/C++ đƣợc sử dụng bởi nhiều thành phần
khác nh u trong hệ thống Android. Điều này đƣợc thể hiện thông qu nền tảng ứng dụng
Android. Một số các thƣ viện cơ bản đƣợc liệt kê dƣới đây:
12
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

 System C library: một implementation đƣợc xây dựng từ BSD củ bộ thƣ viện hệ
thống C chuẩn (libc) đƣợc điều chỉnh để tối ƣu hó cho các thiết bị chạy trên nền
Linux.
 Media Libraries: bộ thƣ viện hỗ trợ trình diễn và ghi các định dạng âm th nh-hình
ảnh phổ biến nhƣ: MPEG4, MP3, AAC, AMR, JPG, và PNG.
 Surface Manager: Quản lí hiển thị nội dung 2D và 3D.
 LibWebCore: Một web browser engine hiện đại đƣợc sử dụng trong trình duyệt
củ Android.
 SGL: Engine hỗ trợ đồ họ 2D.
 3D libraries: một implementation đƣợc xây dựng dự trên nền OpenGL ES 1.0
APIs, những thƣ viện này sử dụng các tăng tốc 3D b o gồm cả phần cứng lẫn phần
mềm để tối ƣu hó hiển thị 3D.
 FreeType: bitmap and vector font rendering.
 SQLite: một DBMS nhỏ gọn và mạnh mẽ.
2.3.4 Android runtime
Android b o gồm một tập hợp các thƣ viện cơ bản mà cung cấp hầu hết các chức năng có
sẵn trong các thƣ viện lõi củ ngôn ngữ lập trình J v . Tất cả các ứng dụng Android đều
chạy trong tiến trình riêng. Máy ảo D lvik đã đƣợc xây dựng để cho các thiết bị di động
có thể chạy nhiều máy ảo hiệu quả Trƣớc khi thực thi, bất kì ứng dụng Android nào cũng
đƣợc convert thành file thực thi với định dạng nén D lvik Executable (.dex). Định dạng
này đƣợc thiết kế để phù hợp với các thiết bị hạn chế về bộ nhớ cũng nhƣ tốc độ xử lý.
Các Virtu l M chine D lvik dự vào nhân Linux cho các chức năng cơ bản nhƣ luồng
(thre d) và quản lý bộ nhớ thấp (low- level memory management).
2.3.5 Linux kernel
Android dự trên Linux phiên bản 2.7 cho hệ thống dịch vụ cốt lõi nhƣ security, memory
management, process management, network stack. Linux Kernel hoạt động nhƣ một lớp
trung gi n kết nối phần cứng và phần mềm ứng dụng.

13
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Hình 2.5: Mô hình giữ máy ảo D lvik và N tive Code

2.4 ANDROID EMULATOR

Android SDK và Plugin Eclipse đƣợc gọi là một Android Deverloper Tool (ADT). Các
nhà lập trình Android sẽ cần phải sử dụng công cụ IDE (Integr ted Development
Environment) này để phát triển, debugging và testing cho ứng dụng. Tuy nhiên, các lập
trình viên cũng có thể không cần phải sử dụng IDE mà th y vào đó là sử dụng comm nd
line để biên dịch và tất nhiên là vẫn có Emul tor nhƣ thƣờng.
Android Emul tor đƣợc tr ng bị đầy đủ hầu hết các tính năng củ một thiết bị thật. Tuy
nhiên, một số đã bị giới hạn nhƣ là kết nối qu cổng USB, camera và video, nghe phone,
nguồn điện giả lập và bluetooth.

Hình 2.6: Android Emulator


14
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.5 CÁC THÀNH PHẦN CỦA MỘT ANDROID PROJECT

2.5.1 AndroidManifest. xml

Trong bất kì một project Android nào khi tạo r đều có một file AndroidManifest. xml, file
này đƣợc dùng để định nghĩ các screen sử dụng, các (quyền) permission cũng nhƣ các
themes cho ứng dụng. Đồng thời nó cũng chứ thông tin về phiên bản SDK cũng nhƣ
main activity sẽ chạy đầu tiên.
File này đƣợc tự động sinh r khi tạo một Android project. Trong file m nifest b o giờ
cũng có 3 thành phần chính đó là: pplic tion, permission và version.
Dƣới đây là nội dung củ một file AndroidManifest. xml:
<?xml version="1. 0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas. android. com/apk/res/android"
package="com. pack1. app"
android:versionCode="1"
android:versionName="1. 0" >

<uses-sdk
android:minSdkVersion="7"
android:tôirgetSdkVersion="19" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@Text/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com. pack1. app. MainActivity"
android:label="@Text/app_name" >
<intent-filter>
<action android:name="android. intent. action. MAIN" />

<category android:name="android. intent. category. LAUNCHER" />


</intent-filter>
</activity>
</application>
</manifest>

15
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.5.2 File R. java


File R.j v là một file tự động sinh r ng y khi tạo ứng dụng, file này đƣợc sử dụng để
quản lý các thuộc tính đƣợc kh i báo trong file XML củ ứng dụng và các tài nguyên hình
ảnh.
Mã nguồn củ file R.j v đƣợc tự động sinh r khi có bất kì một sự kiện nào xảy x làm
th y đổi các thuộc tính trong ứng dụng. Chẳng hạn nhƣ, bạn kéo và thả một file hình ảnh
từ bên ngoài vào project thì ng y lập tức thuộc tính đƣờng dẫn đến file đó cũng sẽ đƣợc
hình thành trong file R.j v hoặc xoá một file hình ảnh thì đƣờng dẫn tƣơng ứng đến hình
ảnh đó cũng tự động bị xoá.
Có thể nói file R.j v hoàn toàn không cần phải đụng chạm gì đến trong cả quá trình xây
dựng ứng dụng.
Dƣới đây là nội dung file R.java:
/* AUTO-GENERATED FILE. DO NOT MODIFY.
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package android. support. v7. appcompat;
public final class R {
public static final class anim {
public static final int abc_fade_in = 0x7f040000;
public static final int abc_fade_out = 0x7f040001;
public static final int abc_slide_in_bottom = 0x7f040002;
public static final int abc_slide_in_top = 0x7f040003;
public static final int abc_slide_out_bottom = 0x7f040004;
public static final int abc_slide_out_top = 0x7f040005;
}
public static final class attr {
public static final int actionBarD4ider = 0x7f010000;
public static final int actionBarItemBackground = 0x7f010001;
public static final int actionBarSize = 0x7f010002;
public static final int actionBarSplitStyle = 0x7f010003;
public static final int actionBarStyle = 0x7f010004;
public static final int actionBarTôibBarStyle = 0x7f010005;
}
}

16
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.6 CÁC THÀNH PHẦN TRONG MỘT ỨNG DỤNG ANDROID

 Activity: hiểu một cách đơn giản thì Activity là nền củ một ứng dụng. Khi khởi
động một ứng dụng Android nào đó thì b o giờ cũng có một m in Activity đƣợc
gọi, hiển thị màn hình gi o diện củ ứ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 để upd te dữ liệu, đƣ
r các cảnh báo (Notific tion) và không b o giờ hiển thị cho ngƣời dùng thấy.
 Content Provider: kho dữ liệu chi sẻ. Content Provider đƣợc sử dụng để quản lý
và chi sẻ dữ liệu giữ 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 một Activity h y Service để thực hiện công việc bạn mong
muốn. Ví dụ: khi mở một tr ng web, bạn gửi một intent đi để tạo một ctivity mới
hiển thị tr ng web đó.
 Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới. Ví dụ: bạn
viết một chƣơng trình th y thế cho phần gọi điện mặc định củ Android, khi đó bạn
cần một Bro dc st Receiver để nhận biết các Intent là các cuộc gọi tới.
 Notification: đƣ r các cảnh báo mà không làm cho các Activity phải ngừng hoạt
động.
Activity, Service, Bro dc st 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 kh i báo trong AndroidM nifest.
Vòng đời của ột ứng dụng ndroid
Android có cơ chế quản lý các tiến trình (process) theo chế độ ƣu tiên. Các process có
quyền ƣu tiên (priority) thấp sẽ bị Android giải phóng mà không hề cảnh báo trƣớc nhằm
đảm bảo tài nguyên
 Foreground process: là tiến trình củ ứng dụng hiện thời đ ng đƣợc ngƣời dùng
tƣơng tác.
 Visible process: là tiến trình củ ứng dụng mà ctivity đ ng hiển thị đối với ngƣời
dùng (onPaused ( ) củ ctivity đƣợc gọi).
 Service process: là Service đ ng chạy.
 Background process: là tiến trình củ ứng dụng mà các ctivity củ nó không hiển
thị với ngƣời dùng (onStop ( ) củ ctivity đƣợc gọi).
 Empty process: tiến trình không có bất cứ một thành phần nào ctive.
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.
17
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Các trạng thái của ột ctivity 4 trạng thái


 Active (running): Activity đ ng 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).
 Stop: Activity bị th y thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop.
 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 p used 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 đó. Cụ thể nhƣ sơ đồ s u:

Hình 2.7: Chu trình sống củ một Activity


18
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.7 CHU KỲ ỨNG DỤNG ANDROID

2.7.1 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 và đến thời điểm kết thúc. Giữ đó, đôi lúc chúng có thể là kích hoạt ( ctive) hoặc
không kích hoạt (inactive), hoặc là trong trƣờng hợp kích hoạt (activites) nó có thể là hiển
thị(visible) hoặc không hiển thị (invisible).

Chu kỳ sống một ứng dụng Android


Start (Active/ Inactive- Visible/ Invisible) End

Hình 2.8: Sơ đồ biểu diễn chu kỳ sống thành phần

2.7.2 Activity stack

Bên trong hệ thống các ctivity đƣợc quản lý nhƣ một ctivity stack. Khi một Activity
mới đƣợc start, nó đƣợc đặt ở đỉnh củ stack và trở thành ctivity đ ng chạy ctivity trƣớc
sẽ ở bên dƣới ctivity mới và sẽ không thấy trong suốt quá trình ctivity mới tồn tại. Nếu
ngƣời dùng nhấn nút B ck thì ctivity kết tiếp củ stack sẽ di chuyển lên và trở thành
active.

Hình 2.9: Mô hình Activity Stack


19
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.7.3 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ỏ thông tin khác củ
nó từ vùng nhớ bởi việc finish( ) (gọi hàm finish ( ) củ nó), hoặc đơn giản kết thúc tiến
trình củ nó. Khi nó đƣợc hiển thị lần nữ với ngƣời dùng, nó phải đƣợc hoàn toàn restart
là phục hồi lại trạng thái trƣớc. Khi một Activity chuyển qu chuyển lại giữ các trạng
thái, nó phải báo việc chuyển củ nó bằng việc gọi hàm tr nsition.

void onCreate (Bundle saveInstanceState)


void onPause ( )
void onStart ( )
void onStop ( )
void onRestart ( )
void onDestroy ( )
void onResume ( )

Hình 2.10: Các sự kiện củ một chu kỳ sống ứng dụng.


Tất cả các phƣơng thức là những phƣơng thức mà bạn có thể override để làm tƣơng thích
công việc trong ứng dụng khi th y đổ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 hiện thực onPause( ) để xác
nhận việc th y đổi dữ liệu và mặt khác chuẩn bị dừng hoạt động với ngƣời dùng.

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

Các phƣơng thức (trên hình 2.10) chuyển tiếp định nghĩ trong chu kỳ sống củ một
Activity. Thời gi n sống củ một Activity diễn r giữ lần đầu tiê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( ), và giải phóng các tài nguyên đ ng tồn tại trong onDestroy( ).

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

Thời gi n hiển thị củ một ctivity diễn r giữ lần gọi một onStart( ) cho đến khi gọi
onStop( ). Trong suốt khoảng thời gi n này ngƣời dùng có thể thấy ctivity trên màn hình,
có nghĩ là nó không bị foreground hoặc đ ng tƣơng tác với ngƣời dùng. Giữ h i phƣơng
thức ngƣời dùng có thể duy trì tài nguyên để hiển thị ctivity đến ngƣời dùng.

2.7.6 Các phƣơng thức của chu trình sống

Ph ơng thức: onCreate )


 Đƣợc gọi khi ctivity 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 listview….
20
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

 Phƣơng thức này gửi qu một đối tƣợng Bundle chứ đựng từ trạng thái trƣớc củ
Activity.
 Luôn theo s u bởi onStart( ).
Ph ơng thức: onStart( )
 Đƣợc gọi trƣớc khi một ctivity visible với ngƣời dùng.
 Theo s u bởi onResume( ) nếu ctivity đến trạng thái foreground hoặc onStop( )
nếu nó trở nên ẩn.
Ph ơng thức: onRestart( )
 Đƣợc gọi s u khi ctivity đã đƣợc dừng, chỉ một khoảng đ ng khởi động lần nữ
(stôired again).
 Luôn theo s u bởi onStart( ).
Ph ơng thức: onResu e )
 Đƣợc gọi trƣớc khi ctivity bắt đầu tƣơng tác với ngƣời dùng.
 Tại thời điểm này ctivity ở trên đỉnh củ stack activity.
 Luôn theo s u bởi onP use( ).
Ph ơng thức: onPause )
 Đƣợc gọi khi hệ thống đ ng resuming ctivity khác.
 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 r một cách nh nh chóng bởi vì ctivity kế tiếp sẽ không đƣợc
resumed ng y cho đến khi nó trở lại.
 Theo s u bởi onResume ( ) nếu ctivity 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ủ ctivity có thể bị vô hiệu hó bởi hệ thống.
Ph ơng thức: onStop )
 Đƣợc gọi khi ctivity không thuộc tầm nhìn củ ngƣời dùng.
 Nó có thể diễn r bởi vì nó đ ng bị hủy, hoặc bởi vì ctivity khác vừ đƣợc resume
và b o phủ nó.
 Đƣợc theo s u bởi onRestart ( ) nếu ctivity đ ng trở lại để tƣơng tác với ngƣời
dùng, hoặc onDestroy ( ) nếu ctivity đ ng bỏ.
 Trạng thái củ ctivity có thể bị vô hiệu hó bởi hệ thống.

21
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Ph ơng thức: onDestroy )


 Đƣợc gọi trƣớc khi ctivity bị hủy.
 Đó là lần gọi cuối cùng mà ctivity này đƣợc nhận.
 Nó đƣợc gọi khác bởi vì ctivity đ ng 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ớ.
 Có thể phân biệt giữ h i kịch bản với phƣơng thức isFinshing ( ).

2.8 CÁC THÀNH PHẦN GIAO DIỆN TRONG ANDROID

2.8.1 View

Trong một ứng dụng Android, gi o 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 một kiểu là một hậu duệ
(descend nt) củ cl ss View và tất cả các kiểu đó đƣợc gọi là các widget. Tất cả mọi
widget đều có chung các thuộc tính cơ bản nhƣ là cách trình bày vị trí, background, kích
thƣớc, lề, … Tất cả những thuộc tính chung này đƣợc thể hiện hết ở trong đối tƣợng
View.
Trong Android Platform, các screen luôn đƣợc bố trí theo một kiểu cấu trúc phân cấp nhƣ
hình dƣới. Một màn hình (screen) là một tập hợp các L yout và các widget đƣợc bố trí có
thứ tự. Để thể hiện một screen thì trong hàm onCre te củ mỗi Activity cần phải đƣợc gọi
một hàm là setContentView (R.layout.main). Hàm này sẽ lo d gi o diện từ file XML lên
để phân tích thành mã bytecode.

Hình 2.11: Cấu trúc View trong ứng dụng Android


22
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.8.2 Viewgroup

ViewGroup thực r chính là các view h y chính xác là các widget L yout đƣợc dùng để
bố trí các đối tƣợng khác trong một screen. Có một số loại ViewGroup s u:

2.8.2.1 Linear layout

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

2.8.2.2 TableLayout

L yout này đƣợc sử dụng khi cần thiết kế một bảng chứ dữ liệu hoặc cần bố trí các
widget theo các d ng và cột. Chẳng hạn nhƣ, gi o diện củ một chiếc máy tính đơn giản
hoặc một d nh sách dữ liệu.

Hình 2.12: Ví dụ về T ble Layout


2.8.2.3 Frame layout

Fr meL yout đƣợc dùng để bố trí các đối tƣợng theo kiểu giống nhƣ là các L yer trong
Photoshop. Những đối tƣợng nào thuộc L yer bên dƣới thì sẽ bị che khuất bởi các đối
tƣợng thuộc L yer nằm trên. Fr meL yout thƣờng đƣợc sử dụng khi muốn tạo r các đối
tƣợng có khung hình bên ngoài chẳng hạn nhƣ contôict image button.
23
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.8.2.4 Relative Layout

Rel tive L yout đƣợc dùng để bố trí các đối tƣợng con với các vị trí tƣơng đối. Vị trí củ
View có thể đƣợc xác định so với các view khác hoặc với thành phần ch củ chúng. Có
thể sắp xếp View s ng bên phải, bên trái h y bên dƣới một View khác, giữ màn hình,
etc…Để định nghĩ vị trí cho các View con cần sử dụng nhiều thuộc tính có sẵn từ
Relative Layout. LayoutParams

2.8.2.5 ScrollView

ScrollView là một kiểu đặc biệt củ Fr meL yout, cho phép ngƣời dùng có thể cuộn
thông qua listView. ScrollView chỉ có thể chứ duy nhất một đối tƣợng View con hoặc
View Group. Tất cả các đối tƣợng này sẽ nằm trong Line r L yout.

Hình 2.13: Ví dụ minh họ Scroll View


24
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.8.3 Android User Interface

2.8.3.1 TextView

TextView ngoài tác dụng là để hiển thị văn bản thì nó c n cho phép định dạng nội dung.
Nội dung TextView cũng có thể đƣợc định dạng ng y trong XML
<TextView android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="T i kho n : " />

2.8.3.2 Edit Text

Với Edit Text ngƣời dùng sẽ đƣợc phép nhập thông tin thông qu nó. Từ đó chƣơng trình
xử lý theo yêu cầu Trong Android đối tƣợng EditText đƣợc sử dụng nhƣ một TextField
hoặc một TextBox.
<EditText
android:id="@+id/txtMk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="12"
android:inputType="text ật kh u"
android:singleLine="true" />
Các thuộc tính cần chú ý sử dụng EditText đó là: android:inputType = “…” sử dụng để
xác định phƣơng thức nhập cho EditText. Chẳng hạn nhƣ khi bạn muốn một ô để nhập
mật khẩu h y một ô để nhập Em il thì thuộc tính này sẽ làm điều đó. android:singleLine
= “true” EditText củ bạn sẽ trở thành một TextField, ngƣợc lại sẽ là TextBox.

2.8.3.3 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ế
gi o diện với một button tôi có hai cách nhƣ s u:

25
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

 Thiết kế bằng XML


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn_Save"
android:text="Save"
android:onClick="save_category"/>
Thuộc tính ndroid:onClick=" save_category " đƣợc dùng để nắm bắt sự kiện click vào
button. Khi sự kiện click button xảy r thì phƣơng thức “save_category” đƣợc kh i báo
trong thẻ thuộc tính sẽ đƣợc gọi. Nếu trƣờng hợp phƣơng thức “save_category” chƣ
đƣợc kh i báo trong file mã nguồn tƣơng ứng thì sẽ phát sinh một exception. Ngƣợc lại,
phƣơng thức “save_category” sẽ nhận đƣợc một đối th m biến là đối tƣợng View nơi đã
phát sinh r sự kiện. Đối tƣợng View này có thể ép kiểu trực tiếp s ng kiểu Button vì thực
chất nó là một button.
Ví dụ: trong file mã nguồn kh i báo một hàm nhƣ s u:
public void save_category (View v){
Button me = (Button) v;
Me. setText “save_category is selected” ;
}
 Thiết kế bằng code
Trong một số trƣờng hợp 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 tôi phải custom các
widget để cho phù hợp với hoàn cảnh. Chẳng hạn nhƣ trong g me, các menu hay các nút
điều khiển, …Để kh i báo một Button trong code tôi làm nhƣ s u:
Button cmdButton = new Button(this);
cmdButton. setText “save_category is selected!” ;
cmdButon. setOnClickListener … ;
Để custom một widget nào đó tôi phải tạo một cl ss kế thừ từ cl ss Widget muốn
custom, s u đó sử dụng hàm dr w để vẽ lại widget đó nhƣ một C nv s.
Ví dụ: canvas. drawPicture(Picture. createFromStream(. . . ));

26
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.8.3.4 Image Button

Cũng tƣơng tự nhƣ Button, ImageButton chỉ có thêm một thuộc tính android:src =
“@drawa le/icon” để thêm hình ảnh vào và không có thẻ text
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnSave"
android:src="@drawable/icon"
android:onClick=" save_category"/>

2.8.3.5 Context Menu

ContextMenu đƣợc sử dụng để hiển thị các tuỳ chọn khi ngƣời dùng nhấn dài vào một
cell nào đó trong ListView. Để tạo một ContextMenu tôi cũng có h i cách giống nhƣ tạo
MenuOptions ở trên chỉ khác tên phƣơng thức. Khi nhấn dài vào một ô trong ListView thì
phƣơng thức:
@Override
public void onCreateContextMenu(ContextMenumenu, View v, ContextMenuInfo info) {
super. onCreateContextMenu(menu, v, info);
getactivity(). getMenuInflater(). inflate(R. menu. context_menu_taisan,
menu);
}
sẽ đƣợc gọi và truyền vào 3 th m số là:
 ContextMenu: đối tƣợng để dd các context menu item
 View: Đối tƣợng nơi mà xảy r sự kiện
 ContextMenuInfo: Cho biết vị trí xảy r sự kiện trong ListView.
@Override
public boolean onContextItemSelected(MenuItem item) {
final AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
. getMenuInfo();
final int position = info. position;
switch (item. getItemId()) {
case R. id. TaiSan_Edit:
if (Login_System. maUser == 1) {
27
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

intent=new Intent(getactivity(), List_TSFragment_Edit. class);


Bundle bundle = new Bundle();
bundle. putInt("KEY", 1);
bundle. putLong("id", list. get(position). getId());
bundle. putString("ten", list. get(position). getName_TS());
bundle. putString("loai", list. get(position). getType_TS());
bundle. putDouble("giatri", list. get(position). getGiatriconlai());
bundle. putString("ghichu", list. get(position). getGhichu_TS());
bundle. putString("loaitien", list. get(position). getLoaitien_TS());
bundle. putString("loaits", list. get(position). getLoaiTôiiSan());
intent. putExtra("DATA", bundle);
objTS = list. get(position);
intent. addFlags(Intent. FLAG_ACTIVITY_CLEAR_TOP);
startactivityForResult(intent, Main. OPEN_EDIT_TS);
getactivity(). overridePendingTransition(R. anim. left_to_right,
R. anim. fadeout);
} else {
Toast. makeText(getactivity(), "Bạn không có quyền s a",
Toast. LENGTH_SHORT). show();
}
return true;
}
}

Hình 2.14: Minh họ context menu


28
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.8.4 ListView và Picker View

2.8.4.1 ListView

Đƣợc sử dụng để thể hiện một d nh sách các thông tin theo từng ô. Mỗi ô thông thƣờng
đƣợc lo d 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 d nh sách thông tin lên một screen thì cần phải có 3 yếu tố chính:
 Data Source: Data Source có thể là một ArrayList, H shM p hoặc bất kỳ một cấu
trúc dữ liệu kiểu d nh sách nào.
 Adapter: Ad pter là một cl ss trung gi n giúp ánh xạ dữ liệu trong D ta Source vào
đúng vị trí hiển thị trong ListView. Chẳng hạn, trong Data Source có một trƣờng
name và trong ListView cũng có một TextView để thể hiện trƣờng tên này. Tuy
nhiên, ListView sẽ không thể hiển thị dữ liệu trong D ta Source lên đƣợc nếu nhƣ
Ad pter không gán dữ liệu vào cho đối tƣợng hiển thị.
 ListView: ListView là đối tƣợng để hiển thị các thông tin trong D ta Source r một
cách trực qu n và ngƣời dùng có thể th o tác trực tiếp trên đó.

Hình 2.15: Minh họ listview


29
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.8.4.2 Picker View

Picker View có hai loại thƣờng dùng phổ biến khi tƣơng tác trên các ứng dụng di động:
TimePicker và DatePicker.
 TimePicker: cho phép ngƣời dùng chọn thời gi n trong ngày.

Hình 2.16: Minh họ TimePicker


 DatePicker: cho phép ngƣời dùng chọn ngày, tháng, năm.

Hình 2.17: Minh họ D tePicker

30
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

2.8.5 Activity vs Intent

2.8.5.1 Activity

Activity là một thành chính củ một ứng dụng Android, đƣợc dùng để hiển thị một màn
hình và nắm bắt các hoạt động xảy r trên màn hình đó. Khi làm việc với Activity cần
nắm bắt đƣợc một số kiến thức cơ bản nhƣ s u:
 Chu kỳ sống củ một Activity (Xem chu kỳ ứng dụng củ Android mục 2.7)
 Tạo menu và di log
 Khởi động một Activity
Để khởi động một Activity tôi sử dụng Intent sẽ tìm hiểu kỹ hơn ở phần (2.8.5.2). Tuy
nhiên, trong phần này tôi sẽ hƣớng dẫn cách chuyển giữ các Intent theo hai loại:
 Kh i báo không tƣờng minh:
Cung cấp chính xác thông tin củ ctivity cần gọi bằng cách truyền vào tên cl ss củ
Activity đó. Ví dụ: Từ Activity A muốn chuyển qu Activity B tôi kh i báo một Intent
trong Activity A:
Intend intend = new Intend(this, B. class);
startactivity(intend);
 Kh i báo không tƣờng minh
Cung cấp các th o tác cần làm gì với loại dữ liệu nào, hệ thống sẽ tìm đến ctivity tƣơng
ứng để khởi động. Ví dụ: Để xem thông tin một contôict nào đó trong Activity củ ứng
dụng Contact trong Android tôi chỉ đến dữ liệu contact và chỉ đến Activity View contact
nhƣ s u:
Intent i = new Intent();
i. setaction(Intent. ACTION_VIEW);
i. setData(Uri. withAppendedPath(
android. provider. Contacts. People. CONTENT_URI, "1));
startactivity(i);
 Tính liên lạc giữ 2 ctivity
Khi chuyển s ng một Activity khác tôi có thể gửi kèm dữ liệu trong intent đó nhƣ s u:
intent = new Intent(getôictivity(), List_TSFragment_Edit. class);
Bundle bundle = new Bundle();
bundle. putInt("KEY", 1);
31
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

bundle. putLong("id", list. get(position). getId());


bundle. putString("ten", list. get(position). getName_TS());
bundle. putString("loai", list. get(position). getType_TS());
bundle. putDouble("giatri", list. get(position). getGiatriconlai());
bundle. putString("ghichu", list. get(position). getGhichu_TS());
bundle. putString("loaitien", list. get(position). getLoaitien_TS());
bundle. putString("loaits", list. get(position). getLoaiTôiiSan());
intent. putExtra("DATA", bundle);
Bên phí Activity đƣợc khởi động h y đƣợc chuyển đến, có thể lấy dữ liệu đƣợc gửi nhƣ
sau:
Bundle bundle = data. getBundleExtra("DATA_TS_ADD");
String tenTS = bundle. getString("tenTS");
String loai = bundle. getString("loai");
Double giatri = bundle. getDouble("giatri");
String ghichu = bundle. getString("ghichu");
String loaitien = bundle. getString("loaitien");
String loaits = bundle. getString("loaiTS");
TaiSan objNew = new TaiSan();

2.8.5.2 Intent

 Khái niệ 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ủ một Activity.
 Là cầu nối giữ các Activity: ứng dụng Android thƣờng b o gồm nhiều Activity,
mỗi Activity hoạt động độc lập với nh u và thực hiện những công việc khác nh u.
Intent chính là ngƣời đƣ 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
qu lại giữ các Forms trong lập trình Windows Form.

Hình 2.18: Truyền dữ liệu giữ 2 ctivity


 Dữ iệu của Intent:
32
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Intent về cơ bản là một cấu trúc dữ liệu, đƣợc mô tả trong lớp ndroid. content. Intent.
Các thuộc tính củ một đối tƣợng Intent:
Bảng 2. 1: Các thuộc tính củ Intent
Thuộc tính chính Thuộc tính phụ
Action Category
Thông tin về nhóm củ ction
 Tên (String) củ ction mà Intent sẽ
Type
yêu cầu thực hiện.
 Định dạng kiểu dữ liệu (chuẩn
 Có thể là ction đƣợc Android định MIME).
nghĩ sẵn (built- in standard action)
 Thƣờng đƣợc tự động xác định
hoặc do ngƣời lập trình định nghĩ .
Data Component
 Dữ liệu mà Activity đƣợc gọi sẽ xử  Chỉ định cụ thể lớp sẽ thực thi
lý. Activity
 Định dạng Uri (thông qu hàm Uri.  Khi đƣợc xác định, các thuộc tính
parse(data)) khác trở thành không bắt buộc
(optional)
Extras
Chứ tất cả các cặp (key v lue) do ứng
dụng thêm vào để truyền qu Intent (cấu
trúc Bundle)
http://developer. android. com/reference/android/content/Intent. Html
 Các ction đ ợc đ nh nghĩa sẵn:
Dƣới đây là những hằng String đã đƣợc định nghĩ sẵn trong lớp Intent. Đi kèm với nó là
các Activity h y Applic tion đƣợc xây dựng sẵn sẽ đƣợc triệu gọi mỗi khi Intent tƣơng
ứng đƣợc gửi (tất nhiên khi đƣợc cung cấp đúng data).
Ví dụ: Gọi tới một số điện thoại:
Intent dialIntent = new Intent(Intent. ACTION_DIAL, Uri. parse("tel:123456"));
startactivity(dialIntent);

2.9 SQLITE TRONG ANDROID

SQLite là một dạng CSDL tƣơng tự nhƣ Mysql, PostgreSQL. . . Đặc điểm củ SQLite là
gọn, nhẹ, đơn giản. Chƣơng trình gồm một file duy nhất vỏn vẹn chƣ đến 500kB, không
cần cài đặt, không cần cấu hình h y khởi động mà có thể sử dụng ng y. Dữ liệu d tabase
33
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

cũng đƣợc lƣu ở một file duy nhất. Không có khái niệm user, mật khẩu h y quyền hạn
trong SQLite database.
SQLite không thích hợp với những hệ thống lớn nhƣng ở quy mô vừ tầm thì SQLite phát
huy uy lực và không hề yếu kém về mặt chức năng h y tốc độ. Với các đặc điểm trên
SQLite đƣợc sử dụng nhiều trong việc phát triển, thử nghiệm… và là sự lƣ chọn phù
hợp cho những ngƣời bắt đầu học d tabase. Hiện n y thì SQLite đã đƣợc ứng dụng vào
sm rtphone nhƣ iPhone và Android để lƣu trữ dữ liệu. Để có thể dễ dàng th o tác với
SQLite chúng tôi có thể sử dụng trình duyệt FireFox và tải về plugin SQLite tại link
sau:https://code. google. com/p/sqlite-manager/
S u khi tải về file xpi, kéo file này vào cử sổ firefox để cài đặt plugin.
S u khi cài đặt plugin xong thì vào Menu_tools trong firefox sẽ có chức năng SQLite
Manager. Gi o diện củ SQLite m n ger trong firefox nhƣ s u:

Hình 2.19: SQLite Manager

34
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

CHƢƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

3.1 MÔ TẢ HỆ THỐNG

Ngƣời dùng sẽ quản lý thông tin các tài sản hiện có củ bản thân với h i hình thức: tài sản
chung và tài sản riêng. Các tài sản phân biệt với nh u bởi mã tài sản, tên tài sản, loại tài
sản, giá trị hiện hành, loại tiền, ghi chú, loại hình tài sản. Hằng ngày ngƣời dùng sẽ thực
hiện các gi o dịch thu/ chi hằng ngày dự trên các tài sản củ mình. Bên cạnh việc ghi lại
các thông tin gi o dịch hằng ngày đó, ngƣời dùng cũng có thể lên kế hoạch chi tiêu theo
từng gi i đoạn có thể là theo tuần trong tháng, hoặc theo tháng. Lên kế hoạch tiết kiệm để
dùng cho mục đích gì đó nhƣ mua xe, h y mu một món hàng…. . Hệ thống sẽ giúp
ngƣời dùng thực hiện chức năng lên kế hoạch tiết kiệm một cách dễ dàng.
Ngoài r ngƣời dùng cũng có thể lên ghi lại những khoản cho v y hoặc mƣợn nợ từ bạn
bè hoặc cá nhân, tổ chức bất kì. Tiện việc theo dõi nợ nần để truy thu hoặc chi trả đúng
hạn định.
Hằng tháng, ngƣời dùng có thể xem báo cáo thu/ chi trong tháng theo từng mục con nhƣ
theo thể loại, hoặc theo hình thức…. Từ đó giúp ngƣời dùng có cái nhìn tổng qu n về toàn
bộ quá trình thu/ chi củ chính mình.
Bên cạnh đó ngƣời dùng có thể thêm các d nh mục gi o dịch theo từng loại tài sản để tiện
việc gi o dịch s u này. Thông tin chi tiết từng loại thực thể trong ứng dụng:
 Thông tin tài sản: mã tài sản, tên tài sản, loại tài sản, giá trị hiện hành, loại tiền, ghi
chú, loại hình tài sản.
 D nh mục gi o dịch: mã gi o dịch, tên gi o dịch, hình thức, thuộc tài sản.
 Giao dịch: mã gi o dịch, tên gi o dịch, số tiền gi o dịch, với i, ghi chú, ngày giao
dịch.
 Kế hoạch mu : mã kế hoạch, tên kế hoạch, mã tài sản, số tiền chi tiêu, số tiền đã
chi, số tiền c n lại, số tiền bội chi, ngày lên kế hoạch, ngày kết thúc kế hoạch
 Kế hoạch tiết kiệm: mã kế hoạch, tên kế hoạch, số tiền tiết kiệm, số tiền bắt đầu tiết
kiệm, số tiền cần thêm, thuộc tài sản
 D nh mục gi o dịch: mã d nh mục, tên d nh mục, thuộc lại tài sản, hình thức, chỉnh
sử
 Loại tiền: mã loại tiền, tên loại tiền, kí hiệu
 Công nợ: mã công nợ, tên công nợ, số tiền v y, giá trị, ghi chú, ngày mƣợn, ngày
trả, lãi suất, chủ nợ, loại hình

35
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

 Ngƣời dùng: mã ngƣời dùng, mật khẩu, hình thức

3.2 ĐẶC TẢ CHỨC NĂNG

3.2.1 Đăng nhập

 Mô tả chức năng:
Cho phép ngƣời dùng đăng nhập vào hệ thống để tƣơng tác với các chức năng củ chƣơng
trình.
 Mô tả hoạt động:
 Đọc tất cả các yếu tố đầu vào từ Edit Text, …. do ngƣời dùng nhập vào
 Kiểm tr ràng buộc thông tin, và ràng buộc với cơ sở dữ liệu
 S u khi kiểm tr tính hợp lệ thông tin, sẽ cho phép ngƣời dùng th o tác các chức
năng trên hệ thống theo quyền định sẵn.

3.2.2 Quản tài sản

 Mô tả chức năng:
Với cấp độ quản trị (Admin): cho phép xem d nh sách tài sản, thêm mới, sử thông tin tài
sản , xó tài sản. Cho phép thực hiện chuyển khoản giữ các tài sản có chung đơn vị tiền
tệ, đồng nhất về định dạng.
Với cấp độ ngƣời dùng (user): (do Admin cung cấp mã số mật khẩu để dùng chung ứng
dụng): chỉ cho phép xem thông tin những tài sản chung. Không cho phép thêm mới, sử ,
xó h y chuyển khoản.

3.2.3 Quản giao dịch

 Mô tả chức năng:
Với cấp độ quản trị (Admin): cho phép xem d nh sách gi o dịch tùy chọn, thêm mới giao
dịch, sử thông tin gi o dịch , xóa gi o dịch. Cho phép lọc các gi o dịch theo tùy chọn mà
hệ thống hỗ trợ (tháng, theo thể loại…).
Với cấp độ ngƣời dùng (user): (do Admin cung cấp mã số mật khẩu để dùng chung ứng
dụng): chỉ cho phép xem thông tin những gi o dịch trên các tài sản chung. Không cho
phép thêm mới, sử , xóa.

36
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.2.4 Quản lý khoản cho vay

 Mô tả chức năng:
Với cấp độ quản trị (Admin): cho phép xem danh sách các khoản cho v y, thêm mới, sử
thông tin các khoản v y, xóa khoản vay. Xem lại lịch sử cho v y theo thời gi n…
Với cấp độ ngƣời dùng (user): (do Admin cung cấp mã số mật khẩu để dùng chung ứng
dụng): chỉ cho phép xem thông tin những khoản v y trên các tài sản chung. Không cho
phép thêm mới, sử , xóa khoản v y.

3.2.5 Quản lý nợ

 Mô tả chức năng:
Với cấp độ quản trị (Admin): cho phép xem danh sách các khoản nợ đ ng mƣợn, thêm
mới, sử thông tin khoản nợ, xóa khoản nợ. Bên cạnh cho phép xem lại lịch sử mƣợn nợ.
Với cấp độ ngƣời dùng (user): (do Admin cung cấp mã số mật khẩu để dùng chung ứng
dụng): chỉ cho phép xem thông tin những khoản nợ trên các tài sản chung. Không cho
phép thêm mới, sử , xóa các khoản nợ.

3.2.6 Quản lý kế hoạch chi tiêu

 Mô tả chức năng:
Với cấp độ quản trị (Admin): cho phép xem danh sách các kế hoạch chi tiêu đ ng áp dụng
trong tháng, thêm mới, sử thông kế hoạch chi tiêu, xóa kế hoạch. Ngoài ra, cho phép
xem lại lịch sử những kế hoạch chi tiêu đã thực hiện theo thời gi n trong quá khứ.
Với cấp độ ngƣời dùng (user): (do Admin cung cấp mã số mật khẩu để dùng chung ứng
dụng): chỉ cho phép xem thông tin những kế hoạch chi tiêu trên các tài sản chung. Không
cho phép thêm mới, sử , xóa các kế hoạch chi tiêu.

3.2.7 Quản lý kế hoạch tiết kiệm

 Mô tả chức năng:
Với cấp độ quản trị (Admin): cho phép xem danh sách các khoản dự định tiết kiệm, thêm
mới, sử thông tin các kế hoạch tiết kiệm , xóa kế hoạch tiết kiệm. Bên cạnh đó, cho phép
xem lại lịch sử những kế hoạch tiết kiệm đã thực hiện đƣợc trong quá khứ.

37
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Với cấp độ ngƣời dùng (user): (do Admin cung cấp mã số mật khẩu để dùng chung ứng
dụng): chỉ cho phép xem thông tin những kế hoạch tiết kiệm trên các tài sản chung.
Không cho phép thêm mới, sử , xóa các kế hoạch tiết kiệm. .

3.2.8 Quản lý danh mục giao dịch

 Mô tả chức năng:
Với cấp độ quản trị (Admin): cho phép xem danh sách các mục gi o dịch trên từng tài
sản, thêm mới, sử thông tin mục gi o dịch, xó mục gi o dịch.
Với cấp độ ngƣời dùng (user): (do Admin cung cấp mã số mật khẩu để dùng chung ứng
dụng): chỉ cho phép xem thông tin những d nh mục gi o dịch trên các tài sản chung.
Không cho phép thêm mới, sử , xóa các d nh mục gi o dịch.

3.2.9 Quản lý tài khoản

 Mô tả chức năng:
Với cấp độ quản trị (Admin): cho phép xem danh sách các user mà Admin cung cấp, thêm
mới, xóa user. Cho phép quản trị th y đổi thông tin đăng xuất củ chính mình.
Với cấp độ ngƣời dùng (user): (do Admin cung cấp mã số mật khẩu để dùng chung ứng
dụng): chỉ cho phép cập nhật lại thông tin, ngƣời dùng đăng nhập và mật khẩu khi sử
dụng chƣơng trình. Không cho phép thêm mới h y xó ngƣời dùng.

3.3 CƠ SỞ DỮ LIỆU

3.3.1 Xây dựng các thực thể

 Thực thể User:


Diễn giải:chứ thông tin củ ngƣời dùng tƣơng tác với hệ thống b o gồm: usern me, mật
khẩu, tên hiển thị.
Bảng 3.1: User
User
_id (PK) Int (Autocrement)
idLogin Text, not null
Mật khẩu Text, not null
Username_display Text, null

38
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

 Thực thể DanhMucTS:


Diễn giải: chứ thông tin tài sản củ ngƣời dùng cần quản lý b o gồm: tên tài sản, loại tài
sản, giá trị hiện có, ghi chú, loại tiền, hình thức tài sản….
Bảng 3.2: D nh mục tài sản
DanhMucTS
_id (PK) Int (Autocrement)
tenTS Text, not null
loaiTS Text, not null
giatriTS Double, not null
Ghichu Time, null
Loaitien (FK) Int, not null
hinhthucTS Text, not null
 Thực thể Lo itien:
Diễn giải: chứ thông tin loại tiền tệ: tên tiền tệ, kí hiệu.
Bảng 3.3: Loại tiền
Loaitien
_id (PK) Int (Autocrement)
Ten Text, not null
Kihieu Text, not null
 Thực thể Gi oDich:
Diễn giải: chứ thông tin gi o dịch củ ngƣời dùng cần quản lý b o gồm: tên gi o dịch, số
tiền, ghi chú, ngƣời gi o dịch, ngày gi o dịch.
Bảng 3.4: Gi o dịch
Giaodich
_id (PK) Int (Autocrement)
Tengiaodich (FK) Int , not null
Sotien Text, not null
Ghichu Text, null
Nguoigiaodich Text, null
Ngaygiaodich DateTime, not null
39
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

 Thực thể D nhmucGD:


Diễn giải: chứ thông tin các d nh mục gi o dịch củ ngƣời dùng cần quản lý b o gồm:
tên loại gi o dịch, thuộc tài sản, thuộc loại, chỉnh sử …
Bảng 3.5: D nh mục gi o dịch
DanhmucGD
_id (PK) Int (Autocrement)
Tenloai Text, not null
Thuocloai Text, not null
Mataisan (FK) Int, not null
Chinhsua Boolean, not null
 Thực thể Keho chmu :
Diễn giải: chứ thông tin kế hoạch chi tiêu củ ngƣời dùng cần quản lý b o gồm: tên gi o
dịch, số tiền, đã chi, c n lại, bội chi, thời gi n hết hạn, ngày tạo
Bảng 3.6: Kế hoạch mu
Kehoachchitieu
_id (PK) Int (Autocrement)
Magiadich (FK) Int, not null
Sotien Double, not null
Dachi Double, not null
Conlai Double, not null
Boichi Double, not null
Thoigianhethan DateTime, not null
Ngaytôio DateTime, not null
 Thực thể Kehoachtietkiem:
Diễn giải: chứ thông tin kế hoạch tiết kiệm để mu sắm củ ngƣời dùng cần quản lý b o
gồm: tên kế hoạch, số tiền tiết kiệm, số tiền tiết kiệm đƣợc, cần thêm, thuộc tài sản…

40
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Bảng 3.7: Kế hoạch tiết kiệm


Kehoachtietkiem
_id (PK) Int (Autocrement)
Tenkehoach Text, not null
Sotientietkiem Double, not null
sotienBD Double, not null
Canthem Double, not null
Matôiisan (FK) Int, not null
 Thực thể CongNo:
Diễn giải: chứ thông tin liên qu n tới khoản v y h y mƣợn nợ củ ngƣời dùng cần quản
lý b o gồm: tên công nợ, số tiền v y, số tiền, giá trị, ghi chú. , ngày mƣợn, ngày trả, lãi
suất, chủ nợ, loại hình.
Bảng 3.8: Công nợ
Congno
_id (PK) Int (Autocrement)
Tencongno Text, not null
Sotienvay Double, not null
Sotien Double, not null
Giatri Double, not null
Ghichu Text, null
Ngaymuon DateTime, not null
Ngaytra DateTime, not null
Laisuat Double, null
Chuno Text, not null
Loaihinh Text, not null

3.3.2 Xây dựng các mối quan hệ kết hợp

Một số ối kết hợp chính.


 Mối thực thể DanhMucTS, DanhmucGD:
Thực thể th m gi : DanhMucTS, DanhmucGD.
Diễn giải: Mỗi tài sản sẽ có những mục gi o dịch thƣờng xuyên áp dụng trên tài sản đó.
Do đó mỗi mục gi o dịch sẽ lƣu vào thực thể DanhmucGD kèm theo là thông tin mục
41
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

gi o dịch thuộc loại thu nhập h y chi tiêu. Mỗi mục gi o dịch chỉ thuộc duy nhất một và
chỉ một tài sản. Mỗi tài sản có ít nhất một hoặc nhiều mục gi o dịch.
 Mối thực thể Kehoachmua, DanhmucTS:
Thực thể th m gi : Kehoachmua, DanhmucTS.
Diễn giải: Mỗi khi ngƣời dùng muốn lên kế hoạch tiết kiệm sẽ điền các thông tin đến kế
hoạch tiết kiệm S u đó đối tƣợng sẽ đƣợc lƣu vào trong thực thể Keho chmu Mỗi kế
hoạch tiết kiệm sẽ chỉ thuộc duy nhất trên một tài sản Mỗi tài sản có thể không có hoặc
nhiều kế hoạch tiết kiệm đƣợc áp dụng
 Mối thực thể GiaoDich, DanhmucGD, DanhmucTS:
Thực thể th m gi : GiaoDich, DanhmucGD.
Diễn giải: Mỗi khi ngƣời dùng thực hiện một gi o dịch thì thông tin gi o dịch đó sẽ đƣợc
lƣu trong thực thể Gi oDich, Mỗi gi o dịch chỉ thuộc duy nhất trên một tài sản Mỗi tài
sản có thể không có hoặc có nhiều gi o dịch thu chi hằng ngày
 Mối thực thể Congno, DanhmucTS, DanhmucGD:
Thực thể th m gi : Congno, DanhmucGD.
Diễn giải: Khi ngƣời dùng cho ngƣời khác v y nợ hoặc mƣợn nợ từ i đó thì thông tin về
công nợ sẽ đƣợc lƣu trong thực thể Congno Tùy theo công nợ đó là cho v y h y là mƣợn

42
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4 CÁC BIỂU ĐỒ HỆ THỐNG

3.4.1 Biểu đồ Usecase

Mô hình sau (sơ đồ tổng quát usec se) thể hiện ngƣời dùng có quyền th o tác trực tiếp
trên hệ thống ứng dụng nhƣ s u:

Hình 3.1: Biểu đồ Usec se thể hiện tƣơng tác củ User Admin và User thƣờng
43
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.1.1 Đăng nhập ứng dụng

Mô hình usecase s u thể hiện cơ chế ngƣời dùng đăng nhập trên hệ thống nhƣ s u:

Hình 3.2: Biểu đồ usec se đăng nhập

3.4.1.2 Quản lý danh mục tài sản

Mô hình usecase s u thể hiện ngƣời dùng quản lí tài sản trên hệ thống ứng dụng nhƣ s u:

Hình 3.3: Biểu đồ usec se d nh mục tài sản

44
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.1.3 Quản lý giao dịch

Mô hình usecase s u thể hiện ngƣời dùng quản lí gi o dịch trên hệ thống nhƣ s u:

Hình 3.4: Biểu đồ usec se d nh sách gi o dịch

3.4.1.4 Quản lý khoản vay

Mô hình usecase s u thể hiện ngƣời dùng quản lí khoản v y trên hệ thống nhƣ s u:

Hình 3.5: Biểu đồ usec se khoản v y


45
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.1.5 Quản lý khoản nợ

Mô hình usecase s u thể hiện ngƣời dùng quản lí khoản nợ trên hệ thống nhƣ s u:

Hình 3.6: Biểu đồ usec se khoản nợ

3.4.1.6 Quản lý kế hoạch mua

Mô hình usecase s u thể hiện ngƣời dùng quản lí kế hoạch mu trên hệ thống nhƣ s u:

Hình 3.7: Biểu đồ usec se kế hoạch mu


46
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.1.7 Quản lý kế hoạch tiết kiệm

Mô hình usecase s u thể hiện ngƣời dùng quản lí kế hoạch tiết kiệm trên hệ thống ứng
dụng nhƣ s u:

Hình 3.8: Biểu đồ usec se kế hoạch tiết kiệm

3.4.1.8 Chuyển tiền

Mô hình usecase s u thể hiện ngƣời dùng quản lí tài sản trên hệ thống ứng dụng nhƣ s u:

Hình 3.9: Biểu đồ usec se chuyển tiền


47
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.1.9 Quản lý tài khoản

Mô hình usecase s u thể hiện ngƣời dùng quản lí tài khoản trên hệ thống nhƣ s u:

Hình 3.10: Biểu đồ usec se quản lý tài khoản

3.4.2 Biểu đồ Class

3.4.2.1 Biểu đồ Class Tài sản

Hình 3.11: Biểu đồ cl ss tài sản


48
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.2.2 Biểu đồ Class Giao Dịch

Sơ đồ hình bên dƣới thể hiện sơ đồ cl ss củ thực thể Gi o dịch với các phƣơng thức xử lí
cùng các thuộc tính củ lớp

Hình 3.12: Biểu đồ cl ss gi o dịch

49
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.2.3 Biểu đồ class Quản lý vay

Sơ đồ hình bên dƣới thể hiện sơ đồ cl ss củ thực thể Quản lý v y với các phƣơng thức
xử lí cùng các thuộc tính củ lớp

Hình 3.13: Biểu đồ cl ss quản lý v y

50
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.2.4 Biểu đồ class Kế hoạch tiết kiệm

Sơ đồ hình bên dƣới thể hiện sơ đồ cl ss củ thực thể Kế hoạch tiết kiệm với các phƣơng
thức xử lí cùng các thuộc tính củ lớp

Hình 3.14: Biểu đồ cl ss kế hoạch tiết kiệm

51
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.3 Biểu đồ Sequence

3.4.3.1 Biểu đồ Sequence Đăng nhập ứng dụng

Sơ đồ tuần tự (sequence) hình bên dƣới thể hiện thứ tự các bƣớc đăng nhập vào hệ thống
nhƣ s u:
B c : Nhập vào usern me và mật khẩu đƣợc cung cấp;
B c : Hệ thống sẽ kiểm tr xem usern me có tồn tại trong hệ thống không?
B c : Hệ thống sẽ kiểm tr tính hợp lệ củ dự liệu đầu vào;
B c : Thông báo với ngƣời dùng trạng thái đăng nhập thành công h y thất bại

Hình 3.15: Biểu đồ sequence chức năng login

52
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.3.2 Biểu đồ Sequence thêm tài sản mới

Sơ đồ tuần tự (sequence) hình bên dƣới thể hiện thứ tự các bƣớc thêm tài sản mới vào hệ
thống nhƣ s u:
B c : Nhập vào thông tin tài sản mới theo các dữ liệu đầu vào từ form yêu cầu;
B c : Kiểm tr tính hợp lệ củ dữ liệu đầu vào
B c : Hệ thống sẽ kiểm tr xem có tồn tại tài sản đó trong cơ sở dữ liệu không? Nếu
hợp lệ thì tiến hành thêm mới vào cơ sở dữ liệu
B c , 5: Thông báo cho ngƣời biết về trạng thái thêm mới tài sản S u đó tắt màn hình
thêm mới tài sản

Hình 3.16: Biểu đồ sequence chức năng thêm tài sản

53
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.3.3 Biểu đồ Sequence thêm giao dịch mới

Sơ đồ tuần tự (sequence) hình bên dƣới thể hiện thứ tự các bƣớc thêm gi o dịch mới vào
hệ thống nhƣ s u:
B c : Nhập vào thông tin gi o dịch mới theo các dữ liệu đầu vào từ form yêu cầu;
B c : Kiểm tr tính hợp lệ củ dữ liệu đầu vào
B c : Hệ thống sẽ kiểm tr xem có tồn tại gi o dịch đó trong cơ sở dữ liệu không? Nếu
hợp lệ thì tiến hành thêm mới vào cơ sở dữ liệu
B c , 5: Thông báo cho ngƣời biết về trạng thái thêm mới gi o dịch. S u đó tắt màn
hình thêm mới gi o dịch

Hình 3.17: Biểu đồ sequence chức năng thêm gi o dịch mới

54
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.3.4 Biểu đồ Sequence thêm khoản vay mới

Sơ đồ tuần tự (sequence) hình bên dƣới thể hiện thứ tự các bƣớc thêm khoản v y vào hệ
thống nhƣ s u:
B c : Nhập vào thông tin khoản v y theo các dữ liệu đầu vào từ form yêu cầu;
B c : Kiểm tr tính hợp lệ củ dữ liệu đầu vào
B c : Hệ thống sẽ kiểm tr xem có tồn tại khoản v y đó trong cơ sở dữ liệu không?
Nếu hợp lệ thì tiến hành thêm mới vào cơ sở dữ liệu
B c , 5: Thông báo cho ngƣời biết về trạng thái thêm mới khoản v y S u đó tắt màn
hình thêm khoản v y.

Hình 3.18: Biểu đồ sequence chức năng thêm khoản v y

55
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.3.5 Biểu đồ Sequence thêm kế hoạch tiết kiệm

Sơ đồ tuần tự (sequence) hình bên dƣới thể hiện thứ tự các bƣớc thêm kế hoạch tiết kiệm
vào hệ thống nhƣ sau:
B c : Nhập vào thông tin kế hoạch tiết kiệm theo các dữ liệu đầu vào từ form yêu cầu;
B c : Kiểm tr tính hợp lệ củ dữ liệu đầu vào
B c : Hệ thống sẽ kiểm tr xem có tồn tại khoản kế hoạch tiết kiệm đó trong cơ sở dữ
liệu không? Nếu hợp lệ thì tiến hành thêm mới vào cơ sở dữ liệu
B c , 5: Thông báo cho ngƣời biết về trạng thái thêm mới khoản tiết kiệm S u đó tắt
màn hình thêm kế hoạch tiết kiệm.

Hình 3.19: Biểu đồ sequence chức năng thêm kế hoạch tiết kiệm

56
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.3.6 Biểu đồ Sequence xóa tài sản

Sơ đồ tuần tự (sequence) hình bên dƣới thể hiện thứ tự các bƣớc xó tài sản từ hệ thống
nhƣ s u:
B c :Chọn tài sản muốn xó từ d nh sách tài sản;
B c : Kiểm tr tính hợp lệ củ dữ liệu trong cơ sở dữ liệu;
B c : Nếu có tồn tại trong sơ sở dữ liệu thì tiến hành xó tài sản khỏi hệ thống;
B c : Thông báo cho ngƣời biết về trạng thái xó tài sản có thành công h y không S u
đó tắt màn hình di log xó tài sản

Hình 3.20: Biểu đồ sequence chức năng xó tài sản

57
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.3.7 Biểu đồ Sequence cập nhật tài sản

Sơ đồ tuần tự (sequence) hình bên dƣới thể hiện thứ tự các bƣớc cập nhật tài sản từ hệ
thống nhƣ s u:
B c :Chọn tài sản muốn cập nhật thông tin từ d nh sách tài sản;
B c : Kiểm tr tính hợp lệ củ dữ liệu trong cơ sở dữ liệu;
B c : Nếu có tồn tại trong sơ sở dữ liệu thì tiến hành cập nhật lại thông tin vào cơ sở dữ
liệu từ thông tin ngƣời dùng cung cấp;
B c ,5: Thông báo cho ngƣời biết về trạng thái cập nhật tài sản có thành công h y
không. S u đó tắt màn hình cập nhật tài sản

Hình 3.21: Biểu đồ sequence chức năng cập nhật tài sản

58
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.3.8 Biểu đồ Sequence cập nhật giao dịch

Sơ đồ tuần tự (sequence) hình bên dƣới thể hiện thứ tự các bƣớc cập nhật gi o dịch từ hệ
thống nhƣ s u:
B c :Chọn gi o dịch muốn cập nhật thông tin từ d nh sách gi o dịch;
B c : Kiểm tr tính hợp lệ củ dữ liệu trong cơ sở dữ liệu;
B c : Nếu có tồn tại trong sơ sở dữ liệu thì tiến hành cập nhật lại thông tin vào cơ sở dữ
liệu từ thông tin ngƣời dùng cung cấp;
B c ,5: Thông báo cho ngƣời biết về trạng thái cập nhật gi o dịch có thành công h y
không S u đó tắt màn hình cập nhật gi o dịch

Hình 3.22: Biểu đồ sequence chức năng cập nhật gi o dịch

59
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.4 Biểu đồ Activity

3.4.4.1 Biểu đồ Activity Đăng Nhập

Sơ đồ Activity bên dƣới thể hiện tổng qu n cách thức hoạt động củ việc đăng nhập vào
hệ thống ứng dụng nhƣ s u:

Hình 3.23: Biểu đồ ctivity đăng nhập ứng dụng

60
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.4.2 Biểu đồ Activity thêm tài sản

Sơ đồ Activity bên dƣới thể hiện tổng qu n cách thức hoạt động củ việc thêm tài sản vào
hệ thống ứng dụng nhƣ s u:

Hình 3.24: Biểu đồ ctivity thêm mới tài sản

61
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.4.3 Biểu đồ Activity thêm giao dịch

Sơ đồ Activity bên dƣới thể hiện tổng qu n cách thức hoạt động củ việc đăng nhập vào
hệ thống ứng dụng nhƣ s u:

Hình 3.25: Biểu đồ ctivity thêm gi o dịch

62
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.4.4 Biểu đồ Activity thêm kế hoạch chi tiêu

Sơ đồ Activity bên dƣới thể hiện tổng qu n cách thức hoạt động củ việc thêm kế hoạch
chi tiêu vào hệ thống ứng dụng nhƣ s u:

Hình 3.26: Biểu đồ ctivity thêm kế hoạch chi tiêu

63
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.4.5 Biểu đồ Activiy xóa tài sản

Sơ đồ Activity bên dƣới thể hiện tổng qu n cách thức hoạt động củ việc xó tài sản vào
hệ thống ứng dụng nhƣ s u:

Hình 3.27: Biểu đồ ctivity xóa tài sản

64
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.4.6 Biểu đồ Activity cập nhật tài sản

Sơ đồ Activity bên dƣới thể hiện tổng qu n cách thức hoạt động củ việc cập nhật tài sản
vào hệ thống ứng dụng nhƣ s u:

Hình 3.28: Biểu đồ activity cập nhật tài sản

65
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.4.7 Biểu đồ Activity cập nhật kế hoạch tiết kiệm

Sơ đồ Activity bên dƣới thể hiện tổng qu n cách thức hoạt động củ việc cập nhật kế
hoạch tiết kiệm vào hệ thống ứng dụng nhƣ s u:

Hình 3.29: Biểu đồ activity cập nhật kế hoạch tiết kiệm

66
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.4.4.8 Biểu đồ Activity đổi mật h u

Sơ đồ Activity bên dƣới thể hiện tổng qu n cách thức hoạt động củ việc đổi mật khẩu hệ
thống ứng dụng nhƣ s u:

Hình 3.30: Biểu đồ activity cập nhật kế hoạch tiết kiệm

67
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.5 KẾT QUẢ ĐẠT ĐƢỢC

3.5.1 Một số hình ảnh ứng dụng

Để th o tác với ứng dụng đầu tiên ngƣời dùng sẽ đăng nhập vào hệ thống Hình trên chính
là gi o diện cho phép ngƣời dùng đăng nhập với tài khoản và mật khẩu định sẵn Với
ngƣời dùng thƣờng do dmin cung cấp, vẫn có thể đăng nhập vào ứng dụng để th o tác
với những quyền mình đƣợc cấp

Hình 3.31: Login

68
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Hình 3 32 cho thấy các menu gi o diện củ ứng dụng, với cơ chế trƣợt từ trái qu phải rất
tiện sử dụng Tất cả các chức năng chính đƣợc quản lý tại màn hình gi o diện này

Hình 3.32: Menu gi o diện

69
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Hình bên trái chính là gi o diện tổng qu n về việc quản lý tài sản, với các thông tin cơ
bản củ loại tài sản cần đƣợc quản lý Màn hình sẽ hiển thị những thông tin cần thiết củ
tài sản nhƣ tên, loại tiền, số tiền hiện c n lại…

Hình 3.33: Màn hình quản lý tài sản

70
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Màn hình thêm mới một tài sản với những thông số đầu vào cho phép ngƣời dùng nhập
giá trị vào…S u khi điền đầy đủ thông tin ngƣời dùng sẽ lƣu vào ứng dụng

Hình 3.34: Thêm mới tài sản

71
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

Màn hình cập nhật tài sản, s u khi click chọn một tài sản cần cập nhật thì thông tin củ tài
sản đó sẽ đƣợc hiện thị tại đây Ở màn hình này có một số thông số đầu vào ngƣời dùng
có thể cập nhật lại, một số yếu tố sẽ không thể cập nhật S u khi điền xong thông tin
ngƣời dùng sẽ lƣu lại thông tin vừ cập nhật

Hình 3.35: Cập nhật tài sản

72
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.5.2 Sơ đồ liên kết các Activity

Hình 3.47: Sơ đồ liên kết các activity củ ứng dụng

73
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

3.6 KIẾN THỨC ĐẠT ĐƢỢC

Qu quá trình nghiên cứu và xây dựng ứng dụng giúp rút r đƣợc một số kinh nghiệm:
 Có kiến thức tổng quát về nền tảng công nghệ di động;
 Hiểu biết đƣợc qui trình làm một dự án phần mềm di động;
 Hiểu biết cách lập trình căn bản dành cho Android, làm quen với môi trƣờng- công
cụ lập trình dành cho Android
 Biết thêm về công nghệ XML, OOP…
 Cách th o tác với dữ liệu ứng dụng trong SQLite nhƣ thêm, sử , xó …. .
 Củng cố thêm kiến thức về lập trình hƣớng đối tƣợng

3.7 ƢU ĐIỂM VÀ HẠN CHẾ

 Ưu điể :
 Chƣơng trình giải quyết yêu cầu thực tế về bài toán trong cuộc sống hằng ngày.
 Gi o diện chƣơng trình thân thiện với ngƣời dùng
 Xây dựng các chức năng sát với thực tế Ứng dụng dễ bảo trì và nâng cấp hơn trong
tƣơng l i
 Hạn chế:
 Gi o diện chƣơng trình c n khá đơn giản, chƣ tùy chọn theo sở thích củ ngƣời
dùng
 Độ phân giải màn hình dành cho ứng dụng chỉ ở một số d ng máy, do đó cần có
thời gi n kiểm thử và sử lỗi thêm để hỗ trợ tốt cho tất cả các d ng máy chạy
ndroid có thể sử dụng ứng dụng tốt trong tƣơng l i

3.8 CÁC VẤN ĐỀ CHƢA GIẢI QUYẾT

Để các chức năng củ ứng dụng đƣợc hoàn thiện và sinh động cần thêm một số chức năng
mới nhƣ:
 S o lƣu dữ liệu ph ng trƣờng hợp ngƣời cài đặt lại ứng dụng, đảm bảo dữ liệu trƣớc
đó không bị mất
 Hỗ trợ thêm tính năng chuyển đổi tiền tệ, qui đổi tự động khi chuyển khoản
 Hỗ trợ thêm các phiên bản có thể cài đặt ứng dụng trong tƣơng l i

74
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN


KẾT LUẬN

Đề tài nghiên cứu về lập trình di động và xây dựng ứng dụng “ u n l tài chính” đã cung
cấp và demo, xây dựng tài liệu, cách xây dựng ứng dụng di động. Qu đó cung cấp tài liệu
hỗ trợ cho các cá nhân muốn tìm hiểu về công nghệ di động cũng nhƣ mong muốn xây
dựng một ứng dụng dự trên công nghệ này.
Ngoài ra, với ứng dụng “ u n l t i ch nh” sẽ giúp cho ngƣời dùng có thể quản lý tài
chính cá nhân, các gi o dịch thu chi hằng ngày. Từ đó giúp bạn có thể kiểm soát đƣợc tài
chính và nhìn lại cách thức thu chi củ cá nhân theo thời gi n.

HƢỚNG PHÁT TRIỂN

Phát triển thêm các module khác nhƣ: gi o dịch định kì có thông báo cho ngƣời dùng biết
đƣợc thông báo, s o chép đồng bộ dữ liệu trên SD c rd hoặc lƣu trữ trực tuyến.
Phát triển ứng dụng hỗ trợ chạy trên server th y vì chạy cục bộ trên từng chiếc điện thoại
hay tablet.
Khảo sát ý kiến ngƣời dùng để hoàn thiện, mở rộng thêm các chức năng cần thiết cho hệ
thống trong tƣơng l i. Bên cạnh đó cố gắng phát triển ứng dụng đƣ lên Google Play.

75
X y d ng ứng d ng “ u n l t i ch nh c nh n” trên thi t di đ ng

TÀI LIỆU THAM KHẢO


[1] Lauren Darcey Shane Conder. Android™ Wireless Application Development
Volume II: Advanced Topics Third Edition, 2012.
[2] Reto Meier. Professional Android 4 Application Development, John Wiley & Sons,
Inc, 2012.
[3] Website: http://androidapps. org. ua/androidintro_sampleapp_appearance. html
[4] Website: http://developer. android. com/index. html.
[5] Website: http://stackoverflow.com
[6] Wei- Meng- Lee. Beginning Android 4 Application Development, John Wiley & Sons,
Inc, 2012.

76

You might also like