Previously I wrote an article for getting your own copy of the AOSP source, AOSP: Download, I thought before we go a head and build a ROM it would be worth having a quick run through of the AOSP architecture so we can understand where we should be making our changes if/when we want to.
Below is the high level architecture diagram of the AOSP provided by the AOSP website.
As you can see we have multiple layers within the system, they are:
|Application Framework||Used primarily by developers to create Android Apps.|
|Binder IPC||This layer allows for Inter-Process Communication (IPC). That is it allows Apps to cross process boundaries, similar to COM in Windows.|
|System Services||A collection of co-operating services which should be thought of as modular focused components. There are two groups of services, as shown above, System and Media services.|
|Hardware Abstraction Layer (HAL)||As the name suggests this is an abstraction layer between Android and the underlying Hardware. The HAL defines an interface that must be implemented by hardware vendors.|
|Linux Kernel||Android is built on top of the Linux Kernel and as with most distributions Android patches the Kernel to meet its needs.|
This is a very quick introduction to the different layers of the AOSP and I’ll go into more detail for each layer in future posts and as we go along but I think this gives you a good idea of what to expect. Next we’ll build a ROM and run it in an emulator.
Android is a trademark of Google LLC.