SL4A - Kiến trúc Android
Ngăn xếp phần mềm Android bao gồm các lớp khác nhau, mỗi lớp biểu hiện hành vi được xác định rõ và cung cấp các dịch vụ cụ thể cho lớp bên trên nó. Hình sau trình bày một kiến trúc rộng lớn của Android với các thành phần chính của nó.
Nền tảng Linux
Android được xây dựng trên mã nhân Linux đã được sửa đổi để chạy trên các hệ thống nhúng như chống lại hệ thống Linux truyền thống. Trình điều khiển phần cứng cho nhiều thiết bị phổ biến được tích hợp sẵn trong nhân, do đó đảm bảo tính di động của thiết bị. Nó dựa trên mô hình quyền an toàn dựa trên người dùng, ngăn một ứng dụng đọc thông tin của ứng dụng khác hoặc can thiệp vào quá trình thực thi của nó (ví dụ: CPU, bộ nhớ, thiết bị, v.v.).
Quyền truy cập dựa trên ID nhóm vào các tính năng mạng và Bluetooth, trình ghi nhật ký, cảnh báo, quản lý nguồn, bộ tiêu diệt bộ nhớ thấp, cơ chế Binder IPC là một vài cải tiến đáng chú ý đối với Kernel.
Thư viện và Thời gian chạy
Điều này tạo thành lớp thứ hai của kiến trúc. Nó bao gồm một tập hợp các thư viện C, C ++ được tối ưu hóa phần cứng, còn được gọi là lớp gốc. Ví dụ bao gồm Thư viện phương tiện, SQLite, SSL, Bionic, WebKit, v.v.
Android Runtime bao gồm hai thành phần khác nhau - Dalvik VM và Core Libraries. Dalvik VM cung cấp môi trường thực thi cho các ứng dụng trên Nền tảng Android. Bộ thư viện cốt lõi cung cấp hầu hết các chức năng có sẵn trong các API Java.
Khung ứng dụng
Lớp này cung cấp các Thư viện có sẵn dưới dạng dịch vụ cho các ứng dụng. Một số thành phần quan trọng nhất trong lớp này bao gồm Trình quản lý vị trí, Trình quản lý tài nguyên, Trình quản lý hoạt động và Trình quản lý thông báo.
Các ứng dụng
Theo mặc định, Android đi kèm với một bộ ứng dụng phong phú, bao gồm trình duyệt, chương trình SMS, lịch, trình quản lý liên hệ, bản đồ, v.v. Google Play cung cấp các lựa chọn thay thế cho các ứng dụng này, nếu người dùng muốn như vậy.
Khu nhà
Một ứng dụng có thể giao tiếp với hệ thống bằng bốn khối chức năng. Chúng như sau:
Activities- Các hoạt động đại diện cho một màn hình duy nhất mà người dùng nhìn thấy hoặc tương tác trực quan. Ví dụ: một ứng dụng email có thể có một hoạt động hiển thị danh sách các email mới, một hoạt động khác để soạn email và một hoạt động khác để đọc email.
Services- Phần lớn quá trình xử lý được thực hiện bởi các dịch vụ này đối với ứng dụng của bạn. Đó là logic đằng sau giao diện người dùng. Ví dụ: một dịch vụ có thể phát nhạc trong nền khi người dùng đang sử dụng một ứng dụng khác hoặc có thể tìm nạp dữ liệu qua mạng mà không chặn tương tác của người dùng với một hoạt động.
Broadcast Receivers- Một thành phần có thể được đăng ký để lắng nghe các sự kiện hệ thống hoặc ứng dụng và đưa ra thông báo về cùng một. Một ví dụ cho quảng bá bắt nguồn từ hệ thống là một 'low battery notification'trong khi chương trình phát sóng cấp ứng dụng có thể là'download successful'thông báo.
Content Providers- Một nhà cung cấp nội dung quản lý và giúp bạn chia sẻ dữ liệu giữa nhiều ứng dụng. Ví dụ, một nhà cung cấp nội dung có thể được sử dụng để chia sẻ dữ liệu danh bạ.
Các thành phần này tương tác với nhau thông qua các thông báo được gọi là Intents.