如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第页共NUMPAGES7页第PAGE\*MERGEFORMAT7页共NUMPAGES\*MERGEFORMAT7页·文件夹Hardware/Broadcom/Wlan/Ti/Wlan/Omap3/Msm7k/Libhardware_legacy/Libsensors/Qcom/Ril/RildRilreferenceLibrilInclude由此可见分为三类:1、第三方厂商部分,包括msm、broadcom、ti等2、老式硬件抽象层方案:libhardware_legacy3、独立的硬件抽象设备:libsensors、ril、qcom(gps)等Msm7k是高通提供的一些文件:1、libaudio2、libcamera3、libcopybit4、libgralloc5、liblights6、liboverlay7、librpc·Audio:0、层次:media库提供audio本地部分接口audioFlinger是audio的中间层audio硬件抽象层提供底层支持audio接口通过JNI提供给上层调用Audio管理环节Audio输出Audio输入Java层android.media.AudioSystemAndroid.media.AudioTrackAndroid.media.AudioRecorder本地框架层AudioSystemAudioTrackAudioRecorderAudioFlingerIAudioFlingerIAudioTrackIAudioRecorderHALAudioHardwareInterfaceAudioStreamOutAudioStreamIn1、HAL层(AudioFlinge和Audio的硬件接口):hardware/msm7k/libaudio-qsd8k在这里,在msm7k的根目录下的Android.mk中描述了如何选择对应平台的库,如果平台是qsd8k的,则会直接选择libaudio-qsd8k而不是libaudio原始库,这部分就是平台特定的代码。在该文件中进行打开设备文件、ioctl等操作。该HAL的调用起点是:createAudioHardware(),由该函数实现audio的HAL实例化,并提供给AudioFlinger进行调用。android的AudioHAL可以基于linux标准的ALSA或者OSS实现,或基于私有的Audio驱动接口实现。HAL的主体是:AudioHardwareInterface类,HAL主要实现方式:实现AudioHardwareInterface、AudioStreamOut和AudioStreamIn三个类的继承。HAL的实现:(1)AudioHardwareStub.cpp是一个HAL的模拟实现,不操作实际硬件,涉及到的输入输出都为空操作。(2)AudioHardwareGeneric.cpp是通用Audio抽象层,需要android的一种特殊声音驱动支持(/dev/eac)。(3)AudioDumpInterface.cpp提供带有dump功能的HAL。(4)自行设计的HAL,需要完成的工作和上面三个类似(比如基于OSS或者ALSA),对于有多个Audio设备的情况,可以HAL的setRouting函数设定。2、Native层:libaudioflingerframework/base/libs/audioflingerlibmediaframework/base/include/mediaframework/bse/media/libmedia3、JNI层:framework/base/core/jni/audiolibandroid_runtime.so的一部分android_media_AudioRecord\AudioSystem\AudioTrack…·Video-Camera(2.2已经从ui库中把camera剥离出来):1、HAL层:高通已实现:hardware/msm7k/libcamera/接口在frameworks/base/include/camera/CameraService.h中定义桩实现:CameraHardwareStub.cpp和FakeCamera.cpplibcamerastub.a2、Native层:framework/base/libs/came