Android:从服务中连续播放图像

Android:从服务中连续播放图像,android,android-intent,image-processing,memory-management,computer-vision,Android,Android Intent,Image Processing,Memory Management,Computer Vision,嗨, 我正在为我的机器人项目在Android上进行图像处理。在我的项目中,我有3项服务:摄像服务、VisionService、TakePictureService CameraService:使用VideoCapture(OpenCV)本机读取摄像头,并通过摄像头广播字节[]数据 VisionService:接收字节[]数据帧,处理人脸检测并广播人脸位置 TakePictureService:当面位于图像中心时,接收字节[]数据帧,在SurfaceView上绘制并将帧保存到SD卡。 问题是系

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

  • CameraService:使用VideoCapture(OpenCV)本机读取摄像头,并通过摄像头广播字节[]数据
  • VisionService:接收字节[]数据帧,处理人脸检测并广播人脸位置
  • TakePictureService:当面位于图像中心时,接收字节[]数据帧,在SurfaceView上绘制并将帧保存到SD卡。
问题是系统持续执行GC_FOR_ALLOC以释放前一帧数据并分配新帧。当我的应用程序运行一段时间后,我的设备将重新启动

在重新启动之前,logcat会在没有任何其他内容的情况下显示许多GC FOR_ALLOC,然后显示一些失败的绑定器转换和重新启动

我想问有没有解决这个问题的办法。我的机器人需要执行不间断的计算机视觉任务。有许多服务需要图像数据,我只能打开相机一次,所以我需要广播字节[]数据帧

你有什么建议吗


非常感谢

您可以使用AIDL接口,而不是广播,一旦摄像头有数据可用,您可以从cameraService调用Vision服务接口,广播不适合此工作,因为您需要传递大量数据

非常感谢。我使用绑定服务解决了这个问题。