本讲是Android Camera Native Framework专题的第2讲,我们初识CameraServer,包括如下内容:
Cameraserver 源码路径Cameraserver 跑的32位还是64位Cameraserver 对外开的服务Cameraserver rc文件Cameraserver Manifest文件视频在线观看:
极客笔记:极客笔记在线课程加入知识星球与更多Camera同学交流
– 星球名称:深入浅出Android Camera
– 星球ID: 17296815
– Wechat: 极客笔记圈
Cameraserver 源码路径
Cameraserver bin
/frameworks/av/camera/cameraserver/Cameraserver makefile详解
/frameworks/av/camera/cameraserver/Android.bpCameraserver 跑的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查看。