第2讲 初识cameraserver进程 - Android Camera Native Framework

2024年11月01日 第2讲 初识cameraserver进程 极客笔记

本讲是Android Camera Native Framework专题的第2讲,我们初识CameraServer,包括如下内容:

  1. Cameraserver 源码路径
  2. Cameraserver 跑的32位还是64位
  3. Cameraserver 对外开的服务
  4. Cameraserver rc文件
  5. Cameraserver Manifest文件

更多资源:

资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出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查看。

本文链接:http://so.lmcjl.com/news/16717/

展开阅读全文