作者:asdasdasd | 来源:互联网 | 2023-10-16 09:02
本讲是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.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查看。