Saturday, March 4, 2017

android ROM HAL,Audio and Bluetooth Architecture


                                                  

                                     please like & Subscribe our youtube channel

              https://www.youtube.com/playlist?list=PLQzJncZC8PUwCTcniu_akzp0N0oDx7l1n



                                  HAL Architecture






It is the main layer of the android architecture. This layer provides Communication between hardware and software, mean that it provide communication between android driver and android services.  Android open source provides the facility that you can download the android software and customize this software according to your requirement. HAL contain audio, graphics, wifi, Bluetooth, camera, media and storage drivers.


A hardware abstraction layer (HAL) is a logical division that provides communication between a computer's physical hardware and its software. It provides a device driver interface allowing a program to communicate with the hardware.


The HAL, or Hardware Abstraction Layer, provides the application developer with a set of standard functions that can be used to access hardware functions without a detailed understanding of how the hardware works.


Low-Level android architecture

 

Hardware Abstraction Layer
Hardware Abstraction Layer

 

Application Layer

This Layer has all application including system and third party application. Application Layer provides User interface to the user that interact directly to the user for example contact, messaging, calling etc.

Application Framework

Android framework provides API to provide android libraries to user applications. The application may be system applications or third party applications.

JNI (java native Interface)

JNI provide core code for android libraries or android API.

Native Libraries

Native libraries provide the interface to system API. These files are written in c/c++ code.


IPC (Inter Process Communication)

IPC provide Communication between different processes.

Services

Services are bang round process which provides the interface between API. There are two types of services, system service and media service. System service includes Window and notification services and media service includes Media player and Media Recording.

HAL (Hardware Abstraction Layer)

HAL provide communication between hardware with software. It provides Interface with your hardware and drives.

Kernel

Linux processes any task with providing resources with adding hardware and software. It is the link of hardware and software.

Drivers

This layer provides all drivers which are necessary for android device. Android drivers communicate between hardware and Linux kernel. Drivers recognize the hardware and perform talk with software or we can say that it perform exactly what we want with hardware, for example, suppose we want to extend out device memory for this task we will need flash memory driver which recognize external memory then process to software.

 ROM Audio Architecture 

Android is Linux at heart, it uses modified Linux Kernel optimized to battery and memory. It's not just advanced in terms of features, but also the best sounding.


We had been running Linux PC as our Audiophile system for a year now, and it simply beats every other OS ever built when it comes to bit-perfect audio.


It provides AudioFlinger interface to applications that interact with Libaudio (HAL), hiding the unnecessary details.








Audio Architecture has mainly two process media player and media recording.


ROM Audio Architecture
ROM Audio Architecture

Application Layer

The application layer of audio architecture includes media player application and media recording application.

Application framework Layer

Android framework layer includes android.media library which accesses JNI.

JNI

JNI access by Application framework layer and it contain java core code. It is located in framework/base/core/JNI and framework/base/media/JNI folder.



Native Libraries

Native libraries contain c/c++ core libraries which communicate with android.media API. It is located in framework/av/media/libmedia.

IPC (Inter-process Communication)

IPC provides communication between different processes. It is also located in framework/av/media/libmedia.

Media Service

Media service providers interface with HAL. It is located in framework/av/services/audio flinger.

HAL

HAL provide the interface with audio hardware component with audio HAL. It is located in device/vendor/product/audio.

Kernal

The Main work of Kernel is that executes the process and provide the interface with the driver with native code.

Driver

Driver layer contains audio drivers.

ROM Bluetooth Architecture


Android support Bluetooth and wifi which provide communication between deferent devices. Bluetooth sends text, audio and video files between two devices and wifi provide internet data connectivity.


The Android platform includes support for the Bluetooth network stack, which allows connecting a device to wirelessly exchange data with other Bluetooth devices. The application framework provides access to the Bluetooth functionality through the Android Bluetooth APIs. These APIs wirelessly connect to other Bluetooth devices, capable point-to-point, and multipoint wireless features.



Bluetooth architecture executes all Bluetooth related application and provides API to third party applications.


ROM Bluetooth Architecture
ROM Bluetooth Architecture


Application Layer

The application layer of audio architecture includes Bluetooth applications.

Application framework Layer

Android framework layer includes android.Bluetooth Libraries which access JNI and interact with Bluetooth hardware.

JNI

JNI access by Application framework layer and it contain java core code. It is located in package/app/Bluetooth/JNI.

Native Libraries

Native libraries contain c/c++ core libraries which communicate with android.Bluetooth API.

IPC (Inter-process Communication)

IPC provides communication between different processes.

System Service

Media service providers interface with HAL. It is located in package/app/Bluetooth.

HAL

HAL provide the interface with audio hardware component with android.Bluetooth libraries. It is located in hardware/libhardware/include/hardware.

Kernal

The Main work of Kernel is that executes the process and provide the interface with the driver with native code.

Driver

Driver layer contains Bluetooth drivers.


No comments:

Post a Comment