Hệ điều hành Android là 1 ngăn xếp các thành phần phần mềm, được chia thành 5 phần và 4 lớp chính như trong hình bên dưới.
Linux Kernel
Dưới cùng là lớp Linux – Linux 3.6 cùng với khoảng 115 bản vá. Lớp này cung cấp 1 cấp độ trừu tượng giữa phần cứng của thiết bị và các thành trình điều khiển phần cứng thiết yếu như máy ảnh, bàn phím, màn hình hiển thị… Đồng thời, hạt nhân (kernel) còn xử lý tất cả các thứ mà Linux có thể làm tốt như mạng kết nối và 1 chuỗi các trình điều khiển thiết bị, giúp cho giao tiếp với các thiết bị ngoại vi dễ dàng hơn.
Các thư viện
Ở trên lớp nhân Linux là tập các thư viện bao gồm WebKit – trình duyệt Web mã nguồn mở, được biết đến như thư viện libc, cơ sở dữ liệu SQLite – hữu dụng cho việc lưu trữ và chia sẻ dữ liệu ứng dụng, các thư viênj chơi và ghi âm audio, video, hay các thư viện SSL chiụ trách nhiệm bảo mật Internet…
Các thư viện Android
Đây là các thư viện dựa trên Java phục vụ cho việc phát triển Android. Ví dụ của các thư viện này bao gồm các thư viện ứng dụng dùng để xây dựng giao diện người dùng, vẽ đồ họa hay truy cập cơ sở dữ liệu. 1 số thư viện chính của Android:
- android.app – Cung cấp quyền truy cập vào ứng dụng và là nền tảng của tất cả ứng dụng Android.
- android.content – Cung cấp quyền truy cập nội dung (content), truyền tải thông điệp giữa các ứng dụng hay các thành phần của ứng dụng.
- android.database – Đựoc sử dụng để truy cập dữ liệu của content provider và cơ sở dữ liệu SQLite
- android.opengl – giao diện các phuơng thức Java để sử dụng OpenGL ES
- android.os – Cung cấp các ứng dụng với quyền truy cập vào các dịch vụ của hệ điều hành bao gồm thông điệp, các dịch vụ hệ thống và các giao tiếp nội tại
- android.text – Đựoc sử dụng để hiển thị và điều chỉnh chữ trên màn hình thiết bị
- android.view – Các thành phần cơ bản trong việc xây dựng giao diện người dùng của ứng dụng.
- android.widget – Tập các thành phần giao diện người dùng đã được xây dựng sẵn như các nút, các nhãn (label), list view,….
- android.webkit – Tập các lớp cho phép xây dựng khả năng duyệt web.
Android Runtime
Đây là phần thứ 3 của kiến trúc và nằm ở lớp thứ 2 từ dưới lên. Phần này cung cấp 1 bộ phận quan trọng là Dalvik Vỉtual Machine – là 1 loại Java Virtual Machine được thiết kế đặc biệt để tối ưu cho Android.
Dalvik VM sử dụng các đặc trưng của nhân Linux như quản lý bộ nhớ và đa luồng, những thứ mà đã có sẵn trong Java. Dalvik VM giúp mọ ứng dụng Android chạy trong tiến trình riêng của nó, với các thể hiện (instance) riêng của Dalvik virtual Machine.
Android Runtime cũng cung cấp 1 tập các thư viện chính giúp các nhà phát triển ứng dụng Android có thể viết ứng dụng Android bằng Java
Application Framework
Lớp Android Framework cung cấp các dịch vụ cấp độ cao hơn cho các ứng dụng dưới dạng các lớp Java. Các nhà phát triển ứng dụng được phép sử dụng các dịch vụ này trong ứng dụng của họ.
Android Framework bao gồm các dịch vụ chính sau:
- Activitty Manager – Kiểm soát tất cả khía cạnh của vòng đời ứng dụng và ngăn xếp các Activity.
- Content Providers – Cho phép các ứng dụng chia sẽ dữ liệu với các ứng dụng khác.
- Resource Manager – Cung cấp quyền truy cập vào các tài nguyên như các chuỗi, màu sắc, các layout giao diện người dùng…
- Notifications Manager – Cho phép các ứng dụng hiển thị cảnh báo và các thông báo cho người dùng.
- View System – Tập các thành phần giao diện (view) được sử dụng để tạo giao diện người dùng.
Application
Lớp trên cùng của kiến trúc là Application. Các ứng dụng bạn tạo ra sẽ được cài đặt trên lớp này. Ví dụ như: Danh bạ, nhắn tin, trò chơi…
Mặc dù bài viết không liên quan trực tiếp đến việc lập trình nhưng giúp bạn hiểu sâu hơn về chính những ứng dụng mình làm ra cũng như các ứng dụng Android khác, qya đó sẽ giúp ích rất nhiều cho việc phát triển ứng dụng sau này. Chúc các bạn thành công!
Techtalk via Viblo