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

XÂY DỰNG ỨNG DỤNG TIN TỨC COVID - 19 TRÊN HỆ ĐIỀU HÀNH ANDROID - Full 10 điểm

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

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA: CÔNG NGHỆ THƠNG TIN
----------

KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC
Tên đề tài:
XÂY DỰNG ỨNG DỤNG TIN TỨC COVID-19 TRÊN
HỆ ĐIỀU HÀNH ANDROID

Sinh viên thực hiện
TRẦN QUỐC SINH TÀI
MSSV: 2116100132
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
KHÓA: 2016 – 2020
Cán bộ hướng dẫn
ThS. NGUYỄN VĂN KHƯƠNG
MSCB:……..

Quảng Nam, tháng 5 năm 2020

1


Phần 1. MỞ ĐẦU
1.1. Lý do chọn đề tài
Trong thời đại công nghệ thông tin phát triển như hiện nay, điện thoại di động
là một thiết bị không thể thiếu trong đời sống con người và ngày càng có sự phát triển
mạnh mẽ. Các dịng điện thoại thơng minh được tích họp nhiều chức năng, cấu hình
mạnh và kích thước ngày càng nhỏ gọn đang dần chiếm lĩnh thị trường. Đáp ứng xu
thế phát triển đó, việc xây dựng các ứng dụng cho điện thoại di động đang là một


ngành công nghiệp mới đầy tiềm năng và hứa hẹn nhiều phát triển vượt bậc.
Có rất nhiều nền tảng di động phổ biến như IOS, WindowPhone, Android,
Symbia... nhưng Android của Google đang là hệ điều hành phổ biến nhất thế giới. Do
Android có mã nguồn mở nên 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.
Những ưu điểm dễ thấy của Android chính là khả năng tùy biến nhanh chóng, dễ làm
quen, ứng dụng hỗ ữợ phong phú tương thích với đa cấu hình phần cứng của các nhà
sản xuất. Bên cạnh đó nhu càu sử dụng các ứng dụng trên hệ điều hành Android trên
khắp thế giới là rất cao.
Cùng với sự phát triển mạnh mẽ của hệ điều hành Android và nhu cầu xem thông tin
tin tức dịch bệnh covid-19 mọi lúc mọi nơi của người sử dụng, đã có nhiều ứng dụng
tin tức được xây dựng trên hệ điều hành Android. Bên cạnh những ưu điểm thì một số
ứng dụng vẫn còn những mặt hạn chế như chỉ dừng lại ở mức tra cứu tin tức, tìm kiếm
tin tức, xem vị trí những nơi có khả năng chữa trị mà chưa đáp ứng được những đòi
hỏi cao hơn của người sử dụng. Ngoài việc tra các khu vực y tế ở các thành phố lớn,
nhiều người sử dụng muốn toàn bộ các khu vực trên cả nước, ngoài ra còn muốn xem
cả các nước trên thế giới... Xuất phát từ ý tưởng xây dựng một ứng dụng tin tức phát
huy những ưu điểm của những ứng dụng trước và hoàn thiện, phát triển thêm các chức
năng mà người dùng mong muốn, em đã chọn đề tài “Xây dựng ứng dụng tin tức
covid-19 trên hệ điều hành Android” làm khóa luận tốt nghiệp.
1.2. Tính mới của đề tài
- Sử dụng cơ sở dữ liệu trên website để xây dựng ứng dụng Android
1.3. Mục tiêu của đề tài
- 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ạo lập cơ sở dữ liệu trên internet.
1.4. Đối tượng và phạm vi nghiên cứu
- Ngơn ngữ lập trình di động Android
- Cơ sở dữ liệu trên internet
1.5. Phương pháp nghiên cứu

2


- Tìm hiểu mơi trường lập trình Android Studio
- Thực nghiệm lập trình web-service
1.6. Đóng góp của đề tài
- Giải quyết được vấn đề người dùng chọn lọc tin tức covid-19 từ các ứng dụng tin
tức thông thường
- Người dùng có thể trực tiếp xem vị trí khu vực có khả năng chữa trị bệnh covid-19
1.7. Cấu trúc đề tài
Cấu trúc của bài báo cáo này bao gồm các phần: Mục lục, Lời cảm ơn, Phần mở
đầu, Phần nội dung nghiên cứu, Phần kết luận và tài liệu tham khảo. Trong đó, phần
nội dung nghiên cứu gồm các nội dung chính sau.
- CHƯƠNG 1: TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID
Tìm hiểu hệ điều hành Android mã nguồn mở dựa trên nền tảng Linux để quản
lý ứng dụng là nội dung quan trọng trong việc xây dựng hệ thống.
- CHƯƠNG 2: KỸ THUẬT LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI ANDROID
STUDIO
Nghiên cứu cách sử dụng và kỹ thuật lập trình cơ sở dữ liệu internet để lưu trữ
dữ liệu hệ thống. Sử dụng kiểu dịnh dạng dữ liệu JSON đọc dữ liệu từ database và
truyền tải đến ứng dụng.
- CHƯƠNG 3: CHƯƠNG TRÌNH THỰC NGHIỆM
Là kết quả đạt được từ việc phân tích thiết kế hệ thống kết hợp với lý thuyết để
hoàn thành ứng dụng.

3


Phần 2. NỘI DUNG NGHIÊN CỨU
Chương 1: TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID

1.1. Giới thiệu hệ điều hành 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 Tổng cơng ty Android, 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 tháng 10 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 chun 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 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 75% thị phần điện thoại thông minh trên toàn thế giới vào thời
điểm quý 3 năm 2012, với tổng cộng 500 triệu 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

4


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. Lịch sử phát triển
Tổng công ty Android (Android, Inc.) được thành lập tại Palo Alto, California
vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty Danger), Rich Miner
(đồng sáng lập Tổng công ty Viễn thông Wildfire), Nick Sears (từng là Phó giám đốc
T-Mobile), và Chris White (trưởng thiết kế và giao diện tại WebTV) để phát triển, theo
lời của Rubin, "các thiết bị di động thơng minh hơn có thể biết được vị trí và sở thích
của người dùng". Dù những người thành lập và nhân viên đều là những người có tiếng
tăm, Tổng cơng tyAndroid hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang làm
phần mềm dành cho điện thoại di động. Trong năm đó, Rubin hết kinh phí. Steve
Perlman, một người bạn thân của Rubin, mang cho ông 10.000 USD tiền mặt nhưng từ
chối tham gia vào công ty.
Google mua lại Tổng công ty Android vào ngày 17 tháng 8 năm 2005, biến nó
thành một bộ phận trực thuộc Google. Những nhân viên của chủ chốt của Tổng công
ty Android, gồm Rubin, Miner và White, vẫn tiếp tục ở lại công ty làm việc sau thương
vụ này. Vào thời điểm đó khơng có nhiều thơng tin về Tổng cơng ty, nhưng nhiều
người đồn đốn rằng Google dự tính tham gia thị trường điện thoại di động sau bước đi
này. Tại Google, nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết bị di động
phát triển trên nền nhân Linux. Google quảng bá nền tảng này cho các nhà sản xuất
điện thoại và các nhà mạng với lời hứa sẽ cung cấp một hệ thống uyển chuyển và có
khả năng nâng cấp. Google đã liên hệ với hàng loạt hãng phần cứng cũng như đối tác
phần mềm, bắn tin cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ khác
nhau.
Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trường điện thoại di động
xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật báo phố Wall chú thích
rằng Google muốn đưa cơng nghệ tìm kiếm và các ứng dụng của họ vào điện thoại di

động và họ đang nỗ lực làm việc để thực hiện điều này. Các phương tiện truyền thông
truyền thống lẫn online cũng viết về tin đồn rằng Google đang phát triển một thiết bị
cầm tay mang thương hiệu Google. Một vài tờ báo cịn nói rằng trong khi Google vẫn
đang thực hiện những bản mô tả kỹ thuật chi tiết, họ đã trình diễn sản phẩm mẫu cho
các nhà sản xuất điện thoại di động và nhà mạng. Tháng 9 năm 2007,
5


InformationWeek đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp
một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động.
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset
Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments, Tập
đồn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola,
Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile được thành lập
với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động. Cùng ngày, Android
cũng được ra mắt với vai trò là sản phẩm đầu tiên của Liên minh, một nền tảng thiết bị
di động được xây dựng trên nhân Linux phiên bản 2.6. Chiếc điện thoại chạy Android
đầu tiên được bán ra là HTC Dream, phát hành ngày 22 tháng 10 năm 2008. Biểu
trưng của hệ điều hành Android mới là một con rôbốt màu xanh lá cây do hãng thiết kế
Irina Blok tại California vẽ.
Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều
hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành trước. Mỗi
bản nâng cấp được đặt tên lần lượt theo thứ tự bảng chữ cái, theo tên của một món ăn
tráng miệng; ví dụ như phiên bản 1.5 Cupcake (bánh bơng lan nhỏ có kem) tiếp nối
bằng phiên bản 1.6 Donut (bánh vòng). Phiên bản mới nhất hiện nay là 5.0 Lollipop.
Vào năm 2010, Google ra mắt loạt thiết bị Nexus—một dòng sản phẩm bao gồm điện
thoại thơng minh và máy tính bảng chạy hệ điều hành Android, do các đối tác phần
cứng sản xuất. HTC đã hợp tác với Google trong chiếc điện thoại thơng minh Nexus
đầu tiên, Nexus One. Kể từ đó nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm
này, như điện thoại Nexus 4 và máy tính bảng Nexus 10, lần lượt do LG và Samsung

sản xuất. Google xem điện thoại và máy tính bảng Nexus là những thiết bị Android chủ
lực của mình, với những tính năng phần cứng và phần mềm mới nhất của Android.
Năm 2014, Google công báo Android Wear, hệ điều hành dành cho các thiết bị đeo được.
1.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 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
6


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ừ 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ú.
1.4. Quản lý bộ nhớ Android

Vì các thiết bị Android được thiết kế để quản lý bộ nhớ (RAM) để giảm tối đa
mức 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 khinó đượ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ùngkhô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ứ
7


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.5. Nhân 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 và 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, và Google TV cũng sử dụng một phiên bản x86 đặc biệt của 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 đổ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. 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ảnhiệ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ẽ hồ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.
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 để cài virus và phần mềm ác ý.

1.6. Bảo mật và tính riêng tư của Android
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, 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ơ.
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 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
9


đã 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 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.
1.7. Các phiên bản của Android
Qua 12 năm phát triển, Google đã ghi được những bước tiến đáng kể, thể hiện ở con
số cứ 10 điện thoại thông minh được bán trên tồn cầu thì có 9 chiếc là chạy hệ điều
hành Android.
- Phiên bản Android 1.0 Android 1.0 (2008) lần đầu tiên phân phối ứng dụng thông
qua Android Market với 35 ứng dụng ra mắt. Google Maps đã sử dụng GPS, Wi-Fi
của điện thoại và Google Maps đã tích hợp sẵn trình duyệt Android.
- Phiên bản Android 1.5 Cupcake. Android 1.5 Cupcake (2009) là bản cập nhật lớn
đầu tiên của Android. Cupcake đã thêm các tiện ích cho màn hình chính, bàn phím ảo,
quay video trong máy ảnh, chức năng sao chép và dán vào trình duyệt web.
10



- Phiên bản Android 2.0 Eclair. Android 2.0 Eclair (2009) hỗ trợ tài khoản Google, cho
phép người dùng tìm kiếm nội dung theo từ khóa trong các tin nhắn văn bản, đồng thời
bổ sung hỗ trợ đa chạm và máy ảnh được cải tiến với đèn flash, zoom số.
- Phiên bản Android 2.2 Froyo. Android 2.2 Froyo (2010) giới thiệu Flash Player 10.1,
cho phép điện thoại phát video và phát trực tuyến âm thanh. Máy ảnh flash tương thích
Bluetooth giúp người dùng có thể sử dụng điện thoại của mình làm điểm phát sóng
Wi-Fi.
- Phiên bản Android 2.3 Gingerbread. Android 2.3 Gingerbread (2011), Android được
biết đến rộng rãi hơn nhờ tính năng giao tiếp trường gần (NFC), cho phép điện thoại
thông minh kết nối với các thiết bị lân cận khác. Hệ điều hành này cũng cho phép gọi
điện video bằng máy ảnh mặt trước và thêm trình quản lý tải xuống.
- Phiên bản Android Honeycomb 3.0. Android Honeycomb 3.0 (2011) là bản cập nhật
đầu tiên chỉ dành cho máy tính bảng, hỗ trợ đồ họa 3D, các tab trình duyệt cạnh nhau,
trò chuyện video với Google Talk, chia sẻ kết nối Bluetooth và chế độ tồn màn hình
trong thư viện ảnh.
- Phiên bản Android Ice Cream Sandwich 4.0. Android Ice Cream Sandwich 4.0
(2011) sáp nhập các hệ điều hành điện thoại và máy tính bảng. ICS cũng thêm nhận
dạng khn mặt để mở khóa điện thoại, phản hồi văn bản, tự động trả lời các cuộc gọi
bị từ chối và hiệu ứng video trực tiếp trong camera.
- Phiên bản Android Jelly Bean 4.1 – 4.3.1. Android Jelly Bean là tên được đặt cho 3
phiên bản chính của hệ điều hành Android mobile operating system developed by
Google, trải qua các phiên bản từ 4.1 đến 4.3.1. Android Jelly Bean 4.1 (2012) có hiệu
suất nhanh hơn, mượt mà hơn nhờ "Project Butter", cho phép người dùng tương tác
nhiều hơn, thông báo có thể mở rộng, trình duyệt Chrome mặc định... Hai phiên bản
cịn lại cũng có cùng tên Jelly Bean, được phát hành tương ứng vào tháng 10 năm
2012 và tháng 7 18 năm 2013, trong đó phiên bản 4.2 gồm tối ưu hóa, hỗ trợ nhiều
người dùng cho máy tính bảng, widget cho màn hình khóa, tùy chỉnh nhanh, và screen
saver, còn phiên bản 4.3 gồm các cải tiến và cập nhật nội bộ cho nền tảng Android.
- Phiên bản Android 4.4 KitKat. Android 4.4 KitKat (2013) có thêm biểu tượng cảm

xúc vào bàn phím Google, bộ nhớ nhỏ hơn để hỗ trợ điện thoại cấp thấp hơn, đồng
thời cho phép người dùng in văn bản khi đang di chuyển với tính năng Google Cloud
Print.
11


- Phiên bản Android 5.0 Lollipop. Android 5.0 Lollipop (2014) có giao diện phẳng
Material Design, thơng báo xuất hiện trên màn hình khóa. Hệ điều hành cũng có chế
độ ưu tiên, hỗ trợ đa người dùng, ghim màn hình...
- Phiên bản Android 6.0 Marshmallow. Android 6.0 Marshmallow (2015) bắt đầu có
chế độ Doze để tiết kiệm pin. Đồng thời bổ sung thêm hỗ trợ tích hợp cho đầu đọc vân
tay, USB Type-C và chế độ 4K cho các ứng dụng.
- Phiên bản Android 7.0 Nougat. Android 7.0 Nougat (2016) người dùng có thể xóa tất
cả ứng dụng của mình bằng một lần nhấn, đồng thời điều chỉnh tông màu da của biểu
tượng cảm xúc và hỗ trợ VR.
- Phiên bản Android 8.0 Oreo. Android 8.0 Oreo (2017) hay Android Oreo bổ sung
nhiều tác vụ trong ứng dụng ảnh. Ngoài ra còn mang đến trải nghiệm sao chép và dán
tốt hơn, cải thiện bảo mật và quản lý pin tốt hơn.
- Phiên bản Android Pie 9.0. Android Pie 9.0 (2018) tập trung nâng cấp phần mềm
giúp điện thoại Android hoạt động nhanh hơn và tiết kiệm pin. Android Pie bổ sung
công cụ trí tuệ nhân tạo (AI) vào các ứng dụng và lối tắt tiện lợi hơn cho người dùng.
- Phiên bản Android Pie 10. Android Pie 10 (2019) với những tính năng hồn tồn
mới như: chế độ mới tồn diện, thao tác điều hướng, khả năng kích hoạt Google
Assistant nhanh hơn, tăng cường bảo mật riêng tư. Ưu việc nhất là công nghệ HDR 10
+, nhờ vậy màu sắc màn hình sở hữu cơng nghệ này sẽ chân thực và sống động hơn
bao giờ hết.

12



Chương 2: KỸ THUẬT LẬP TRÌNH CƠ SỞ DỮ LIỆU VỚI
ANDROID STUDIO

Như các bạn đã biết, khi bạn xây dựng và phát triển một ứng dụng phân tán với
số lượng người dùng lên đến hàng trăm, hàng nghìn người ở nhiều địa điểm khác
nhau, khó khăn đầu tiên mà bạn gặp phải là sự giao tiếp giữa Client và Server bị
tường lửa (firewalls) và Proxy Server ngăn chặn lại. Hơn thế nữa, hiện nay rất nhiều
website không cho phép chúng ta lấy dữ liệu từ trang của họ. Như vậy, chúng ta cần
phát triển một thứ có thể giúp ta giải quyết vấn đề này và Web Services là một
phương pháp giải quyết vấn đề trên
3.1. Mạng Internet
Là một mạng máy tính tồn cầu có thể được truy nhập cơng cộng gồm các
mạng máy tính được liên kết với nhau. Hệ thống này truyền thơng tin theo kiểu nối
chuyển gói dữ liệu (Packet Switching) dựa trên một giao thức liên mạng được chuẩn
hóa (giao thức IP). Hệ thống này bao gồm hàng ngàn máy tính nhỏ hơn các doanh
nghiệp, của các viện nghiên cứu và các trường đại học, của người dùng cá nhân và
các chính phủ trên tồn cầu.
3.2. Giới thiệu Json
3.2.1. Định nghĩa Json
JSON là chữ viết tắt của Javascript Object Notation, đây là một dạng dữ liệu

tuân theo một quy luật nhất định mà hầu hết các ngơn ngữ lập trình hiện nay đều có
thể đọc được, ta có thể sử dụng lưu nó vào một file, một record trong CSDL rất dễ
dàng. JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều
nên tính ứng dụng của nó hiện nay rất là phổ biến, trong tương lai tới trong các ứng
dụng sẽ sử dụng nó là đa số.
Ví dụ dưới đây mình định nghĩa một chuỗi JSON lưu trữ thơng tin cá nhân, đây
là ví dụ quan trọng nhất của phần Json.
{
"id" : "1",

"hoten" : "Siêu nhân tài trân",
"namsinh" : "1998",
"diachi" : "328 Hùng Vương"
13


}
Như vậy cú pháp của JSON rất đơn giản là mỗi thơng tin dữ liệu sẽ có 2 phần
đó là key và value, điều này tương ứng trong CSDL là tên field và giá trị của nó ở một
record nào đó. Tuy nhiên nhìn qua thì đơn giản nhưng nếu ta mổ xẻ nó ra thì có một
vài điều như sau:
Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {} các key, value của JSON bắt
buộc phải đặt trong dấu nháy kép {"}, nếu ta đặt nó trong dấu nháy đơn thì đây khơng
phải là một chuỗi JSON đúng chuẩn. Nên trường hợp trong value có chứa dấu nháy
kép thì hãy dùng dấu (\) để đặt trước nó, ví dụ học \"json là gì\" tại website
freetuts.net.
Nếu có nhiều dữ liệu (nhiều cặp key => value) thì ta dùng dấu phẩy (,) để ngăn
cách các key của JSON nên đặt chữ cái khơng dấu hoặc số, dấu _ và khơng có khoảng
trắng, ký tự đầu tiên không nên đặt là số. Điều này rất giống với nguyên tắc đặt
tên biến trong PHP.
3.2.2. Kiểu dữ liệu trong JSON
Trong JSON, giá trị value phải thuộc một trong những kiểu dữ liệu sau:
▪ Number:

kiểu số bao gồm số nguyên và số thực

kiểu chuỗi, nội dung bao bởi cặp dấu nháy kép “, những ký tự đặt biệt

▪ String:


được escape bởi dấu \. Theo chuẩn JSON thì khơng sử dụng dấu nháy đơn như
Javascript để bọc chuỗi.
▪ Boolean:
▪ Array:

kiểu luận lý bao gồm 2 giá trị là true và false

kiểu mảng gồm các phần tử phân cách nhau bởi dấu phẩy ‘,’ và mảng

được bao bởi cặp dấu [ và ]
▪ Object:

kiểu đối tượng, gồm những cặp giá trị đi cùng nhau, mỗi cặp phân

cách bởi dấu phẩy ’,’, đối tượng được bao bởi cặp dấu { và }, cặp giá trị bao gồm tên
và giá trị được phân cách bởi dấu hai chấm ’:’
▪ Null:

giá trị null

▪ Kiểu

DateTime: Do JSON là một chuẩn chung có nghĩa là khơng phụ thuộc

nền tảng hay cơng nghệ vì vậy JSON khơng định ra một kiểu thời gian cụ thể, do mỗi
ngơn ngữ lập trình, mỗi nền tảng triển khai có sự quy định về kiễu dữ liệu ngày tháng
khác nhau, đơn cử như Javascript lưu trữ kiểu Date chỉ từ 1-1-1970 trở đi hoặc như
PHP thì khơng có kiểu dữ liệu Date, Date chỉ là một con số chỉ ra số millisecond tính
14



từ 1-1-1970 (với phiên bản 5.1.0 thì từ 13-12-1901) cịn .NET thì có giới hạn ngày gần
như rộng nhất. Chính vì khơng thể quy định được nên cách gửi / nhận kiểu dữ liệu
ngày tháng (Date) bằng JSON cũng khác nhau.
3.2.3. Phân giải JSON với PHP (JSON Parsing)
Cấu trúc dữ liệu JSON rất giống với mảng của PHP. PHP có các hàm dựng sẵn
để encode và decode dữ liệu JSON. Các hàm này lần lượt là json_encode() và
json_decode(). Cả hai chức năng chỉ hoạt động với dữ liệu chuỗi được mã hóa theo
chuẩn UTF-8.

a. Endcoding dữ liệu JSON bằng PHP
Trong PHP, chúng ta sử dụng hàm json_encode() được sử dụng để mã hóa một
giá trị thành định dạng JSON. Giá trị được mã hóa có thể là bất kỳ loại dữ liệu PHP
nào ngoại trừ tài nguyên như cơ sở dữ liệu hoặc liên quan đến xử lý tệp.
Ví dụ dưới đây trình bày cách mã hóa một mảng kết hợp PHP thành một đối
tượng JSON:
// Một mảng kết hợp
$tuoiNhanVien = array("Khánh"=>27, "Đức"=>32, "Huyền"=>35, "Thúy"=>30);
echo json_encode($tuoiNhanVien);
?>
Kết quả nhận được:
{"Khánh":27,"Đức":32,"Huyền":35,"Thúy":30}
Như bạn có thể thấy trong ví dụ trên, một mảng khơng kết hợp có thể được mã
hóa thành mảng hoặc đối tượng. Tuy nhiên, một mảng kết hợp luôn được mã hóa dưới
dạng đối tượng.

b. Decoding dữ liệu JSON bằng PHP
Decoding dữ liệu JSON đơn giản như Endcoding nó. Ta có thể sử dụng
hàm json_decode() của PHP để chuyển đổi chuỗi được mã hóa JSON thành kiểu dữ

liệu PHP phù hợp.
Ví dụ sau minh họa cách decoding hoặc chuyển đổi một đối tượng JSON thành
đối tượng trong PHP.
// Lưu dữ liệu JSON trong biến
15


$json = '{"Khánh":27,"Đức":32,"Huyền":35,"Thúy":30}';
var_dump(json_decode($json));
?>
Kết quả của ví dụ trên sẽ trơng giống như thế này:
object(stdClass)#1 (4) { ["Khánh"]=> int(27) ["Đức"]=> int(32) ["Huyền"]=> int(35)
["Thúy"]=> int(30) }
Theo mặc định, hàm json_decode() trả về một đối tượng. Tuy nhiên, ta có thể
tùy ý chỉ định tham số thứ hai $assoc chấp nhận giá trị boolean mà khi:


Được thiết lập là true => các đối tượng JSON thực được decoding thành
các mảng kết hợp.



Cịn mặc định là false

3.3. Kỹ thuật lập trình cơ sở dữ liệu internet trên thiết bị di động
3.3.1. Dịch vụ web và cơ sở dữ liệu trên internet
Trong thời đại của xã hội công nghệ thông tin và nền kinh tế tri thức, mọi hoạt
động của các cá nhân, tổ chức, doanh nghiệp đều mong muốn đạt hiệu quả cao, giành
được thắng lợi trong sự cạnh tranh gay gắt thì địi hỏi phải có những phương pháp để

có thể cung cấp, trao đổi những thông tin, tri thức cần thiết một cách nhanh chính xác,
thuận tiện và dễ dàng. Chính vì vậy việc tạo lập xây dựng lưu trữ thông tin, cơ sở dữ
liệu chung trên môi trường Internet là một việc vô cùng cần thiết để các cá nhân, tổ
chức, doanh nghiệp dễ dàng làm việc, thao tác với cơ sở dữ liệu mọi lúc, mọi nơi, mọi
thiết bị khi có Internet thay vì thao tác với cơ sở dữ liệu cục bộ trên máy tính tại một vị
trí.

- Ưu điểm của việc tạo lập cơ sở dữ liệu trên Internet:
• Cấu trúc phân tán dữ liệu thích hợp cho bản chất phân tán của nhiều người
dùng.

• Dữ liệu được chia sẻ trên mạng nhưng vẫn cho phép quản trị dữ liệu địa phương
(dữ liệu đặt tại mỗi trạm).

• Dữ liệu có tính tin cậy cao
• Dữ liệu có tính sẵn sàng cao.
• Hiệu năng của hệ thống được nâng cao hơn.
• Cho phép mở rộng các cá nhân, tổ chức, doanh nghiệp một cách linh hoạt.
16


- Nhược điểm:
• Việc thiết kế tạo lập cở sở dữ liệu phức tạp hơn.
• Chi phí cao hơn.
• Đảm bảo an ninh khó khăn hơn.
• Đảm bảo tính nhất quán dữ liệu khó hơn.
a. Hosting là gi?
Hosting là dịch vụ lưu trữ dữ và chia sẻ liệu trực tuyến, là khơng gian trên máy
chủ có cài đặt các dịch vụ Internet như world wide web (www), truyền file (FTP),
Mail… , ta có thể chứa nội dung trang web hay dữ liệu trên khơng gian đó.


b. Các loại hosting
- Shared hosting: là một dịch vụ lưu trữ rất nhiều các trang web trên một máy
chủ kết nối Internet. Mỗi trang web có phân vùng riêng của mình. Dịch vụ này là một
lựa chọn kinh tế cho nhiều người chia sẻ tổng chi phí bảo trì th máy chủ.
- Free web hosting: là một dịch vụ lưu trữ miễn phí, thường được quảng cáo hỗ
trợ. Free Hosting thường sẽ cung cấp một tên miền phụ (yoursite.example.com) hoặc
một thư mục (www.example.com/ ~ Yourname) hoặc ta có thể sử dụng tên miền của
chính mình và cần một vài điều kiện kèm theo. Ngược lại, dịch vụ thu phí thường sẽ
cung cấp một tên miền cấp thứ hai cùng với các máy chủ (www.tenmien.com). Nhiều
máy chủ miễn phí khơng cho phép sử dụng tên miền riêng. Hosting miễn phí bị một số
nước chặn khơng cho sử dụng như Trung Quốc.
- Reseller hosting: là một hình thức lưu trữ của máy chủ web mà chủ sở hữu tài
khoản có khả năng sử dụng tài khoản của mình để phân bổ lại ổ cứng lưu trữ và băng
thông để lưu trữ các trang web thay mặt cho bên thứ ba. Các đại lý mua một phần khơng
gian trên máy chủ sau đó họ bán cho khách hàng thu lợi nhuận.
- Email hosting: là một dịch vụ thư điện tử đặc biệt khác với các dịch vụ email
miễn phí hỗ trợ email hay webmail miễn phí. Doanh nghiệp thường chạy các dịch vụ
lưu trữ thư điện tử riêng (Email hosting) theo tên miền của họ để tăng uy tín và chứng
thực các thơng điệp mà họ gửi đi. Email hosting cho phép tùy chỉnh cấu hình và số
lượng lớn các tài khoản.
- File hosting: là dịch vụ lưu trữ tập tin trực tuyến, được thiết kế đặc biệt để lưu
trữ các nội dung tĩnh, điển hình là các tập tin lớn mà không phải là các trang web.
17


Thông thường họ cho phép truy cập qua giao thức FTP được tối ưu hóa phục vụ cho
nhiều người sử dụng.
- Windows hosting: là một dịch vụ lưu trữ, cho rất nhiều các trang web trên một
máy chủ chạy hệ điều hành Windows Sever kết nối Internet. Mỗi trang web có phân

vùng riêng của mình thường sử dụng các phần mền chia hosting như Hosting
Controller, Plesk...
- Linux hosting: là một dịch vụ lưu trữ rất nhiều các trang web trên một máy chủ
chạy hệ điều hành Linux kết nối Internet. Mỗi trang web có phân vùng riêng của mình
thường sử dụng các phần mền chia hosting như Cpanel, Direct Admin...
- VPS Hosting: một máy chủ riêng ảo (tiếng anh: Virtual Private Server), hay
VPS là một phương pháp phân vùng một máy chủ vật lý thành máy tính nhiều máy chủ
ảo, mỗi máy chủ đã có khả năng của riêng của mình chạy trên máy tính dành riêng. Mỗi
máy chủ ảo riêng của nó có thể chạy full-fledged hệ điều hành, và mỗi máy chủ độc lập có
thể được khởi động lại.

c. Các thông số cần biết trong hosting
Hệ điều hành (OS) của máy chủ : hiện tại có hai loại OS thông dụng là Linux và
Windows.
- Hosting Linux: là Hosting chun hỗ trợ ngơn ngữ lập trình PHP, Joomla, các
mã nguồn mở…
- Hosting Windows: Hosting Windows chuyên hỗ trợ về ngơn ngữ lập trình
ASP, ASP.Net, HTML …. vì các Ngơn ngữ này, chạy chuyên trên Hosting Windows,
do vậy khi load Web sẽ hỗ trợ tốt hơn, Hosting Windows có hỗ trợ ngơn ngữ PHP,
nhưng chủ yếu là hỗ trợ chính là ASP …
- Dung lượng: Bộ nhớ lưu trữ cho phép ta tải file lên host.
- Băng thông: Bandwidth (băng thông) là thông số chỉ dung lượng thông tin tối
đa mà website được lưu chuyển qua lại mỗi tháng.
- PHP: Phiên bản php hỗ trợ.
- Max file: Số lượng file tối đa có thể upload lên host.
- RAM: Bộ nhớ đệm.
- Addon domain: Số lượng domain ta có thể trỏ tới hosting.
- Subdomain: Số lượng tên miền phụ có thể tạo ra cho mỗi tên miền.
18



- Park domain: Số lượng tên miền có thể parking.
- Email accounts: Số lượng email đi kèm với hosting.
- FTP accounts: Số lượng FTP account ta có thể tạo và dùng nó upload dữ liệu
lên hosting.

d. Đăng ký mua và sử dụng hosting.
Tùy vào mục đích sử dụng của mỗi cá nhân, tổ chức và doanh nghiệp có thể chọn
các hình thức đăng ký mua, thuê hosting khác nhau tại rất nhiều các nhà cung cấp
hosting tại Việt Nam như:
- Mắt Bão – ODS
- PA Việt Nam
- DIGISTAR
- Nhân Hòa
- Viettel
Hiện nay cũng có một số hosting miễn phí phục vụ cho quá trình học tập nghiên
cứu như:
- HOSTINGER.VN
- 000WEBHOST.COM
- ATSPACE.COM
- AWARDSPACE.COM
- HOSTBUDDY.COM
e. Các bước đăng ký sử dụng hosting
VD: Đăng ký tại "000webhost.com"
- Đến địa chỉ: " />- Điền đầy đủ các thơng tin u cầu như hình:

19


- Sau khi điền đầy đủ thông tin, nhấp chuột vào “SIGN UP” đăng nhập email

kiểm tra hộp thư đến để xác nhận đăng ký thành công.

Sau khi nhấp chuột vào liên kết, ta sẽ được đưa đến trang tài khoản trên
000webhost.com.

20



×