背景:我们公司是做门口机设备的,设备为android系统,因公司需要实现人脸识别功能,需要调用相机实现实时预览获取图片。起初我们使用的camera.setPreviewCallback()方法实现,在PreviewCallback的onPreviewFrame回调方法中获取图片数据并处理:
camera.setPreviewCallback(new Camera.PreviewCallback() { @Override public void onPreviewFrame(byte[] data, Camera camera) { } });
后来发布到各地线上的版本反馈回问题:设备在工作一段时间后出现无响应,只能重启才能解决。因为之前版本并未有这个问题,我们近期只加了人脸识别功能,所以怀疑这块出了问题。因为我们的版本有远程ADB功能(关于远程ADB功能,感兴趣的可以自行百度),所以通过adb连接上出问题的设备后发现设备可用内存基本被消耗完,导致app无

本文介绍了在Android设备上,由于持续使用Camera.startPreview()导致内存溢出的问题。作者通过分析发现,使用camera.setPreviewCallbackWithBuffer()和相机缓存可以缓解问题,但需要正确设置和复用缓存区以防止内存泄漏。最终,通过增加缓存数量成功解决了内存溢出的问题。

1万+

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



