Báo cáo bài tập lớn môn Hệ điều hành nội dung đề tài "Hệ điều hành Android"

Báo cáo bài tập lớn môn Hệ điều hành nội dung đề tài "Hệ điều hành Android" của Học viện Công nghệ Bưu chính Viễn thông với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

lOMoARcPSD|36067889
MỤC LỤC
I. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID ................................................... 1
1.1. Lịch sử hình thành ........................................................................................ 2
1.2. Các thiết bị mà hệ điều hành Android hướng tới ......................................... 3
1.3. Sự phổ biến của hệ điều hành Android ........................................................ 4
II. CẤU TRÚC HỆ THỐNG ANDROID TRÊN NỀN TẢNG SMARTPHONE .... 5
2.1 Tầng ứng dụng ............................................................................................... 5
2.2 Tầng khung ứng dụng ................................................................................... 7
2.3 Tầng thư viện nền tảng .................................................................................. 9
2.4 Nhân Linux .................................................................................................. 11
III. QUẢN LÝ FILE ................................................................................................ 13
3.1 Hệ thống file ................................................................................................ 13
3.2 Ứng dụng quản lý file mặc định .................................................................. 15
IV. TỔ CHỨC QUẢN TRỊ CƠ SỞ DỮ LIỆU ....................................................... 15
4.1 Hệ quản trị cơ sở dữ liệu ............................................................................. 15
4.2 Lưu trữ dữ liệu ............................................................................................. 19
4.3 Chia sẻ dữ liệu ............................................................................................. 21
V. SO SÁNH HỆ THỐNG QUẢN TRỊ CƠ SỞ DỮ LIỆU CỦA ANDROID VÀ
MYSQL CỦA WINDOWS ..................................................................................... 24
5.1 MySQL là gì? .............................................................................................. 24
5.2 So sánh MySQL và SQLite ......................................................................... 26
I. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID
Hệ điều hành Android là một hệ điều hành di động phổ biến do Google phát
triển và được sử dụng trên các thiết bị di động như điện thoại thông minh, máynh
bảng và thiết bị thông minh khác. Android được xây dựng dựa trên kernel Linux và
được thiết kế để đáp ứng nhu cầu của người dùng và nhà phát triển ứng dụng.
lOMoARcPSD|36067889
I.1. Lịch sử hình thành
Hệ điều hành Android được phát triển bởi một công ty có tên là Android
Inc., được thành lập vào năm 2003 bởi Andy Rubin, Rich Miner, Nick Sears và
Chris White. Ban đầu, Android Inc. dự đnh phát triển mt hệ điều hành cho
máy tính thông minh, nhưng sau đó chuyển hướng tập trung vào việc phát triển
một hệ điều hành di động.
Vào năm 2005, Google đã mua lại Android Inc. với mục tiêu sử dụng
công nghệ hệ điều hành Android như một nền tảng phát triển cho điện thoại di
động. Sau thỏa thuận mua lại, Android Inc. tiếp tục hoạt động dưới sự quản
của Google.
Ngày 5 tháng 11 năm 2007, Google đã ra mắt phiên bản đầu tiên của hệ
điều hành Android, được gọi là Android 1.0 (còn được gọi là "Android Beta").
Phiên bản này chạy trên điện thoại di động đầu tiên sử dng Android, HTC
Dream, được bán trên thị trường dưới tên gọi T-Mobile G1 ở Hoa Kỳ và HTC
Dream ở các quốc gia khác.
Kể từ đó, Android đã trải qua nhiều phiên bản và cải thiện, với các phiên
bản quan trọng bao gồm Cupcake (Android 1.5), Donut (Android 1.6), Eclair
(Android 2.0/2.1), Froyo (Android 2.2), Gingerbread (Android 2.3),
Honeycomb (Android 3.0/3.1/3.2), Ice Cream Sandwich (Android 4.0), Jelly
Bean (Android 4.1/4.2/4.3), KitKat (Android 4.4), Lollipop (Android 5.0/5.1),
Marshmallow (Android 6.0), Nougat (Android 7.0/7.1), Oreo (Android 8.0/8.1),
Pie (Android 9), Android 10 và Android 11.
Android đã trở thành một trong những hệ điều hành di động phổ biến và
được sử dụng rộng rãi trên toàn thế giới. Sự phát triển của Android đã mang lại
không chỉ một nền tảng mạnh mẽ cho các thiết bị di động và ứng dụng, mà còn
mở ra nhiều cơ hội cho nhà phát triển vì nó dựa trên mã nguồn mở, cho phép
các nhà phát triển tạo ra các ứng dụng và tùy chỉnh hệ thống theo ý muốn của
họ.
lOMoARcPSD|36067889
Các phiên bản hệ điều hành Android đã được ra mắt
I.2. Các thiết bị mà hệ điều hành Android hướng tới
Android hướng đến nhiều loại thiết bị khác nhau. Dưới đâymột số loại thiết
bị mà Android hướng tới:
Điện thoại thông minh: Android là hệ điều hành phổ biến nhất trong các điện
thoại thông minh. Nó được sử dụng trên rất nhiều thương hiệu điện thoại
như Samsung, Google Pixel, OnePlus, Huawei, Xiaomi, Motorola, Sony và
nhiều thương hiệu khác.
Máy tính bảng: Android cũng được sử dụng trên nhiều loại máy tính bảng từ
các nhà sản xuất như Samsung, Lenovo, Asus, Amazon Kindle và nhiều
thương hiệu khác. Máy tính bảng Android cung cấp một trải nghiệm di động
tương tự như điện thoại thông minh, nhưng với màn hình lớn hơn và khả
năng làm việc đa nhiệm.
Đồng hồ thông minh: Android Wear là phiên bản Android được thiết kế
dành riêng cho các đồng h thông minh. Các thương hiệu đồng hồ thông
lOMoARcPSD|36067889
minh như Samsung Galaxy Watch, Fossil, Huawei Watch và nhiều hãng
khác sử dụng hệ điều hành này để cung cấp các tính năng thông minh như
theo dõi sức khỏe, thông báo, truy cập internet và nhiều tính năng khác.
TV thông minh: Android TV là phiên bản Android được tùy chỉnh cho các
smart TV. Các nhà sản xuất TV như Sony, LG, Sharp và Philips đã tích hợp
hệ điều hành Android vào các mẫu TV của họ để mang lại trải nghiệm giải
trí toàn diện với ứng dụng, trò chơi, và dịch vụ trực tuyến.
Thiết bị định vị ô tô: Android Auto là mt phiên bản Android được thiết kế
để hoạt động trên màn hình của xe ô . Nó cho phép người dùng kết nối
điện thoại thông minh của mình với hệ thống đài phát thanh và định vị của
xe, cung cấp các tính năng như điều hướng, gọi điện, gửi tin nhắn và truy
cập nhạc trong khi lái xe một cách an toàn.
Ngoài ra, Android cũng được sử dụng trên các thiết bị như máy tính xách tay,
TV Box, máy nghe nhạc di động, thiết b đọc sách điện tử và nhiều thiết bị di
động khác. Android có tính linh hoạt cao và thích nghi với nhiều kiểu thiết bị
khác nhau.
I.3. Sự phổ biến của hệ điều hành Android
Hệ điều hành Android là hệ điều hành di động phổ biến nhất trên thế giới. Dưới
đây là một số lý do mà Android đã trở thành một trong những hệ điều hành phổ
biến nhất:
Số lượng người dùng: Android có mt cộng đồng người dùng lớn, với hàng
tỷ người dùng trên toàn cầu. Điều này bởi vì Android được sử dụng trên
nhiều thiết bị khác nhau và có sẵn trên các thương hiệu điện thoại phổ biến.
Đa dạng thiết bị: Android có khả năng tương thích với nhiều loại thiết bị,
bao gồm điện thoại thông minh, máy tính bảng, TV thông minh, đồng hồ
thông minh và nhiều loại thiết bị di động khác. Điều này cung cấp sự linh
hoạt và lựa chn đa dạng cho người dùng.
Ứng dụng và dịch vụ: Android có một cửa hàng ứng dụng phong phú là
Google Play Store, nơi người dùng có thể tải xuống hàng ngàn ứng dụng, trò
chơi và nội dung giải trí. Ngoài ra, Android tích hợp các dịch vụ của Google
như Gmail, Google Maps, Google Drive và nhiều dịch vụ khác.
Tùy chỉnh và linh hoạt: Android cho phép người dùng tùy chỉnh và điều
chỉnh giao diện, ứng dụng và cài đặt theo ý muốn của mình. Người dùng có
thể tùy chỉnh hình nền, ch đề, biểu tượng ứng dụng và nhiều hơn nữa.
lOMoARcPSD|36067889
Sự phát triển và nâng cấp liên tục: Android được Google cung cấp các phiên
bản cập nhật và nâng cấp thường xuyên, cung cấp tính năng mới và cải tiến
hiệu suất. Người dùng Android có thể truy cập những cải tiến này và trải
nghiệm những tính năng mới nhất của hệ điều hành.
Tổng quan, sự phổ biến của hệ điều hành Android có nguồn gốc từ sự linh hoạt,
đa dạng và khả năng tùy chỉnh của nó, cung cấp cho người dùng trải nghiệm di
động đa dạng và đáp ứng nhu cầu của mọi người.
II. CẤU TRÚC HỆ THỐNG ANDROID TRÊN NỀN TẢNG
SMARTPHONE
Hệ điều hành Android được tổ chức theo cấu trúc phân lớp và được chia thành 4
tầng chính:
Sơ đồ cấu trúc hệ điều hành Android
2.1 Tầng ứng dụng
Tầng ứng dụng (Application Layer) là tầng cao nhất của kiến trúc Android. Là
nơi mà ứng dụng người dùng và ứng dụng hệ thng chạy và tương tác với hệ
thống. Tầng này bao gồm các ứng dụng được cài đặt sẵn như trang ch, danh
bạ, máy ảnh, thư viện ảnh và các ứng dụng của bên thứ ba được tải từ cửa
hàng chơi (Play Store) như ứng dụng trò chuyện, trò chơi sẽ được cài đặt trên
tầng này. Chúng chạy bên trong thời gian chạy Android với sự trợ giúp của
các lớp và dịch v được cung cấp bởi khung ứng dụng.
lOMoARcPSD|36067889
Tầng ứng dụng trong hệ thống Android chứa nhiều thành phần và ứng dụng
khác nhau để cung cấp các chức năng cơ bản cho người dùng. Ứng dụng trong
tầng ứng dụng được chia thành 2 nhóm chính: ứng dụng hệ thống và ứng dụng
bên thứ 3:
a. Ứng dụng hệ thng
Đây là các ứng dng được tích hợp sẵn trong hệ thống Android và không th
bị gỡ bỏ hoặc vô hiệu hóa mà không cần root thiết bị. Các ứng dụng hệ
thống thường bao gồm:
Màn hình chính (Home): Màn hình chính của Android là nơi người
dùng bắt đầu và kết thúc. Nó chứa các biểu đồ (icons) cho các ứng dụng
phổ biến mà người dùng muốn truy cập nhanh chóng. Người dùng có
thể khởi chạy các ứng dụng bằng cách nhấp vào biểu đồ của chúng.
Màn hình chính cũng có thể chứa các tiện ích (widgets) để hiển th
thông tin như mạng, pin, ngày và giờ.
Danh bạ (Contacts) Ứng dụng danh bạ cho phép người dùng lưu trữ,
quản lý và truy cập thông tin liên hệ. Nó cung cấp khả năng tạo, sửa đi
và xóa liên hệ, cũng như tích hợp thông tin liên hệ với các ứng dụng và
dịch vụ khác trên thiết bị.
Ứng dụng Điện thoại (Phone): Ứng dụng điện thoại cho phép người
dùng thực hiện cuộc gọi điện thoại và quản lý cuộc gọi đến và đi.
Người dùng có thể quản lý danh bạ, lọc cuộc gọi và thực hiện cuộc gọi
video hoặc thoại.
Trình duyệt (Browser): Ứng dụng trình duyệt cho phép người dùng
duyệt web, tìm kiếm thông tin trực tuyến và truy cập các trang web. Nó
hỗ trợ nhiều tính năng liên quan đến duyệt web, bao gồm tab duyệt, lịch
sử trang web và quản lý dấu trang.
Ứng dụng Tin nhắn (Messages): Ứng dụng tin nhắn cho phép người
dùng gửi và nhận tin nhắn văn bản (SMS) và hình ảnh (MMS). Nó cung
cấp giao diện để quản cuộc trò chuyện và lưu trữ tin nhắn.
Ngoài các thành phần chính ở trên, các ứng dụng hệ thống Android cũng bao
gồm nhiều ứng dụng khác nhau để cung cấp các chức năng đa dạng cho
người dùng. Có thể kể đến như: Lịch, máy ảnh, camera, ghi âm, ghi chú,
music player, video player, maps…
lOMoARcPSD|36067889
Tất cả các thành phần nàymột phần của tầng ứng dụng và cung cấp các
chức năng cơ bản mà người dùng sử dng hàng ngày trên thiết b Android
của họ.
b. Ứng dụng bên thứ 3 (Third-party Apps):
Đây là các ứng dng được cài đặt từ Google Play Store hoặc từ nguồn khác
ngoài hệ thống Android. Ứng dụng bên thứ 3 do các nhà phát triển và các
công ty khác tạo ra để cung cấp các tính năng và dịch vụ đa dạng. Các ví dụ
về ứng dụng bên thứ 3 bao gồm các trò chơi, ứng dụng xã hội, ứng dụng
thương mại điện tử, ứng dụng sức khỏe, và nhiều loại ứng dụng khác.
=> Ứng dụng hệ thống thường đi kèm với hệ thống Android và cung cấp
các chức năng cơ bản, trong khi ứng dụng bên thứ 3 là sự bổ sung cho các
tính năng và dịch vụ đa dạng tạo ra bởi các bên thứ ba. Người dùng có kh
năng tải xuống và cài đặt ứng dụng bên thứ 3 để tùy chỉnh thiết bị của họ và
thêm tính năng mới theo nhu cầu cá nhân.
2.2 Tầng khung ứng dụng
Khung ứng dụng (Application Framework) là một trong những tầng quan
trọng trong kiến trúc hệ thống Android. Tầng này cung cấp nhiều lớp quan
trọng được sử dng để tạo ra một ứng dụng Android. Nó cung cấp một sự
trừu tượng chung cho việc truy cập phần cứng và cũng giúp quản lý giao
diện người dùng với tài nguyên ứng dụng. Nó thường cung cấp các dịch vụ
giúp chúng ta có thể tạo ra một lớp cụ thể và làm cho lớp đó hữu ích cho
việc tạo ra ứng dụng.
lOMoARcPSD|36067889
Cấu trúc tầng khung ứng dụng
Activities Manager: Activity Management là một phần quan trọng ca
Application Framework. Nó quản lý vòng đời của các Activity (màn
hình) trong ứng dụng. Activities là thành phần giao diện người dùng
chính của ứng dng.
Window Manager: Window Manager quản lý cửa sổ ứng dụng trên màn
hình. Nó quản lý việc hiển thị, chuyển đổi giữa các ứng dụng và xử lý
tương tác người dùng như cảm ứng màn hình.
Content Providers: Content Providers cho phép ứng dụng truy cập và chia
sẻ dữ liệu với các ứng dụng khác thông qua cơ chế quản lý cơ sở dữ liệu.
lOMoARcPSD|36067889
Nó giúp đảm bảo tính kết nối dữ liệu trong hệ thng Android.
Resource Manager: Resource Manager quản lý các tài nguyên ứng dụng
như hình ảnh, âm thanh, văn bản, và các tài liệu khác. Nó cho phép ứng
dụng truy cập và sử dụng các tài nguyên này.
Notification Manager: Notification Manager quản lý việc hiển thị thông
báo cho người dùng từ các ứng dụng và hệ thống. Nó cung cấp khả năng
thông báo cho người dùng về sự kiện quan trọng.
TelephonyManager là một trong những dịch vụ quan trọng mà
Application Framework cung cấp cho ứng dụng Android.
TelephonyManager cho phép ứng dụng tương tác với các tính năng liên
quan đến điện thoại và dịch vụ di động. Như thông tin về Sim Card, kiểm
tra trạng thái đang kết nối, mất kết nối, hoặc không có tín hiệu.
View System: View System quản lý giao diện người dùng của ứng dụng,
bao gồm các thành phần như các View và ViewGroup, cho phép xây
dựng giao diện người dùng tương tác.
Package Manager: Package Manager quản lý cài đặt và quản lý các ứng
dụng trên thiết bị. Nó kiểm tra, cài đặt, và quản các ứng dụng Android.
Location manager: cho phép ứng dng truy cập và quản lý thông tin v trí
của thiết bị. Điều này cho phép ứng dụng xác định v trí của thiết bị, theo
dõi sự thay đổi v trí, và sử dụng thông tin vị trí để cung cấp các tính năng
liên quan đến định vị, như bản đồ, hướng dẫn đi đường, và ứng dụng dự
đoán thời tiết. Location Manager cung cấp các công cụ và giao diện lập
trình ứng dụng (APIs) để quản lý dịch v định v và truy cập thông tin vị
trí của thiết b.
XMPP (Extensible Messaging and Presence Protocol) Service là một giao
thức để truyền tải tin nhắn và thông tin trạng thái giữa các máy tính,
server, và thiết b di đng. Trong Android, việc sử dụng XMPP thường
liên quan đến các ứng dụng hoặc dịch vụ cung cấp khả năng trò chuyện
trực tiếp (instant messaging) hoặc gửi tin nhắn trong thời gian thực.
XMPP Service trong ngữ cảnh Android là một dịch vụ hoặc thành phần
của ứng dụng Android có khả năng sử dụng giao thức XMPP để thực
hiện các tác vụ như: Trò chuyện trực tiếp (Instant Messaging), Gửi tệp
đính kèm, Nhóm Trò Chuyện Bảo mật, mã hoá cuộc trò chuyện.
2.3 Tầng thư viện nền tảng
Thư viện nền tảng bao gồm các thư viện lõi C/C++ và các thư viện dựa trên
Java như Đa phương tiện, Đồ họa, Quản lý Bề mặt, OpenGL v.v. để hỗ trợ
lOMoARcPSD| 36067889
việc phát triển Android. Các thành phần quan trọng trong tầng thư viện nền
tảng của Android bao gồm:
Surface Manager: Surface Manager là một thành phần quan trọng trong
việc quản lý các bề mặt hiển thị trên màn hình thiết bị Android. Nó cho
phép ứng dụng vẽ và điều khiển hiển thị đồ họa trên màn hình.
OpenGL ES (Open Graphics Library for Embedded Systems): OpenGL
ES là một API đồ họa 3D được sử dụng rộng rãi trong phát triển ứng
dụng Android để tạo ra đồ họa 3D đẹp mắt. Nó cho phép ứng dụng sử
dụng sức mạnh đồ họa của thiết bị.
(Software Graphics Library): SGL là một thư viện đồ họa phần mềm cho
việc vẽ đồ họa 2D trên Android. Nó cung cấp các công cụ để tạo ra các
đối tượng đồ họa như hình ảnh và văn bản.
Media Framework: Media Framework bao gồm các thư viện và công cụ
cho việc xử lý và phát trực tiếp âm thanh và video trên các thiết b
Android. Nó hỗ trợ các đnh dạng phổ biến như MP3, H.264, và nhiều
định dạng khác.
FreeType: FreeType là một thư viện mã nguồn mở cho việc xử lý và hiển
thị các font và ký tự. Nó được sử dụng trong Android để hiển thị văn bản
trên các ứng dụng và giao diện người dùng.
SSL (Secure Sockets Layer): SSL là mt thư viện mã hóa và bảo mật
được sử dụng trong Android để thiết lập kết ni an toàn qua mạng, chẳng
hạn như khi truy cập dịch vụ web an toàn qua HTTPS.
SQLite: SQLite là một hệ quản lý cơ sở dữ liệu nhẹ và phổ biến được tích
hợp trong Android. Nó cho phép ứng dụng lưu trữ và truy vấn dữ liệu cc
bộ, như danh bạ và dữ liệu ứng dụng.
WebKit: WebKit là một công nghệ duyệt web mã nguồn mở và nền tảng
hiển thị trình duyệt web được sử dụng trong Android để hiển thị nội dung
web trong ứng dụng.
Libc (C Library): Libc là thư viện chuẩn của ngôn ngữ lập trình C, được
sử dụng trong Android để cung cấp các hàm và tính năng cơ bản của C
cho các ứng dụng và hệ thng.
Android Runtime: Android Runtime bao gồm các thành phần sau:
Core Libraries: Core Libraries là bộ thư viện chứa các lớp và hàm cơ bản
của Java và Kotlin, được sử dụng trong phát triển ứng dụng Android.
Dalvik Virtual Machine: Dalvik là máy ảo được sử dụng trước Android
5.0, và sau đó, nó đã được thay thế bằng ART (Android Runtime) cho
lOMoARcPSD|36067889
việc chạy mã nguồn Java được biên dịch thành mã Dalvik hoặc mã máy
ảo ART.
Các thành phần này cùng nhau tạo thành tầng thư viện nền tảng của
Android, cung cấp các công cụ và thư viện cho nhà phát triển để xây
dựng các ứng dụng đa dạng trên nền tảng Android.
2.4 Nhân Linux
Nhân Linux là trái tim của kiến trúc Android. Nó quản lý tất cả các trình
điều khiển có sẵn như trình điều khiển hiển thị, trình điều khiển máy ảnh,
trình điều khiển Bluetooth, trình điều khiển âm thanh, trình điều khiển bộ
nhớ, v.v. mà yêu cầu trong thời gian chạy.
Nhân Linux sẽ cung cấp một lớp trừu tượng giữa phần cứng thiết bị và các
thành phần khác của kiến trúc Android. Nó chịu trách nhiệm quản lý bộ nhớ,
năng lượng, thiết bị v.v.
Các tính năng ca Nhân Linux là:
Bảo mật: Nhân Linux xử lý việc bảo mật giữa ứng dụng và hệ thống.
Quản lý bộ nhớ: Nó quản lý việc quản lý b nhớ một cách hiệu quả,
đồng thời cung cấp sự linh hoạt để phát triển ứng dụng ca chúng ta.
Quản lý tiến trình: Nó quản lý tiến trình tốt, phân bổ tài nguyên cho
tiến trình khi chúng cần chúng.
Ngăn xếp Mạng: Nó xử lý giao tiếp mạng một cách hiệu quả.
lOMoARcPSD| 36067889
Mô hình Trình điều khiển: Nó đảm bảo rằng ứng dụng hoạt động
đúng trên thiết bị và các nhà sản xuất phần cứng chịu trách nhiệm xây
dựng trình điều khiển của họ vào bản Linux.
Các thành phần chính trong nhân Linux:
Trình điều khiển Camera (Camera Driver): Trình điều khiển này giúp
kết nối hệ thng Android với camera của thiết bị. Nó cần được tối ưu
hóa để chụp ảnh và quay video một cách hiệu quả, và cung cấp các
API để các ứng dụng có thể tương tác với camera.
Trình điều khiển Bluetooth (Bluetooth Driver): Điều khiển Bluetooth
cho phép thiết bị Android kết nối với các thiết bị khác thông qua
Bluetooth. Nó quản lý các chức năng như kết nối, truyền dữ liệu và
quản lý tiêu thụ năng lượng của kết nối Bluetooth.
Trình điều khiển USB (USB Driver): Trình điều khiển USB cho phép
truyền dữ liệu giữa thiết bị Android và máy tính hoặc các thiết bị
ngoại vi khác thông qua cổng USB. Điều này cần thiết cho việc
chuyển dữ liệu, sạc pin, và thực hiện các chức năng khác liên quan
đến USB.
Trình điều khiển Bàn phím (Keypad Driver): Điều khiển bàn phím xử
lý tất cả các đầu vào từ bàn phím của thiết bị, bao gồm cả bàn phím
vật lý và bàn phím trên màn hình. Nó chịu trách nhiệm cho việc
chuyển các lệnh từ bàn phím thành dữ liệu mà hệ thống có thể hiểu
được.
Trình điều khiển Wi-Fi (Wi-Fi Driver): Điều khiển Wi-Fi cho phép
thiết bị Android kết nối với các mạng Wi-Fi. Nó quản lý việc tìm
kiếm mạng, xác thực và kết nối, cũng như duy trì kết nối trong quá
trình sử dụng internet.
Trình điều khiển m thanh (Audio Driver): Điều khiển âm thanh xử lý
đầu ra và đầu vào âm thanh của thiết bị. Nó quản lý việc phát nhạc,
giọng nói trong cuộc gọi và âm thanh của các ứng dụng khác.
Quản lý Năng lượng (Power Management): Thành phần quản lý năng
lượng đảm bảo rằng thiết bị Android sử dụng năng lượng một cách
hiệu quả. Điều này bao gồm việc quản lý việc chuyển đổi giữa các
trạng thái ngủ và hoạt động đầy đủ công suất để tiết kiệm pin và tăng
thời gian sử dụng pin của thiết bị.
lOMoARcPSD|36067889
Alarm Driver: Cung cấp các hẹn giờ để đánh thức các thiết bị hoặc
các tiến trình trong hệ thống khi cần thiết.
Shared Memory Driver (ashmem): Được sử dụng để quản lý bộ nhớ
chia sẻ giữa các tiến trình Android. Ashmem cho phép các ứng dụng
chia sẻ dữ liệu mà không cần sao chép dữ liệu thực sự giữa chúng.
Binder: Đâymột cơ chế IPC (Inter-Process Communication) được
tối ưu hóa dành riêng cho Android. Nó cho phép các tiến trình
Android gửi và nhận dữ liệu mt cách hiệu quả.
Low Memory Killer: Điều này là một thành phần quan trọng của hệ
thống quản lý bộ nhớ Android. Nó quản lý việc giết các tiến trình khi
bộ nhớ thấp, giúp đảm bảo rằng hệ thống không bị quá tải với các ứng
dụng không hoạt động.
Kernel Debugger và Logger: Cung cấp các công cụ cho nhà phân tích
hệ thống để theo dõi và gỡ lỗi vấn đề trong kernel.
Các thành phần này là những yếu tố không thể thiếu để hệ thống Android hoạt
động mt cách đầy đủ và hiệu quả trên các thiết bị di động, đáp ứng nhu cầu
người dùng về tính ổn đnh, hiệu suất và tiện ích.
III. QUẢN LÝ FILE
3.1 Hệ thống file
Đối với các thiết bị di động, đĩa cứng có kích thước quá lớn và tiêu tốn quá
nhiều năng lượng. Ngược lại, bộ nhớ flash cung cấp thời gian truy cập đọc
nhanh và khả năng chống sc động hc tốt hơn so với đĩa cứng. Về cơ bản,
có hai loại bộ nhớ flash khác nhau dựa trên kỹ thuật xây dựng của chúng:
NOR và NAND. NOR có mật độ thấp, cung cấp khả năng ghi chậm và đọc
nhanh. NAND có chi phí thấp, mật độ cao và cung cấp khả năng ghi nhanh
đọc chậm. Các hệ thống nhúng đang ngày càng sử dụng flash NAND để lưu trữ
và NOR để mã hóa và thực thi.
Trước đây, Android sử dụng hệ thống tệp flash YAFFS (Yet Another Flash
File System) như mt hệ thống lưu trữ đáng tin cậy với thời gian khởi động
nhanh cho các thiết bị bộ nhớ flash. So với các hệ thống tệp đĩa nói chung,
các hệ thống tệp flash loại bỏ thời gian tìm kiếm, nhưng chúng phải xử lý
các giới hạn về thời gian tồn tại và sửa lỗi.
lOMoARcPSD|36067889
Các thiết bị di động sử dụng YAFFS thường chịu được ít lỗi vì hệ thống có
thể dễ dàng gặp sự cố nếu hệ thống tệp bị hỏng. Để tránh sự cố này, YAFFS
cung cấp tính năng quản lý khối lỗi và sửa lỗi để duy trì tính toàn vẹn của dữ
liệu trong NAND flash và đạt được mt hệ thống tệp mạnh mẽ nhanh chóng.
Kể từ phiên bản Android 2.3 trở đi, Android sử dụng hệ thống files EXT4 đ
cải thiện hiệu suất, độ tin cậy và dung lượng.
Trong EXT4, phân bổ dữ liệu đã được thay đổi từ các khối cố định thành các
phạm vi. Một phạm vi được mô tả bằng vị trí bắt đầu và kết thúc của nó trên
ổ cứng. Điều này giúp ta có thể mô tả các tệp rất dài, liền kề về mặt vật lý
trong mt mục nhập con tr, điều này có thể làm giảm đáng kể số lượng con
trỏ cần thiết để mô tả vị trí của tất cả dữ liệu trong các tệp lớn hơn.
EXT4 làm giảm sự phân mảnh bằng cách phân tán các tệp mới được tạo trên
đĩa để chúng không bị dồn vào mt vị trí ở đầu đĩa. Các thuật toán phân bổ
tệp cố gắng phân bổ tệp đồng đều nhất có thể giữa các nhómnh trụ và khi
cần phân mảnh, để giữ cho phạm vi tệp không liên tục càng gần càng tốt với
các tệp khác trong cùng một tệp để giảm thiểu đầu tìm kiếm và độ trễ quay
nhiều nhất có thể càng tốt. Các chiến lược bổ sung được sử dụng để phân b
trước dung lượng đĩa bổ sung khi tệp mới được tạo hoặc khi tệp hiện có
được mở rộng. Điều này giúp đảm bảo rằng việc mở rộng tệp sẽ không tự
động dẫn đến việc nó bị phân mảnh. Các tệp mới không bao giờ được cấp
phát ngay sau các tệp hiện có, điều này cũng ngăn chặn sự phân mảnh của
các tệp hiện có.
Ngoài vị trí thực tế của dữ liệu trên đĩa, EXT4 sử dụng các chiến lược chức
năng, chẳng hạn như phân bổ trì hoãn, để cho phép hệ thống tệp thu thập tất
cả dữ liệu đang được ghi vào đĩa trước khi cấp phát dung lượng cho nó. Điều
này có thể cải thiện khả năng không gian dữ liệu liền kề.
lOMoARcPSD|36067889
3.2 Ứng dụng quản lý file mc định
Ứng dụng quản file mặc định trên Android thường là "Files" hoặc "Tệp
tin". Nó cung cấp các tính năng cơ bản như duyệt thư mục, tạo, di chuyển và
xóa tệp tin. Các tính năng quản lý file cơ bản:
Duyệt thư mục: Người dùng có thể xem cấu trúc thư mục, thư mục
con và tệp tin bên trong.
Tạo, di chuyển và xóa: Cho phép người dùng tạo thư mục mới, di
chuyển tập tin và xóa chúng để tổ chức dữ liệu.
Tạo mới: Người dùng có thể tạo thư mục mới hoặc tệp tin mới
bằng cách chn tùy chọn "Tạo mới" và sau đó nhập tên và loại
tệp cần thiết.
Di chuyển: Để di chuyển tệp tin hoặc thư mục, người dùng
thường giữ và kéo tệp tin đó đến vị trí mong muốn hoặc sử dụng
các tùy chọn di chuyển/copy/cắt và dán.
Xóa: Bằng cách giữ và chn tệp tin hoặc thư mục, người dùng
có thể xóa chúng thông qua tùy chọn "Xóa" hoặc "Thùng rác".
Chia sẻ: Người dùng có thể chia sẻ tập tin thông qua email, tin nhắn,
hoặc lưu trữ trên các dịch vụ đám mây.
IV. TỔ CHỨC QUẢN TRỊ CƠ SỞ DỮ LIỆU
4.1 Hệ quản trị cơ sở dữ liệu
a) Giới thiệu về SQLite
SQLite là hệ thống quản lý cơ sở dữ liệu quan hệ nhẹ và không cần máy
chủ phổ biến trong phát triển Android. SQLite được triển khai dưới dạng
thư viện nhúng, phát triển bởi Dwayne Richard Hipp và được phát hành
lần đầu vào năm 2000. SQLite là hệ thống quản lí cơ sở dữ liệu
nguồn mở và miễn phí sử dụng, rất nhẹ và linh hoạt. SQLite được cài đặt
như một thư viện nhỏ gọn và là mt phần trong bộ phần mềm Android.
Ngoài ra, SQLite cung cấp các chức năng như thông qua một thư viện
chứ không phải là một quá trình riêng biệt. Mỗi cơ sở dữ liệu sẽ trở thành
một phần được tích hợp trong ứng dng. Điều này giúp làm giảm sự phụ
thuộc vào bên ngoài, tối thiểu đ trễ và đơn giản hóa các giao dịch và
đồng bộ.
lOMoARcPSD|36067889
b) Đặc điểm
Nhúng: SQLite có thể nhúng trực tiếp vào ứng dụng, điều này có
nghĩa là không cần một quy trình server riêng biệt. Điều nàym giảm
độ phức tạp khi triển khai ứng dụng, đặc biệt là trong các ứng dụng di
động và nhúng như các thiết bị IoT (Internet of Things).
Không yêu cầu cấu hình: SQLite không yêu cầu cấu hình phức tạp.
Không có quy trình server cần khởi động và quản lý, điều này giúp
giảm độ phức tạp khi triển khai và bảo trì hệ thống cơ sở dữ liệu.
Hỗ trợ ACID: SQLite đảm bảo tính nhất quán và an toàn dữ liệu
thông qua việc hỗ trợ ACID, một tập hợp các tính chất quan trọng
trong quản lý cơ sở dữ liệu:
Atomicity (Nguyên tác): Các thao tác được thực hiện hoặc không
được thực hiện hoàn toàn.
Consistency (Tính nhất quán): Dữ liệu phải đảm bảo tính nhất
quán sau mỗi giao dịch.
Isolation (Cô lập): Mi giao dịch thực hiện độc lập với các giao
dịch khác.
Durability (Bền vững): Khi một giao dịch được xác nhận, thì nó
phải được lưu trữ vĩnh viễn.
Dữ liệu kiểu động: SQLite hỗ trợ nhiều kiểu dữ liệu động, bao gồm:
INTEGER: Lưu trữ số nguyên.
TEXT: Lưu trữ chuỗi văn bản.
REAL: Lưu trữ số thực.
BLOB: Lưu trữ dữ liệu nhị phân (binary large objects), thường
được sử dụng để lưu trữ hình ảnh, video, và các loại dữ liệu khác.
lOMoARcPSD|36067889
Phiên bản đa nhiệm: SQLite hỗ trợ nhiều phiên bản đọc cùng một
lúc (multiple readers) để các đọc (SELECT) có thể diễn ra đồng thời
mà không gây xung đột. Tuy nhiên, chỉ một phiên bản ghi (writer)
được phép vào một thời điểm để đảm bảo tính nhất quán và tránh tình
trạng mất dữ liệu (lost updates) khi có ghi (INSERT, UPDATE,
DELETE). Điều này giúp tối ưu hóa hiệu suất trong các tình huống
đọc nhiều và ghi ít.
c) Sử dụng
Nhúng vào ứng dụng di động: SQLite thường được sử dụng trong
ứng dụng di đng như Android và iOS để lưu trữ dữ liệu cục bộ. Vì
nó là mt cơ sở dữ liệu nhúng, không yêu cầu quy trình server riêng
biệt và giảm bớt độ phức tạp trong triển khai ứng dụng trên các thiết
bị di động.
Web development: SQLite cũng được sử dụng rộng rãi trong phát
triển web, đặc biệt là cho các ứng dụng web nhỏ và trung bình. Trong
môi trường web, nó có thể được tích hợp vào ứng dụng thông qua
ngôn ngữ lập trình như Python, PHP, hoặc JavaScript thông qua các
thư viện như SQLite3.
Dự án nhỏ đến trung bình: SQLite thích hợp cho các dự án nhỏ và
trung bình với ít người sử dụng cùng một lúc. Trong các dự án có quy
mô nhỏ, nó mang lại sự đơn giản và linh hoạt mà không đòi hỏi cấu
hình phức tạp hay tài nguyên lớn. Điều này làm cho SQLite là lựa
chọn phổ biến cho các ứng dụng cá nhân, ứng dụng văn phòng, và dự
án khởi nghiệp.
d) Ngôn ngữ truy vấn
Ngôn ngữ truy vấn được sử dụng trong SQLite là SQL (Structured
Query Language), cùng với mt số phần mở rộng và cải tiến để hỗ trợ
các tính năng đặc biệt của SQLite cho việc truy vấn và quản lý cơ sở
dữ liệu.
e) Ưu và nhược điểm
Ưu điểm:
Nhẹ, linh hoạt và dễ triển khai.
Không yêu cầu quản lý server.
Hỗ trợ ACID.
Tương thích với nhiều ngôn ngữ lập trình.
lOMoARcPSD|36067889
Nhược điểm:
Không phù hợp cho các ứng dụng lớn với nhiều người sử dụng
đồng thời.
Khả năng xử lý phức tạp không bằng các hệ quản trị cơ sở dữ liệu
lớn hơn.
Hạn chế trong việc xử lý các truy vấn phức tạp.
Tất cả cơ sở dữ liệu của Android được lưu trữ trong thư mục /data/data/<tên
package>/databases trong thiết bị hoặc máy ảo. Mặc định tất cả cơ sở dữ
liệu là riêng tư chỉứng dụng tạo ra chúng mới có quyền truy cập.
Một số lớp trợ giúp (Helper Class):
SQLiteOpenHelper : là một lớp trợ giúp cung cấp các phương thức để
tạo, nâng cấp và quản lý cơ sở dữ liệu SQLite của ứng dụng
SQLiteDatabase: đại diện cho cơ sở dữ liệu, cung cấp các phương
thức để thực hiện các thao tác CRUD (Create, Read, Update, Delete).
Bất kì cơ sở dữ liệu mà ta tạo chỉ có thể truy cập được bởi ứng dụng của ta.
Tuy nhiên thay vì sử dụng các SQLite API trực tiếp, thì hiện tại Android
khuyến khích các Developers nên tạo và tương tác với cơ sở dữ liệu của mình
với Room Database.
Room Database
lOMoARcPSD|36067889
4.2 Lưu trữ dữ liệu
Android cung cấp một số tùy chọn để bạn lưu dữ liệu ứng dụng của mình:
a. Internal file storage
Theo mặc định thì các files được lưu vào Internal Storage (b nhớ trong)
sẽ là riêng tư đi với ứng dụng của ta, và các ứng dụng khác sẽ không kết
nối được (người dùng cũng không được trừ khi có quyền truy cập root).
Điều này làm cho Internal Storage là mt nơi lưu trữ dữ liệu tốt mà người
dùng không cần truy cập trực tiếp. Hệ thống cung cấp một thư mục riêng
tư trong hệ thống file cho mỗi ứng dụng, nơi ta có thể sắp xếp bất kì tệp
nào mà ứng dụng của ta cần.
Bộ nhớ trong của thiết bị Android
b. Internal cache file
Nếu muốn lưu trữ mt số dữ liệu tạm thời, thay vì duy trì lưu dữ liệu liên
tục, người dùng nên sử dụng cache directory để lưu trữ dữ liệu. Mỗi ứng
dụng có mt bộ nhớ cache riêng dành riêng cho các loại file này. Khi ứng
dụng đang hoạt động nhưng hệ thống thiếu bộ nhớ, Android có thể xoá
các file trong b nhớ cache này để khôi phc dung lượng. Tuy nhiên bạn
không nên dựa vào hệ thống để dọn dẹp các tệp này cho bạn. Bạn nên
luôn tự duy trì các file trong b nhớ cache ở trong giới hạn không gian
hợp lý được tiêu thụ, chẳng hạn như 1MB. Khi người dùng gỡ các cài đặt
của ứng dụng, các file này cũng bị xóa.
c. External file
Mọi thiết bị Android đều hỗ trợ không gian lưu trữ External Storage (bộ
nhớ ngoài) mà ta có thể sử dụng để lưu file. Vùng nhớ này được gọi là
External (ngoài) là bởi vì nói không phải chắc chắn là một vùng nhớ có
thể truy cập được mà nó là mt không gian lưu trữ. Là vùng nhớ mà
lOMoARcPSD|36067889
người dùng có thể kết nối với máy tính, thậm chí có thể tháo lắp vật lý, ví
dụ như các thẻ nhớ SD. Các file trên External Storage có thể được đọc ở
mọi nơi và có thể được người dùng sửa đổi khi chúng cho phép như là
một USB để có thể chuyển đổi dữ liệu sang máy tính.
d. SharedPreferences
Nếu không lưu nhiều dữ liệu và dữ liệu đó không yêu cầu cấu trúc, người
dùng nên sử dụng Shared Preferences. Loại lưu trữ này cho phép bạn đọc
và ghi các cặp key-value của các kiểu dữ liệu nguyên thủy: booleans, floats,
ints, longs và strings.
Các cặp key-value này được ghi vào các tệp XML, luôn tồn tại khi ứng
dụng được sử dng và kể các khi ứng dụng bị kill. Bạn có thể chỉ định
tên cho file đó theo cách thủ công cho mỗi hành động để lưu trữ dữ liệu
của bạn.
lOMoARcPSD|36067889
4.3 Chia sẻ dữ liệu
Trên nền tảng Android, một ứng dụng không thể truy cập trực tiếp (đọc /
ghi) dữ liệu của ứng dụng khác. Tất cả dữ liệu của ứng dụng là riêng tư đối
với ứng dụng đó. Mỗi ứng dụng đều có thư mục dữ liệu id riêng và vùng bộ
nhớ được bảo vệ riêng. Điều này có nghĩa là một ứng dụng không thể truy
vấn hoặc thao tác dữ liệu của một ứng dụng khác.
Tuy nhiên, các ứng dụng thường có nhu cầu cung cấp một hoặc nhiều tệp
của chúng cho một ứng dụng khác. Ví dụ: thư viện hình ảnh có thể muốn
cung cấp tệp ảnh cho trình chỉnh sửa hình ảnh hoặc ứng dụng quản lý tệp có
thể muốn cho phép người dùng sao chép và dán tệp giữa các khu vực trong
bộ nhớ ngoài.
a) Content Providers
Content Providers là một tập dữ liệu được bao bọc trong một custom API để
có thể cho phép đọc và ghi. Nó cung cấp các phương thức khác nhau để các
ứng dụng có thể truy cập dữ liệu từ một ứng dụng khác. Chúng đóng gói dữ
liệu và cung cấp các cơ chế để xác định bảo mật dữ liệu.
Sơ đồ tổng quan về cách Content providers quản lý quyền truy cập vào bộ nhớ Content
Provider điều phối việc truy cập tới bộ lưu trữ dữ liệu thông qua các API và
các component, nó bao gồm:
Chia sẻ dữ liệu từ ứng dng tới các ứng dụng khác
Gửi dữ liệu sang widget
Trả về mt kết quả gợi ý khi search cho ứng dụng thông qua Search
Framework.
lOMoARcPSD|36067889
Đồng bộ dữ liệu của ứng dụng với server bằng cách sử dng
AbstractThreadedSyncAdapter
Tải dữ liệu lên UI sử dụng CursorLoader
Mối quan hệ giữa Content provider và các thành phần khác
Content Providers tách lớp ứng dụng khỏi lớp dữ liệu bằng cách trừu tượng
nguồn dữ liệu cơ bản, do đó làm cho ứng dụng nguồn dữ liệu độc lập. Chúng
cho phép kiểm soát permission, cho phép ứng dụng khác có quyền truy cập
đến nguồn lưu trữ dữ liệu hay không, giúp cho việc chia sẻ dữ liệu trở lên dễ
dàng.
Ứng dụng cung cấp dữ liệu có thể ch định các quyền mà các ứng dụng khác
phải có để truy cập dữ liệu của mình. Các quyền này đảm bảo rằng người
dùng biết ứng dụng đang sử dụng sẽ cố gắng truy cập dữ liệu nào. Nếu ứng
dụng của nhà cung cấp không chỉ định bất kỳ quyền nào, thì các ứng dụng
khác không có quyền truy cập vào dữ liệu của nhà cung cấp.
Để truy xuất dữ liệu từ Content provider, phải thực hiện các bước cơ bản
sau:
Yêu cầu quyền truy cập đọc với nhà cung cấp: Ứng dụng của bạn cần
có "quyền truy cập đọc" đối với bên cung cấp.
Xác định mã gửi truy vấn đến nhà cung cấp Lợi ích của Content
Providers:
Cung cấp quyền kiểm soát chi tiết đối với các quyền truy cập dữ liệu.
Bạn có thể chọn hạn chế quyền truy cập vào Content provider, cấp
quyền toàn bộ để truy cập dữ liệu từ các ứng dụng khác hoặc định cấu
hình các quyền khác nhau để đọc và ghi dữ liệu
lOMoARcPSD|36067889
Với Content Providers, bạn có thể cho phép nhiều ứng dụng khác truy
cập, sử dụng và sửa đổi một nguồn dữ liệu duy nhất mà ứng dụng của
bạn cung cấp.
Một lợi ích khác của việc tách dữ liệu khỏi giao diện người dùng với
Content Providers là các nhóm phát triển có thể hoạt động độc lập trên
giao diện người dùng và kho dữ liệu của ứng dụng của bạn. Đối với
các ứng dụng phức tạp, lớn hơn, rất phổ biến là giao diện người dùng
và phần phụ trợ dữ liệu được phát triển bởi các nhóm khác nhau và
thậm chí chúng có thể là các ứng dụng riêng biệt
b) Intent
Intent cho phép bạn chia sẻ dữ liệu giữa các thành phần khác nhau trong ứng
dụng hoặc giữa các ứng dụng khác nhau.
Ví dụ, bạn có thể sử dụng intent rõ ràng để khởi chạy mt hoạt động mới
trong ứng dụng của mình và truyền dữ liệu cho nó. Bạn cũng có thể sử dụng
intent ngụ ý để yêu cầu một hành động cụ thể, chẳng hạn như chia sẻ văn
bản hoặc hình ảnh với các ứng dụng khác trên thiết bị.
ACTION_SEND / ACTION_VIEW: Các intent với ACTION_SEND cho
phép chia sẻ dữ liệu qua các ứng dụng khác, trong khi đó ACTION_VIEW
cho phép mở dữ liệu với ứng dụng xem được liên kết với loại tệp đó.
c) File Providers
Quản Lý Truy Cập Tệp Tin: File Providers cho phép ứng dụng chia sẻ tệp tin
của họ với các ứng dụng khác một cách an toàn và kiểm soát.
Bảo Mật Tệp Tin: File Providers giúp đảm bảo rằng chỉ những ứng dụng
được cấp quyền mới có thể truy cập vào tệp tin.
lOMoARcPSD|36067889
d) Cloud Services (Dịch vụ đám mây)
Bạn có thể sử dụng các dịch vụ đám mây như Firebase, OneDrive, Dropbox
hoặc Google Cloud để lưu trữ và chia sẻ dữ liệu trên các thiết bị và nền tảng
khác nhau. Những dịch vụ này cung cấp các API và SDK cho phát triển ứng
dụng Android.
=> Phương pháp bạn chọn phụ thuộc vào loại dữ liệu bạn muốn chia sẻ, yêu
cầu bảo mật và tích hợp giữa các phn khác nhau của ứng dụng của bạn hoặc
với các ứng dụng bên ngoài.
V. SO SÁNH HỆ THỐNG QUẢN TRỊ CƠ SỞ DỮ LIỆU CỦA
ANDROID VÀ MYSQL CỦA WINDOWS
5.1 MySQL là gì?
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở. Hệ thống hoạt
động theo mô hình client – server, dựa trên ngôn ngữ truy vấn có cấu trúc
(SQL) và được phát triển, phân phối, hỗ trợ bởi Tập đoàn Oracle.
lOMoARcPSD|36067889
MySQL được ưa chuộng trong quá trình xây dựng và phát triển các ứng
dụng. Hệ thống quản trị cơ sở dữ liệu này được đánh giá có tốc đ cao, ổn
định, dễ dùng và có khả năng thay đổi mô hình sử dụng phù hợp với điều
kiện công việc.
MySQL hiện đang hoạt động trên nhiều hệ điều hành Linux, Unix,
Windows,…, cung cấp một hệ thống lớn các hàm tiện ích mạnh mẽ. Nó
thích hợp với các ứng dụng truy cập cơ sở dữ liệu trên internet nhờ tốc độ
cao và tính bảo mật tt. Người dùng có thể tải miễn phí MySQL từ trang chủ
với nhiều phiên bản cho các hệ điều hành khác nhau.
Ưu điểm:
Miễn phí: MySQL được phát hành theo giấy phép nguồn mở. Bởi
vậy, bạn không phải trả tiền để sử dụng nó.
Dễ sử dụng: Nó hoạt động trên nhiều hệ điều hành với nhiều ngôn ngữ
bao gồm Java, C, C++, PHP,… Bởi vậy, nó cung cấp mt hệ thống
các hàm tiện ích mạnh mẽ và tiện lợi.
Tốc độ nhanh chóng: MySQL là hệ cơ sở dữ liệu dễ dùng, có tốc độ
nhanh và hoạt động ổn định ngay cả với các tập dữ liệu lớn.
Chương trình mạnh mẽ: MySQL là một chương trình mạnh mẽ theo
đúng nghĩa. Nó có thể xử lý mt tập hợp lớn các chức năng của các
gói cơ sở dữ liệu mạnh mẽ và đắt tiền nhất.
Tính bảo mật cao: MySQL sở hữu nhiều tính năng bảo mật cấp cao.
Bởi vậy, nó cực kỳ thích hợp cho các ứng dụng có truy cập cơ sở dữ
liệu trên internet.
Khả năng tùy biến cao: Giấy phép mã nguồn mở cho phép các lập
trình viên sửa đổi phần mềm MySQL sao cho phù hợp với môi trường
sử dụng của riêng họ.
Nhược điểm:
lOMoARcPSD|36067889
Độ tin cậy chưa cao: Do các chức năng cụ thể được xử lý với MySQL
(giao dịch, kiểm toán, tài liệu tham khảo,…) khiến cho nó kém tin cậy
hơn so với một số hệ quản trị cơ sở dữ liệu khác. Giới hạn: MySQL sẽ
không làm tất cả và nó sẽ đi kèm một số hạn chế nhất định về chức
năng mà một ứng 777dụng có thể cần đến.
Dung lượng hạn chế: Nếu bản ghi của bạn lớn dần lên t việc truy
xuất dữ liệu sẽ khó khăn hơn. Khi đó, bạn phải áp dụng nhiều biện
pháp nhằm tăng tốc đ truy xuất dữ liệu (ví dụ như: chia tải database
ra nhiều server, tạo cache MySQL,…)
5.2 So sánh MySQL và SQLite
SQLite
MySQL
SQLite là một dự án mã nguồn mở có sẵn
miễn phí.
Oracle sở hữu MySQL, là một dự án
mã nguồn mở.Yêu cầu các giấy phép
và có chi phí tùy thuộc vào phiên bản
và tính năng sử dụng.
SQLite là một cơ sở dữ liệu độc lập không
yêu cầu máy chủ. Đây còn được gọi là cơ sở
dữ liệu nhúng vì công cụ cơ sở dữ liệu được
tích hợp trong chương trình
Mặt khác, MySQL yêu cầu sử dụng
một máy chủ để hoạt động. Để giao
tiếp qua mạng, MySQL sẽ cần kiến
trúc máy khách và máy chủ.
Thư viện SQLite có kích thước xấp xỉ 250
KB
Máy chủ MySQL có kích thước xấp
xỉ 600 MB
Hạn chế trong việc xử lý các truy vấn phức
tạp. Thích hợp cho các ứng dụng đơn giản
và nhỏ.
Cung cấp nhiều tính năng mạnh mẽ
như xử lý sự kiện, chạy các thủ tục
lưu trữ và xử lý nâng cao
SQLite giữ thông tin trong một tệp duy
nhất, làm cho nó đơn giản để sao chép.
Không có yêu cầu thiết lập và hoạt động
thể được hoàn thành với sự hỗ trợ tối thiểu.
Bạn phải nén MySQL thành một tệp
trước khi sao chép hoặc xuất nó. Đây
sẽ là một công việc tốn nhiều thời
gian đối với các cơ sở dữ liệu lớn hơn
SQLite thiếu khả năng quản lý người dùng,
làm cho nó không phù hợp với nhiều người
dùng truy cập.
MySQL bao gồm một hệ thống quản
lý người dùng được thiết kế tốt, có thể
xử lý nhiều người dùng và cấp các
mức quyền khác nhau.
lOMoARcPSD| 36067889
Không có phương pháp xác thực tích hợp
trong SQLite. Bất kỳ ai cũng có quyền truy
cập vào các tệp cơ sở dữ liệu.
Mặt khác, MySQL có một số cơ chế
bảo mật tích hợp. Điều này bao gm
xác thực tên người dùng, mật khẩu và
SSH.
Tương thích với nhiều ngôn ngữ lập trình.
Thích hợp cho các ứng dụng di động và
web.
Chủ yếu được sử dụng với các ứng
dụng .NET và các sản phẩm của
Microsoft.
| 1/27

Preview text:

lOMoARcPSD| 36067889 MỤC LỤC
I. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID ................................................... 1
1.1. Lịch sử hình thành ........................................................................................ 2
1.2. Các thiết bị mà hệ điều hành Android hướng tới ......................................... 3
1.3. Sự phổ biến của hệ điều hành Android ........................................................ 4
II. CẤU TRÚC HỆ THỐNG ANDROID TRÊN NỀN TẢNG SMARTPHONE .... 5
2.1 Tầng ứng dụng ............................................................................................... 5
2.2 Tầng khung ứng dụng ................................................................................... 7
2.3 Tầng thư viện nền tảng .................................................................................. 9
2.4 Nhân Linux .................................................................................................. 11
III. QUẢN LÝ FILE ................................................................................................ 13
3.1 Hệ thống file ................................................................................................ 13
3.2 Ứng dụng quản lý file mặc định .................................................................. 15
IV. TỔ CHỨC QUẢN TRỊ CƠ SỞ DỮ LIỆU ....................................................... 15
4.1 Hệ quản trị cơ sở dữ liệu ............................................................................. 15
4.2 Lưu trữ dữ liệu ............................................................................................. 19
4.3 Chia sẻ dữ liệu ............................................................................................. 21
V. SO SÁNH HỆ THỐNG QUẢN TRỊ CƠ SỞ DỮ LIỆU CỦA ANDROID VÀ
MYSQL CỦA WINDOWS ..................................................................................... 24
5.1 MySQL là gì? .............................................................................................. 24
5.2 So sánh MySQL và SQLite ......................................................................... 26
I. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID
Hệ điều hành Android là một hệ điều hành di động phổ biến do Google phát
triển và được sử dụng trên các thiết bị di động như điện thoại thông minh, máy tính
bảng và thiết bị thông minh khác. Android được xây dựng dựa trên kernel Linux và
được thiết kế để đáp ứng nhu cầu của người dùng và nhà phát triển ứng dụng. lOMoARcPSD| 36067889
I.1. Lịch sử hình thành
Hệ điều hành Android được phát triển bởi một công ty có tên là Android
Inc., được thành lập vào năm 2003 bởi Andy Rubin, Rich Miner, Nick Sears và
Chris White. Ban đầu, Android Inc. dự định phát triển một hệ điều hành cho
máy tính thông minh, nhưng sau đó chuyển hướng tập trung vào việc phát triển
một hệ điều hành di động.
Vào năm 2005, Google đã mua lại Android Inc. với mục tiêu sử dụng
công nghệ hệ điều hành Android như một nền tảng phát triển cho điện thoại di
động. Sau thỏa thuận mua lại, Android Inc. tiếp tục hoạt động dưới sự quản lý của Google.
Ngày 5 tháng 11 năm 2007, Google đã ra mắt phiên bản đầu tiên của hệ
điều hành Android, được gọi là Android 1.0 (còn được gọi là "Android Beta").
Phiên bản này chạy trên điện thoại di động đầu tiên sử dụng Android, HTC
Dream, được bán trên thị trường dưới tên gọi T-Mobile G1 ở Hoa Kỳ và HTC
Dream ở các quốc gia khác.
Kể từ đó, Android đã trải qua nhiều phiên bản và cải thiện, với các phiên
bản quan trọng bao gồm Cupcake (Android 1.5), Donut (Android 1.6), Eclair
(Android 2.0/2.1), Froyo (Android 2.2), Gingerbread (Android 2.3),
Honeycomb (Android 3.0/3.1/3.2), Ice Cream Sandwich (Android 4.0), Jelly
Bean (Android 4.1/4.2/4.3), KitKat (Android 4.4), Lollipop (Android 5.0/5.1),
Marshmallow (Android 6.0), Nougat (Android 7.0/7.1), Oreo (Android 8.0/8.1),
Pie (Android 9), Android 10 và Android 11.
Android đã trở thành một trong những hệ điều hành di động phổ biến và
được sử dụng rộng rãi trên toàn thế giới. Sự phát triển của Android đã mang lại
không chỉ một nền tảng mạnh mẽ cho các thiết bị di động và ứng dụng, mà còn
mở ra nhiều cơ hội cho nhà phát triển vì nó dựa trên mã nguồn mở, cho phép
các nhà phát triển tạo ra các ứng dụng và tùy chỉnh hệ thống theo ý muốn của họ. lOMoARcPSD| 36067889
Các phiên bản hệ điều hành Android đã được ra mắt
I.2. Các thiết bị mà hệ điều hành Android hướng tới
Android hướng đến nhiều loại thiết bị khác nhau. Dưới đây là một số loại thiết
bị mà Android hướng tới:
• Điện thoại thông minh: Android là hệ điều hành phổ biến nhất trong các điện
thoại thông minh. Nó được sử dụng trên rất nhiều thương hiệu điện thoại
như Samsung, Google Pixel, OnePlus, Huawei, Xiaomi, Motorola, Sony và
nhiều thương hiệu khác.
• Máy tính bảng: Android cũng được sử dụng trên nhiều loại máy tính bảng từ
các nhà sản xuất như Samsung, Lenovo, Asus, Amazon Kindle và nhiều
thương hiệu khác. Máy tính bảng Android cung cấp một trải nghiệm di động
tương tự như điện thoại thông minh, nhưng với màn hình lớn hơn và khả
năng làm việc đa nhiệm.
• Đồng hồ thông minh: Android Wear là phiên bản Android được thiết kế
dành riêng cho các đồng hồ thông minh. Các thương hiệu đồng hồ thông lOMoARcPSD| 36067889
minh như Samsung Galaxy Watch, Fossil, Huawei Watch và nhiều hãng
khác sử dụng hệ điều hành này để cung cấp các tính năng thông minh như
theo dõi sức khỏe, thông báo, truy cập internet và nhiều tính năng khác.
• TV thông minh: Android TV là phiên bản Android được tùy chỉnh cho các
smart TV. Các nhà sản xuất TV như Sony, LG, Sharp và Philips đã tích hợp
hệ điều hành Android vào các mẫu TV của họ để mang lại trải nghiệm giải
trí toàn diện với ứng dụng, trò chơi, và dịch vụ trực tuyến.
• Thiết bị định vị ô tô: Android Auto là một phiên bản Android được thiết kế
để hoạt động trên màn hình của xe ô tô. Nó cho phép người dùng kết nối
điện thoại thông minh của mình với hệ thống đài phát thanh và định vị của
xe, cung cấp các tính năng như điều hướng, gọi điện, gửi tin nhắn và truy
cập nhạc trong khi lái xe một cách an toàn.
Ngoài ra, Android cũng được sử dụng trên các thiết bị như máy tính xách tay,
TV Box, máy nghe nhạc di động, thiết bị đọc sách điện tử và nhiều thiết bị di
động khác. Android có tính linh hoạt cao và thích nghi với nhiều kiểu thiết bị khác nhau.
I.3. Sự phổ biến của hệ điều hành Android
Hệ điều hành Android là hệ điều hành di động phổ biến nhất trên thế giới. Dưới
đây là một số lý do mà Android đã trở thành một trong những hệ điều hành phổ biến nhất:
• Số lượng người dùng: Android có một cộng đồng người dùng lớn, với hàng
tỷ người dùng trên toàn cầu. Điều này bởi vì Android được sử dụng trên
nhiều thiết bị khác nhau và có sẵn trên các thương hiệu điện thoại phổ biến.
• Đa dạng thiết bị: Android có khả năng tương thích với nhiều loại thiết bị,
bao gồm điện thoại thông minh, máy tính bảng, TV thông minh, đồng hồ
thông minh và nhiều loại thiết bị di động khác. Điều này cung cấp sự linh
hoạt và lựa chọn đa dạng cho người dùng.
• Ứng dụng và dịch vụ: Android có một cửa hàng ứng dụng phong phú là
Google Play Store, nơi người dùng có thể tải xuống hàng ngàn ứng dụng, trò
chơi và nội dung giải trí. Ngoài ra, Android tích hợp các dịch vụ của Google
như Gmail, Google Maps, Google Drive và nhiều dịch vụ khác.
• Tùy chỉnh và linh hoạt: Android cho phép người dùng tùy chỉnh và điều
chỉnh giao diện, ứng dụng và cài đặt theo ý muốn của mình. Người dùng có
thể tùy chỉnh hình nền, chủ đề, biểu tượng ứng dụng và nhiều hơn nữa. lOMoARcPSD| 36067889
• Sự phát triển và nâng cấp liên tục: Android được Google cung cấp các phiên
bản cập nhật và nâng cấp thường xuyên, cung cấp tính năng mới và cải tiến
hiệu suất. Người dùng Android có thể truy cập những cải tiến này và trải
nghiệm những tính năng mới nhất của hệ điều hành.
Tổng quan, sự phổ biến của hệ điều hành Android có nguồn gốc từ sự linh hoạt,
đa dạng và khả năng tùy chỉnh của nó, cung cấp cho người dùng trải nghiệm di
động đa dạng và đáp ứng nhu cầu của mọi người.
II. CẤU TRÚC HỆ THỐNG ANDROID TRÊN NỀN TẢNG SMARTPHONE
Hệ điều hành Android được tổ chức theo cấu trúc phân lớp và được chia thành 4 tầng chính:
Sơ đồ cấu trúc hệ điều hành Android
2.1 Tầng ứng dụng
Tầng ứng dụng (Application Layer) là tầng cao nhất của kiến trúc Android. Là
nơi mà ứng dụng người dùng và ứng dụng hệ thống chạy và tương tác với hệ
thống. Tầng này bao gồm các ứng dụng được cài đặt sẵn như trang chủ, danh
bạ, máy ảnh, thư viện ảnh và các ứng dụng của bên thứ ba được tải từ cửa
hàng chơi (Play Store) như ứng dụng trò chuyện, trò chơi sẽ được cài đặt trên
tầng này. Chúng chạy bên trong thời gian chạy Android với sự trợ giúp của
các lớp và dịch vụ được cung cấp bởi khung ứng dụng. lOMoARcPSD| 36067889
Tầng ứng dụng trong hệ thống Android chứa nhiều thành phần và ứng dụng
khác nhau để cung cấp các chức năng cơ bản cho người dùng. Ứng dụng trong
tầng ứng dụng được chia thành 2 nhóm chính: ứng dụng hệ thống và ứng dụng bên thứ 3:
a. Ứng dụng hệ thống
Đây là các ứng dụng được tích hợp sẵn trong hệ thống Android và không thể
bị gỡ bỏ hoặc vô hiệu hóa mà không cần root thiết bị. Các ứng dụng hệ thống thường bao gồm:
• Màn hình chính (Home): Màn hình chính của Android là nơi người
dùng bắt đầu và kết thúc. Nó chứa các biểu đồ (icons) cho các ứng dụng
phổ biến mà người dùng muốn truy cập nhanh chóng. Người dùng có
thể khởi chạy các ứng dụng bằng cách nhấp vào biểu đồ của chúng.
Màn hình chính cũng có thể chứa các tiện ích (widgets) để hiển thị
thông tin như mạng, pin, ngày và giờ.
• Danh bạ (Contacts) Ứng dụng danh bạ cho phép người dùng lưu trữ,
quản lý và truy cập thông tin liên hệ. Nó cung cấp khả năng tạo, sửa đổi
và xóa liên hệ, cũng như tích hợp thông tin liên hệ với các ứng dụng và
dịch vụ khác trên thiết bị.
• Ứng dụng Điện thoại (Phone): Ứng dụng điện thoại cho phép người
dùng thực hiện cuộc gọi điện thoại và quản lý cuộc gọi đến và đi.
Người dùng có thể quản lý danh bạ, lọc cuộc gọi và thực hiện cuộc gọi video hoặc thoại.
• Trình duyệt (Browser): Ứng dụng trình duyệt cho phép người dùng
duyệt web, tìm kiếm thông tin trực tuyến và truy cập các trang web. Nó
hỗ trợ nhiều tính năng liên quan đến duyệt web, bao gồm tab duyệt, lịch
sử trang web và quản lý dấu trang.
• Ứng dụng Tin nhắn (Messages): Ứng dụng tin nhắn cho phép người
dùng gửi và nhận tin nhắn văn bản (SMS) và hình ảnh (MMS). Nó cung
cấp giao diện để quản lý cuộc trò chuyện và lưu trữ tin nhắn.
Ngoài các thành phần chính ở trên, các ứng dụng hệ thống Android cũng bao
gồm nhiều ứng dụng khác nhau để cung cấp các chức năng đa dạng cho
người dùng. Có thể kể đến như: Lịch, máy ảnh, camera, ghi âm, ghi chú,
music player, video player, maps… lOMoARcPSD| 36067889
Tất cả các thành phần này là một phần của tầng ứng dụng và cung cấp các
chức năng cơ bản mà người dùng sử dụng hàng ngày trên thiết bị Android của họ.
b. Ứng dụng bên thứ 3 (Third-party Apps):
Đây là các ứng dụng được cài đặt từ Google Play Store hoặc từ nguồn khác
ngoài hệ thống Android. Ứng dụng bên thứ 3 do các nhà phát triển và các
công ty khác tạo ra để cung cấp các tính năng và dịch vụ đa dạng. Các ví dụ
về ứng dụng bên thứ 3 bao gồm các trò chơi, ứng dụng xã hội, ứng dụng
thương mại điện tử, ứng dụng sức khỏe, và nhiều loại ứng dụng khác.
=> Ứng dụng hệ thống thường đi kèm với hệ thống Android và cung cấp
các chức năng cơ bản, trong khi ứng dụng bên thứ 3 là sự bổ sung cho các
tính năng và dịch vụ đa dạng tạo ra bởi các bên thứ ba. Người dùng có khả
năng tải xuống và cài đặt ứng dụng bên thứ 3 để tùy chỉnh thiết bị của họ và
thêm tính năng mới theo nhu cầu cá nhân.
2.2 Tầng khung ứng dụng
Khung ứng dụng (Application Framework) là một trong những tầng quan
trọng trong kiến trúc hệ thống Android. Tầng này cung cấp nhiều lớp quan
trọng được sử dụng để tạo ra một ứng dụng Android. Nó cung cấp một sự
trừu tượng chung cho việc truy cập phần cứng và cũng giúp quản lý giao
diện người dùng với tài nguyên ứng dụng. Nó thường cung cấp các dịch vụ
giúp chúng ta có thể tạo ra một lớp cụ thể và làm cho lớp đó hữu ích cho việc tạo ra ứng dụng. lOMoARcPSD| 36067889
Cấu trúc tầng khung ứng dụng
• Activities Manager: Activity Management là một phần quan trọng của
Application Framework. Nó quản lý vòng đời của các Activity (màn
hình) trong ứng dụng. Activities là thành phần giao diện người dùng chính của ứng dụng.
• Window Manager: Window Manager quản lý cửa sổ ứng dụng trên màn
hình. Nó quản lý việc hiển thị, chuyển đổi giữa các ứng dụng và xử lý
tương tác người dùng như cảm ứng màn hình.
• Content Providers: Content Providers cho phép ứng dụng truy cập và chia
sẻ dữ liệu với các ứng dụng khác thông qua cơ chế quản lý cơ sở dữ liệu. lOMoARcPSD| 36067889
Nó giúp đảm bảo tính kết nối dữ liệu trong hệ thống Android.
• Resource Manager: Resource Manager quản lý các tài nguyên ứng dụng
như hình ảnh, âm thanh, văn bản, và các tài liệu khác. Nó cho phép ứng
dụng truy cập và sử dụng các tài nguyên này.
• Notification Manager: Notification Manager quản lý việc hiển thị thông
báo cho người dùng từ các ứng dụng và hệ thống. Nó cung cấp khả năng
thông báo cho người dùng về sự kiện quan trọng.
• TelephonyManager là một trong những dịch vụ quan trọng mà
Application Framework cung cấp cho ứng dụng Android.
TelephonyManager cho phép ứng dụng tương tác với các tính năng liên
quan đến điện thoại và dịch vụ di động. Như thông tin về Sim Card, kiểm
tra trạng thái đang kết nối, mất kết nối, hoặc không có tín hiệu.
• View System: View System quản lý giao diện người dùng của ứng dụng,
bao gồm các thành phần như các View và ViewGroup, cho phép xây
dựng giao diện người dùng tương tác.
• Package Manager: Package Manager quản lý cài đặt và quản lý các ứng
dụng trên thiết bị. Nó kiểm tra, cài đặt, và quản lý các ứng dụng Android.
• Location manager: cho phép ứng dụng truy cập và quản lý thông tin vị trí
của thiết bị. Điều này cho phép ứng dụng xác định vị trí của thiết bị, theo
dõi sự thay đổi vị trí, và sử dụng thông tin vị trí để cung cấp các tính năng
liên quan đến định vị, như bản đồ, hướng dẫn đi đường, và ứng dụng dự
đoán thời tiết. Location Manager cung cấp các công cụ và giao diện lập
trình ứng dụng (APIs) để quản lý dịch vụ định vị và truy cập thông tin vị trí của thiết bị.
• XMPP (Extensible Messaging and Presence Protocol) Service là một giao
thức để truyền tải tin nhắn và thông tin trạng thái giữa các máy tính,
server, và thiết bị di động. Trong Android, việc sử dụng XMPP thường
liên quan đến các ứng dụng hoặc dịch vụ cung cấp khả năng trò chuyện
trực tiếp (instant messaging) hoặc gửi tin nhắn trong thời gian thực.
• XMPP Service trong ngữ cảnh Android là một dịch vụ hoặc thành phần
của ứng dụng Android có khả năng sử dụng giao thức XMPP để thực
hiện các tác vụ như: Trò chuyện trực tiếp (Instant Messaging), Gửi tệp
đính kèm, Nhóm Trò Chuyện Bảo mật, mã hoá cuộc trò chuyện.
2.3 Tầng thư viện nền tảng
Thư viện nền tảng bao gồm các thư viện lõi C/C++ và các thư viện dựa trên
Java như Đa phương tiện, Đồ họa, Quản lý Bề mặt, OpenGL v.v. để hỗ trợ lOMoAR cPSD| 36067889
việc phát triển Android. Các thành phần quan trọng trong tầng thư viện nền
tảng của Android bao gồm:
• Surface Manager: Surface Manager là một thành phần quan trọng trong
việc quản lý các bề mặt hiển thị trên màn hình thiết bị Android. Nó cho
phép ứng dụng vẽ và điều khiển hiển thị đồ họa trên màn hình.
• OpenGL ES (Open Graphics Library for Embedded Systems): OpenGL
ES là một API đồ họa 3D được sử dụng rộng rãi trong phát triển ứng
dụng Android để tạo ra đồ họa 3D đẹp mắt. Nó cho phép ứng dụng sử
dụng sức mạnh đồ họa của thiết bị.
• (Software Graphics Library): SGL là một thư viện đồ họa phần mềm cho
việc vẽ đồ họa 2D trên Android. Nó cung cấp các công cụ để tạo ra các
đối tượng đồ họa như hình ảnh và văn bản.
• Media Framework: Media Framework bao gồm các thư viện và công cụ
cho việc xử lý và phát trực tiếp âm thanh và video trên các thiết bị
Android. Nó hỗ trợ các định dạng phổ biến như MP3, H.264, và nhiều định dạng khác.
• FreeType: FreeType là một thư viện mã nguồn mở cho việc xử lý và hiển
thị các font và ký tự. Nó được sử dụng trong Android để hiển thị văn bản
trên các ứng dụng và giao diện người dùng.
• SSL (Secure Sockets Layer): SSL là một thư viện mã hóa và bảo mật
được sử dụng trong Android để thiết lập kết nối an toàn qua mạng, chẳng
hạn như khi truy cập dịch vụ web an toàn qua HTTPS.
• SQLite: SQLite là một hệ quản lý cơ sở dữ liệu nhẹ và phổ biến được tích
hợp trong Android. Nó cho phép ứng dụng lưu trữ và truy vấn dữ liệu cục
bộ, như danh bạ và dữ liệu ứng dụng.
• WebKit: WebKit là một công nghệ duyệt web mã nguồn mở và nền tảng
hiển thị trình duyệt web được sử dụng trong Android để hiển thị nội dung web trong ứng dụng.
• Libc (C Library): Libc là thư viện chuẩn của ngôn ngữ lập trình C, được
sử dụng trong Android để cung cấp các hàm và tính năng cơ bản của C
cho các ứng dụng và hệ thống.
• Android Runtime: Android Runtime bao gồm các thành phần sau:
• Core Libraries: Core Libraries là bộ thư viện chứa các lớp và hàm cơ bản
của Java và Kotlin, được sử dụng trong phát triển ứng dụng Android.
• Dalvik Virtual Machine: Dalvik là máy ảo được sử dụng trước Android
5.0, và sau đó, nó đã được thay thế bằng ART (Android Runtime) cho lOMoARcPSD| 36067889
việc chạy mã nguồn Java được biên dịch thành mã Dalvik hoặc mã máy ảo ART.
• Các thành phần này cùng nhau tạo thành tầng thư viện nền tảng của
Android, cung cấp các công cụ và thư viện cho nhà phát triển để xây
dựng các ứng dụng đa dạng trên nền tảng Android. 2.4 Nhân Linux
Nhân Linux là trái tim của kiến trúc Android. Nó quản lý tất cả các trình
điều khiển có sẵn như trình điều khiển hiển thị, trình điều khiển máy ảnh,
trình điều khiển Bluetooth, trình điều khiển âm thanh, trình điều khiển bộ
nhớ, v.v. mà yêu cầu trong thời gian chạy.
Nhân Linux sẽ cung cấp một lớp trừu tượng giữa phần cứng thiết bị và các
thành phần khác của kiến trúc Android. Nó chịu trách nhiệm quản lý bộ nhớ,
năng lượng, thiết bị v.v.
Các tính năng của Nhân Linux là:
• Bảo mật: Nhân Linux xử lý việc bảo mật giữa ứng dụng và hệ thống.
• Quản lý bộ nhớ: Nó quản lý việc quản lý bộ nhớ một cách hiệu quả,
đồng thời cung cấp sự linh hoạt để phát triển ứng dụng của chúng ta.
• Quản lý tiến trình: Nó quản lý tiến trình tốt, phân bổ tài nguyên cho
tiến trình khi chúng cần chúng.
• Ngăn xếp Mạng: Nó xử lý giao tiếp mạng một cách hiệu quả. lOMoAR cPSD| 36067889
• Mô hình Trình điều khiển: Nó đảm bảo rằng ứng dụng hoạt động
đúng trên thiết bị và các nhà sản xuất phần cứng chịu trách nhiệm xây
dựng trình điều khiển của họ vào bản Linux.
Các thành phần chính trong nhân Linux:
• Trình điều khiển Camera (Camera Driver): Trình điều khiển này giúp
kết nối hệ thống Android với camera của thiết bị. Nó cần được tối ưu
hóa để chụp ảnh và quay video một cách hiệu quả, và cung cấp các
API để các ứng dụng có thể tương tác với camera.
• Trình điều khiển Bluetooth (Bluetooth Driver): Điều khiển Bluetooth
cho phép thiết bị Android kết nối với các thiết bị khác thông qua
Bluetooth. Nó quản lý các chức năng như kết nối, truyền dữ liệu và
quản lý tiêu thụ năng lượng của kết nối Bluetooth.
• Trình điều khiển USB (USB Driver): Trình điều khiển USB cho phép
truyền dữ liệu giữa thiết bị Android và máy tính hoặc các thiết bị
ngoại vi khác thông qua cổng USB. Điều này cần thiết cho việc
chuyển dữ liệu, sạc pin, và thực hiện các chức năng khác liên quan đến USB.
• Trình điều khiển Bàn phím (Keypad Driver): Điều khiển bàn phím xử
lý tất cả các đầu vào từ bàn phím của thiết bị, bao gồm cả bàn phím
vật lý và bàn phím trên màn hình. Nó chịu trách nhiệm cho việc
chuyển các lệnh từ bàn phím thành dữ liệu mà hệ thống có thể hiểu được.
• Trình điều khiển Wi-Fi (Wi-Fi Driver): Điều khiển Wi-Fi cho phép
thiết bị Android kết nối với các mạng Wi-Fi. Nó quản lý việc tìm
kiếm mạng, xác thực và kết nối, cũng như duy trì kết nối trong quá trình sử dụng internet.
• Trình điều khiển m thanh (Audio Driver): Điều khiển âm thanh xử lý
đầu ra và đầu vào âm thanh của thiết bị. Nó quản lý việc phát nhạc,
giọng nói trong cuộc gọi và âm thanh của các ứng dụng khác.
• Quản lý Năng lượng (Power Management): Thành phần quản lý năng
lượng đảm bảo rằng thiết bị Android sử dụng năng lượng một cách
hiệu quả. Điều này bao gồm việc quản lý việc chuyển đổi giữa các
trạng thái ngủ và hoạt động đầy đủ công suất để tiết kiệm pin và tăng
thời gian sử dụng pin của thiết bị. lOMoARcPSD| 36067889
• Alarm Driver: Cung cấp các hẹn giờ để đánh thức các thiết bị hoặc
các tiến trình trong hệ thống khi cần thiết.
• Shared Memory Driver (ashmem): Được sử dụng để quản lý bộ nhớ
chia sẻ giữa các tiến trình Android. Ashmem cho phép các ứng dụng
chia sẻ dữ liệu mà không cần sao chép dữ liệu thực sự giữa chúng.
• Binder: Đây là một cơ chế IPC (Inter-Process Communication) được
tối ưu hóa dành riêng cho Android. Nó cho phép các tiến trình
Android gửi và nhận dữ liệu một cách hiệu quả.
• Low Memory Killer: Điều này là một thành phần quan trọng của hệ
thống quản lý bộ nhớ Android. Nó quản lý việc giết các tiến trình khi
bộ nhớ thấp, giúp đảm bảo rằng hệ thống không bị quá tải với các ứng dụng không hoạt động.
• Kernel Debugger và Logger: Cung cấp các công cụ cho nhà phân tích
hệ thống để theo dõi và gỡ lỗi vấn đề trong kernel.
Các thành phần này là những yếu tố không thể thiếu để hệ thống Android hoạt
động một cách đầy đủ và hiệu quả trên các thiết bị di động, đáp ứng nhu cầu
người dùng về tính ổn định, hiệu suất và tiện ích. III. QUẢN LÝ FILE 3.1 Hệ thống file
Đối với các thiết bị di động, đĩa cứng có kích thước quá lớn và tiêu tốn quá
nhiều năng lượng. Ngược lại, bộ nhớ flash cung cấp thời gian truy cập đọc
nhanh và khả năng chống sốc động học tốt hơn so với đĩa cứng. Về cơ bản,
có hai loại bộ nhớ flash khác nhau dựa trên kỹ thuật xây dựng của chúng:
NOR và NAND. NOR có mật độ thấp, cung cấp khả năng ghi chậm và đọc
nhanh. NAND có chi phí thấp, mật độ cao và cung cấp khả năng ghi nhanh và
đọc chậm. Các hệ thống nhúng đang ngày càng sử dụng flash NAND để lưu trữ
và NOR để mã hóa và thực thi.
Trước đây, Android sử dụng hệ thống tệp flash YAFFS (Yet Another Flash
File System) như một hệ thống lưu trữ đáng tin cậy với thời gian khởi động
nhanh cho các thiết bị bộ nhớ flash. So với các hệ thống tệp đĩa nói chung,
các hệ thống tệp flash loại bỏ thời gian tìm kiếm, nhưng chúng phải xử lý
các giới hạn về thời gian tồn tại và sửa lỗi. lOMoARcPSD| 36067889
Các thiết bị di động sử dụng YAFFS thường chịu được ít lỗi vì hệ thống có
thể dễ dàng gặp sự cố nếu hệ thống tệp bị hỏng. Để tránh sự cố này, YAFFS
cung cấp tính năng quản lý khối lỗi và sửa lỗi để duy trì tính toàn vẹn của dữ
liệu trong NAND flash và đạt được một hệ thống tệp mạnh mẽ nhanh chóng.
Kể từ phiên bản Android 2.3 trở đi, Android sử dụng hệ thống files EXT4 để
cải thiện hiệu suất, độ tin cậy và dung lượng.
Trong EXT4, phân bổ dữ liệu đã được thay đổi từ các khối cố định thành các
phạm vi. Một phạm vi được mô tả bằng vị trí bắt đầu và kết thúc của nó trên
ổ cứng. Điều này giúp ta có thể mô tả các tệp rất dài, liền kề về mặt vật lý
trong một mục nhập con trỏ, điều này có thể làm giảm đáng kể số lượng con
trỏ cần thiết để mô tả vị trí của tất cả dữ liệu trong các tệp lớn hơn.
EXT4 làm giảm sự phân mảnh bằng cách phân tán các tệp mới được tạo trên
đĩa để chúng không bị dồn vào một vị trí ở đầu đĩa. Các thuật toán phân bổ
tệp cố gắng phân bổ tệp đồng đều nhất có thể giữa các nhóm hình trụ và khi
cần phân mảnh, để giữ cho phạm vi tệp không liên tục càng gần càng tốt với
các tệp khác trong cùng một tệp để giảm thiểu đầu tìm kiếm và độ trễ quay
nhiều nhất có thể càng tốt. Các chiến lược bổ sung được sử dụng để phân bổ
trước dung lượng đĩa bổ sung khi tệp mới được tạo hoặc khi tệp hiện có
được mở rộng. Điều này giúp đảm bảo rằng việc mở rộng tệp sẽ không tự
động dẫn đến việc nó bị phân mảnh. Các tệp mới không bao giờ được cấp
phát ngay sau các tệp hiện có, điều này cũng ngăn chặn sự phân mảnh của các tệp hiện có.
Ngoài vị trí thực tế của dữ liệu trên đĩa, EXT4 sử dụng các chiến lược chức
năng, chẳng hạn như phân bổ trì hoãn, để cho phép hệ thống tệp thu thập tất
cả dữ liệu đang được ghi vào đĩa trước khi cấp phát dung lượng cho nó. Điều
này có thể cải thiện khả năng không gian dữ liệu liền kề. lOMoARcPSD| 36067889
3.2 Ứng dụng quản lý file mặc định
Ứng dụng quản lý file mặc định trên Android thường là "Files" hoặc "Tệp
tin". Nó cung cấp các tính năng cơ bản như duyệt thư mục, tạo, di chuyển và
xóa tệp tin. Các tính năng quản lý file cơ bản:
• Duyệt thư mục: Người dùng có thể xem cấu trúc thư mục, thư mục con và tệp tin bên trong.
• Tạo, di chuyển và xóa: Cho phép người dùng tạo thư mục mới, di
chuyển tập tin và xóa chúng để tổ chức dữ liệu.
Tạo mới: Người dùng có thể tạo thư mục mới hoặc tệp tin mới
bằng cách chọn tùy chọn "Tạo mới" và sau đó nhập tên và loại tệp cần thiết.
Di chuyển: Để di chuyển tệp tin hoặc thư mục, người dùng
thường giữ và kéo tệp tin đó đến vị trí mong muốn hoặc sử dụng
các tùy chọn di chuyển/copy/cắt và dán.
Xóa: Bằng cách giữ và chọn tệp tin hoặc thư mục, người dùng
có thể xóa chúng thông qua tùy chọn "Xóa" hoặc "Thùng rác".
• Chia sẻ: Người dùng có thể chia sẻ tập tin thông qua email, tin nhắn,
hoặc lưu trữ trên các dịch vụ đám mây.
IV. TỔ CHỨC QUẢN TRỊ CƠ SỞ DỮ LIỆU
4.1 Hệ quản trị cơ sở dữ liệu
a) Giới thiệu về SQLite
SQLite là hệ thống quản lý cơ sở dữ liệu quan hệ nhẹ và không cần máy
chủ phổ biến trong phát triển Android. SQLite được triển khai dưới dạng
thư viện nhúng, phát triển bởi Dwayne Richard Hipp và được phát hành
lần đầu vào năm 2000. SQLite là hệ thống quản lí cơ sở dữ liệu mã
nguồn mở và miễn phí sử dụng, rất nhẹ và linh hoạt. SQLite được cài đặt
như một thư viện nhỏ gọn và là một phần trong bộ phần mềm Android.
Ngoài ra, SQLite cung cấp các chức năng như thông qua một thư viện
chứ không phải là một quá trình riêng biệt. Mỗi cơ sở dữ liệu sẽ trở thành
một phần được tích hợp trong ứng dụng. Điều này giúp làm giảm sự phụ
thuộc vào bên ngoài, tối thiểu độ trễ và đơn giản hóa các giao dịch và đồng bộ. lOMoARcPSD| 36067889 b) Đặc điểm
Nhúng: SQLite có thể nhúng trực tiếp vào ứng dụng, điều này có
nghĩa là không cần một quy trình server riêng biệt. Điều này làm giảm
độ phức tạp khi triển khai ứng dụng, đặc biệt là trong các ứng dụng di
động và nhúng như các thiết bị IoT (Internet of Things).
Không yêu cầu cấu hình: SQLite không yêu cầu cấu hình phức tạp.
Không có quy trình server cần khởi động và quản lý, điều này giúp
giảm độ phức tạp khi triển khai và bảo trì hệ thống cơ sở dữ liệu.
Hỗ trợ ACID: SQLite đảm bảo tính nhất quán và an toàn dữ liệu
thông qua việc hỗ trợ ACID, một tập hợp các tính chất quan trọng
trong quản lý cơ sở dữ liệu:
Atomicity (Nguyên tác): Các thao tác được thực hiện hoặc không
được thực hiện hoàn toàn.
Consistency (Tính nhất quán): Dữ liệu phải đảm bảo tính nhất quán sau mỗi giao dịch.
Isolation (Cô lập): Mỗi giao dịch thực hiện độc lập với các giao dịch khác.
Durability (Bền vững): Khi một giao dịch được xác nhận, thì nó
phải được lưu trữ vĩnh viễn.
Dữ liệu kiểu động: SQLite hỗ trợ nhiều kiểu dữ liệu động, bao gồm:
INTEGER: Lưu trữ số nguyên.
TEXT: Lưu trữ chuỗi văn bản. REAL: Lưu trữ số thực.
BLOB: Lưu trữ dữ liệu nhị phân (binary large objects), thường
được sử dụng để lưu trữ hình ảnh, video, và các loại dữ liệu khác. lOMoARcPSD| 36067889
Phiên bản đa nhiệm: SQLite hỗ trợ nhiều phiên bản đọc cùng một
lúc (multiple readers) để các đọc (SELECT) có thể diễn ra đồng thời
mà không gây xung đột. Tuy nhiên, chỉ một phiên bản ghi (writer)
được phép vào một thời điểm để đảm bảo tính nhất quán và tránh tình
trạng mất dữ liệu (lost updates) khi có ghi (INSERT, UPDATE,
DELETE). Điều này giúp tối ưu hóa hiệu suất trong các tình huống đọc nhiều và ghi ít. c) Sử dụng
Nhúng vào ứng dụng di động: SQLite thường được sử dụng trong
ứng dụng di động như Android và iOS để lưu trữ dữ liệu cục bộ. Vì
nó là một cơ sở dữ liệu nhúng, không yêu cầu quy trình server riêng
biệt và giảm bớt độ phức tạp trong triển khai ứng dụng trên các thiết bị di động.
Web development: SQLite cũng được sử dụng rộng rãi trong phát
triển web, đặc biệt là cho các ứng dụng web nhỏ và trung bình. Trong
môi trường web, nó có thể được tích hợp vào ứng dụng thông qua
ngôn ngữ lập trình như Python, PHP, hoặc JavaScript thông qua các thư viện như SQLite3.
Dự án nhỏ đến trung bình: SQLite thích hợp cho các dự án nhỏ và
trung bình với ít người sử dụng cùng một lúc. Trong các dự án có quy
mô nhỏ, nó mang lại sự đơn giản và linh hoạt mà không đòi hỏi cấu
hình phức tạp hay tài nguyên lớn. Điều này làm cho SQLite là lựa
chọn phổ biến cho các ứng dụng cá nhân, ứng dụng văn phòng, và dự án khởi nghiệp.
d) Ngôn ngữ truy vấn
Ngôn ngữ truy vấn được sử dụng trong SQLite là SQL (Structured
Query Language), cùng với một số phần mở rộng và cải tiến để hỗ trợ
các tính năng đặc biệt của SQLite cho việc truy vấn và quản lý cơ sở dữ liệu.
e) Ưu và nhược điểmƯu điểm:
Nhẹ, linh hoạt và dễ triển khai.
Không yêu cầu quản lý server. Hỗ trợ ACID.
Tương thích với nhiều ngôn ngữ lập trình. lOMoARcPSD| 36067889 • Nhược điểm:
Không phù hợp cho các ứng dụng lớn với nhiều người sử dụng đồng thời.
Khả năng xử lý phức tạp không bằng các hệ quản trị cơ sở dữ liệu lớn hơn.
Hạn chế trong việc xử lý các truy vấn phức tạp.
Tất cả cơ sở dữ liệu của Android được lưu trữ trong thư mục /data/data/
package>/databases trong thiết bị hoặc máy ảo. Mặc định tất cả cơ sở dữ
liệu là riêng tư chỉ có ứng dụng tạo ra chúng mới có quyền truy cập.
Một số lớp trợ giúp (Helper Class):
• SQLiteOpenHelper : là một lớp trợ giúp cung cấp các phương thức để
tạo, nâng cấp và quản lý cơ sở dữ liệu SQLite của ứng dụng
• SQLiteDatabase: đại diện cho cơ sở dữ liệu, cung cấp các phương
thức để thực hiện các thao tác CRUD (Create, Read, Update, Delete).
Bất kì cơ sở dữ liệu mà ta tạo chỉ có thể truy cập được bởi ứng dụng của ta.
Tuy nhiên thay vì sử dụng các SQLite API trực tiếp, thì hiện tại Android
khuyến khích các Developers nên tạo và tương tác với cơ sở dữ liệu của mình với Room Database. Room Database lOMoARcPSD| 36067889
4.2 Lưu trữ dữ liệu
Android cung cấp một số tùy chọn để bạn lưu dữ liệu ứng dụng của mình:
a. Internal file storage
Theo mặc định thì các files được lưu vào Internal Storage (bộ nhớ trong)
sẽ là riêng tư đối với ứng dụng của ta, và các ứng dụng khác sẽ không kết
nối được (người dùng cũng không được trừ khi có quyền truy cập root).
Điều này làm cho Internal Storage là một nơi lưu trữ dữ liệu tốt mà người
dùng không cần truy cập trực tiếp. Hệ thống cung cấp một thư mục riêng
tư trong hệ thống file cho mỗi ứng dụng, nơi ta có thể sắp xếp bất kì tệp
nào mà ứng dụng của ta cần.
Bộ nhớ trong của thiết bị Android b. Internal cache file
Nếu muốn lưu trữ một số dữ liệu tạm thời, thay vì duy trì lưu dữ liệu liên
tục, người dùng nên sử dụng cache directory để lưu trữ dữ liệu. Mỗi ứng
dụng có một bộ nhớ cache riêng dành riêng cho các loại file này. Khi ứng
dụng đang hoạt động nhưng hệ thống thiếu bộ nhớ, Android có thể xoá
các file trong bộ nhớ cache này để khôi phục dung lượng. Tuy nhiên bạn
không nên dựa vào hệ thống để dọn dẹp các tệp này cho bạn. Bạn nên
luôn tự duy trì các file trong bộ nhớ cache ở trong giới hạn không gian
hợp lý được tiêu thụ, chẳng hạn như 1MB. Khi người dùng gỡ các cài đặt
của ứng dụng, các file này cũng bị xóa.
c. External file
Mọi thiết bị Android đều hỗ trợ không gian lưu trữ External Storage (bộ
nhớ ngoài) mà ta có thể sử dụng để lưu file. Vùng nhớ này được gọi là
External (ngoài) là bởi vì nói không phải chắc chắn là một vùng nhớ có
thể truy cập được mà nó là một không gian lưu trữ. Là vùng nhớ mà lOMoARcPSD| 36067889
người dùng có thể kết nối với máy tính, thậm chí có thể tháo lắp vật lý, ví
dụ như các thẻ nhớ SD. Các file trên External Storage có thể được đọc ở
mọi nơi và có thể được người dùng sửa đổi khi chúng cho phép như là
một USB để có thể chuyển đổi dữ liệu sang máy tính. d. SharedPreferences
Nếu không lưu nhiều dữ liệu và dữ liệu đó không yêu cầu cấu trúc, người
dùng nên sử dụng Shared Preferences. Loại lưu trữ này cho phép bạn đọc
và ghi các cặp key-value của các kiểu dữ liệu nguyên thủy: booleans, floats, ints, longs và strings.
Các cặp key-value này được ghi vào các tệp XML, luôn tồn tại khi ứng
dụng được sử dụng và kể các khi ứng dụng bị kill. Bạn có thể chỉ định
tên cho file đó theo cách thủ công cho mỗi hành động để lưu trữ dữ liệu của bạn. lOMoARcPSD| 36067889
4.3 Chia sẻ dữ liệu
Trên nền tảng Android, một ứng dụng không thể truy cập trực tiếp (đọc /
ghi) dữ liệu của ứng dụng khác. Tất cả dữ liệu của ứng dụng là riêng tư đối
với ứng dụng đó. Mỗi ứng dụng đều có thư mục dữ liệu id riêng và vùng bộ
nhớ được bảo vệ riêng. Điều này có nghĩa là một ứng dụng không thể truy
vấn hoặc thao tác dữ liệu của một ứng dụng khác.
Tuy nhiên, các ứng dụng thường có nhu cầu cung cấp một hoặc nhiều tệp
của chúng cho một ứng dụng khác. Ví dụ: thư viện hình ảnh có thể muốn
cung cấp tệp ảnh cho trình chỉnh sửa hình ảnh hoặc ứng dụng quản lý tệp có
thể muốn cho phép người dùng sao chép và dán tệp giữa các khu vực trong bộ nhớ ngoài. a) Content Providers
Content Providers là một tập dữ liệu được bao bọc trong một custom API để
có thể cho phép đọc và ghi. Nó cung cấp các phương thức khác nhau để các
ứng dụng có thể truy cập dữ liệu từ một ứng dụng khác. Chúng đóng gói dữ
liệu và cung cấp các cơ chế để xác định bảo mật dữ liệu.
Sơ đồ tổng quan về cách Content providers quản lý quyền truy cập vào bộ nhớ Content
Provider điều phối việc truy cập tới bộ lưu trữ dữ liệu thông qua các API và
các component, nó bao gồm:
• Chia sẻ dữ liệu từ ứng dụng tới các ứng dụng khác
• Gửi dữ liệu sang widget
• Trả về một kết quả gợi ý khi search cho ứng dụng thông qua Search Framework. lOMoARcPSD| 36067889
• Đồng bộ dữ liệu của ứng dụng với server bằng cách sử dụng AbstractThreadedSyncAdapter
• Tải dữ liệu lên UI sử dụng CursorLoader
Mối quan hệ giữa Content provider và các thành phần khác
Content Providers tách lớp ứng dụng khỏi lớp dữ liệu bằng cách trừu tượng
nguồn dữ liệu cơ bản, do đó làm cho ứng dụng nguồn dữ liệu độc lập. Chúng
cho phép kiểm soát permission, cho phép ứng dụng khác có quyền truy cập
đến nguồn lưu trữ dữ liệu hay không, giúp cho việc chia sẻ dữ liệu trở lên dễ dàng.
Ứng dụng cung cấp dữ liệu có thể chỉ định các quyền mà các ứng dụng khác
phải có để truy cập dữ liệu của mình. Các quyền này đảm bảo rằng người
dùng biết ứng dụng đang sử dụng sẽ cố gắng truy cập dữ liệu nào. Nếu ứng
dụng của nhà cung cấp không chỉ định bất kỳ quyền nào, thì các ứng dụng
khác không có quyền truy cập vào dữ liệu của nhà cung cấp.
Để truy xuất dữ liệu từ Content provider, phải thực hiện các bước cơ bản sau:
• Yêu cầu quyền truy cập đọc với nhà cung cấp: Ứng dụng của bạn cần
có "quyền truy cập đọc" đối với bên cung cấp.
• Xác định mã gửi truy vấn đến nhà cung cấp Lợi ích của Content Providers:
• Cung cấp quyền kiểm soát chi tiết đối với các quyền truy cập dữ liệu.
Bạn có thể chọn hạn chế quyền truy cập vào Content provider, cấp
quyền toàn bộ để truy cập dữ liệu từ các ứng dụng khác hoặc định cấu
hình các quyền khác nhau để đọc và ghi dữ liệu lOMoARcPSD| 36067889
• Với Content Providers, bạn có thể cho phép nhiều ứng dụng khác truy
cập, sử dụng và sửa đổi một nguồn dữ liệu duy nhất mà ứng dụng của bạn cung cấp.
• Một lợi ích khác của việc tách dữ liệu khỏi giao diện người dùng với
Content Providers là các nhóm phát triển có thể hoạt động độc lập trên
giao diện người dùng và kho dữ liệu của ứng dụng của bạn. Đối với
các ứng dụng phức tạp, lớn hơn, rất phổ biến là giao diện người dùng
và phần phụ trợ dữ liệu được phát triển bởi các nhóm khác nhau và
thậm chí chúng có thể là các ứng dụng riêng biệt b) Intent
Intent cho phép bạn chia sẻ dữ liệu giữa các thành phần khác nhau trong ứng
dụng hoặc giữa các ứng dụng khác nhau.
Ví dụ, bạn có thể sử dụng intent rõ ràng để khởi chạy một hoạt động mới
trong ứng dụng của mình và truyền dữ liệu cho nó. Bạn cũng có thể sử dụng
intent ngụ ý để yêu cầu một hành động cụ thể, chẳng hạn như chia sẻ văn
bản hoặc hình ảnh với các ứng dụng khác trên thiết bị.
ACTION_SEND / ACTION_VIEW: Các intent với ACTION_SEND cho
phép chia sẻ dữ liệu qua các ứng dụng khác, trong khi đó ACTION_VIEW
cho phép mở dữ liệu với ứng dụng xem được liên kết với loại tệp đó. c) File Providers
Quản Lý Truy Cập Tệp Tin: File Providers cho phép ứng dụng chia sẻ tệp tin
của họ với các ứng dụng khác một cách an toàn và kiểm soát.
Bảo Mật Tệp Tin: File Providers giúp đảm bảo rằng chỉ những ứng dụng
được cấp quyền mới có thể truy cập vào tệp tin. lOMoARcPSD| 36067889
d) Cloud Services (Dịch vụ đám mây)
Bạn có thể sử dụng các dịch vụ đám mây như Firebase, OneDrive, Dropbox
hoặc Google Cloud để lưu trữ và chia sẻ dữ liệu trên các thiết bị và nền tảng
khác nhau. Những dịch vụ này cung cấp các API và SDK cho phát triển ứng dụng Android.
=> Phương pháp bạn chọn phụ thuộc vào loại dữ liệu bạn muốn chia sẻ, yêu
cầu bảo mật và tích hợp giữa các phần khác nhau của ứng dụng của bạn hoặc
với các ứng dụng bên ngoài.

V. SO SÁNH HỆ THỐNG QUẢN TRỊ CƠ SỞ DỮ LIỆU CỦA
ANDROID VÀ MYSQL CỦA WINDOWS 5.1 MySQL là gì?
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở. Hệ thống hoạt
động theo mô hình client – server, dựa trên ngôn ngữ truy vấn có cấu trúc
(SQL) và được phát triển, phân phối, hỗ trợ bởi Tập đoàn Oracle. lOMoARcPSD| 36067889
MySQL được ưa chuộng trong quá trình xây dựng và phát triển các ứng
dụng. Hệ thống quản trị cơ sở dữ liệu này được đánh giá có tốc độ cao, ổn
định, dễ dùng và có khả năng thay đổi mô hình sử dụng phù hợp với điều kiện công việc.
MySQL hiện đang hoạt động trên nhiều hệ điều hành Linux, Unix,
Windows,…, cung cấp một hệ thống lớn các hàm tiện ích mạnh mẽ. Nó
thích hợp với các ứng dụng có truy cập cơ sở dữ liệu trên internet nhờ tốc độ
cao và tính bảo mật tốt. Người dùng có thể tải miễn phí MySQL từ trang chủ
với nhiều phiên bản cho các hệ điều hành khác nhau. Ưu điểm:
• Miễn phí: MySQL được phát hành theo giấy phép nguồn mở. Bởi
vậy, bạn không phải trả tiền để sử dụng nó.
• Dễ sử dụng: Nó hoạt động trên nhiều hệ điều hành với nhiều ngôn ngữ
bao gồm Java, C, C++, PHP,… Bởi vậy, nó cung cấp một hệ thống
các hàm tiện ích mạnh mẽ và tiện lợi.
• Tốc độ nhanh chóng: MySQL là hệ cơ sở dữ liệu dễ dùng, có tốc độ
nhanh và hoạt động ổn định ngay cả với các tập dữ liệu lớn.
• Chương trình mạnh mẽ: MySQL là một chương trình mạnh mẽ theo
đúng nghĩa. Nó có thể xử lý một tập hợp lớn các chức năng của các
gói cơ sở dữ liệu mạnh mẽ và đắt tiền nhất.
• Tính bảo mật cao: MySQL sở hữu nhiều tính năng bảo mật cấp cao.
Bởi vậy, nó cực kỳ thích hợp cho các ứng dụng có truy cập cơ sở dữ liệu trên internet.
• Khả năng tùy biến cao: Giấy phép mã nguồn mở cho phép các lập
trình viên sửa đổi phần mềm MySQL sao cho phù hợp với môi trường
sử dụng của riêng họ. Nhược điểm: lOMoARcPSD| 36067889
• Độ tin cậy chưa cao: Do các chức năng cụ thể được xử lý với MySQL
(giao dịch, kiểm toán, tài liệu tham khảo,…) khiến cho nó kém tin cậy
hơn so với một số hệ quản trị cơ sở dữ liệu khác. Giới hạn: MySQL sẽ
không làm tất cả và nó sẽ đi kèm một số hạn chế nhất định về chức
năng mà một ứng 777dụng có thể cần đến.
• Dung lượng hạn chế: Nếu bản ghi của bạn lớn dần lên thì việc truy
xuất dữ liệu sẽ khó khăn hơn. Khi đó, bạn phải áp dụng nhiều biện
pháp nhằm tăng tốc độ truy xuất dữ liệu (ví dụ như: chia tải database
ra nhiều server, tạo cache MySQL,…)
5.2 So sánh MySQL và SQLite SQLite MySQL
SQLite là một dự án mã nguồn mở có sẵn
Oracle sở hữu MySQL, là một dự án miễn phí.
mã nguồn mở.Yêu cầu các giấy phép
và có chi phí tùy thuộc vào phiên bản và tính năng sử dụng.
SQLite là một cơ sở dữ liệu độc lập không
Mặt khác, MySQL yêu cầu sử dụng
yêu cầu máy chủ. Đây còn được gọi là cơ sở một máy chủ để hoạt động. Để giao
dữ liệu nhúng vì công cụ cơ sở dữ liệu được tiếp qua mạng, MySQL sẽ cần kiến
tích hợp trong chương trình
trúc máy khách và máy chủ.
Thư viện SQLite có kích thước xấp xỉ 250
Máy chủ MySQL có kích thước xấp KB xỉ 600 MB
Hạn chế trong việc xử lý các truy vấn phức Cung cấp nhiều tính năng mạnh mẽ
tạp. Thích hợp cho các ứng dụng đơn giản
như xử lý sự kiện, chạy các thủ tục và nhỏ.
lưu trữ và xử lý nâng cao
SQLite giữ thông tin trong một tệp duy
Bạn phải nén MySQL thành một tệp
nhất, làm cho nó đơn giản để sao chép.
trước khi sao chép hoặc xuất nó. Đây
Không có yêu cầu thiết lập và hoạt động có sẽ là một công việc tốn nhiều thời
thể được hoàn thành với sự hỗ trợ tối thiểu. gian đối với các cơ sở dữ liệu lớn hơn
SQLite thiếu khả năng quản lý người dùng, MySQL bao gồm một hệ thống quản
làm cho nó không phù hợp với nhiều người lý người dùng được thiết kế tốt, có thể dùng truy cập.
xử lý nhiều người dùng và cấp các mức quyền khác nhau. lOMoAR cPSD| 36067889
Không có phương pháp xác thực tích hợp
Mặt khác, MySQL có một số cơ chế
trong SQLite. Bất kỳ ai cũng có quyền truy bảo mật tích hợp. Điều này bao gồm
cập vào các tệp cơ sở dữ liệu.
xác thực tên người dùng, mật khẩu và SSH.
Tương thích với nhiều ngôn ngữ lập trình.
Chủ yếu được sử dụng với các ứng
Thích hợp cho các ứng dụng di động và
dụng .NET và các sản phẩm của web. Microsoft.