版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文件夹Hardware/Broadcom/Wlan/Ti/Wlan/Omap3/Msm7k/Libhardware_legacy/Libsensors/Qcom/Ril/RildRilreferenceLibrilInclude由此可见分为三类:1、第三方厂商部分,包括msmbroadcom、ti等2、老式硬件抽象层方案:libhardware_legacy3、独立的硬件抽象设备:libsensors、ril、qcom(gps)等Msm7娓高通提供的一些文件:1、libaudio2、libcamera3、libcopybit4、libgralloc5、liblights6、liboverlay
2、7、librpcAudio:0、层次:media库提供audio本地部分接口audioFlinger是audio的中间层audio硬件抽象层提供底层支持audio接口通过JNI提供给上层调用Audio管理环节Audio输出Audio输入JavaJUcAA本地框架层AudioSystemAudioTrackAudioRecorderAudioFlingerIAudioFlingerIAudioTrackIAudioRecorderHALAudioHardwareInterfaceAudioStreamOutAudioStreamIn1、HAL层(AudioFlinge和Audio的硬件接口):h
3、ardware/msm7k/libaudio-qsd8k在这里,在msm7阴J根目录下的中描述了如何选择对应平台的库,如果平台是qsd8k的,则会直接选择libaudio-qsd8k而不是libaudio原始库,这部分就是平台特定的代码。在该文件中进行打开设备文件、ioctl等操作。该HAL的调用起点是:createAudioHardware(),由该函数实现audio的HAL实例化,并提供给AudioFlinger进行调用。android的AudioHAL可以基于linux标准的ALSA或者OSS现,或基于私有的Audio驱动接口实现。HAL的主体是:AudioHardwareinterfa
4、ce类,HAL主要实现方式:实现AudioHardwareinterface、AudioStreamOut和AudioStreamin三个类的继承。HAL的实现:(1)是一个HAL的模拟实现,不操作实际硬件,涉及到的输入输出都为空操作。(2)是通用Audio抽象层,需要android的一种特殊声音驱动支持(/dev/eac)。(3)提供带有dump功能的HAL)(4)自行设计的HAL需要完成的工作和上面三个类似(比如基于OSS者ALSA),对于有多个Audio设备的情况,可以HAL的setRouting函数设定。2、 Native层:libaudioflingerframework/base/
5、libs/audioflingerlibmediaframework/base/include/mediaframework/bse/media/libmedia3、 JNi层:framework/base/core/jni/audio?的一部分android_media_AudioRecordAudioSystemAudioTrackVideo-Camera(已经从ui库中把camera剥离出来):1、HAL层:高通已实现:hardware/msm7k/libcamera/接口在frameworks/base/include/camera/中定义桩实现:和?2、 Native层:framew
6、ork/base/libs/camera/libui:提供camera的框架部分对上层的接口中间层实现框架CameraService继承libui,提供中间层支持(通过调用HAL实现),无对外的APIframework/base/camera/libcameraservice/实现ICameraService和ICamera两个类在该service中,是否使用overlay是通过读取cameraHAL的usOverlay实现的,如何使用overlay也是由cameraHAL完成。CameraClient3、JNI层:framework/base/core/jni/Video-Overlay:注
7、:overlay系统和其他系统的不同,其他系统一般只需要HAL即可,overlay则不仅需要HAL,而且还要在其他地方主动使用之,主要使用的地方为:视频播放器实现部分的输出环节和camera的1、HALHAL 层:2、3、libhardware/include/hardware/hardware/libhardware/modules/overlay/Native 层:libui :提供overlay的框架部分surfaceflinger :提供overlay中间层JNI 层:overlay 无 JNI传感器Java名称本地名称数值加速度TYPE_ACCELEROMETERSENSOR_TYP
8、E_ACCELEROMETER1磁场TYPE_MAGNETIC_FIELDSENSOR_TYPE_MAGNETIC_FIELD2力向TYPE_ORIENTATIONSENSOR_TYPE_ORIENTATION3陀螺仪TYPE_GYROSCOPESENSOR_TYPE_GYROSCOPE4光线(亮度)TYPE_LIGHTSENSOR_TYPE_LIGHT5压力TYPE_PRESSURESENSOR_TYPE_PRESSURE6温度TYPE_TEMPERATURESENSOR_TYPE_TEMPERATURE7接近TYPE_PROXIMITYSENSOR_TYPE_PROXIMITY81、HAL
9、层: Sensor:0、android支持的传感器类型:hardware/libhardware/include/hardware/模拟实现:development/emulator/sensors2、Native 层:暂无3、JNI 层:frameworks/base/core/jni/ - RIL:1、HAL层:hardware/ril/include: RILhardware/ril/libril: RILhardware/ril/rild: RIL头文件库,守护进程,hardware/ril/reference-ril: RIL是辅助功能库,被和rild 使用。ReferenceRIL
10、是RIL的实现库2、Native 层:暂无rild参考库,3、 JNI层:Java层和RIL的接口使用rild的socket。GUI(HAL和Native混合,中的libui部分有了较大变化):0、对于的提升: 在native层,将camera部分从ui中分离。 在native层,将surfaceflinger_client从ui库中分离1、HAL层:Input/Output和硬件接口(本属于HAL层,但linux中fb和标准input驱动的原因,本部分在libui中使用标准方式实现),显示输出的硬件接口需要实现egl_native_window_t,是OpenGLt吉构,提供给libEGL使
11、用的。在中mapFrameBuffer()实现对驱动的操作() 输入的硬件接口:目的是统一向上层提供按键码(KeyCode),这部分也有了较大改变,输入处理目前认为是在libui中统一进行处理。KeyCodeLabel等development/emulator/keymaps可以进行参考对于不同硬件,只需要写出不同的按键布局文件即可,目的是让驱动程序中的整数值对应到android按键名称上。增加或者减少android的按键码,相当于更改android系统的api,降低了兼容性。2 、Native层:libui(+libpixelflinger):框架集成库,显示的中枢,GUI中枢;定义了颜色格
12、式:Egl窗口:实现egl_native_window_t类,头:按键和事件处理:surface:surfaceFlingeroverlay:用于视频输出,实现于surfaceflinger中,头文件:camera:CameraService实现frameworks/base/include/ui/frameworks/base/libs/ui/和为上层提供调用接口是需要下层继承和实现的接口中的接口可以给本地程序进行调用,实现图形数据的输出。libpixelflinger(+libcutils)system/core/include/pixelflinger/system/core/libpi
13、xelflinger/libsurfaceflinger(+libui)继承了libui的头文件提供的类而实现framework/base/libs/surfaceflinger/surfaceflinger支持图形层创建、叠加、混合等功能,这些功能依赖于的显示设备是由DisplayHardware目录中的实现的,它调用了EGL的HAL部分。2D图形系统库skiaexternal/skia/:核心图形库:skia图形库:和opengl相关的库src/gl/对上层的接口:src/core/图形编解码接口:include/image/3D图形系统库:framework/base/opengl/:o
14、penGLES库的封装:openGLES库的封装:openGL软件实现库3 JNI层:framework/base/core/jni/-2D图形系统库skia:framework/base/core/jni/android/graphic/3D图形系统库:framework/base/core/jni/framework/base/core/jni/-BT:1、HAL层+Native层:Bt的HAL和Native是混合在一起的。blueznet/Bluetooth/内核部分的实现external/bluez/若干动态库和可执行程序libbluetooth:公共库libhcid:主机接口实现li
15、ba2dp:蓝牙立体声服务bluez适配libbluedroidsystem/Bluetooth/bluez使用DBUSm上层交互,因此适配层简单,封装了蓝牙开关和射频开关2JNI层:frameworks/base/core/jni/android_bluetooth_*.cpp-GPS1、HAL层+Native层:GPSE位适配层:关键接口:GpsInterfaceGpsLocationhardware/libhardware_legacy/gps/hardware/libhardware_legacy/include/hardware_legacy/gpslibloc_apihardwar
16、e/qcom/gps/loc_api/libloc_apilibloc_api-rpc(+librpc)hardware/qcom/gps/loc_api/libloc_api-rpc2JNI层:frameworks/base/core/jni/直接和适配层交流,访问适配层定义的GpsInterface,并实现自己的GpsCallback供GPS适配层进行回调。-Wifi:1、HAL层:wpa_supplicant程序external/wpa_supplicantwpa_supplicant适配层hardware/libhardware_legacy/wifi/?libhardware_leg
17、acy的一部分封装wpa_supplicant守护进程的通信,提供给框架使用实现非常简单:wifi_command()和wifi_wait_for_event()接口2 Native层:暂无3 JNI层:frameworks/base/core/jni/MultiMedia:1、HAL层:由输入/输出环节实现无直接联系。多媒体部分设计到音视频输入输出的HAL环节:surfaceflinger、audioflinger、cameraservice以及音频输入输出的HAL环节。2 Native层:由PacketVideo的openCore实现多媒体本地框架libmediaframeworks/base/include/media/frameworks/base/media/libmedia/li
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暑假主题家长会
- 快运加盟合同范本
- 护理岗前培训心得体会
- 等地震演练幼儿园
- 2024年秋初中科学九年级下册同步课件(浙教版)3.4 非传染性疾病
- 配送员工合同范本
- 短期胰岛素强化治疗
- 核酸付款合同范本
- 非劳力性热射病诊断
- 室内设计合作协议三篇
- 画法几何 华中科大-新2-1
- 研学旅行概论教学课件汇总完整版电子教案
- NYT 393-绿色食品 农药使用准则
- TSG Z8001-2019特种设备无损检测人员考核规则-高清正版
- 人教版八上名著阅读《昆虫记》分章练习(含答案)
- 医护人员服务礼仪及行为规范-PPT课件
- 一年级竖式计算在□内填上合适的数字
- 鹌鹑蛋脱壳机的设计
- 全工业园区发展情况、存在问题及对策建议
- 《广东省高速公路管理条例》(修正)
- 服装成品质量验收标准
评论
0/150
提交评论