Android Architecture or Platform Architecture, is divided into Six main sections. This 6 layers stack of the Android operating system provides access, development configuration, and API. You will learn step by step each on in this tutor
Here is the official Android Platform Architecture Image, you can see there are major six layers in Architecture. Every layer has its own function and provides access (interaction or customization) as per development requirements.
Everyone knows now android expanding mostly devices like Phones, TV, watches, cars, etc. So it’s not only top-level android apps, but you can build also hardware-level apps.
Coming to another part where some company is manufacturing Android phones. They want to customize UI and other configuration in Software and hardware-level as per needs, So this Platform Architecture provide all possibilities to do it.
Let’s go to understand every layer of Android Architecture
1. Linux kernel
The Linux Kernel is the bottom-most layer in the Android architecture and an extremely important part of the software on nearly every Android device. Its handles and supports Resource management, Security management, Network stack, Process management, and Power management of the Android system.
Android is Linux-based, it gives the Android developers a pre-built, already maintained operating system kernel to start with so they don’t have to write their own kernel.
2. Hardware Abstraction Layer (HAL)
HAL layer not highlighted by Google in the starting time of Android. The hardware abstraction layer (HAL) provides standard interfaces that expose device hardware capabilities to the higher-level Java API framework.
Thru HAL you can access Audio, Bluetooth, Camera, Sensors drivers and can use in your application.
Now Android gives you extra flexibility to implement your own device specs and driver, you can create your own hooks between the Android Platform stack and hardware. Android is also open-source, so you can also contribute enhancements.
3. Android Runtime
Android is updating technology day by day to make faster apps. ART- Android Runtime is an application runtime environment. Android apps are stored in memory where they required space. Laughing app go thru the process – stored in RAM memory and execute in short of time, all this supported in Android Runtime configuration by android.
Two major concept is in Android is JIN – Just in time compilation and AOT – Ahead-of-time compilation.
4. Native C/C++ Libraries
If you are developing an app that requires C or C++ code, you can use the Android NDK to access some of these native platform libraries directly from your native code.
Example Webkit, Media Framework, OpenGL ES etc.
5. Java API Framework
The entire feature-set of the Android OS is available to you through APIs are written in the Java language. These APIs form the building blocks you need to create Android apps by simplifying the reuse of core, modular system components, and services, which include the following:
Like Activity, Content provider, Location etc.
6. System Apps
Android has some default and basic apps in OS, which included some is Internet browsing, Contacts, Calendars, Emails, messaging applications. You can install your own apps, it’s not restricted. Almost all manufacturing company and apps providing own keyboard, google chrome come with Pixel phones and the user also install different browsers. The basic app can be removed from the system if you have root access.
If you don’t like branded apps, you can remove them with some extra effort, sometimes it’s possible to root android mobile, and sometimes not. Root access gives by the company to company on devices (Rooting a device can be done by using some software that is available in the market but still depends on the configuration of mobile). So there is some apps form company like Mi apps by Mi.
From a developer perspective, if your app would like to deliver an SMS message, you don’t need to build that functionality yourself, you can instead invoke whichever SMS app is already installed to deliver a message to the recipient you specify.