本讲是android camera native framework专题的第5讲,我们介绍cameraserver manifest详解(上),包括如下内容:
- android vintf manifest语法简介
- cameraserver manifest详解
- manifest.type
- manifest.hal.format
- manifest.hal.name
- manifest.hal.transport
- manifest.hal.version
- manifest.hal.interface
- manifest.hal.fqname
- hal interface descriptor
更多资源:
资源 | 描述 |
---|---|
在线课程 | |
知识星球 | 星球名称:深入浅出android camera 星球id: 17296815 |
极客笔记圈 |
android vintf manifest语法简介
android vintf manifest是用于描述vendor(hal) interface对象的清单文件
vintf manifest文件语法详解
manifest.type
manifest.type
- manifest类型,分为device和framework两种类型
- 定义manifest类型,在做兼容性矩阵验证时会用到
兼容性矩阵
- fcm(framework compatibility matrix)包含system, system_ext, product三个分区对device manifest的要求
- 比如:
hardware/interfaces/compatibility_matrices/
/system/etc/vintf/compatibility_matrix.device.xml
- 比如:
- dcm(device compatibility matrix)包含vendor分区对framework manifest的要求
- 比如:
device/generic/goldfish/compatibility_matrix.xml
/vendor/etc/vintf/compatibility_matrix.xml
- 比如:
manifest.hal.format
manifest.hal.format 用于指定是什么类型的hal,跟实现的接口有关,可设置的值有:
- hidl:hidl hal,这是默认值。
- aidl:aidl hal。
- native: native hals,目前没看到有使用。
示例:
-
aidl hal:
hardware/google/camera/common/hal/aidl_service/android.hardware.camera.provider@2.7-service-google.xml
-
hidl hal:
frameworks/av/camera/cameraserver/manifest_android.frameworks.cameraservice.service@2.2.xml
manifest.hal.name
manifest.hal.name 用于设置hal的包名,多个 hal 可以使用相同的名称。
示例:
-
cameraserver的hidl接口
android.frameworks.cameraservice.service
-
camera hal的hidl和aidl接口使用相同的name
-
hidl:
/device/generic/goldfish/manifest.camera.xml
-
android.hardware.camera.provider -
aidl:
/hardware/google/camera/common/hal/aidl_service/android.hardware.camera.provider@2.7-service-google.xml
-
android.hardware.camera.provider
-
hidl:
manifest.hal.transport
manifest.hal.transport 用于设置vintf接口的通信方式
-
只有hidl hal才需要,可设置为如下三种值(目前几乎全是hwbinder ):
- hwbinder:绑定模式(跑独立进程)
- passthrough:透传模式(跑调用者进程)
- inet:inet 套接字