本讲是android camera native framework专题的第2讲,我们初识cameraserver,包括如下内容:
- cameraserver 源码路径
- cameraserver 跑的32位还是64位
- cameraserver 对外开的服务
- cameraserver rc文件
- cameraserver manifest文件
更多资源:
资源 | 描述 |
---|---|
在线课程 | |
知识星球 | 星球名称:深入浅出android camera 星球id: 17296815 |
极客笔记圈 |
cameraserver 源码路径
cameraserver bin
- /frameworks/av/camera/cameraserver/
cameraserver makefile详解
- /frameworks/av/camera/cameraserver/android.bp
cameraserver 跑的32位还是64位
看操作系统kernel是32bit还是64bit
emulator_x86_64:/ # uname -a
linux localhost 5.15.41-android13-8-00205-gf1bf82c3dacd-ab8747247 #1 smp preempt sun jun 19 02:44:07 utc 2022 x86_64 toybox
查看bin是32位还是64位的
- 使用file命令查看对应的bin,bin的名字可以从makefile里面查看
emulator_x86_64:/ # file /system/bin/cameraserver
/system/bin/cameraserver: elf shared object, 64-bit lsb x86-64, dynamic (/system/bin/linker64), for android 33, buildid=ef069dc22fc302b0e657c2eb124d45a9, stripped
通过查看smaps,查看某个进程跑的32位还是64位的(见视频讲解)。
cameraserver 对外开的服务
cameraserver rc文件
rc(run command/run configure) 是进程启动时的配置文件。
rc文件在设备(如android手机)中的存放路径:
-
/system/etc/init/
- 用于核心系统项,例如 surfaceflinger, mediaservice和cameraserver
-
/vendor/etc/init/
- 针对soc供应商的项目,如soc核心功能所需的actions或守护进程
-
/odm/etc/init/
- 用于设备制造商的项目,如actions或运动传感器或其他外围功能所需的守护进程
cameraserver manifest文件
manifest文件用于定义vendor interface接口,供servicemanager使用。
manifest文件在设备(如android手机)中的存放路径:
- /system/etc/vintf/manifest/
- /vendor/etc/vintf/manifest/
- /product/etc/vintf/manifest/
lshal 是一种设备端工具,可以列出向 hwservicemanager 注册的所有 hidl hal。
aidl hal可以通过dumpsys -l 或service list查看。