Android:从服务不断广播图像

时间:2014-10-29 12:40:31

标签: android android-intent image-processing memory-management computer-vision

您好, 我正在Android上为我的机器人项目进行图像处理。在我的项目中,我有3个服务:CameraService,VisionService,TakePictureService。

  • CameraService:使用VideoCapture(OpenCV)本地读取相机并通过CAMERA_INTENT广播byte []数据
  • VisionService:接收byte []数据框,处理面部检测和面部广播位置
  • TakePictureService:接收byte []数据框,在SurfaceView上绘制并在面部位于图像中心时将帧保存到SD卡。

问题是系统连续执行GC_FOR_ALLOC以释放先前的帧数据并分配新帧。当我的应用程序运行一段时间后,我的设备将重新启动。

在重新启动之前,logcat显示许多没有任何其他内容的GC_FOR_ALLOC,然后是一些FAILED_BINDER_TRANSTION并重启。

我想问一下是否有任何解决方案可以解决这个问题。我的机器人需要执行不间断的计算机视觉任务。有许多服务需要图像数据,我只能打开一次Camera,所以我需要广播byte []数据帧。

你有什么建议吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

而不是广播,你可以使用AIDL接口,一旦有来自摄像头的数据,你就可以从cameraService调用VisionService的接口,因为你需要传递大量数据,所以广播不适合这样的工作