Skip to content

1. Android Platform

Claudia Diosan edited this page Jun 23, 2020 · 1 revision

Android is a mobile operating system developed by Google. Although it has user interfaces adapted to televisions (Android TV), cars (Android Auto) etc., it is especially designed for devices with touch input such as phones or tablets.


Its kernel is based on Linux and it is an operating system licensed by Apache, therefore it is considered free software. It is an open source platform, which guarantees the rights of freedom in the license to use, share, modify and distribute in modified versions of the original software. However, it has controversial aspects that question whether it is really free, because although Google services are free, we do not know how our private data is processed. Another aspect is the dependence on Google services, because it is mandatory to log in with a Google ID, the constant exchange of data with Google and the sending of the default location. On the contrary, part of the positive aspects are very beneficial because it is open source, has better maintainability and security, transparency in the use of sensors and has Google services.


The Android SDK (Software Development Kit) provides all the tools needed to develop applications in addition to the use of the Java programming language.


Android is a Linux-based open source software stack created for a wide variety of devices and form factors. The following diagram shows the main components of the Android platform.Next you can view the Android software stack.

software adroid (2)


As you can see, Android has a stack-type architecture, in which the components are grouped into layers. Each of the layers uses elements from the lower layer to perform its function. Each layer will be briefly presented below:

  • Linux kernel: it is the base of the Android platform. Using the kernel in Linux allows Android to take advantage of key security features and, at the same time, allows device manufacturers to develop hardware driver devices for a known kernel.

  • Hardware Abstraction Layer (HAL): Provides standard interfaces that expose the capabilities of the device to the higher-level Java API framework. It consists of several library modules and each of these implements an interface for a specific type of hardware component, such as the camera module or bluetooth. When an API framework makes a call to access device hardware, the Android system loads the library module for the hardware component in question.

  • Android Runtime: For devices running Android 5.0 (API level 21) or later, each app runs its own processes with its own instances of the Android Runtime (ART). ART is written to run multiple virtual machines on low memory devices running DEX files, a byte-code format specially designed for Android and optimized to take up minimal memory space. Create toolchains, like Jack, and compile Java sources into DEX bytecode that can be run on the Android platform.

  • Native C / C ++ Libraries: Many core components and services of the Android system, such as ART and HAL, are based on native code that requires native libraries written in C and C ++. The Android platform provides APIs for the Java framework to expose the functionality of some of these native libraries to apps.

  • Java API framework: The entire set of Android OS functions is available through APIs written in the Java language. These APIs are the foundation you need to create Android apps by simplifying the reuse of central and modular system components and services, such as the following:

  1. A rich and extensible view system that you can use to compile the UI of an app; lists, grids, text boxes, buttons, and even an embeddable web browser are included.

  2. A resource manager that gives you access to codeless resources, such as localized strings, graphics, and design files.

  3. A notification manager that allows all apps to display custom alerts in the status bar.

  4. An activity manager that manages the life cycle of apps and provides a common backlinks stack.

  5. Content providers that allow apps to access data from other apps, such as the Contacts app, or share their own data.


Developers have full access to the same framework APIs used by Android system apps.

System apps: Android includes a set of central apps for email, SMS messaging, calendars, Internet browsing and contacts, among other elements. The apps included in the platform do not have a special status among the apps that the user chooses to install; therefore, an external app can be converted into the web browser, the SMS messaging system or even the user's default keyboard (there are some exceptions, such as the System Settings app).

System apps work like apps for users and provide key capabilities that developers can access from their own apps.

Clone this wiki locally