TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KHOA HỌC MÁY TÍNH
LÝ THỊ DIỄM PHƢỢNG
XÂY DỰNG ỨNG DỤNG BÁN ĐỒNG HỒ
TRÊN NỀN TẢNG ANDROID
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
(ỨNG DỤNG PHẦN MỀM)
Đà Nẵng - 12/2021
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KHOA HỌC MÁY TÍNH
LÝ THỊ DIỄM PHƢỢNG
K13C04A006
XÂY DỰNG ỨNG DỤNG BÁN ĐỒNG HỒ
TRÊN NỀN TẢNG ANDROID
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
(ỨNG DỤNG PHẦN MỀM)
Giảng viên hƣớng dẫn: ThS. Ninh Khánh Chi
Đà Nẵng - 12/2021
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
LỜI CẢM ƠN
Trong thời gian làm đồ án tốt nghiệp, tơi đã nhận đƣợc nhiều sự giúp đỡ, đóng
góp ý kiến và chỉ bảo nhiệt tình của thầy cơ, gia đình và bạn bè.
Trƣớc hết, tơi xin gửi lời cảm ơn chân thành đến quý Thầy, Cô giáo trong Khoa
khoa học máy tính Trƣờng Đại Học cơng nghệ thơng tin và truyền thông Việt – Hàn,
đã dạy cho tôi kiến thức về các môn đại cƣơng cũng nhƣ các môn chun ngành, giúp
tơi có đƣợc cơ sở lý thuyết vững vàng và tạo điều kiện cho tôi trong suốt quá trình học
tập tại trƣờng.
Đặc biệt, tơi xin gửi lời cảm ơn sâu sắc đến cô Ninh Khánh Chi, ngƣời đã tận
tình hƣớng dẫn em để hồn thành đồ án tốt nghiệp này.
Tôi xin chân thành cảm ơn!
Cuối cùng tôi xin kính chúc q Thầy, Cơ lời chúc sức khỏe và đạt đƣợc nhiều
thành công tốt đẹp trong công việc.
Đà Nẵng, 25 tháng 12 năm 2021
Sinh viên thực hiện
Lý Thị Diễm Phƣợng
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
i
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
MỤC LỤC
LỜI CẢM ƠN ........................................................................................ i
MỤC LỤC ............................................................................................. ii
DANH MỤC BẢNG BIỂU ................................................................. iv
DANH MỤC HÌNH ẢNH .................................................................... v
MỞ ĐẦU .............................................................................................. 1
CHƢƠNG 1. CƠ SỞ LÝ THUYẾT .................................................. 3
1.1. NGÔN NGỮ LẬP TRÌNH JAVA ............................................. 3
1.2. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID..................... 3
1.2.1. Hệ điều hành Android ....................................................................... 3
1.2.2. Giao diện android .............................................................................. 5
1.2.3. Ứng dụng android ............................................................................. 6
1.2.4. Quản lý bộ nhớ.................................................................................. 7
1.2.5. Bảo mật và tính riêng tƣ.................................................................... 7
1.2.6. Phiên bản android ............................................................................. 9
1.2.7. Kiến trúc của hệ điều hành android ................................................ 10
1.3. GIỚI THIỆU VỀ MÔI TRƢỜNG PHÁT TRIỂN CỦA
ANDROID ....................................................................................... 12
1.3.1. Android studio ................................................................................ 12
1.3.2. Tạo Android project sử dụng Android Studio ................................ 13
1.3.3. Biên dịch và chạy ứng dụng ........................................................... 17
1.4. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL ........................... 21
1.5. KIẾN TRÚC LẬP TRÌNH REST API .................................... 22
CHƢƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ............ 25
2.1. MÔ TẢ YÊU CẦU................................................................... 25
2.1.1. Mơ tả đối tƣợng............................................................................... 25
2.1.2. Đặc tả chức năng chính ................................................................... 25
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
ii
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
2.1.3. Các bảng dữ liệu ............................................................................. 27
2.1.4. Mơ hình quan hệ dữ liệu ................................................................. 28
2.2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG .................................... 29
2.2.1. Biểu đồ use case .............................................................................. 29
2.2.2. Biểu đồ hoạt động ........................................................................... 31
2.2.3. Biểu đồ lớp ...................................................................................... 34
CHƢƠNG 3. XÂY DỰNG ỨNG DỤNG BÁN ĐỒNG HỒ TRÊN
NỀN TẢNG ANDROID.................................................................... 36
3.1. GIAO DIỆN ỨNG DỤNG CHO NGƢỜI DÙNG .................. 36
3.1.1. Giao diện đăng nhập ....................................................................... 36
3.1.2. Giao diện đăng ký ........................................................................... 37
3.1.3. Giao diện trang chủ ......................................................................... 38
3.1.4. Giao diện menu ............................................................................... 39
3.1.5. Giao diện sản phẩm......................................................................... 40
3.1.6. Giao diện xem chi tiết sản phẩm..................................................... 42
3.1.7. Giao diện chọn số lƣợng sản phẩm ................................................. 43
3.1.8. Giao diện giỏ hàng .......................................................................... 44
3.1.9. Giao diện thông tin đơn hàng.......................................................... 45
3.1.10. Giao diện liên hệ ............................................................................. 46
3.2. GIAO DIỆN WEB DÀNH CHO QUẢN TRỊ VIÊN .............. 47
3.2.1. Giao diện đăng nhập ....................................................................... 47
3.2.2. Giao diện thống kê .......................................................................... 47
3.2.3. Giao diện quản lý sản phẩm............................................................ 48
3.2.4. Giao diện quản lý ngƣời dùng ........................................................ 50
3.2.5. Giao diện quản lý đơn hàng ............................................................ 51
KIẾN NGHỊ VÀ KẾT LUẬN .......................................................... 53
DANH MỤC TÀI LIỆU THAM KHẢO............................................ 55
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
iii
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
DANH MỤC BẢNG BIỂU
Bảng 2.1. Bảng dữ liệu admin ............................................................................. 27
Bảng 2.2. Bảng dữ liệu user ................................................................................ 27
Bảng 2.3. Bảng dữ liệu loaisanpham .................................................................. 27
Bảng 2.4. Bảng dữ liệu sanpham......................................................................... 27
Bảng 2.5. Bảng dữ liệu donhang ......................................................................... 28
Bảng 2.6. Bảng dữ liệu chitietdonhang ............................................................... 28
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
iv
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
DANH MỤC HÌNH ẢNH
Hình 1.1. Biểu tƣợng Android............................................................................... 3
Hình 1.2. Kiến trúc hệ điều hành Android .......................................................... 10
Hình 1.3. Tạo project mới ................................................................................... 13
Hình 1.4. Tạo Activity......................................................................................... 13
Hình 1.5. Cấu trúc của project ............................................................................ 14
Hình 1.6. AndroidManifest.xml .......................................................................... 15
Hình 1.7. Thƣ mục Java ...................................................................................... 15
Hình 1.8. Thƣ mục res ......................................................................................... 16
Hình 1.9. Buil.gradle (Module:app) .................................................................... 17
Hình 1.10. Biểu tƣợng AVD Manager ................................................................ 17
Hình 1.11. Your virtual devices .......................................................................... 18
Hình 1.12. Select hardware ................................................................................. 18
Hình 1.13. System image .................................................................................... 19
Hình 1.14. Biểu tƣợng chạy AVD trong trình giả lập......................................... 19
Hình 1.15. Android Virtual Device (AVD) ........................................................ 20
Hình 1.16. Trình giả lập (emulator) .................................................................... 20
Hình 1.17. REST API – Giao tiếp client và sever............................................... 23
Hình 2.1. Mơ hình quan hệ dữ liệu ..................................................................... 28
Hình 2.2. Biểu đồ use case ngƣời dùng............................................................... 29
Hình 2.3. Biểu đồ use case quản trị viên ............................................................. 30
Hình 2.4. Biểu đồ hoạt động đăng ký tài khoản.................................................. 31
Hình 2.5. Biểu đồ hoạt động đăng nhập .............................................................. 32
Hình 2.6. Biểu đồ hoạt động xem chi tiết sản phẩm ........................................... 33
Hình 2.7. Biểu đồ hoạt động thêm sản phẩm vào giỏ hàng ................................ 33
Hình 2.8. Biểu đồ hoạt động đặt hàng................................................................. 34
Hình 2.9. Biểu đồ lớp .......................................................................................... 35
Hình 3.1. Giao diện đăng nhập ứng dung ........................................................... 36
Hình 3.2. Giao diện đăng ký ứng dụng ............................................................... 37
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
v
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
Hình 3.3. Giao diện trang chủ ứng dụng ............................................................. 38
Hình 3.4. Giao diện menu ứng dụng ................................................................... 39
Hình 3.5. Giao diện sản phẩm đồng hồ nam ....................................................... 40
Hình 3.6. Giao diện sản phẩm đồng hồ nữ.......................................................... 41
Hình 3.7. Giao diện xem chi tiết sản phẩm ......................................................... 42
Hình 3.8. Giao diện chọn số lƣợng sản phẩm ..................................................... 43
Hình 3.9. Giao diện giỏ hàng .............................................................................. 44
Hình 3.10. Giao diện thơng tin đơn hàng ............................................................ 45
Hình 3.11. Giao diện liên hệ ............................................................................... 46
Hình 3.12. Giao diện đăng nhập trang web quản trị viên ................................... 47
Hình 3.13. Giao diện thống kê ............................................................................ 47
Hình 3.14. Giao diện xem tất cả sản phẩm ......................................................... 48
Hình 3.15. Giao diện thêm sản phẩm .................................................................. 48
Hình 3.16. Giao diện cập nhật sản phẩm ............................................................ 49
Hình 3.17. Giao diện tìm kiếm sản phẩm ........................................................... 49
Hình 3.18. Giao diện xóa sản phẩm .................................................................... 50
Hình 3.19. Giao diện xem danh sách ngƣời dùng ............................................... 50
Hình 3.20. Giao diện xóa ngƣời dùng ................................................................. 51
Hình 3.21. Giao diện xem đơn hàng .................................................................. 51
Hình 3.22. Giao diện hóa đơn ............................................................................. 52
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
vi
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
MỞ ĐẦU
Thời đại công nghệ 4.0 tập trung vào sự phát triển của cơng nghệ. Tức là tất cả
những gì liên quan đến hệ thống vật lý không gian mạng Internet. Nhƣ chúng ta đều có
thể cảm nhận đƣợc, cơng nghệ đang và sẽ tạo ảnh hƣởng to lớn lên tất cả các ngành và
lĩnh vực đời sống. Kỷ nguyên khác biệt này tạo ra tốc độ phát triển sản xuất, xã hội
siêu nhanh chóng, phá bỏ các truyền thống trƣớc đây.
1. Lý do chọn đề tài
Ngày này những chiếc Smartphone đang dần mạnh mẽ và tiện lợi hơn, nó có thể
thay thế những nhu cầu của con ngƣời trƣớc đây trên các thiết bị vi tính. Theo thống
kê hiện có hơn 1 triệu ứng dụng trong các cửa hàng ứng dụng lớn là App Store và
Google Play, các doanh nghiệp trên toàn thế giới đã nhận ra tầm quan trọng của ứng
dụng di động trong công việc kinh doanh. Ứng dụng di động ban đầu đƣợc cung cấp
với mục đích thơng tin tổng qt và các dịch vụ thơng dụng trên mạng toàn cầu, bao
gồm email, lịch, danh bạ,… và thị trƣờng chứng khốn và thơng tin thời tiết. Tuy
nhiên, nhu cầu chung của những ngƣời sử dụng thiết bị di động và khả năng phát triển
của các nhà lập trình đã mở rộng thành các loại khác, chẳng hạn nhƣ trị chơi di
động, tự động hóa nhà máy, GPS và các dịch vụ dựa trên địa điểm, định vị và ngân
hàng, để theo dõi, mua vé và các ứng dụng y tế di động gần đây. Sự bùng nổ về số
lƣợng và sự đa dạng của các ứng dụng đã tạo ra 1 tiềm năng và thị trƣờng lớn. Cùng
với đó nhu cầu mua sắm mọi lúc mọi nơi, tham khảo sản phẩm, … của mọi ngƣời
ngày càng nhiều.
Bất chấp sự xuất hiện của các loại điện thoại thơng minh dễ dàng hiển thị thời
gian cùng các tính năng ƣu việt, nhu cầu sử dụng đồng hồ vẫn tiếp tục phổ biến và
phát triển bền vững, mang đến cơ hội kinh doanh tốt cho nhiều cá nhân, chủ đầu tƣ.
Với sự cạnh tranh gay gắt từ thị trƣờng, triển khai ý tƣởng kinh doanh đồng hồ
online là một cách để bạn có thể hiểu về thị trƣờng và kiếm tiền trực tuyến. Để có cái
nhìn tổng quan hơn về việc kiếm tiền online và cách để gia tăng thu nhập trên internet.
Từ những nhu cầu thực tế đó, em đã thực hiện đề tài “Xây dựng ứng dụng bán đồng
hồ trên nền tảng Android”.
2. Mục đích của đề tài
App bán hàng hay còn gọi là ứng dụng đƣợc thiết kế dành riêng cho các thiết bị
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
1
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
điện thoại thông minh. Với sự bùng nổ của thời đại công nghệ thông tin, hàng loạt điện
thoại thông minh mới với các hệ điều hành khác nhau đã ra đời kéo theo sự phát triển
của việc tạo app bán hàng kinh doanh online phát triển ngày càng mạnh mẽ, là một
trong những ứng dụng không thể nào thiếu đi đƣợc trong công việc kinh doanh.
Tạo ra một ứng dụng có thể cung cấp thơng tin về sản phẩm mới, mua sắm nhằm
cho ngƣời dùng sự tin tƣởng để mua sản phẩm thơng qua ứng dụng uy tín.
3. Đối tƣợng và phạm vi nghiên cứu
Đối tƣợng nghiên cứu: Các kiến thức về lập trình android, kết nối cơ sở dữ liệu
MySQL trên mơi trƣờng Nodejs và kiến trúc lập trình Rest API.
Phạm vi nghiên cứu: Các ứng dụng bán hàng trên Internet.
4. Phƣơng pháp thực hiện
Phƣơng pháp phân tích và tổng thích hợp thuyết: Phân tích và tổng hợp kiến thức
về lập trình.
Phƣơng pháp thu thập thơng tin: Sử dụng những thơng tin đã sẵn có từ các
nguồn internet, sách,…
Phƣơng pháp triển khai và xây dựng dự án.
5. Ý nghĩa khoa học và thực tiễn
Tạo ra đƣợc một ứng dụng bán đồng hồ đáp ứng và phụ vụ nhu cầu của con
ngƣời, có thể sử dụng mọi lúc, mọi nơi,.. Qua đó, có thể nâng cao kiến thức, kỹ năng
lập trình của mình, đồng thời hồn thành đồ án tốt nghiệp.
6. Cấu trúc đề tài
Ngoài phần mở đầu và kết luận thì đề tài có ba chƣơng:
– Chƣơng 1 Cơ sở lý thuyểt
– Chƣơng 2 Phân tích và thiết kế hệ thống
– Chƣơng 3 Xây dựng ứng dụng bán đồng hồ trên nền tảng android
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
2
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
CHƢƠNG 1. CƠ SỞ LÝ THUYẾT
1.1. NGƠN NGỮ LẬP TRÌNH JAVA
Java là một ngơn ngữ lập trình hƣớng đối tƣợng (OOP) và dựa trên các lớp
(class), ban đầu đƣợc phát triển bởi Sun Microsystems do James Gosling khởi xƣớng
và phát hành vào năm 1995. Khác với phần lớn ngôn ngữ lập trình thơng thƣờng, thay
vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java đƣợc
thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ đƣợc mơi trƣờng
thực thi (runtime environment) chạy.
Là một ngơn ngữ lập trình hƣớng đối tƣợng vì vậy Java cũng có 4 đặc điểm
chung sau đây:
Tính trừu tƣợng (Abstraction): là tiến trình xác định và nhóm các thuộc tính,
các hành động liên quan đến một thực thể đặc thù, xét trong mối tƣơng quan với ứng
dụng đang phát triển.
Tính đa hình (Polymorphism): cho phép một phƣơng thức có các tác động
khác nhau trên nhiều loại đối tƣợng khác nhau. Với tính đa hình, nếu cùng một phƣơng
thức ứng dụng cho các đối tƣợng thuộc các lớp khác nhau thì nó đƣa đến những kết
quả khác nhau. Bản chất của sự việc chính là phƣơng thức này bao gồm cùng một số
lƣợng các tham số.
Tính kế thừa (Inheritance): điều này cho phép các đối tƣợng chia sẻ hay mở
rộng các đặc tính sẵn có mà khơng phải tiến hành định nghĩa lại.
Tính đóng gói (Encapsulation): là tiến trình che giấu việc thực thi những chi
tiết của một đối tƣợng đối với ngƣời sử dụng đối tƣợng ấy.
1.2. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID
1.2.1. Hệ điều hành Android
Hình 1.1. Biểu tƣợng Android
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
3
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
Android là một hệ điều hành dựa trên nền tảng Linux đƣợc thiết kế dành cho các
thiết bị di động có màn hình cảm ứng nhƣ điện thoại thơng minh và máy tính bảng.
Ban đầu, Android đƣợc phát triển bởi Android, Inc. Với sự hỗ trợ tài chính
từ Google và sau này đƣợc chính Google mua lại vào năm 2005.
Android ra mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị
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 các thiết bị di động. Chiếc điện thoại đầu
tiên chạy Android đƣợc bán vào năm 2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo giấy phép
Apache. Chính mã nguồn mở cùng với một giấy phép khơng có nhiều ràng buộc đã
cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết
đƣợc điều chỉnh và phân phối Android một cách tự do. Ngồi ra, Android cịn có một
cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng
của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Tháng 10 năm 2012, có
khoảng 700.000 ứng dụng trên Android, và số lƣợt tải ứng dụng từ Google Play, cửa
hàng ứng dụng chính của Android, ƣớc tính khoảng 25 tỷ lƣợt.
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ
biến nhất thế giới, vƣợt qua Symbian OS vào quý 4 năm 2010, và đƣợc các công ty
công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh
chỉnh, và giá rẻ chạy trên các thiết bị cơng nghệ cao thay vì tạo dựng từ đầu. Kết quả
là mặc dù đƣợc thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện
trên TV, máy chơi game và các thiết bị điện tử khác. Bản chất mở của Android cũng
khích lệ một đội ngũ đơng đảo lập trình viên và những ngƣời đam mê sử dụng mã
nguồn mở để tạo ra những dự án do cộng đồng quản lý. Những dự án này bổ sung các
tính năng cao cấp cho những ngƣời dùng thích tìm tịi hoặc đƣa Android vào các thiết
bị ban đầu chạy hệ điều hành khác.
Android chiếm 87,7% thị phần điện thoại thơng minh trên tồn thế giới vào thời
điểm quý 2 năm 2017, với tổng cộng 2 tỷ thiết bị đã đƣợc kích hoạt và 1,3 triệu lƣợt
kích hoạt mỗi ngày. Sự thành cơng của hệ điều hành cũng khiến nó trở thành mục tiêu
trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộc chiến
điện thoại thông minh" giữa các công ty công nghệ.
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
4
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
1.2.2. Giao diện android
Giao diện ngƣời dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử
dụng cảm ứng chạm tƣơng tự nhƣ những động tác ngoài đời thực nhƣ vuốt, chạm, kéo
giãn và thu lại để xử lý các đối tƣợng trên màn hình. Sự phản ứng với tác động của
ngƣời dùng diễn ra gần nhƣ ngay lập tức, nhằm tạo ra giao diện cảm ứng mƣợt mà,
thƣờng dùng tính năng rung của thiết bị để tạo phản hồi rung cho ngƣời dùng. Những
thiết bị phần cứng bên trong nhƣ gia tốc kế, con quay hồi chuyển và cảm biến khoảng
cách đƣợc một số ứng dụng sử dụng để phản hồi một số hành động khác của ngƣời
dùng, ví dụ nhƣ điều chỉnh màn hình từ chế độ hiển thị dọc sang chế độ hiển thị ngang
tùy theo vị trí của thiết bị, hoặc cho phép ngƣời dùng lái xe đua bằng xoay thiết bị,
giống nhƣ đang điều khiển vô-lăng.
Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm khởi đầu
với các thơng tin chính trên thiết bị, tƣơng tự nhƣ khái niệm desktop trên máy tính để
bàn. Màn hính chính Android thƣờng gồm nhiều biểu tƣợng (icon) và tiện ích
(widget), biểu tƣợng ứng dụng sẽ mở ứng dụng tƣơng ứng, còn tiện ích hiển thị những
nội dung sống động, cập nhật tự động nhƣ dự báo thời tiết, hộp thƣ của ngƣời dùng,
hoặc những mẩu tin thời sự ngay trên màn hình chính. Màn hình chính có thể gồm
nhiều trang xem đƣợc bằng cách vuốt ra trƣớc hoặc sau, mặc dù giao diện màn hình
chính của Android có thể tùy chỉnh ở mức cao, cho phép ngƣời dùng tự do sắp đặt
hình dáng cũng nhƣ hành vi của thiết bị theo sở thích. Những ứng dụng do các hãng
thứ ba có trên Google Play và các kho ứng dụng khác còn cho phép ngƣời dùng thay
đổi "chủ đề" của màn hình chính, thậm chí bắt chƣớc hình dáng của hệ điều hành khác
nhƣ Windows Phone chẳng hạn. Phần lớn những nhà sản xuất, và một số nhà mạng,
thực hiện thay đổi hình dáng và hành vi của các thiết bị Android của họ để phân biệt
với các hãng cạnh tranh.
Ở phía trên cùng màn hình là thanh trạng thái, hiển thị thơng tin về thiết bị và
tình trạng kết nối. Thanh trạng thái này có thể "kéo" xuống để xem màn hình thông
báo gồm thông tin quan trọng hoặc cập nhật của các ứng dụng, nhƣ email hay tin
nhắn SMS mới nhận, mà không làm gián đoạn hoặc khiến ngƣời dùng cảm thấy bất
tiện. Trong các phiên bản đời đầu, ngƣời dùng có thể nhấn vào thơng báo để mở ra ứng
dụng tƣơng ứng, về sau này các thông tin cập nhật đƣợc bổ sung thêm tính năng, nhƣ
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
5
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
có khả năng lập tức gọi ngƣợc lại khi có cuộc gọi nhỡ mà không cần phải mở ứng
dụng gọi điện ra. Thơng báo sẽ ln nằm đó cho đến khi ngƣời dùng đã đọc hoặc xóa
nó đi.
1.2.3. Ứng dụng android
Android có lƣợng ứng dụng của bên thứ ba ngày càng nhiều, đƣợc chọn lọc và
đặt trên một cửa hàng ứng dụng nhƣ Google Play hay Amazon Appstore để ngƣời
dùng lấy về, hoặc bằng cách tải xuống rồi cài đặt tập tin ''APK'' từ trang web khác. Các
ứng dụng trên Play Store cho phép ngƣời dùng duyệt, tải về và cập nhật các ứng dụng
do Google và các nhà phát triển thứ ba phát hành. Play Store đƣợc cài đặt sẵn trên các
thiết bị thỏa mãn điều kiện tƣơng thích của Google. Ứng dụng sẽ tự động lọc ra một
danh sách các ứng dụng tƣơng thích với thiết bị của ngƣời dùng, và nhà phát triển có
thể giới hạn ứng dụng của họ chỉ dành cho những nhà mạng cố định hoặc những quốc
gia cố định vì lý do kinh doanh. Nếu ngƣời dùng mua một ứng dụng mà họ cảm thấy
khơng thích, họ đƣợc hồn trả tiền sau 15 phút kể từ lúc tải về, và một vài nhà mạng
cịn có khả năng mua giúp các ứng dụng trên Google Play, sau đó tính tiền vào trong
hóa đơn sử dụng hàng tháng của ngƣời dùng. Đến tháng 9 năm 2012, có hơn 675.000
ứng dụng dành cho Android, và số lƣợng ứng dụng tải về từ Play Store ƣớc tính đạt 25
tỷ.
Các ứng dụng cho Android đƣợc phát triển bằng ngôn ngữ Java sử dụng Bộ phát
triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ các công cụ dùng để
phát triển, gồm có cơng cụ gỡ lỗi, thƣ viện phần mềm, bộ giả lập điện thoại dựa
trên QEMU, tài liệu hƣớng dẫn, mã nguồn mẫu, và hƣớng dẫn từng bƣớc. Mơi trƣờng
phát triển tích hợp (IDE) đƣợc hỗ trợ chính thức là Eclipse sử dụng phần bổ sung
Android Development Tools (ADT). Các công cụ phát triển khác cũng có sẵn, gồm
có Bộ phát triển gốc dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc
C++, Google App Inventor, một môi trƣờng đồ họa cho những nhà lập trình mới bắt
đầu, và nhiều nền tảng ứng dụng web di động đa nền tảng phong phú.
Để vƣợt qua những hạn chế khi tiếp cận các dịch vụ của Google do sự Kiểm
duyệt Internet tại Cộng hòa Nhân dân Trung Hoa, các thiết bị Android bán tại Trung
Quốc lục địa thƣờng đƣợc điều chỉnh chỉ đƣợc sử dụng dịch vụ đã đƣợc duyệt.
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
6
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
1.2.4. Quản lý bộ nhớ
Vì các thiết bị Android chủ yếu chạy bằng pin, nên Android đƣợc thiết kế để
quản lý bộ nhớ (RAM) để giảm tối đa tiêu thụ điện năng, trái với hệ điều hành máy
tính để bàn ln cho rằng máy tính sẽ có nguồn điện khơng giới hạn. Khi một ứng
dụng Android khơng cịn đƣợc sử dụng, hệ thống sẽ tự động ngƣng nó trong bộ nhớ trong khi ứng dụng về mặt kỹ thuật vẫn "mở", những ứng dụng này sẽ không tiêu thụ
bất cứ tài nguyên nào (nhƣ năng lƣợng pin hay năng lƣợng xử lý) và nằm đó cho đến
khi nó đƣợc cần đến. Cách làm nhƣ vậy có lợi kép là vừa làm tăng khả năng phản hồi
nói chung của thiết bị Android, vì ứng dụng khơng nhất phải đóng rồi mở lại từ đầu,
vừa đảm bảo các ứng dụng nền không làm tiêu hao năng lƣợng một cách không cần
thiết.
Android quản lý các ứng dụng trong bộ nhớ một cách tự động: khi bộ nhớ thấp,
hệ thống sẽ bắt đầu diệt ứng dụng và tiến trình khơng hoạt động đƣợc một thời gian,
sắp theo thời điểm cuối mà chúng đƣợc sử dụng. Tiến trình này đƣợc thiết kế ẩn đi với
ngƣời dùng, để ngƣời dùng không cần phải quản lý bộ nhớ hoặc tự tay tắt các ứng
dụng. Tuy nhiên, sự che giấu này của hệ thống quản lý bộ nhớ Android đã dẫn đến sự
thịnh hành của các ứng dụng tắt chƣơng trình của bên thứ ba trên cửa hàng Google
Play, những ứng dụng kiểu nhƣ vậy đƣợc cho là có hại nhiều hơn có lợi.
1.2.5. Bảo mật và tính riêng tƣ
Các ứng dụng Android chạy trong một "sandbox", là một khu vực riêng rẽ với hệ
thống và không đƣợc tiếp cận đến phần còn lại của tài nguyên hệ thống, trừ khi nó
đƣợc ngƣời dùng trao quyền truy cập một cách công khai khi cài đặt. Trƣớc khi cài đặt
ứng dụng, Cửa hàng Play sẽ hiển thị tất cả các quyền mà ứng dụng địi hỏi: ví dụ nhƣ
một trị chơi cần phải kích hoạt bộ rung hoặc lƣu dữ liệu vào thẻ nhớ SD, nhƣng nó
khơng nên cần quyền đọc tin nhắn SMS hoặc tiếp cận danh bạ điện thoại. Sau khi xem
xét các quyền này, ngƣời dùng có thể chọn đồng ý hoặc từ chối chúng, ứng dụng chỉ
đƣợc cài đặt khi ngƣời dùng đồng ý.
Hệ thống hộp cát và hỏi quyền làm giảm bớt ảnh hƣởng của lỗi bảo mật hoặc lỗi
chƣơng trình có trong ứng dụng, nhƣng sự bối rối của lập trình viên và tài liệu hƣớng
dẫn còn hạn chế đã dẫn tới những ứng dụng hay địi hỏi những quyền khơng cần thiết,
do đó làm giảm đi hiệu quả của hệ thống này. Một số công ty bảo mật, nhƣ Lookout
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
7
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
Mobile Security, AVG Technologies, và McAfee, đã phát hành những phần mềm diệt
virus cho các thiết bị Android. Phần mềm này khơng có hiệu quả vì cơ chế hộp cát vẫn
áp dụng vào các ứng dụng này, do vậy làm hạn chế khả năng quét sâu vào hệ thống để
tìm nguy cơ.
Loại phần mềm ác ý khác hiển thị những quảng cáo khơng mong muốn và gây
khó chịu trên thiết bị, hoặc gửi thông tin cá nhân đến bên thứ ba khi chƣa đƣợc
phép. Đe dọa bảo mật trên Android đƣợc cho là tăng rất nhanh theo cấp số mũ; tuy
nhiên, các kỹ sƣ Google phản bác rằng hiểm họa từ phần mềm ác ý và virus đã bị thổi
phồng bởi các cơng ty bảo mật nhằm mục đích thƣơng mại, và buộc tội ngành công
nghiệp bảo mật đang lợi dụng sự sợ hãi để bán phần mềm diệt virus cho ngƣời
dùng.[103] Google vẫn giữ quan điểm rằng phần mềm ác ý thật sự nguy hiểm là cực kỳ
hiếm,[104] và một cuộc điều tra do F-Secure thực hiện cho thấy chỉ có 0,5% số phần
mềm ác ý Android là len vào đƣợc cửa hàng Google Play.
Google hiện đang sử dụng bộ quét phần mềm ác ý Google Bouncer để theo dõi
và quét các ứng dụng trên Cửa hàng Google Play. Nó sẽ đánh dấu các phần mềm bị
nghi ngờ và cảnh báo ngƣời dùng về những vấn đề có thể xảy ra trƣớc khi họ tải nó về
máy. Android phiên bản 4.2 Jelly Bean đƣợc phát hành vào năm 2012 cùng với các
tính năng bảo mật đƣợc cải thiện, bao gồm một bộ quét phần mềm ác ý đƣợc cài sẵn
trong hệ thống, hoạt động cùng với Google Play nhƣng cũng có thể quét các ứng dụng
đƣợc cài đặt từ nguồn thứ ba, và một hệ thống cảnh báo sẽ thông báo cho ngƣời dùng
khi một ứng dụng cố gắng gửi một tin nhắn vào số tính tiền, chặn tin nhắn đó lại trừ
khi ngƣời dùng cơng khai cho phép nó.
Điện thoại thơng minh Android có khả năng báo cáo vị trí của điểm truy cập WiFi, phát hiện ra việc di chuyển của ngƣời dùng điện thoại, để xây dựng những cơ sở dữ
liệu có chứa vị trí của hàng trăm triệu điểm truy cập. Những cơ sở dữ liệu này tạo nên
một bản đồ điện tử để tìm vị trí điện thoại thơng minh, cho phép chúng chạy các ứng
dụng nhƣ Foursquare, Google Latitude, Facebook Places, và gửi những đoạn quảng
cáo dựa trên vị trí. Phần mềm theo dõi của bên thứ ba nhƣ TaintDroid, một dự án
nghiên cứu trong trƣờng đại học, đơi khi có thể biết đƣợc khi nào thông tin cá nhân bị
gửi đi từ ứng dụng đến các máy chủ đặt ở xa. Bản chất mã nguồn mở của Android cho
phép những nhà thầu bảo mật lấy những thiết bị sẵn có rồi điều chỉnh để sử dụng ở
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
8
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
mức độ bảo mật cao hơn. Ví dụ nhƣ Samsung đã cộng tác với General Dynamics sau
khi họ thâu tóm Open Kernel Labs để xây dựng lại Jellybean trên nền bộ vi kiểm soát
dành cho dự án "Knox".
1.2.6. Phiên bản android
Hiện Android là một thƣơng hiệu của Google. Có khả năng tùy biến rất cao và có
thể chạy trên nhiều thiết bị, nhiều kiến trúc vi xử lý (ARM / x86). Tính đến nay,
Android đã có các phiên bản (kèm tên mã) lần lƣợt là:
Android 1.5 Cupcake
Android 1.6 Donut
Android 2.1 Eclair
Android 2.2 Froyo
Android 2.3 Gingerbread
Android 3.2 Honeycomb – Phiên bản Android đầu tiên đƣợc thiết kế cho máy
tính bảng
Android 4.0 Ice Cream Sandwich
Android 4.1 Jelly Bean
Android 4.2 Jelly Bean
Android 4.3 Jelly Bean
Android 4.4 KitKat
Android 5.0 Lollipop
Android 6.0 Marshmallow
Android 7.0 Nougat
Android 8 Oreo
Android 9 Pie
Android 10
Android 11
Android 12
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
9
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
1.2.7. Kiến trúc của hệ điều hành android
Hình 1.2. Kiến trúc hệ điều hành Android
Nhân Linux (Linux Kernel)
Nền tảng của kiến trúc hệ điều hành Android là nhân Linux. Ví dụ: Android
Runtime (ART) dựa trên nhân Linux cho các chức năng cơ bản nhƣ phân luồng và
quản lý bộ nhớ cấp thấp.
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
10
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
Bằng cách sử dụng nhân Linux, Android có thể tận dụng các tính năng bảo mật
chính và cho phép các nhà sản xuất thiết bị phát triển trình điều khiển phần cứng.
Lớp trừu tƣợng phần cứng (Hardware Abstraction Layer – HAL)
Lớp trừu tƣợng phần cứng (Hardware Abstraction Layer – HAL) cung cấp các
giao diện tiêu chuẩn thực hiện các khả năng của phần cứng thiết bị với khung API Java
cấp cao hơn. HAL bao gồm nhiều mô-đun, mỗi mô-đun thực hiện một giao diện cho
một loại thành phần phần cứng cụ thể, chẳng hạn nhƣ mô-đun camera hoặc bluetooth.
Khi một API thực hiện truy cập phần cứng của thiết bị, hệ thống Android sẽ tải môđun cho thành phần phần cứng đó.
Thời gian chạy Android (Android Runtime)
Đối với các thiết bị chạy Android phiên bản 5.0 (API cấp 21) trở lên, mỗi ứng
dụng chạy trong quy trình riêng và với phiên bản Android Runtime (ART) riêng. ART
đƣợc viết để chạy nhiều máy ảo trên các thiết bị có bộ nhớ thấp bằng cách thực thi các
tệp DEX, một định dạng bytecode đƣợc thiết kế đặc biệt cho Android đƣợc tối ƣu hóa
cho bộ nhớ tối thiểu.
Một số tính năng chính của ART bao gồm:
– Biên dịch trƣớc thời gian (AOT) và đúng lúc (JIT).
– Thu gom rác tối ƣu hóa (GC).
– Trên Android 9 (API cấp 28) trở lên, chuyển đổi tệp định dạng Dalvik
Executable (DEX) của gói ứng dụng thành mã máy nhỏ gọn hơn.
– Hỗ trợ gỡ lỗi tốt hơn, bao gồm trình biên dịch lấy mẫu chuyên dụng, các ngoại
lệ chẩn đoán chi tiết và báo cáo sự cố cũng nhƣ khả năng thiết lập các điểm theo dõi để
giám sát các trƣờng cụ thể.
Trƣớc phiên bản Android 5.0 (API cấp 21), Dalvik là Android runtime. Nếu ứng
dụng của bạn chạy tốt trên ART thì ứng dụng đó cũng sẽ hoạt động trên Dalvik nhƣng
điều ngƣợc lại chƣa hẳn đã đúng.
Android cũng bao gồm một bộ thƣ viện cung cấp hầu hết các chức năng của ngơn
ngữ lập trình Java, bao gồm một số tính năng của ngôn ngữ Java 8 mà khung API Java
sử dụng.
Khung API Java (Java API Framework)
Tồn bộ tính năng có sẵn của hệ điều hành Android thơng qua các API đƣợc viết
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
11
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
bằng ngôn ngữ Java. Các API này tạo thành các khối xây dựng mà bạn cần để tạo ứng
dụng Android bằng cách đơn giản hóa việc sử dụng lại các thành phần và dịch vụ hệ
thống mô-đun, cốt lõi, bao gồm những điều sau:
– Hệ thống xem phong phú và có thể mở rộng mà bạn có thể sử dụng để xây dựng
giao diện ngƣời dùng của ứng dụng.
– Quản lý tài nguyên, cung cấp quyền truy cập vào tài nguyên không code.
– Quản lý thông báo cho phép tất cả các ứng dụng để cảnh báo hiển thị tùy chỉnh
trong thanh trạng thái.
– Hoạt động quản lý để quản lý vòng đời của ứng dụng và cung cấp chuyển
hƣớng trở lại màn hình.
– Nhà cung cấp nội dung cho phép ứng dụng truy cập dữ liệu từ các ứng dụng
khác hoặc chia sẻ dữ liệu của riêng họ.
– Các nhà phát triển có tồn quyền truy cập vào cùng một API khung mà các ứng
dụng hệ thống Android sử dụng.
Ứng dụng hệ thống (System Apps)
Android đi kèm với một tập hợp các ứng dụng cốt lõi cho email, nhắn tin SMS,
lịch, trình duyệt internet, danh bạ… Các ứng dụng đi kèm với nền tảng khơng có trạng
thái đặc biệt. Vì vậy, ứng dụng của bên thứ ba có thể trở thành trình duyệt web mặc
định của ngƣời dùng, trình nhắn tin SMS hoặc thậm chí là bàn phím mặc định của
ngƣời dùng.
1.3. GIỚI THIỆU VỀ MÔI TRƢỜNG PHÁT TRIỂN CỦA ANDROID
1.3.1. Android studio
Android Studio là môi trƣờng phát triển tích hợp (IDE) chính thức dành cho phát
triển nền tảng Android.
Nó đƣợc ra mắt vào ngày 16 tháng 5 năm 2013 tại hội nghị Google I/O. Android
Studio đƣợc phát hành miễn phí theo giấy phép Apache Licence 2.0.
Android Studio ở giai đoạn truy cập xem trƣớc sớm bắt đầu từ phiên bản 0.1 vào
tháng 5.2013, sau đó bƣớc vào giai đoạn beta từ phiên bản 0.8 đƣợc phát hành vào
tháng 6 năm 2014. Phiên bản ổn định đầu tiên đƣợc ra mắt vào tháng 12 năm 2014, bắt
đầu từ phiên bản 1.0.
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
12
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
Dựa trên phần mềm IntelliJ IDEA của JetBrains, Android Studio đƣợc thiết kế
đặc biệt để phát triển ứng dụng Android. Nó hỗ trợ các hệ điều hành Windows, Mac
OS X và Linux, và là IDE chính thức của Google để phát triển ứng dụng Android gốc
để thay thế cho Android Development Tools (ADT) dựa trên Eclipse.
1.3.2. Tạo Android project sử dụng Android Studio
Tạo project
– Khởi động Android Studio => Chọn File => New => New Project.
Hình 1.3. Tạo project mới
– Chọn phone and tabet => Next.
Hình 1.4. Tạo Activity
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
13
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
– Nhập tên ứng dụng.
– Chỉ định thƣ mục chứa project tại Save Location.
– Chọn ngôn ngữ.
– Chọn minimun SDK.
– Chọn finsh.
Cấu trúc của một Project
Hình 1.5. Cấu trúc của project
AndroidManifest.xml
– Nơi khai báo các Activity trong ứng dụng.
– Quy định Activity nào thực hiện đầu tiên.
– Cấp quyền cho ứng dụng nhƣ quyền truy cập internet, quyền ghi thẻ nhớ.
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
14
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
Hình 1.6. AndroidManifest.xml
Hoạt động chủ yếu (thƣ mục java)
Hình 1.7. Thƣ mục Java
– Mỗi activity tƣơng ứng với một form.
– Là nơi viết code bằng java.
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
15
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
Thƣ mục res
Hình 1.8. Thƣ mục res
Build.gradle (Module: app) trong Gradle Scripts
– Khai báo thƣ viện sử dụng.
– Qui định phiên bản SDK.
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
16
Xây dựng ứng dụng bán đồng hồ trên nền tảng Android
Hình 1.9. Buil.gradle (Module:app)
1.3.3. Biên dịch và chạy ứng dụng
Tạo trình giả lập (Emulator)
Hình 1.10. Biểu tƣợng AVD Manager
– Chọn AVD Manager.
Your virtial device
– Chọn creater virtual device.
SVTH: Lý Thị Diễm Phƣợng – K13C04A006
17