Android Interfaces: The
Android operating system is open-sourced to help you through your device's
bring up. Android provides you with the freedom to implement your own device
specifications and the drivers to support them. The hardware abstraction layer
(HAL) gives you a standard way to create software hooks in between the Android
platform stack and your hardware. To ensure that your devices maintain a high
level of quality and offers a consistent experience for your users, they must
also pass the tests in the compatibility test suite (CTS). CTS ensures that
anyone building a device meets a quality standard that ensures apps run
reliably well and gives users a good experience.
Android Low-Level System Architecture: it is important to have an understanding of
how Android works . Because your drivers and HAL code interact
with many layers of Android code, this understanding can help you find your way
through the many layers of code that are available to you through the AOSP
(Android Open Source Project) source tree. The following diagram shows a system
level view of how Android works:
Figure :Android System Architecture
Application framework
This
is the level that most application developers concern themselves with. You
should be aware of the APIs available to developers as many of them map 1:1 to
the underlying HAL interfaces and can provide information as to how to
implement your driver.
Binder IPC
The
Binder Inter-Process Communication mechanism allows the application framework
to cross process boundaries and call into the Android system services code.
This basically allows high level framework APIs to interact with Android's
system services. At the application framework level, all of this communication
is hidden from the developer and things appear to just work.
System services
Most
of the functionality exposed through the application framework APIs must
communicate with some sort of system service to access the underlying hardware.
Services are divided into modular components with focused functionality such as
the Window Manager, Search Service, or Notification Manager. System services
are grouped into two buckets: system and media. The system services include
things such as the Window or Notification Manager. The media services include
all the services involved in playing and recording media.
Hardware abstraction layer (HAL)
The
HAL serves as a standard interface that allows the Android system to call into
the device driver layer while being agnostic about the lower-level
implementations of your drivers and hardware.
Linux Kernel
Android
uses a specialized version of the Linux kernel with a few special additions
such as wake locks, a memory management system that is more aggressive in
preserving memory, the Binder IPC driver, and other features that are important
for a mobile embedded platform like Android.
No comments:
Post a Comment