本讲是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查看。