android 的2.3 的单双camera的调试 使用android的prop技术点滴分析

本文分享了如何通过prop技术,在同一Android系统中支持不同平板设备的单双camera功能,简化了生产流程。通过修改init.rc文件和全局编译mm-j2,实现了根据系统配置自动加载单摄像头或双摄像头的Hal库,进一步在HAL和cameraserver.cpp间传递相应的界面配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 在中星微的平台实现单双camera的功能应用到了 prop的技术 现在和大家分享一下。

主要实现的任务是对于不同的平板 也就是有的是安装双摄像头(A机型) 有的是安装单摄像头(B机型) 在我们生产的时候,为了简化工作量,使用同一个kernel和系统同时支持A B 两款机型。

在这个任务下我使用到了android的prop的技术。

首先是在Z:\vimcro_newsdk_10-18\out\target\product\vortex\root 目录的下面的init.rc文件里面 添加setprop au.ui.dualcamera 1   这么一句话。

然后全局编译 mm -j 2

下载到平板电脑里面 可以在开发终端是用# getprop 的指令您会发现添加在init.rc里面的setprop的所有状态哦。

比如会答打印出:我的系统里面有很多打印这里只是写出一点,让大家有个了解

[ro.EMPTY_APP_MEM]: [8192]
[au.ui.dualcamera]: [1]  :嘿嘿是不是我们的配置在这里面看见了吧
[ril-impl.support]: [0]

 

我们配置好以后 就可以在camera的Hal的库里面使用 该环境变量在android的系统启动camera加载的时候 读出au.ui.dualcamera 的状态的值就可以知道加载的camera是双的还是单的了哦,于是就可以在HAL里面向framework里面的cameraserver.cpp里面传送是单camera的界面配置还是双camera的配置了。

下面吧我的代码贴出来和大家分享一下。

 

static CameraInfo sCameraInfo[] = {
 {
  CAMERA_FACING_FRONT, //camera   1
      0, 
 },
 {
  CAMERA_FACING_BACK, //camera    0
  0,  // orientation
 }
};


static const char DRIVER_PROP_NAME[] = "au.ui.dualcamera"; // Baiduman 嘿嘿是init.rc文件里面添加的

extern "C" int HAL_getNumberOfCameras()
{
 int mSif = open(SIF_DEV, O_RDWR | O_SYNC);
#if 1//wang
   char driver_status[20];
   //LOGD("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy%s :", __func__);
   if (!property_get(DRIVER_PROP_NAME, driver_status, NULL) || strcmp(driver_status, "1") != 0)// 获取init.rc里面的au.ui.dualcamera的状态

   {
     //LOGE("%s :11111111111111**********  %s", __func__,driver_status);
     ioctl(mSif, V8CIF_single_camera, 0);
     return sizeof(sCameraInfoo) / sizeof(sCameraInfoo[0]);   //向framerawork里面上传camera的配置 单camera的配置
     
   }
   else
   {
     //LOGE("%s :2222222222222********* %s", __func__,driver_status);//driver_status = 1  double
     ioctl(mSif, V8CIF_double_camera, 0);
     return sizeof(sCameraInfo) / sizeof(sCameraInfo[0]);  //向framerawork里面上传camera的配置    双camera的配置

   }
#else
 return sizeof(sCameraInfo) / sizeof(sCameraInfo[0]); //yuanlai
#endif

 

个人感觉像prop这种技术在android系统里面使用的是很频繁的。。。。。希望能够帮助到各位同仁。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值