HL代码组织结构v

上传人:鲁** 文档编号:492615950 上传时间:2022-09-01 格式:DOCX 页数:6 大小:47.71KB
返回 下载 相关 举报
HL代码组织结构v_第1页
第1页 / 共6页
HL代码组织结构v_第2页
第2页 / 共6页
HL代码组织结构v_第3页
第3页 / 共6页
HL代码组织结构v_第4页
第4页 / 共6页
HL代码组织结构v_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《HL代码组织结构v》由会员分享,可在线阅读,更多相关《HL代码组织结构v(6页珍藏版)》请在金锄头文库上搜索。

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:主机接口实现liba2dp:蓝牙立体声服务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_a

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号