Android Audio Tutorial [Part Two] : Android Audio Architecture



Android audio architecture defines how audio functionality is implemented and points to the relevant source code involved in the implementation.






Let us look at some of these components in the above diagram and try and see what are they needed for.

Application framework
The application framework includes the app code, which uses the android.media APIs to interact with audio hardware. Internally, this code calls corresponding JNI glue classes to access the native code that interacts with audio hardware.

JNI
The JNI code associated with android.media calls lower level native code to access audio hardware. JNI is located in frameworks/base/core/jni/ and frameworks/base/media/jni.

Native framework
The native framework provides a native equivalent to the android.media package, calling Binder IPC proxies to access the audio-specific services of the media server. Native framework code is located in frameworks/av/media/libmedia.

Binder IPC
Binder IPC proxies facilitate communication over process boundaries. Proxies are located in frameworks/av/media/libmedia and begin with the letter "I".

Media server
The media server contains audio services, which are the actual code that interacts with your HAL implementations. The media server is located in frameworks/av/services/audioflinger.

HAL
The HAL defines the standard interface that audio services call into and that you must implement for your audio hardware to function correctly. The audio HAL interfaces are located in hardware/libhardware/include/hardware. For details, see audio.h.

Kernel driver

The audio driver interacts with your hardware and HAL implementation. You can use Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS), or a custom driver (HAL is driver-agnostic).















Comments

  1. This comment has been removed by the author.

    ReplyDelete
  2. school auditorium sound system, I have read all the comments and suggestions posted by the visitors for this article are very fine,We will wait for your next article so only.Thanks!

    ReplyDelete
  3. AngularJS Training in Bangalore | Thanks you and excellent and good to see the best software training courses for freshers and experience candidates | AngularJS Course in Bangalore |
    Best AngularJS Training Institutes in Bangalore | to upgrade the next level in an Software Industries Technologies | AngularJS Online Training in Bangalore

    ReplyDelete
  4. Amazing post! .I appreciate your hard work. Thank you for sharing. I have also shared some useful information. PicoBuds Pro Review on Ossward.org

    ReplyDelete

Post a Comment

Popular posts from this blog

Android Audio Tutorial [Part Three] : AudioFlinger Introduction and Initialization

Android External Storage Support: Volume Daemon (vold) Architecture

Android Audio Tutorial [Part One] : Introduction