SlideShare a Scribd company logo
1 of 6
1.1 Giới thiệu hệ điều hành Android
Android: là hệ điều hành trên thiết bị di động (mobile, tablet và hiện nay là cả trên các thiết bị phát
HD, PC) phát triển bởi Google và dựa trên nền tảng Linux. Trước đây, Android được phát triển bởi công
ty liên hợp Android (sau đó được Google mua lại vào năm 2005). Thiết bị di động sử dụng Android bán
được tại Mỹ trong quý II năm 2010 xếp vị trí đầu tiên với 33%, thứ 2 là BB OS với 28 % và với IOS ở vị
trí thứ 3 với 22 %. Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều
hành của mình. Hiện tại có khoảng 70.000 ứng dụng Android và vào khoảng 100.000 ứng dụng đã được
đệ trình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển lớn thứ 2. Các
nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt của Android vào ngày 5
tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công
ty phần cứng, phần mềm và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di động
trong tương lai. Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache. Hệ điều
hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML, 2.8 triệu dòng mã C, 2.1 triệu mã Java và
1.75 triệu dòng mã C ++.
.
1.2 Kiến trúc hệ điều hành Android
Hệ điều hành Android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux (phiên bản 2.6), tầng Libraries
& Android runtime, tầng Application Framework và trên cùng là tầng Application.
1.2.1 Tầng hạt nhân Linux
Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt nhân Linux phiên bản
2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi hoạt động của điện thoại muốn thi hành được
thì đều thực hiện ở mức cấp thấp. Ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với
phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process).
Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được nâng cấp và chỉnh sửa rất
nhiều để phù hợp với tính chất của những thiết bị cầm tay, như hạn chế về bộ vi xử lý, dung lượng bộ nhớ,
kích thước màn hình, nhu cầu kết nối mạng không dây.
Tầng này có các thành phần chủ yếu:
- Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của
người dùng trên màn hình (di chuyển, cảm ứng…).
- Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ camera trả về.
- Bluetooth Driver: Điều khiển thiết bị thu và phát sóng Bluetooth.
- USB driver: Quản lý hoạt động của các cổng giao tiếp USB.
- Keypad driver: Điều khiển bàn phím.
- Wifi driver: Chịu trách nhiệm về việc thu phát sóng wifi.
- Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tín hiệu dạng audio thành tín hiệu
số và ngược lại.
- Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến như CDMA,
GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực hiện.
- M-System Driver: Quản lý việc đọc ghi…lên các thiết bị như thẻ nhớ SD, flash
- Power Management: Giám sát việc tiêu thụ điện năng.
1.2.2 Tầng Library
Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử dụng, các thư viện đó
được tập hợp thành một số nhóm như:
- Thư viện hệ thống (System C library): thư viện dựa trên chuẩn C, được sử dụng chỉ bởi hệ điều
hành.
- Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát và ghi các loại định dạng
âm thanh, hình ảnh, video thông dụng.
- Thư viện web (LibWebCore): đây là thành phần để xem nội dung trên web, được sử dụng để xây
dựng phần mềm duyệt web (Android Browse) cũng như để các ứng dụng khác có thể nhúng vào. Nó cực
kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX…
- Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng
- …
1.2.3 Phần Android runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể hoạt động. Runtime
có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường. Thứ nhất là các thư viện lõi (Core
Library), chứa các lớp như Java IO, Collection, File Access. Thứ hai là một máy ảo Java (Dalvik Virtual
Machine). Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của Android không được
chạy trên JRE của Sun mà là chạy bằng máy ảo Dalvik do Google phát triển.
1.2.4 Tầng Application Framework
Tầng này xây dựng bộ công cụ – các phần tử ở mức cao để các lập trình viên có thể nhanh chóng xây
dựng ứng dụng. Nó được viết bằng Java, có khả năng sử dụng chung để tiết kiệm tài nguyên.
Đây là một nền tảng mở, điều đó có 2 điều lợi:
- Với các hãng điện thoại: Có thể tùy biến để phù hợp với cấu hình điện thoại mà họ sản xuất cũng
như để có thể có nhiều mẫu mã, style hợp thị hiếu người dùng. Vì thế nên tuy cùng chung nền tảng
Android mà điện thoại của Google có thể khác với Motorola, HTC, T-Mobile, Samsung…
- Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầng trên mà không cần phải
hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự do sáng tạo bởi vì chỉ cần quan tâm đến nội
dung mà ứng dụng họ làm việc. Một tập hợp API rất hữu ích được xây dựng sẵn như hệ thống định vị, các
dịch vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao…
1.2.5 Tầng Application
Đây là tầng ứng dụng giao tiếp với người sử dụng, bao gồm các ứng dụng như:
- Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành: gọi điện, quản lý danh bạ, duyệt web,
nhắn tin, lịch làm việc, đọc email, bản đồ, quay phim chụp ảnh…
- Các ứng dụng được cài thêm như các phần mềm học tiếng Anh, các trò chơi, từ điển…
Các chương trình có đặc điểm là:
- Viết bằng Java có phần mở rộng là apk.
- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng lên để phục vụ cho
nó.
- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có thể có nhiều
chương trình cùng chạy một lúc, tuy nhiên với mỗi ứng dụng thì có duy nhất một thực thể (instance) được
phép chạy mà thôi. Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn.
- Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn khi sử dụng tài
nguyên, cấu hình phần cứng và hệ thống.
- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác, Android cho
phép một ứng dụng của bên thứ 3 chạy nền. Các ứng dụng đó chỉ có một hạn chế là không được phép sử
dụng quá 5% công suất CPU. Điều đó nhằm để tránh độc quyền trong sử dụng CPU.
- Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu.
1.3 Hệ thống tập tin trên hệ điều hành Android
1.3.1 Tổng quan về hệ thống file trên Android
Trong Android các file được tổ chức lưu trữ thành các thư mục theo mô hình phân cấp. Tham chiếu
đến 1 file bằng tên hoặc đường dẫn. Các câu lệnh thao tác file cho phép thực hiện các chức năng như dịch
chuyển, sao chép toàn bộ thư mục cùng với các thư mục con chứa trong nó…
Có thể sử dụng các ký tự, dấu gạch dưới, chữ số, dấu chấm và dấu phảy để đặt tên file. Không được
bắt đầu một tên file bằng dấu chấm hay chữ số. Những ký tự khác như “/”, “?”, “*”, là ký tự đặc biệt được
dành riêng cho hệ thống. Chiều dài của tên file có thể tới 256 ký tự. Trong hệ điều hành Android có sự
phân biệt tên file chữ hoa và chữ thường, điều đó có nghĩa là trong cùng một thư mục có thể tồn tại những
file có tên là: File, FILE, file…và chúng là những file khác nhau.
Tất cả các file trong Android có chung cấu trúc vật lý là chuỗi các byte. Cấu trúc thống nhất này cho
phép Android áp dụng khái niệm file cho mọi thành phần dữ liệu trong hệ thống. Thư mục cũng như các
thiết bị được xem như file. Chính việc xem mọi thứ như các file cho phép Android quản lý và chuyển đổi
dữ liệu một cách dễ dàng. Một thư mục chứa các thông tin về thư mục, được tổ chức theo một định dạng
đặc biệt. Các thành phần được xem như file, chúng được phân biệt dựa trên kiểu file: ordinary file,
directory file, character device file và block device file.
1.3.2 Các kiểu file trên Android
Trong hệ điều hành như Windows, người ta phân biệt rõ file (tập tin) và folder (hay directory: thư
mục) là 2 thành phần khác hẳn nhau. Tuy nhiên trên hệ điều hành Android (cũng như Linux) thì coi
directory cũng là file và nó là một loại file đặc biệt. Thực tế còn một số loại file khác được liệt kê theo
bảng sau:
Bảng 1.1. Liệt kê 1 số kiểu file trong Android
Chữ cái
biểu diễn Kiểu file
d Thư mục (Directory)
b
File kiểu khối (block-type-special
file)
c
File kiểu ký tự (character –type
special file)
l Liên kết tượng trưng (symbolic link)
p File đường ống (pipe)
s Socket
- File bình thường (regular file)
1.3.3 Tổ chức quyền sở hữu và quyền hạn trên file
Tương tự trên Linux, với hệ điều hành Android một file có thể liên kết với một người sử dụng và một
nhóm người sử dụng. Sự liên kết đó là một tập hợp các quyền hạn truy cập bao gồm quyền được phép đọc
(read), được phép ghi (write) và được phép thực thi (execute).
Cụ thể như sau: một file sẽ có những quyền hạn tương ứng với 9 ký tự theo mẫu sau: Với ký tự r w
x nghĩa là có quyền tương ứng với ký hiệu viết tắt đó, - nghĩa là không có quyền hạn đó.
Bảng 1.2. Tổ chức quyền sở hữu và quyền hạn trên file
Owner Owner group Other
r
/-
w
/-
x
/-
r
/-
w
/-
x
/-
r
/-
w
/-
x
/-
3 ký tự đầu tiên là quyền hạn của chủ nhân tệp tin.
3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu tệp tin.
3 ký tự cuối là quyền hạn của nhóm người không có quyền sở hữu tệp tin.
Ví dụ: Một file có dãy ký tự biểu diễn quyền hạn là rwx r-x r– thì điều đó có nghĩa:
3 ký tự đầu là rwx: chủ nhân tệp tin có quyền đọc, ghi và thực thi file.
3 ký tự tiếp theo là r-x thì nhóm tài khoản sở hữu tệp tin có quyền đọc và thực thi file chứ không có
quyền ghi file.
3 ký tự cuối là r– nghĩa là những người không sở hữu file chỉ được phép đọc mà không được chỉnh
sửa và chạy file.
1.3.4 Cây thư mục trên hệ điều hành Android
Thư mục (hay có thể gọi là file) root là thư mục gốc của tất cả các file cũng như các thư mục còn lại.
Dưới nó có chứa một số file hệ thống. Mỗi thư mục (trừ root) đều có 1 thư mục cha chứa nó, bản thân nó
cũng có thể có nhiều file, thư mục con. Cấu trúc đó có thể mô tả bằng một cây thư mục có dạng như sau:
Giới thiệu một vài thư mục tiêu biểu:
- /(root): Là thư mục gốc, thư mục duy nhất không có thư mục cha.
- /mnt: thư mục chứa thiết bị lưu động (removeable).
- /system : chứa những thành phần cơ bản nhất của hệ thống.
- /ect : chứa những file cấu hình của hệ thống, nó cực kỳ quan trọng vì sự hoạt động của hệ thống đều
bị chi phối ở những file cấu hình này.
- /system/lost+found : chứa những tập tin bị mất lúc khởi động máy.
- /system/font : chứa những font chữ hiển thị được.
- /system/lib: chứa các thư viện để các phần mềm hoạt động (các phần mềm viết bằng ngôn ngữ
java).
- /system/app : chứa các file apk của phần mềm. (Các file cài đặt ứng dụng, kiểu như MSI trong
window hay dev trong Linux).
- /system/bin : Chứa các chương trình nội trú của hệ thống.
- …
1.4 Các thành phần của một ứng dụng trên Android
Các thành phần: việc hiểu được các thành phần (component) tạo nên một ứng dụng Android là rất cần
thiết cho việc lập trình. Các thành phần này được chia làm 6 loại bao gồm:
- Activity: hiểu một cách đơn giản Activity là nền của ứng dụng. Khi khởi động một ứng dụng
Android nào đó thì bao giờ cũng có main Activity được gọi, hiển thị màn hình của ứng dụng cho phép
người dùng tương tác.
- Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu, đưa ra các cảnh báo
(Notification) và không bao giờ hiển thị cho người dùng thấy.
- Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý và chia sẻ dữ liệu
giữa các ứng dụng.
- Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các thông báo đi nhằm khởi
tạo một Activity hay Service để thực hiện công việc bạn mong muốn. Ví dụ: khi mở một trang web, bạn
gửi đi một intent đi để tạo 1 activity mới hiển thị trang web đó.
- Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới. Ví dụ: bạn viết một chương
trình thay thế cho phần gọi điện mặc định của Android, khi đó bạn cần 1 broadcast receiver để nhận biết
các Intent là các cuộc gọi tới.
- Notification: đưa ra các cảnh báo mà không làm các Activity phải ngừng hoạt động.
Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần chính cấu thành
nên ứng dụng Android và bắt buộc phải khai báo trong AndroidManifest.
Cơ chế quản lý tiến trình: android có cơ chế quản lý các Process theo chế độ ưu tiên. Các process có
priority thấp sẽ bị Android giải phóng mà không cần cảnh báo để đảm bảo tài nguyên.
- Foreground process: là process của ứng dụng hiện thời đang được người dùng tương tác.
- Visible process: là process của ứng dụng mà activity đang hiển thị đối với người dùng (onPaused()
của activity được gọi).
- Service process: là Service đang running.
- Background process: là process của ứng dụng mà các activity của nó không hiển thị với người dùng
(onStoped() của activity được gọi).
- Empty process: process không có bất cứ 1 thành phần nào activity. Theo chế độ ưu tiên thì khi cần
tài nguyên, Android sẽ tự động kill process, trước tiên là các empty process.
Cơ chế hoạt động và các thành phần trong Android Activity: Như đã giới thiệu ở trên, Activity là
thành phần quan trọng nhất và đóng vai trò chính trong việc xây dựng ứng dụng Android. Hệ điều hành
quản lý Activity theo dạng stack: Khi một Activity mới được khởi tạo nó sẽ được xếp lên đầu của stack và
trở thànhrunning activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới
được giải phóng.
Activity bao gồm 4 state:
- Active (running): Activity đang hiển thị trên màn hình (foreground).
- Paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus). Ví dụ: một Activity
mới xuất hiện, hiển thị giao diện đề lên trên Activity cũ, nhưng giao diện này nhỏ hơn giao diện của
Activity cũ, do đó ta vẫn thấy một phần giao diện của Activity cũ nhưng lại không thể tương tác với nó.
- Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop.
- Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên. Các
Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó hiển thị lại thì các Activity này
phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó.
Biểu đồ miêu tả Activity state:
Khi xây dựng Activity cho ứng dụng cần phải viết lại phương thức onCreate() để thực hiện quá trình
khởi tạo. Các phương thức khác có cần viết lại hay không tùy vào yêu cầu lập trình.
XML trong Android: Không giống như lập trình Java thông thường, lập trình Android ngoài các lớp
được viết trong *.java còn sử dụng XML để thiết kế giao diện cho ứng dụng. Tất nhiên bạn hoàn toàn có
thể thiết kế giao diện như ý muốn mà không cần bất kỳ một dòng XML nào. Nhưng việc sử dụng XML sẽ
đơn giản hơn rất nhiều, và dễ chỉnh sửa về sau.
Trong xml layout được dùng để quản lý các thành phần giao diện khác theo một trật tự nhất định.
- FrameLayout: layout đơn giản nhất, thêm các thành phần con vào góc trên bên trái của màn hình.
- Linearlayout: thêm các thành phần con theo 1 chiều nhất định (ngang hoặc dọc). Đây là layout được
sử dụng nhiều nhất.
- RelativeLayout: thêm các thành phần con dựa trên mối quan hệ với các thành phần khác hoặc biên
của layout.
- TableLayout: thêm các thành phần con dựa trên 1 lưới các ô ngang dọc.
- AbsoluteLayout: thêm các thành phần con dựa theo tọa độ x, y.
Layout được sử dụng nhằm mục đích thiết kế giao diện cho nhiều độ phân giải. Thường khi lập trình
thường kết hợp nhiều layout với nhau để tạo ra giao diện như mong muốn.
1.5 Quá trình phát triển Android
Android 1.5, Cupcake
Ra mắt: ngày 30-4-2009.
Cupcake, tên mã đầu tiên áp dụng cho phiên bản Android. Cupcake mang nhiều tính năng mới như bàn
phím ảo có khả năng dự đoán từ đang gõ, từ điển từ ngữ do người dùng đặt ra, hỗ trợ widget trên giao diện
chủ, quay phim và phát lại video clip, lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình theo
hướng sử dụng (screen rotation). Trình duyệt web trong Cupcake có thêm khả năng sao chép/ dán
(copy/paste).
Ngoài ra, phiên bản này cho phép người dùng hiển thị hình ảnh trong danh bạ, một điểm thú vị mà
hầu hết người dùng điện thoại di động muốn có. Màn hình chuyển đổi và hình ảnh khi khởi động máy được
làm mới.
Android 1.6: Donut
Ra mắt: ngày 30-9-2009.
Donut khắc phục các chức năng “lỏng lẻo” trong Cupcake, mở rộng chức năng tìm kiếm bằng giọng
nói và ký tự đến bookmark và danh bạ. Android Market trở thành “chợ đầu mối” để người dùng tìm kiếm
và xem các ứng dụng Android. Ứng dụng chụp ảnh và quay phim trong Donut nhanh hơn. Hệ điều hành hỗ
trợ màn hình có độ phân giải lớn hơn, hướng đến các thế hệ smartphone màn hình lớn.
Android 2.0, Eclair
Ra mắt: ngày 26-10-2009.
Chỉ sau gần một tháng ra mắt Donut (Android 1.6), Google tung ra Eclair, phiên bản được nhận định
là “bước đi lớn” của hệ điều hành này.
Eclair cải tiến rất nhiều, từ giao diện đến ứng dụng bên trong hệ thống. Ứng dụng chụp ảnh tăng cường
thêm chức năng zoom số (phóng to), cân bằng trắng, hỗ trợ đèn flash và các hiệu ứng màu sắc.
Hệ thống hoạt động ổn định hơn, cải thiện khả năng xử lý, hỗ trợ kết nối Bluetooth tốt hơn, đặc biệt tùy
chọn đồng bộ nhiều tài khoản. Một điểm thuận tiện được đánh giá cao lúc bấy giờ là giao diện danh bạ cho
phép nhấn chọn vào một ảnh danh bạ để gọi, nhắn tin hay email đến họ. Giao diện ứng dụng lịch biểu
(Calendar) cũng thay đổi.
Eclair là phiên bản Android đầu tiên hỗ trợ ảnh nền động (live wallpaper) dù tùy chọn này tiêu tốn khá
nhiều pin.
Android 2.2, Froyo
Ra mắt: ngày 20-5-2010.
Từ phiên bản 2.0 trở đi, Android dần hoàn thiện hơn. Phiên bản 2.2 (Froyo) mang Adobe Flash đến
Android, kéo theo hàng loạt ứng dụng và game trên nền Flash. Người dùng cũng có thể xem video clip nền
Flash như YouTube và “ra lệnh” thực hiện cuộc gọi qua Bluetooth.
Một chức năng mới trong Froyo được nhóm người dùng lưu động yêu thích là USB Tethering và Wi-Fi
Hotspot, biến chiếc smartphone Android thành thiết bị phát sóng Wi-Fi từ kết nối 3G. Tính năng này được
sử dụng rất phổ biến đến ngày nay.
Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ SD thay vì mặc định cài ngay vào bộ
nhớ trong của thiết bị. Điểm “đầu tiên” nữa trong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số. Thiết bị
đầu tiên mang nhãn Froyo ra mắt thị trường là HTC Nexus One.
Android 2.3, Gingerbread
Ra mắt ngày: 6-12-2010.
Đến cuối năm 2012, Gingerbread vẫn đang “phủ sóng” trên rất nhiều thiết bị dùng Android, chiếm
đến hơn phân nửa (54%). Google hợp tác Samsung trình làng dòng smartphone đầu tiên sử dụng
Gingerbread mang tên Nexus S, hỗ trợ công nghệ giao tiếp tầm gần NFC.
Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép theo dõi và truy xuất đến các tập
tin đã tải về máy. Hệ thống này hỗ trợ nhiều camera cho các thiết bị có camera mặt sau và trước, quản lý
nguồn pin hiệu quả hơn, tiết kiệm thời lượng pin. Phiên bản này khắc phục khá nhiều lỗi từ Froyo, kèm
theo một số điều chỉnh trong giao diện người dùng (UI)
Android 3.0, Honeycomb
Ra mắt: ngày 22-2-2011.
Đây không chỉ là một phiên bản, mà có thể xem là một thế hệ Android đầu tiên dành riêng cho máy
tính bảng (tablet), ra mắt cùng tablet Motorola XOOM.
Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao diện phù hợp với cách sử dụng máy
tính bảng, bàn phím ảo thân thiện hơn, hỗ trợ xử lý đa tác vụ (multi-tasking), cho phép chuyển đổi qua lại
các ứng dụng đang cùng chạy. Không chỉ có bề mặt được trau chuốt, phần lõi hệ thống có các cải tiến
tương thích với phần cứng như hỗ trợ chip xử lý (CPU) đa lõi, tăng tốc phần cứng…
Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp nhất, khắc phục sự phân mảng của
Android (có các phiên bản riêng dành cho smartphone và tablet).
Android 4.0, Ice Cream Sandwich
Ra mắt: ngày 19-10-2011.
“Bánh kem sandwich” (ICS) là thế hệ Android được mong đợi nhất đến nay, ra đời cùng dòng
smartphone “bom tấn” Samsung Galaxy Nexus, thế hệ smartphone đầu tiên trang bị ICS.
Android 4.0 đưa chức năng truy xuất nhanh các ứng dụng thường dùng vào phần bên dưới giao diện chủ,
tùy biến widget, dễ sắp xếp và duyệt danh sách ứng dụng hơn. Các ứng dụng đã có thể truy xuất nhanh từ
màn hình khóa thiết bị (Lock screen), hiện các hãng sản xuất thiết bị chỉ mới cho phép Camera có thể chọn
nhanh từ Lock screen.
Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹp hơn
Android 4.1, Jelly Bean
Ra mắt: 9-7-2012.
Máy tính bảng Nexus 7, sản phẩm hợp tác giữa Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra mắt.
Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều hành cho thiết bị di động
hàng đầu hiện nay, đe dọa cả “ông lớn” Windows.
Khả năng sắp xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và linh hoạt. Hệ thống hỗ trợ
dịch vụ ví điện tử Google Wallet, đặc biệt trình duyệt web mặc định trong Android được thay thế bởi đại
diện tên tuổi: Chrome, với khả năng đồng bộ dữ liệu theo tài khoản với bản Chrome trên máy tính.
Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ dành cho Android, một phụ tá ảo
đắc lực cho công việc sắp xếp lịch trình, tìm kiếm thông tin, xác định vị trí… Rất đa năng và được xem
như lời đáp trả của Google với “phụ tá ảo” Apple Siri trong iOS.
Cùng với tên mã Jellybean chúng ta còn biết tới các phiên bản 4.1.1, 4.2, 4.2.2, và 4.3 sau này. Việc
ra mắt Jellybean có thể ví như cuộc cách mạng về các tính năng, khi mà Google giới thiệu hàng loạt các
tính năng mới trên các bản nâng cấp android sau này. Gần đây nhất có thể nói đến 4.3 với hàng loạt cải tiến
như hỗ trợ Bluetooth Smart technology, Hỗ trợ giao thức OpenGL ES 3.0…..

More Related Content

What's hot

Bai 03 quan ly tai khoan nguoi dung
Bai 03   quan ly tai khoan nguoi dungBai 03   quan ly tai khoan nguoi dung
Bai 03 quan ly tai khoan nguoi dungVan Pham
 
Bài 1: Giới thiệu Android
Bài 1: Giới thiệu AndroidBài 1: Giới thiệu Android
Bài 1: Giới thiệu Androidhoccungdoanhnghiep
 
Tìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidTìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidPhuong Ngo
 
Báo cáo thực tập cơ sở
Báo cáo thực tập cơ sởBáo cáo thực tập cơ sở
Báo cáo thực tập cơ sởNguyễn Phú
 
Slide thuyet trinh android
Slide thuyet trinh androidSlide thuyet trinh android
Slide thuyet trinh androidkuto92love
 
Nghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OSNghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OSNguyễn Anh
 
Bài 4: Hệ thống quản lý lịch biểu và tài liệu
Bài 4: Hệ thống quản lý lịch biểu và tài liệuBài 4: Hệ thống quản lý lịch biểu và tài liệu
Bài 4: Hệ thống quản lý lịch biểu và tài liệuMasterCode.vn
 
Bài 3 CÁC PHẦN MỀM ỨNG DỤNG CƠ BẢN
Bài 3 CÁC PHẦN MỀM ỨNG DỤNG CƠ BẢNBài 3 CÁC PHẦN MỀM ỨNG DỤNG CƠ BẢN
Bài 3 CÁC PHẦN MỀM ỨNG DỤNG CƠ BẢNMasterCode.vn
 
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mởBài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mởMasterCode.vn
 
Chương II: Hệ điều hành
Chương II: Hệ điều hànhChương II: Hệ điều hành
Chương II: Hệ điều hànhSunkute
 
Bai 10 khai niem ve he dieu hanh1
Bai 10 khai niem ve he dieu hanh1Bai 10 khai niem ve he dieu hanh1
Bai 10 khai niem ve he dieu hanh1THPT Le Hong Phong
 

What's hot (13)

Bai 03 quan ly tai khoan nguoi dung
Bai 03   quan ly tai khoan nguoi dungBai 03   quan ly tai khoan nguoi dung
Bai 03 quan ly tai khoan nguoi dung
 
Bài 1: Giới thiệu Android
Bài 1: Giới thiệu AndroidBài 1: Giới thiệu Android
Bài 1: Giới thiệu Android
 
Tìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành androidTìm hiểu về hệ điều hành android
Tìm hiểu về hệ điều hành android
 
Báo cáo thực tập cơ sở
Báo cáo thực tập cơ sởBáo cáo thực tập cơ sở
Báo cáo thực tập cơ sở
 
Slide thuyet trinh android
Slide thuyet trinh androidSlide thuyet trinh android
Slide thuyet trinh android
 
Nghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OSNghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OS
 
Baigiang10
Baigiang10Baigiang10
Baigiang10
 
Bài 4: Hệ thống quản lý lịch biểu và tài liệu
Bài 4: Hệ thống quản lý lịch biểu và tài liệuBài 4: Hệ thống quản lý lịch biểu và tài liệu
Bài 4: Hệ thống quản lý lịch biểu và tài liệu
 
Bài 3 CÁC PHẦN MỀM ỨNG DỤNG CƠ BẢN
Bài 3 CÁC PHẦN MỀM ỨNG DỤNG CƠ BẢNBài 3 CÁC PHẦN MỀM ỨNG DỤNG CƠ BẢN
Bài 3 CÁC PHẦN MỀM ỨNG DỤNG CƠ BẢN
 
04 de cuong
04 de cuong04 de cuong
04 de cuong
 
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mởBài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
 
Chương II: Hệ điều hành
Chương II: Hệ điều hànhChương II: Hệ điều hành
Chương II: Hệ điều hành
 
Bai 10 khai niem ve he dieu hanh1
Bai 10 khai niem ve he dieu hanh1Bai 10 khai niem ve he dieu hanh1
Bai 10 khai niem ve he dieu hanh1
 

Similar to bao cao athena tuan 1

Cấu trúc android
Cấu trúc androidCấu trúc android
Cấu trúc androiddhinh_190192
 
Giaotrinh hedieuhanh
Giaotrinh hedieuhanhGiaotrinh hedieuhanh
Giaotrinh hedieuhanhHai Nguyen
 
Owncloud - cloud solution for SME
Owncloud - cloud solution for SMEOwncloud - cloud solution for SME
Owncloud - cloud solution for SMEMichael Phan
 
Lap trinh android_co_ban_eclip
Lap trinh android_co_ban_eclipLap trinh android_co_ban_eclip
Lap trinh android_co_ban_eclipktvinh
 
Lap trinhthietbididongvoij2me
Lap trinhthietbididongvoij2meLap trinhthietbididongvoij2me
Lap trinhthietbididongvoij2mehaiokman
 
Lap trinh thiet bi di dong voi j2me
Lap trinh thiet bi di dong voi j2meLap trinh thiet bi di dong voi j2me
Lap trinh thiet bi di dong voi j2mecậu buồn Vì Ai
 
1 laptrinhthietbididongvoij2me
1 laptrinhthietbididongvoij2me1 laptrinhthietbididongvoij2me
1 laptrinhthietbididongvoij2meGiang Nguyễn
 
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...Son Le
 
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...bookbooming1
 
Google chrome os (perfect version)
Google chrome os (perfect version)Google chrome os (perfect version)
Google chrome os (perfect version)En Tj Pj
 
Luận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpress
Luận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpressLuận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpress
Luận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpressnataliej4
 
Tran Minh Thai Bai Giang Vc
Tran Minh Thai   Bai Giang VcTran Minh Thai   Bai Giang Vc
Tran Minh Thai Bai Giang VcNhat Thien
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake phplaonap166
 
Thiết kế và quản trị web hệ trung cấp
Thiết kế và quản trị web hệ trung cấpThiết kế và quản trị web hệ trung cấp
Thiết kế và quản trị web hệ trung cấpNguyễn Bảo Quốc
 

Similar to bao cao athena tuan 1 (20)

Cấu trúc android
Cấu trúc androidCấu trúc android
Cấu trúc android
 
Su dung linux shell
Su dung linux shellSu dung linux shell
Su dung linux shell
 
Su dung linux shell
Su dung linux shellSu dung linux shell
Su dung linux shell
 
Giaotrinh hedieuhanh
Giaotrinh hedieuhanhGiaotrinh hedieuhanh
Giaotrinh hedieuhanh
 
J2 me 07_1
J2 me 07_1J2 me 07_1
J2 me 07_1
 
Owncloud - cloud solution for SME
Owncloud - cloud solution for SMEOwncloud - cloud solution for SME
Owncloud - cloud solution for SME
 
Lap trinh android_co_ban_eclip
Lap trinh android_co_ban_eclipLap trinh android_co_ban_eclip
Lap trinh android_co_ban_eclip
 
Lap trinhthietbididongvoij2me
Lap trinhthietbididongvoij2meLap trinhthietbididongvoij2me
Lap trinhthietbididongvoij2me
 
Lap trinh thiet bi di dong voi j2me
Lap trinh thiet bi di dong voi j2meLap trinh thiet bi di dong voi j2me
Lap trinh thiet bi di dong voi j2me
 
1 laptrinhthietbididongvoij2me
1 laptrinhthietbididongvoij2me1 laptrinhthietbididongvoij2me
1 laptrinhthietbididongvoij2me
 
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
Một số ngôn ngữ lập trình phổ biến hiện nay - Popular programming languages n...
 
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
 
đồ áN cơ sở
đồ áN cơ sởđồ áN cơ sở
đồ áN cơ sở
 
đồ áN cơ sở
đồ áN cơ sởđồ áN cơ sở
đồ áN cơ sở
 
Google chrome os (perfect version)
Google chrome os (perfect version)Google chrome os (perfect version)
Google chrome os (perfect version)
 
Luận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpress
Luận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpressLuận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpress
Luận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpress
 
Tran Minh Thai Bai Giang Vc
Tran Minh Thai   Bai Giang VcTran Minh Thai   Bai Giang Vc
Tran Minh Thai Bai Giang Vc
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
Clear case
Clear caseClear case
Clear case
 
Thiết kế và quản trị web hệ trung cấp
Thiết kế và quản trị web hệ trung cấpThiết kế và quản trị web hệ trung cấp
Thiết kế và quản trị web hệ trung cấp
 

bao cao athena tuan 1

  • 1. 1.1 Giới thiệu hệ điều hành Android Android: là hệ điều hành trên thiết bị di động (mobile, tablet và hiện nay là cả trên các thiết bị phát HD, PC) phát triển bởi Google và dựa trên nền tảng Linux. Trước đây, Android được phát triển bởi công ty liên hợp Android (sau đó được Google mua lại vào năm 2005). Thiết bị di động sử dụng Android bán được tại Mỹ trong quý II năm 2010 xếp vị trí đầu tiên với 33%, thứ 2 là BB OS với 28 % và với IOS ở vị trí thứ 3 với 22 %. Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình. Hiện tại có khoảng 70.000 ứng dụng Android và vào khoảng 100.000 ứng dụng đã được đệ trình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển lớn thứ 2. Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di động trong tương lai. Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache. Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML, 2.8 triệu dòng mã C, 2.1 triệu mã Java và 1.75 triệu dòng mã C ++. . 1.2 Kiến trúc hệ điều hành Android Hệ điều hành Android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux (phiên bản 2.6), tầng Libraries & Android runtime, tầng Application Framework và trên cùng là tầng Application. 1.2.1 Tầng hạt nhân Linux Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt nhân Linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều thực hiện ở mức cấp thấp. Ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process). Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được nâng cấp và chỉnh sửa rất nhiều để phù hợp với tính chất của những thiết bị cầm tay, như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu kết nối mạng không dây. Tầng này có các thành phần chủ yếu: - Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người dùng trên màn hình (di chuyển, cảm ứng…). - Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ camera trả về. - Bluetooth Driver: Điều khiển thiết bị thu và phát sóng Bluetooth. - USB driver: Quản lý hoạt động của các cổng giao tiếp USB. - Keypad driver: Điều khiển bàn phím. - Wifi driver: Chịu trách nhiệm về việc thu phát sóng wifi.
  • 2. - Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tín hiệu dạng audio thành tín hiệu số và ngược lại. - Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực hiện. - M-System Driver: Quản lý việc đọc ghi…lên các thiết bị như thẻ nhớ SD, flash - Power Management: Giám sát việc tiêu thụ điện năng. 1.2.2 Tầng Library Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như: - Thư viện hệ thống (System C library): thư viện dựa trên chuẩn C, được sử dụng chỉ bởi hệ điều hành. - Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng. - Thư viện web (LibWebCore): đây là thành phần để xem nội dung trên web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để các ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX… - Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng - … 1.2.3 Phần Android runtime Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể hoạt động. Runtime có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường. Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như Java IO, Collection, File Access. Thứ hai là một máy ảo Java (Dalvik Virtual Machine). Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của Android không được chạy trên JRE của Sun mà là chạy bằng máy ảo Dalvik do Google phát triển. 1.2.4 Tầng Application Framework Tầng này xây dựng bộ công cụ – các phần tử ở mức cao để các lập trình viên có thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả năng sử dụng chung để tiết kiệm tài nguyên. Đây là một nền tảng mở, điều đó có 2 điều lợi: - Với các hãng điện thoại: Có thể tùy biến để phù hợp với cấu hình điện thoại mà họ sản xuất cũng như để có thể có nhiều mẫu mã, style hợp thị hiếu người dùng. Vì thế nên tuy cùng chung nền tảng Android mà điện thoại của Google có thể khác với Motorola, HTC, T-Mobile, Samsung… - Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầng trên mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc. Một tập hợp API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao… 1.2.5 Tầng Application Đây là tầng ứng dụng giao tiếp với người sử dụng, bao gồm các ứng dụng như: - Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành: gọi điện, quản lý danh bạ, duyệt web, nhắn tin, lịch làm việc, đọc email, bản đồ, quay phim chụp ảnh… - Các ứng dụng được cài thêm như các phần mềm học tiếng Anh, các trò chơi, từ điển… Các chương trình có đặc điểm là: - Viết bằng Java có phần mở rộng là apk. - Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng lên để phục vụ cho nó. - Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên với mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn. - Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống. - Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác, Android cho phép một ứng dụng của bên thứ 3 chạy nền. Các ứng dụng đó chỉ có một hạn chế là không được phép sử dụng quá 5% công suất CPU. Điều đó nhằm để tránh độc quyền trong sử dụng CPU. - Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu. 1.3 Hệ thống tập tin trên hệ điều hành Android 1.3.1 Tổng quan về hệ thống file trên Android Trong Android các file được tổ chức lưu trữ thành các thư mục theo mô hình phân cấp. Tham chiếu đến 1 file bằng tên hoặc đường dẫn. Các câu lệnh thao tác file cho phép thực hiện các chức năng như dịch chuyển, sao chép toàn bộ thư mục cùng với các thư mục con chứa trong nó…
  • 3. Có thể sử dụng các ký tự, dấu gạch dưới, chữ số, dấu chấm và dấu phảy để đặt tên file. Không được bắt đầu một tên file bằng dấu chấm hay chữ số. Những ký tự khác như “/”, “?”, “*”, là ký tự đặc biệt được dành riêng cho hệ thống. Chiều dài của tên file có thể tới 256 ký tự. Trong hệ điều hành Android có sự phân biệt tên file chữ hoa và chữ thường, điều đó có nghĩa là trong cùng một thư mục có thể tồn tại những file có tên là: File, FILE, file…và chúng là những file khác nhau. Tất cả các file trong Android có chung cấu trúc vật lý là chuỗi các byte. Cấu trúc thống nhất này cho phép Android áp dụng khái niệm file cho mọi thành phần dữ liệu trong hệ thống. Thư mục cũng như các thiết bị được xem như file. Chính việc xem mọi thứ như các file cho phép Android quản lý và chuyển đổi dữ liệu một cách dễ dàng. Một thư mục chứa các thông tin về thư mục, được tổ chức theo một định dạng đặc biệt. Các thành phần được xem như file, chúng được phân biệt dựa trên kiểu file: ordinary file, directory file, character device file và block device file. 1.3.2 Các kiểu file trên Android Trong hệ điều hành như Windows, người ta phân biệt rõ file (tập tin) và folder (hay directory: thư mục) là 2 thành phần khác hẳn nhau. Tuy nhiên trên hệ điều hành Android (cũng như Linux) thì coi directory cũng là file và nó là một loại file đặc biệt. Thực tế còn một số loại file khác được liệt kê theo bảng sau: Bảng 1.1. Liệt kê 1 số kiểu file trong Android Chữ cái biểu diễn Kiểu file d Thư mục (Directory) b File kiểu khối (block-type-special file) c File kiểu ký tự (character –type special file) l Liên kết tượng trưng (symbolic link) p File đường ống (pipe) s Socket - File bình thường (regular file) 1.3.3 Tổ chức quyền sở hữu và quyền hạn trên file Tương tự trên Linux, với hệ điều hành Android một file có thể liên kết với một người sử dụng và một nhóm người sử dụng. Sự liên kết đó là một tập hợp các quyền hạn truy cập bao gồm quyền được phép đọc (read), được phép ghi (write) và được phép thực thi (execute). Cụ thể như sau: một file sẽ có những quyền hạn tương ứng với 9 ký tự theo mẫu sau: Với ký tự r w x nghĩa là có quyền tương ứng với ký hiệu viết tắt đó, - nghĩa là không có quyền hạn đó. Bảng 1.2. Tổ chức quyền sở hữu và quyền hạn trên file Owner Owner group Other r /- w /- x /- r /- w /- x /- r /- w /- x /- 3 ký tự đầu tiên là quyền hạn của chủ nhân tệp tin. 3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu tệp tin. 3 ký tự cuối là quyền hạn của nhóm người không có quyền sở hữu tệp tin. Ví dụ: Một file có dãy ký tự biểu diễn quyền hạn là rwx r-x r– thì điều đó có nghĩa: 3 ký tự đầu là rwx: chủ nhân tệp tin có quyền đọc, ghi và thực thi file. 3 ký tự tiếp theo là r-x thì nhóm tài khoản sở hữu tệp tin có quyền đọc và thực thi file chứ không có quyền ghi file.
  • 4. 3 ký tự cuối là r– nghĩa là những người không sở hữu file chỉ được phép đọc mà không được chỉnh sửa và chạy file. 1.3.4 Cây thư mục trên hệ điều hành Android Thư mục (hay có thể gọi là file) root là thư mục gốc của tất cả các file cũng như các thư mục còn lại. Dưới nó có chứa một số file hệ thống. Mỗi thư mục (trừ root) đều có 1 thư mục cha chứa nó, bản thân nó cũng có thể có nhiều file, thư mục con. Cấu trúc đó có thể mô tả bằng một cây thư mục có dạng như sau: Giới thiệu một vài thư mục tiêu biểu: - /(root): Là thư mục gốc, thư mục duy nhất không có thư mục cha. - /mnt: thư mục chứa thiết bị lưu động (removeable). - /system : chứa những thành phần cơ bản nhất của hệ thống. - /ect : chứa những file cấu hình của hệ thống, nó cực kỳ quan trọng vì sự hoạt động của hệ thống đều bị chi phối ở những file cấu hình này. - /system/lost+found : chứa những tập tin bị mất lúc khởi động máy. - /system/font : chứa những font chữ hiển thị được. - /system/lib: chứa các thư viện để các phần mềm hoạt động (các phần mềm viết bằng ngôn ngữ java). - /system/app : chứa các file apk của phần mềm. (Các file cài đặt ứng dụng, kiểu như MSI trong window hay dev trong Linux). - /system/bin : Chứa các chương trình nội trú của hệ thống. - … 1.4 Các thành phần của một ứng dụng trên Android Các thành phần: việc hiểu được các thành phần (component) tạo nên một ứng dụng Android là rất cần thiết cho việc lập trình. Các thành phần này được chia làm 6 loại bao gồm: - Activity: hiểu một cách đơn giản Activity là nền của ứng dụng. Khi khởi động một ứng dụng Android nào đó thì bao giờ cũng có main Activity được gọi, hiển thị màn hình của ứng dụng cho phép người dùng tương tác. - Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu, đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy. - Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý và chia sẻ dữ liệu giữa các ứng dụng. - Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các thông báo đi nhằm khởi tạo một Activity hay Service để thực hiện công việc bạn mong muốn. Ví dụ: khi mở một trang web, bạn gửi đi một intent đi để tạo 1 activity mới hiển thị trang web đó. - Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới. Ví dụ: bạn viết một chương trình thay thế cho phần gọi điện mặc định của Android, khi đó bạn cần 1 broadcast receiver để nhận biết các Intent là các cuộc gọi tới. - Notification: đưa ra các cảnh báo mà không làm các Activity phải ngừng hoạt động. Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần chính cấu thành nên ứng dụng Android và bắt buộc phải khai báo trong AndroidManifest. Cơ chế quản lý tiến trình: android có cơ chế quản lý các Process theo chế độ ưu tiên. Các process có priority thấp sẽ bị Android giải phóng mà không cần cảnh báo để đảm bảo tài nguyên. - Foreground process: là process của ứng dụng hiện thời đang được người dùng tương tác. - Visible process: là process của ứng dụng mà activity đang hiển thị đối với người dùng (onPaused() của activity được gọi). - Service process: là Service đang running. - Background process: là process của ứng dụng mà các activity của nó không hiển thị với người dùng (onStoped() của activity được gọi). - Empty process: process không có bất cứ 1 thành phần nào activity. Theo chế độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động kill process, trước tiên là các empty process. Cơ chế hoạt động và các thành phần trong Android Activity: Như đã giới thiệu ở trên, Activity là thành phần quan trọng nhất và đóng vai trò chính trong việc xây dựng ứng dụng Android. Hệ điều hành quản lý Activity theo dạng stack: Khi một Activity mới được khởi tạo nó sẽ được xếp lên đầu của stack và trở thànhrunning activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng. Activity bao gồm 4 state: - Active (running): Activity đang hiển thị trên màn hình (foreground). - Paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus). Ví dụ: một Activity mới xuất hiện, hiển thị giao diện đề lên trên Activity cũ, nhưng giao diện này nhỏ hơn giao diện của Activity cũ, do đó ta vẫn thấy một phần giao diện của Activity cũ nhưng lại không thể tương tác với nó. - Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop.
  • 5. - Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó. Biểu đồ miêu tả Activity state: Khi xây dựng Activity cho ứng dụng cần phải viết lại phương thức onCreate() để thực hiện quá trình khởi tạo. Các phương thức khác có cần viết lại hay không tùy vào yêu cầu lập trình. XML trong Android: Không giống như lập trình Java thông thường, lập trình Android ngoài các lớp được viết trong *.java còn sử dụng XML để thiết kế giao diện cho ứng dụng. Tất nhiên bạn hoàn toàn có thể thiết kế giao diện như ý muốn mà không cần bất kỳ một dòng XML nào. Nhưng việc sử dụng XML sẽ đơn giản hơn rất nhiều, và dễ chỉnh sửa về sau. Trong xml layout được dùng để quản lý các thành phần giao diện khác theo một trật tự nhất định. - FrameLayout: layout đơn giản nhất, thêm các thành phần con vào góc trên bên trái của màn hình. - Linearlayout: thêm các thành phần con theo 1 chiều nhất định (ngang hoặc dọc). Đây là layout được sử dụng nhiều nhất. - RelativeLayout: thêm các thành phần con dựa trên mối quan hệ với các thành phần khác hoặc biên của layout. - TableLayout: thêm các thành phần con dựa trên 1 lưới các ô ngang dọc. - AbsoluteLayout: thêm các thành phần con dựa theo tọa độ x, y. Layout được sử dụng nhằm mục đích thiết kế giao diện cho nhiều độ phân giải. Thường khi lập trình thường kết hợp nhiều layout với nhau để tạo ra giao diện như mong muốn. 1.5 Quá trình phát triển Android Android 1.5, Cupcake Ra mắt: ngày 30-4-2009. Cupcake, tên mã đầu tiên áp dụng cho phiên bản Android. Cupcake mang nhiều tính năng mới như bàn phím ảo có khả năng dự đoán từ đang gõ, từ điển từ ngữ do người dùng đặt ra, hỗ trợ widget trên giao diện chủ, quay phim và phát lại video clip, lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình theo hướng sử dụng (screen rotation). Trình duyệt web trong Cupcake có thêm khả năng sao chép/ dán (copy/paste). Ngoài ra, phiên bản này cho phép người dùng hiển thị hình ảnh trong danh bạ, một điểm thú vị mà hầu hết người dùng điện thoại di động muốn có. Màn hình chuyển đổi và hình ảnh khi khởi động máy được làm mới. Android 1.6: Donut Ra mắt: ngày 30-9-2009. Donut khắc phục các chức năng “lỏng lẻo” trong Cupcake, mở rộng chức năng tìm kiếm bằng giọng nói và ký tự đến bookmark và danh bạ. Android Market trở thành “chợ đầu mối” để người dùng tìm kiếm và xem các ứng dụng Android. Ứng dụng chụp ảnh và quay phim trong Donut nhanh hơn. Hệ điều hành hỗ trợ màn hình có độ phân giải lớn hơn, hướng đến các thế hệ smartphone màn hình lớn. Android 2.0, Eclair Ra mắt: ngày 26-10-2009. Chỉ sau gần một tháng ra mắt Donut (Android 1.6), Google tung ra Eclair, phiên bản được nhận định là “bước đi lớn” của hệ điều hành này. Eclair cải tiến rất nhiều, từ giao diện đến ứng dụng bên trong hệ thống. Ứng dụng chụp ảnh tăng cường thêm chức năng zoom số (phóng to), cân bằng trắng, hỗ trợ đèn flash và các hiệu ứng màu sắc. Hệ thống hoạt động ổn định hơn, cải thiện khả năng xử lý, hỗ trợ kết nối Bluetooth tốt hơn, đặc biệt tùy chọn đồng bộ nhiều tài khoản. Một điểm thuận tiện được đánh giá cao lúc bấy giờ là giao diện danh bạ cho phép nhấn chọn vào một ảnh danh bạ để gọi, nhắn tin hay email đến họ. Giao diện ứng dụng lịch biểu (Calendar) cũng thay đổi. Eclair là phiên bản Android đầu tiên hỗ trợ ảnh nền động (live wallpaper) dù tùy chọn này tiêu tốn khá nhiều pin. Android 2.2, Froyo Ra mắt: ngày 20-5-2010. Từ phiên bản 2.0 trở đi, Android dần hoàn thiện hơn. Phiên bản 2.2 (Froyo) mang Adobe Flash đến Android, kéo theo hàng loạt ứng dụng và game trên nền Flash. Người dùng cũng có thể xem video clip nền Flash như YouTube và “ra lệnh” thực hiện cuộc gọi qua Bluetooth.
  • 6. Một chức năng mới trong Froyo được nhóm người dùng lưu động yêu thích là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android thành thiết bị phát sóng Wi-Fi từ kết nối 3G. Tính năng này được sử dụng rất phổ biến đến ngày nay. Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ SD thay vì mặc định cài ngay vào bộ nhớ trong của thiết bị. Điểm “đầu tiên” nữa trong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số. Thiết bị đầu tiên mang nhãn Froyo ra mắt thị trường là HTC Nexus One. Android 2.3, Gingerbread Ra mắt ngày: 6-12-2010. Đến cuối năm 2012, Gingerbread vẫn đang “phủ sóng” trên rất nhiều thiết bị dùng Android, chiếm đến hơn phân nửa (54%). Google hợp tác Samsung trình làng dòng smartphone đầu tiên sử dụng Gingerbread mang tên Nexus S, hỗ trợ công nghệ giao tiếp tầm gần NFC. Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép theo dõi và truy xuất đến các tập tin đã tải về máy. Hệ thống này hỗ trợ nhiều camera cho các thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu quả hơn, tiết kiệm thời lượng pin. Phiên bản này khắc phục khá nhiều lỗi từ Froyo, kèm theo một số điều chỉnh trong giao diện người dùng (UI) Android 3.0, Honeycomb Ra mắt: ngày 22-2-2011. Đây không chỉ là một phiên bản, mà có thể xem là một thế hệ Android đầu tiên dành riêng cho máy tính bảng (tablet), ra mắt cùng tablet Motorola XOOM. Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao diện phù hợp với cách sử dụng máy tính bảng, bàn phím ảo thân thiện hơn, hỗ trợ xử lý đa tác vụ (multi-tasking), cho phép chuyển đổi qua lại các ứng dụng đang cùng chạy. Không chỉ có bề mặt được trau chuốt, phần lõi hệ thống có các cải tiến tương thích với phần cứng như hỗ trợ chip xử lý (CPU) đa lõi, tăng tốc phần cứng… Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp nhất, khắc phục sự phân mảng của Android (có các phiên bản riêng dành cho smartphone và tablet). Android 4.0, Ice Cream Sandwich Ra mắt: ngày 19-10-2011. “Bánh kem sandwich” (ICS) là thế hệ Android được mong đợi nhất đến nay, ra đời cùng dòng smartphone “bom tấn” Samsung Galaxy Nexus, thế hệ smartphone đầu tiên trang bị ICS. Android 4.0 đưa chức năng truy xuất nhanh các ứng dụng thường dùng vào phần bên dưới giao diện chủ, tùy biến widget, dễ sắp xếp và duyệt danh sách ứng dụng hơn. Các ứng dụng đã có thể truy xuất nhanh từ màn hình khóa thiết bị (Lock screen), hiện các hãng sản xuất thiết bị chỉ mới cho phép Camera có thể chọn nhanh từ Lock screen. Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹp hơn Android 4.1, Jelly Bean Ra mắt: 9-7-2012. Máy tính bảng Nexus 7, sản phẩm hợp tác giữa Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra mắt. Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều hành cho thiết bị di động hàng đầu hiện nay, đe dọa cả “ông lớn” Windows. Khả năng sắp xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và linh hoạt. Hệ thống hỗ trợ dịch vụ ví điện tử Google Wallet, đặc biệt trình duyệt web mặc định trong Android được thay thế bởi đại diện tên tuổi: Chrome, với khả năng đồng bộ dữ liệu theo tài khoản với bản Chrome trên máy tính. Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ dành cho Android, một phụ tá ảo đắc lực cho công việc sắp xếp lịch trình, tìm kiếm thông tin, xác định vị trí… Rất đa năng và được xem như lời đáp trả của Google với “phụ tá ảo” Apple Siri trong iOS. Cùng với tên mã Jellybean chúng ta còn biết tới các phiên bản 4.1.1, 4.2, 4.2.2, và 4.3 sau này. Việc ra mắt Jellybean có thể ví như cuộc cách mạng về các tính năng, khi mà Google giới thiệu hàng loạt các tính năng mới trên các bản nâng cấp android sau này. Gần đây nhất có thể nói đến 4.3 với hàng loạt cải tiến như hỗ trợ Bluetooth Smart technology, Hỗ trợ giao thức OpenGL ES 3.0…..