环境:友善tiny210
我们在模拟器上运行的Android系统的Camera程序,显示的黑白格子,这实际上是Android实现了一个FakeCamera,专门用于在没有真实相机设备的测试程序。
FakeCamera.cpp位于友善tiny210光盘中,Andoird/Android-2.3.1/frameworks/base/services/camera/libcameraservice/目录下
可以看到,编译宏USE_CAMERA_STUB用于确定是否使用FakeCamera来模拟摄像头。
当USE_CAMERA_STUB=false,CameraService会启用真实摄像头,
当USE_CAMERA_STUB=true,CameraService会启用FakeCamera。
流程
更改Andoird/Android-2.3.1/frameworks/base/services/camera/libcameraservice/目录下的Android.mk将USE_CAMERA_STUB设置为true
通过./build-android编译
通过./genrootfs
编译通过,生成*.img,烧写板子
运行摄像头程序,依然启用真实摄像头
删除Android.mk 文件
依然可以编译通过
错误定位:编译过程中并没有执行Andoird/Android-2.3.1/frameworks/base/services/camera/libcameraservice/目录下的Android.mk
删除FakeCamera.cpp和CameraHardwareStub.cpp文件
依然可以编译通过
错误定位:编译过程中并没有编译FakeCamera
解决方案:
手动编译,生成libcameraservice.so
通过android的模块编译方法解决这个问题,即mm指令
source ./build/envsetup.sh
mmm./frameworks/base/services/camera/libcameraservice/
然后将out/target/product/generic/system/lib/libcameraservice.so的文件通过adb push命令传送到板子的/system/lib中
重新启动系统,即可。

参考博文:
http://www.189works.com/article-30252-1.html
http://blog.youkuaiyun.com/bhp1127/article/details/7634634
在友善tiny210环境下,Android系统通过FakeCamera实现模拟摄像头功能。当编译宏USE_CAMERA_STUB设为true时,CameraService启用FakeCamera。编译流程包括修改Android.mk、编译生成.img、烧写板子。然而,直接编译可能不会执行Android.mk,需通过mm指令手动编译libcameraservice.so,并将其推送到板子的/system/lib,重启系统后生效。
884

被折叠的 条评论
为什么被折叠?



