Difference between revisions of "Android application frameworks overview"

[unchecked revision] [quality revision]
m
m

The diagram below gives an overview of the Android application frameworks (aka Linux user space components) , that rely on Linux kernel.

This Linux kernel is based on the Android Common Kernel[1] following Google recommendation for its configuration[2].


It shows the main components , grouped per functional domainsdomain, but however it does is not intend to be exhaustive.



OpenSTLinux OE legend.png


The Android framework is structured in several layers:

  • The hardware interfaces providing a standard way to configure the underlaying driver, based on the Android HIDL (Hardware Interface Definition Language) mechanism
  • The the Android core (ART virtual machine, useful daemons (including vold, adbd, debuggerd…) and debuggerd, and system services)
  • The Android services (providing interfaces to the application = SDK)
  • The Android applications (including the launcher)

The Android services are often implemented partly in native cpp, and partly in Java. The JNI (Java Native Interface) IPC mechanism is available to allow communication between the two worlds.

Additionally In addition to the standard Android services, a proprietary coprocessor service for Android has been introduced (only for development purposepurposes only). The CoproService is composed of two parts:

  • The firmware management (check running firmware, start/stop firmware, get/set name of the firmware name)
  • The TTY management (open/close and read/write the TTY interface). You have to must implement your own protocol on top of this.

References[edit]


The diagram below gives an overview of the Android application frameworks (aka Linux user space components), that rely on [[STM32MP15_Linux_kernel_overview|Linux kernel]].

This Linux kernel is based on the Android Common Kernel<ref>AOSP: https://android.googlesource.com/kernel/common/</ref> following Google recommendation for its configuration<ref>AOSP: https://android.googlesource.com/kernel/configs/</ref>.
<br>

It shows the main components, grouped per functional domains, butdomain, however it doesis not intend to be exhaustive.
<br>


[[File:Android_architecture_overview.png|1000px|link=|center]]<br>

[[File:OpenSTLinux_OE legend.png|link=|center]]
<br>


The Android framework is structured in several layers:
* The hardware interfaces providing a standard way to configure the underlaying driver, based on the Android HIDL (Hardware Interface Definition Language) mechanism
* Thethe Android core (ART virtual machine, useful daemons (including vold, adbd, debuggerd…) and debuggerd, and system services)
* The Android services (providing interfaces to the application = SDK)
* The Android applications (including the launcher)

The Android services are often implemented partly in native cpp, and partly in Java. The JNI (Java Native Interface) IPC mechanism is available to allow communication between the two worlds.
Additionally In addition to the standard Android services, a proprietary coprocessor service for Android has been introduced (only for development purposepurposes only). The CoproService is composed of two parts:
* The firmware management (check running firmware, start/stop firmware, get/set name of the firmware)
* The  name)
* TTY management (open/close and read/write the TTY interface). You have to must implement your own protocol on top of this.

== References ==<references/>

<noinclude>

[[Category:Applications and UI frameworks]]
[[Category:Android]]
{{PublicationRequestId |12861 | 30Jul'19}}</noinclude>
Line 1: Line 1:
The diagram below gives an overview of the Android application frameworks (aka Linux user space components), that rely on [[STM32MP15_Linux_kernel_overview|Linux kernel]].
+
The diagram below gives an overview of the Android application frameworks (Linux user space components) that rely on [[STM32MP15_Linux_kernel_overview|Linux kernel]].
   
 
This Linux kernel is based on the Android Common Kernel<ref>AOSP: https://android.googlesource.com/kernel/common/</ref> following Google recommendation for its configuration<ref>AOSP: https://android.googlesource.com/kernel/configs/</ref>.
 
This Linux kernel is based on the Android Common Kernel<ref>AOSP: https://android.googlesource.com/kernel/common/</ref> following Google recommendation for its configuration<ref>AOSP: https://android.googlesource.com/kernel/configs/</ref>.
   
 
<br>
 
<br>
It shows the main components, grouped per functional domains, but it does not intend to be exhaustive.
+
It shows the main components grouped per functional domain, however it is not exhaustive.
   
 
<br>
 
<br>
Line 13: Line 13:
   
 
<br>
 
<br>
 
   
 
The Android framework is structured in several layers:
 
The Android framework is structured in several layers:
* The hardware interfaces providing a standard way to configure the underlaying driver, based on the Android HIDL (Hardware Interface Definition Language) mechanism
+
* hardware interfaces providing a standard way to configure the underlaying driver, based on the Android HIDL (Hardware Interface Definition Language) mechanism
* The Android core (ART virtual machine, useful daemons (vold, adbd, debuggerd…) and system services)
+
* the Android core (ART virtual machine, useful daemons including vold, adbd, and debuggerd, and system services)
* The Android services (providing interfaces to the application = SDK)
+
* Android services (providing interfaces to the application = SDK)
* The Android applications (including the launcher)
+
* Android applications (including the launcher)
 
 
   
The Android services are often implemented partly in native cpp and partly in Java. The JNI (Java Native Interface) IPC mechanism is available to allow communication between the two worlds.
+
The Android services are often implemented partly in native cpp, and partly in Java. The JNI (Java Native Interface) IPC mechanism is available to allow communication between the two worlds.
   
Additionally to the standard Android services, a proprietary coprocessor service for Android has been introduced (only for development purpose). The CoproService is composed of two parts:
+
In addition to the standard Android services, a proprietary coprocessor service for Android has been introduced (for development purposes only). The CoproService is composed of two parts:
* The firmware management (check running firmware, start/stop firmware, get/set name of the firmware)
+
* firmware management (check running firmware, start/stop firmware, get/set the firmware name)
* The TTY management (open/close and read/write the TTY interface). You have to implement your own protocol on top.
+
* TTY management (open/close and read/write the TTY interface). You must implement your own protocol on top of this.
   
 
== References ==
 
== References ==