高通Android平台如何直接访问摄像头?

问题描述 投票:0回答:1

我有一部搭载骁龙820的手机。我成功修改了它的

boot.img
,更改了它的启动动作,使其可以启动Ubuntu。我花了一周时间才让它的屏幕和 WiFi 正常工作。现在我正在努力使其相机正常工作。但我发现了一些问题,并花了很多时间试图解决它们。通过研究资料和阅读一些大佬的博客,我发现直接访问高通Android平台上的摄像头并不是一件容易的事。由于高通的摄像头驱动与传统摄像头驱动不同,导致我无法使用v4l2 utils访问摄像头并获取数据。目前,我找到了以下可能的解决方案:

  1. 使用高通的相机HAL框架。
  2. 阅读高通的摄像头驱动源码,制作HAL框架之类的程序。
  3. 根据设备树中的信息直接设置寄存器并获取数据。

无论如何,我的问题是:

  1. 以上解决方案是否可行?
  2. 高通的相机HAL框架依赖于Android的zygote环境吗? (我读过高通的相机HAL框架的源代码,我认为它不依赖于zygote,但我对此不太确定)。
  3. 我尝试过基于HAL框架创建一个程序,但编译时总是很难通过。我想可能是因为我没有将整个高通AOSP源代码下载到本地,但是整个AOSP源代码占用了很大的空间。所以我想知道是否有更简单的方法来使用高通的HAL框架。

提前致谢。

linux camera android-source hardware qualcomm
1个回答
0
投票

其实我的手机原生Android系统中已经有编译好的动态库了。因此,我可以通过dlopen函数动态加载动态库。于是,我尝试使用Ubuntu上安装的gcc编译器来加载动态库,但是在加载动态库时遇到了一些难以解决的错误。我想应该是Ubuntu上下载的gcc编译器和Android系统编译时使用的编译器不兼容。所以我尝试下载最新版本的NDK。最后,通过阅读高通的mm-qcamera-interface源代码并使用NDK编译我的程序,我可以通过编写程序直接访问相机并获取数据。

© www.soinside.com 2019 - 2024. All rights reserved.