- Application framework
- At the application framework level is the app code, which utilizes the android.media APIs to interact with the audio hardware. Internally, this code calls corresponding JNI glue classes to access the native code that interacts with the audio hardware.
- JNI
-
The JNI code associated with android.media is located in the
frameworks/base/core/jni/
andframeworks/base/media/jni
directories. This code calls the lower level native code to obtain access to the audio hardware. - Native framework
-
The native framework is defined in
frameworks/av/media/libmedia
and provides a native equivalent to the android.media package. The native framework calls the Binder IPC proxies to obtain access to audio-specific services of the media server. - Binder IPC
-
The Binder IPC proxies facilitate communication over process boundaries. They are located in
the
frameworks/av/media/libmedia
directory and begin with the letter "I". - Media Server
-
The audio services in the media server, located in
frameworks/av/services/audioflinger
, is the actual code that interacts with your HAL implementations. - HAL
-
The HAL defines the standard interface that audio services call into
and that you must implement to have your audio hardware function correctly. The audio HAL
interfaces are located in
hardware/libhardware/include/hardware
. See <hardware/audio.h> for additional details. - Kernel Driver
-
The audio driver interacts with the hardware and your implementation of the HAL. You can choose
to use ALSA, OSS, or a custom driver of your own at this level. The HAL is driver-agnostic.
Note: If you do choose ALSA, we recommend using
external/tinyalsa
for the user portion of the driver because of its compatible licensing (The standard user-mode library is GPL licensed).
- 20:50
- YWPMGFA
- Architecture
- 7 comments
Subscribe to:
Post Comments (Atom)
ReplyDeleteNice Blog, When i was read this blog i learnt new things & its truly have well stuff related to developing technology, Thank you for sharing this blog.
iPhone app training course in bangalore
iPhone job oriented course in bangalore
This comment has been removed by the author.
ReplyDeleteWell written!
ReplyDeletegood written Android Online Course
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteAndroid is a software package and Linux based operating system for mobile devices. Android is used for touchscreen-
ReplyDeletebased smartphones, tablets etc. for more information follow Android Online Course
Very nice blog,keep sharing more blogs with us.
ReplyDeleteThank you....
android online training