Đồ án Tìm hiểu lập trình cơ sở với Android Firebase và ứng dụng

BỘ GIÁO DỤC VÀ ĐÀO TẠO  
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG  
-------o0o-------  
ISO 9001:2015  
ĐỒ ÁN TỐT NGHIỆP  
Nghành Công Nghệ Thông Tin  
Hải Phòng 2019  
BỘ GIÁO DỤC VÀ ĐÀO TẠO  
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG  
-------o0o-------  
TÌM HIỂU LẬP TRÌNH CƠ SỞ VỚI ANDROID FIREBASE  
VÀ ỨNG DỤNG  
ĐỒ ÁN TỐT NGHIỆP ĐẠI HC HỆ CHÍNH QUY  
Nghành Công Nghệ Thông Tin  
BỘ GIÁO DỤC VÀ ĐÀO TẠO  
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG  
-------o0o-------  
TÌM HIỂU LẬP TRÌNH CƠ SỞ VỚI ANDROID  
FIREBASE VÀ ỨNG DỤNG  
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành: Công nghệ Thông tin  
Sinh viên thực hiện : Hoàng Việt Anh  
Mã sinh viên  
: 1512111025  
Giáo viên hướng dẫn : Th.S Phùng Anh Tuấn  
CỘNG HOÀ XÃ HI CHỦ NGHĨA VIỆT NAM  
Độc lp - Tdo - Hạnh phúc  
BỘ GIÁO DỤC VÀ ĐÀO TẠO  
TRƯỜNG ĐI HỌC DÂN LẬP HẢI PHÒNG  
-------o0o-------  
NHIM VTHIT KTT NGHIP  
Sinh viên: Hoàng Việt Anh  
Lp : CT1901C  
Mã sinh viên :1512111025  
Nghành: Công Nghệ Thông Tin  
Tên đề tài: Tìm hiểu lập trình cơ sở với Android Firebase và ứng dng  
NHIM VỤ ĐỀ TÀI  
1.Nội dung và các yêu cầu cn gii quyết trong nhim vụ đề tài tốt nghip  
a. Ni dung  
-
-
-
-
Tìm hiểu hệ điều hành android.  
Tìm hiểu môi trường lập trình Android Studio.  
Tìm hiểu vlập trình android firebase.  
ng dụng các kỹ thuật đã tìm hiểu xây dựng chương trình ứng dng thc nghim.  
b. Các yêu cầu cn gii quyết  
-
-
Nắm được thao tác cơ bản với cơ sở dliu trong android firebase.  
Sdụng công cụ Android Studio để viết chương trình chạy trên điện thoi android  
-
Xây dựng được chương trình thực nghim quản lý quản lý danh bạ điện thoi,  
đóng gói chương trình thành file *.apk cho phép cài đặt và chạy trên điện thoi  
androidtht.  
2.Các số liu cn thiết để thiết kế, tính toán  
-
Sdng sliu thc tế ca danh bạ điện thoi HPU  
3.Địa điểm thc tp  
Trường Đại học Dân lập Hải Phòng  
CÁN BỘ HƯỚNG DẪN ĐỀ TÀI TỐT NGHIP  
Người hướng dn thnht:  
Họ và tên: Phùng Anh Tuấn  
Học hàm, học v: Thạc sĩ  
Cơ quan công tác: Khoa Công nghệ Thông tin  
Nội dung hướng dn:  
-
-
-
-
Tìm hiểu hệ điều hành android.  
Tìm hiểu môi trường lập trình Android Studio.  
Tìm hiểu vlp trình android firebase.  
ng dụng các kỹ thuật đã tìm hiểu xây dựng chương trình ứng dng thc nghim  
Người hướng dn thhai:  
Họ và tên: ……………………………………………………………………………..  
Học hàm, học v:………………………………………………………………………  
Cơ quan công tác:……………………………………………………………………..  
Nội dung hướng dn:  
…………………………………………………………………………………………  
…………………………………………………………………………………………  
…………………………………………………………………………………………  
Đề tài tốt nghiệp được giao ngày 01 tháng 7 năm 2019  
Yêu cầu phải hoàn thành trước ngày 21 tháng 9 năm 2019  
Đã nhận nhim vụ: Đ.T.T.N  
Đã nhận nhim vụ: Đ.T.T.N  
Cán bộ hướng dẫn Đ.T.T.N  
Sinh viên  
Hoàng Việt Anh  
Phùng Anh Tuấn  
Hải Phòng, ngày ............tháng.........năm 2019  
HIỆU TRƯỞNG  
GS.TS.NGUT Trn Hu Nghị  
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM  
Độc lp - Tdo - Hạnh phúc  
PHIU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DN TT NGHIP  
Họ và tên giảng viên: Phùng Anh Tuấn.  
Đơn vị công tác: Trường Đại học Dân lập Hải Phòng.  
Họ và tên sinh viên: Hoàng Việt Anh - Ngành: Công Nghệ Thông Tin  
Nội dung hướng dn:  
-
-
-
-
Tìm hiểu hệ điều hành android.  
Tìm hiểu môi trường lập trình Android Studio.  
Tìm hiểu vlập trình android firebase.  
ng dụng các kỹ thuật đã tìm hiểu xây dựng chương trình ứng dng thc nghim.  
1. Tinh thần thái độ của sinh viên trong quá trình làm đề tài tốt nghip  
-
-
-
Chưa chủ động trong nghiên cứu tài liệu phc vcho nội dung đồ án.  
Khả năng làm việc độc lập còn nhiều hn chế.  
Chưa làm chủ được nội dung đồ án.  
2. Đánh giá cht lượng ca đồ án/khóa lun (so vi ni dung yêu cầu đã đề ra  
trong nhim vụ Đ.T. T.N trên các mt lun, thc tin, tính toán sliệu…)  
-
-
-
Đã thực hiện được các nội dung đề ra trong đề cương.  
Nội dung đồ án có tính thực tế.  
Cần trình bày nội dung đồ án rõ ràng, logic hơn.  
3. Ý kiến ca giảng viên hướng dn tt nghip  
Đạt  
Không đạt  
Điểm:……………………………………...  
Hải Phòng, ngày ..… tháng 01 năm 2019  
Giảng viên hưng dn  
(Ký và ghi rõ họ tên)  
QC20-B18  
CỘNG HÒA XÃ HI CHỦ NGHĨA VIỆT NAM  
Độc lp - Tdo - Hạnh phúc  
PHIU NHẬN XÉT CỦA GIẢNG VIÊN CHẤM PHN BIN  
Họ và tên giảng viên: …………………………………………………………………...  
Đơn vị công tác: ………………………………………………………………………...  
Họ và tên sinh viên: ……………………………… Ngành: …………………………....  
Đề tài tốt nghip: ………………………………………………………………………..  
…………………………………………………………………………………………  
1. Phn nhận xét ca giảng viên chấm phn bin  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
2. Nhng mặt còn hn chế  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
...................................................................................................................................................................  
3. Ý kiến ca giảng viên chấm phn bin  
Được bo vệ  
Không được bo vệ  
Điểm:……………………………  
Hải Phòng, ngày …… tháng…… năm 2019  
Giảng viên chấm phn bin  
(Ký và ghi rõ họ tên)  
QC20-B18  
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
MC LC  
Sinh viên:Hoàng Việt Anh-CT1901C  
3
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
Sinh viên:Hoàng Việt Anh-CT1901C  
4
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
LI CẢM ƠN  
Để đồ án này đạt kết qutốt đẹp, em đã nhận được shtrợ, giúp đỡ ca nhiu  
cơ quan, tổ chức, cá nhân. Với tình cảm sâu sắc, chân thành, cho phép em được  
bày tỏ lòng biết ơn sâu sắc đến tt cả các cá nhân và cơ quan đã tạo điều kin  
giúp đỡ trong quá trình học tập và nghiên cứu làm đồ án. Trước hết em xin gi  
tới các thầy cô khoa Công nghệ - Thông tin trường Đại hc Dân Lập Hải Phòng  
lời chào trân trọng, lời chúc sức khỏe và lời cảm ơn sâu sắc. Vi sự quan tâm,  
dy d, chbo tận tình chu đáo của thầy cô, đến nay em đã có thể hoàn thành  
đồ án: "Tìm hiểu lập trình cơ sở dliu với Android Firebase và ứng dng". Đặc  
bit em xin gi li cảm ơn chân thành nhất ti thầy giáo – Ths. Phùng Anh Tuấn  
đã quan tâm giúp đỡ, hướng dẫn em hoàn thành tốt đồ án này trong thời gian  
qua. Em xin bày tỏ lòng biết ơn đến lãnh đạo Trưng Đại hc Quản Lý Và Công  
NghHải Phòng, Phòng Đào Tạo, các Khoa Phòng ban chức năng đã trực tiếp  
và gián tiếp giúp đỡ em trong suốt quá trình học tp ti trưng.  
Với điều kin thời gian cũng như kinh nghiệm còn hạn chế ca một sinh viên, đồ  
án này không thể tránh được nhng thiếu sót. Em rất mong nhn được schỉ  
bảo, đóng góp ý kiến của các thầy cô để em có điều kin bổ sung, nâng cao ý  
thc của mình, phục vtốt hơn công việc thc tế sau này.  
Xin chân thành cảm ơn!  
Hi Phòng ,ngày…tháng…năm 20…  
Sinh viên  
Hoàng Việt Anh  
Sinh viên:Hoàng Việt Anh-CT1901C  
5
 
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
Chương 1:  
Gii thiu vhệ điều hành Android  
1.1. Android là gì?  
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  
bảng. Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ  
tài chính từ Googlevà 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, 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. Ngoà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. Vào 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 toà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  
Sinh viên:Hoàng Việt Anh-CT1901C  
6
   
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
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ệ.  
1.2. Mô tả  
1.2.1. Giao din  
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 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  
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 (bàn  
làm việc) 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  
Sinh viên:Hoàng Việt Anh-CT1901C  
7
   
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
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ư 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ẽ luôn nằm đó  
cho đến khi người dùng đã đọc hoặc xóa nó đi.  
1.2.2. ng dng  
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 Cửa hàng Play 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. Cửa  
hàng Play đượ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 hoà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ừ Cửa hàng  
Play ướ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ú.  
Sinh viên:Hoàng Việt Anh-CT1901C  
8
 
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
Để 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.  
1.3. Phát triển  
Android được Google tự phát triển riêng cho đến khi những thay đổi và cập  
nhật đã hoàn thiện, khi đó mã nguồn mới được công khai.Mã nguồn này, nếu  
không sửa đổi, chỉ chạy trên một số thiết bị, thường là thiết bị thuộc  
dòng Nexus. Có nhiều thiết bị có chứa những thành phần được giữ bản quyền do  
nhà sản xuất đặt vào thiết bị Android của họ.  
1.3.1. Linux  
Android có một hạt nhân dựa trên nhân Linux phiên bản 2.6, kể từ Android  
4.0 Ice Cream Sandwich (bánh ngọt kẹp kem) trở về sau, là phiên bản 3.x,  
với middleware, thư viện API viết bằng C, còn phần mềm ứng dụng chạy trên  
một nền tảng ứng dụng gồm các thư viện tương thích với Java dựa trên Apache  
Harmony. Android sử dụng máy ảo Dalvik với một trình biên dịch động để chạy  
'mã dex' (Dalvik Executable) của Dalvik, thường được biên dịch sang Java  
bytecode. Nền tảng phần cứng chính của Android là kiến trúc ARM. Người ta  
cũng hỗ trợ x86 thông qua dự án Android x86, Google TV cũng sử dụng một  
phiên bản x86 đặc biệt của Android.  
Nhân Linux dùng cho Android đã được Google thực hiện nhiều thay đổi về kiến  
trúc so với nhân Linux gốc. Android không có sẵn X Window System cũng  
không hỗ trợ các thư viện GNU chuẩn, nên việc chuyển các ứng dụng hoặc thư  
viện Linux có sẵn sang Android rất khó khăn. Các ứng dụng C đơn giản  
SDL cũng được hỗ trợ bằng cách chèn những đoạn shim Java và sử dụng  
tương tự JNI, như khi người ta chuyển Jagged Alliance 2 sang Android.  
Một số tính năng cũng được Google đóng góp ngược vào nhân Linux, đáng chú  
ý là tính năng quản lý nguồn điện có tên wakelock, nhưng bị những người lập  
trình chính cho nhân từ chối vì họ cảm thấy Google không có định sẽ tiếp tục  
bảo trì đoạn mã do họ viết.Google thông báo vào tháng 4 năm 2010 rằng họ sẽ  
thuê hai nhận viên để làm việc với cộng đồng nhân Linux, nhưng Greg Kroah-  
Hartman, người bảo trì nhân Linux hiện tại của nhánh ổn định, đã nói vào tháng  
12 năm 2010 rằng ông ta lo ngại rằng Google không còn muốn đưa những thay  
Sinh viên:Hoàng Việt Anh-CT1901C  
9
   
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
đổi của mình vào Linux dòng chính nữa.Một số lập trình viên Android của  
Google tỏ ý rằng "nhóm Android thấy chán với quy trình đó," vì nhóm họ không  
có nhiều người và có nhiều việc khẩn cấp cần làm với Android hơn.  
Vào tháng 8 năm 2011, Linus Torvalds rằng "rốt cuộc thì Android và Linux  
cũng sẽ trở lại với một bộ nhân chung, nhưng điều đó có thể sẽ không xảy ra  
trong 4 hoặc 5 năm nữa".Vào tháng 12 năm 2011, Greg Kroah-Hartman thông  
báo kích hoạt Dự án Dòng chính Android, nhắm tới việc đưa một số driver, bản  
vá và tính năng của Android ngược vào nhân Linux, bắt đầu từ Linux 3.3. Linux  
cũng đưa tính năng autosleep (tự nghỉ hoạt động) và wakelocks vào nhân 3.5,  
sau nhiều nỗ lực phối trộn trước đó. Tương tác thì vẫn vậy nhưng bản hiện thực  
trên Linux dòng chính cho phép hai chế độ nghỉ: bộ nhớ (dạng nghỉ truyền thống  
mà Android sử dụng), và đĩa (là ngủ đông trên máy tính để bàn). Việc trộn sẽ  
hoàn tất kể từ nhân 3.8, Google đã công khai kho mã nguồn trong đó có những  
đoạn thử nghiệm đưa Android về lại nhân 3.8.  
Bộ lưu trữ flash trên các thiết bị Android được chia thành nhiều phân vùng, như  
"/system" dành cho hệ điều hành và "/data" dành cho dữ liệu người dùng và cài  
đặt ứng dụng. Khác với các bản phân phối Linux cho máy tính để bàn, người sở  
hữu thiết bị Android không được trao quyền truy cập root vào hệ điều hành và  
các phân vùng nhạy cảm như /system được thiết lập chỉ đọc. Tuy nhiên, quyền  
truy cập root có thể chiếm được bằng cách tận dụng những lỗ hổng bảo  
mật trong Android, điều mà cộng đồng mã nguồn mởthường xuyên sử dụng để  
nâng cao tính năng thiết bị của họ, kể cả bị những người ác ý sử dụng để  
Việc Android có được xem là một bản phân phối Linux hay không vẫn còn là  
vấn đề gây tranh cãi, tuy được Linux Foundation Chris DiBona, trưởng nhóm  
mã nguồn mở Google, ủng hộ. Một số khác, như linux-magazine.com thì không  
đồng ý, do Android không không hỗ trợ nhiều công cụ GNU, trong đó có glibc.  
1.3.2. 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 luôn 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  
Sinh viên:Hoàng Việt Anh-CT1901C  
10  
 
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
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 (tức là cũ nhất sẽ bị tắt  
trước). 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.3.3. Lch scp nht  
Google đưa ra các bản cập nhật lớn cho Android theo chu kỳ từ 6 đến 9 tháng,  
mà phần lớn thiết bị đều có thể nhận được qua sóng không dây Bản cập nhật lớn  
mới nhất là Android 9.0 Pie.  
So với các hệ điều hành cạnh tranh khác, như iOS, các bản cập nhật Android  
thường mất thời gian lâu hơn để đến với các thiết bị. Với những thiết bị không  
thuộc dòng Nexus Pixel, các bản cập nhật thường đến sau vài tháng kể từ khi  
phiên bản được chính thức phát hành. Nguyên nhân của việc này một phần là do  
sự phong phú về phần cứng của các thiết bị Android, nên người ta phải mất thời  
gian điều chỉnh bản cập nhật cho phù hợp, vì mã nguồn chính thức của Google  
chỉ chạy được trên những thiết bị Nexus chủ lực của họ. Chuyển Android sang  
những phần cứng cụ thể là một quy trình tốn thời gian và công sức của các nhà  
sản xuất thiết bị, những người luôn ưu tiên các thiết bị mới nhất và thường bỏ  
rơi các thiết bị cũ hơn. Do đó, những chiếc điện thoại thông minh thế hệ cũ  
thường không được cập nhật nếu nhà sản xuất quyết định rằng nó không đáng để  
bỏ thời gian, bất kể chiếc điện thoại đó có khả năng chạy bản cập nhật hay  
không. Vấn đề này còn trầm trọng hơn khi những nhà sản xuất điều chỉnh  
Android để đưa giao diện và ứng dụng của họ vào, những thứ này cũng sẽ phải  
làm lại cho mỗi bản cập nhật. Sự chậm trễ còn được đóng góp bởi nhà mạng, sau  
khi nhận được bản cập nhật từ nhà sản xuất, họ còn điều chỉnh thêm cho phù  
hợp với nhu cầu rồi thử nghiệm kỹ lưỡng trên hệ thống mạng của họ trước khi  
chuyển nó đến người dùng.  
Sinh viên:Hoàng Việt Anh-CT1901C  
11  
 
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
Việc thiếu các hỗ trợ hậu mãi của nhà sản xuất và nhà mạng đã bị những nhóm  
người dùng và các trang tin công nghệ chỉ trích rất nhiều. Một số người viết còn  
nói rằng giới công nghiệp do cái lợi về tài chính đã cố tình không cập nhật thiết  
bị, vì nếu thiết bị hiện tại không cập nhật sẽ thúc đẩy việc mua thiết bị mới, một  
thái độ được coi là "xúc phạm". The Guardian đã than phiền rằng phương cách  
phân phối bản cập nhật trở nên phức tạp chính vì những nhà sản xuất và nhà  
mạng đã cố tình làm nó như thế. Vào năm 2011, Google đã hợp tác cùng một số  
hãng công nghiệp và ra mắt "Liên minh Cập nhật Android", với lời hứa sẽ cập  
nhật thường xuyên cho các thiết bị trong vòng 18 tháng sau khi ra mắt. Tính đến  
năm 2012, người ta không còn nghe nhắc đến liên minh này nữa.  
1.3.4. Cộng đồng mã nguồn mở  
Android có một cộng đồng các lập trình viên và những người đam mê rất năng  
động. Họ sử dụng mã nguồn Android để phát triển và phân phối những phiên  
bản chỉnh sửa của hệ điều hành. Các bản Android do cộng đồng phát triển  
thường đem những tính năng và cập nhật mới vào nhanh hơn các kênh chính  
thức của nhà sản xuất/nhà mạng, tuy không được kiểm thử kỹ lưỡng cũng như  
không có đảm bảo chất lượng; cung cấp sự hỗ trợ liên tục cho các thiết bị cũ  
không còn nhận được bản cập nhật chính thức; hoặc mang Android vào những  
thiết bị ban đầu chạy một hệ điều hành khác, như HP Touchpad. Các bản  
Android của cộng đồng thường được root sẵn và có những điều chỉnh không phù  
hợp với những người dùng không rành rẽ, như khả năng ép xung hoặc tăng/giảm  
áp bộ xử lý của thiết bị. CyanogenMod là firmware của cộng đồng được sử dụng  
phổ biến nhất, và hoạt động như một tổ chức của số đông khác.  
Trước đây, nhà sản xuất thiết bị và nhà mạng tỏ ra thiếu thiện chí với việc phát  
triển firmware của bên thứ ba. Những nhà sản xuất còn thể hiện lo ngại rằng các  
thiết bị chạy phần mềm không chính thức sẽ hoạt động không tốt và dẫn đến tốn  
tiền hỗ trợ. Hơn nữa, các firmware đã thay đổi như CyanogenMod đôi khi còn  
cung cấp những tính năng, như truyền tải mạng (tethering), mà người dùng bình  
thường phải trả tiền nhà mạng mới được sử dụng. Kết quả là nhiều thiết bị bắt  
đầu đặt ra hàng rào kỹ thuật như khóa bootloaderhay hạn chế quyền truy cập  
root. Tuy nhiên, khi phần mềm do cộng đồng phát triển ngày càng trở nên phổ  
biến, và sau một thông cáo của Thư viện Quốc hội Hoa Kỳ cho phép "jailbreak"  
(vượt ngục) thiết bị di động, các nhà sản xuất và nhà mạng đã tỏ ra mềm mỏng  
hơn với các nhà phát triển thứ ba, thậm chí một số hãng như HTC, Motorola,  
Samsung Sony, còn hỗ trợ và khuyến khích phát triển. Kết quả của việc này  
Sinh viên:Hoàng Việt Anh-CT1901C  
12  
 
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
là dần dần nhu cầu tìm ra các hạn chế phần cứng để cài đặt được firmware  
không chính thức đã bớt đi do ngày càng nhiều thiết bị được phát hành  
với bootloader đã mở khóa sẵn hoặc có thể mở khóa, tương tự như điện thoại  
dòng Nexus, tuy rằng thông thường họ sẽ yêu cầu người dùng từ bỏ chế độ bảo  
hành nếu họ làm như vậy. Tuy nhiên, tuy được sự chấp thuận của nhà sản xuất,  
một số nhà mạng tại Mỹ vẫn bắt buộc điện thoại phải bị khóa.  
Việc mở khóa và "hack" điện thoại thông minh và máy tính bảng vẫn còn là tác  
nhân gây căng thẳng giữa cộng đồng và công nghiệp. Cộng đồng luôn biện hộ  
rằng sự hỗ trợ không chính thức ngày càng trở nên quan trọng trước việc nền  
công nghiệp không cung cấp các bản cập nhật thường xuyên và/hoặc ngưng hỗ  
trợ cho chính các thiết bị của họ.  
1.4. Bảo mật và tính riêng tư  
Các ứng dụng Android chạy trong một "hộp cát", 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 Mobile Security, AVG Technologies, 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ơ.  
Một nghiên cứu của công ty bảo mật Trend Micro đã liệt kê tình trạng lạm dụng  
dịch vụ trả tiền là hình thức phần mềm ác ý phổ biến nhất trên Android, trong đó  
tin nhắn SMS sẽ bị gửi đi từ điện thoại bị nhiễm đến một số điện thoại trả  
tiền mà người dùng không hề hay biết. 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  
Sinh viên:Hoàng Việt Anh-CT1901C  
13  
 
Tìm hiểu lập trình cơ sở dliu với android Firebase và ứng dng  
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. 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, 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 Wi-  
Fi, 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 ở 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.5. Giấy phép phát hành  
Mã nguồn của Android được cấp phép theo các giấy phép phần mềm mã nguồn  
mở tự do. Google đưa phần lớn mã nguồn (bao gồm cả các lớp mạng và điện  
thoại) theo Giấy phép Apache phiên bản 2.0, và phần còn lại, các thay đổi đối  
với nhân Linux, theo Giấy phép Công cộng GNU phiên bản 2. Liên minh Thiết  
Sinh viên:Hoàng Việt Anh-CT1901C  
14  
 
Tải về để xem bản đầy đủ
pdf 82 trang yennguyen 29/03/2022 7800
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Tìm hiểu lập trình cơ sở với Android Firebase và ứng dụng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfdo_an_tim_hieu_lap_trinh_co_so_voi_android_firebase_va_ung_d.pdf