我需要一些关于在android中管理许多大文件的建议(可能是实时的)。 我每隔几乎有6-7张照片来自相机,我要对每张照片进行一些操作并将其保存到某处(图像约1秒),然后释放/破坏原件。
实际上我使用ArrayBlockingQueue来保存图像,然后用线程异步处理。但是存在一个非常大的问题:每个图像大约为20MB,因此设备的RAM很快就会变满。
所以我现在正在寻找一种更有效的方法来临时存储所有这些图像然后处理.. 我认为最好的替代方法是将图像存储在设备上(仅保存队列中的路径)然后使用线程进行处理,但我不知道是否好的想法,我担心的速度整个过程。 也许多线程可以帮助?如果是,有人可以链接一些好的教程来理解吗?
谢谢
修改
我发现的最好方法是在内存中保存帧(不在RAM中),用线程处理然后删除文件。 现在问题是这个过程太慢了,所以这可以通过多线程来解决。 实际上整个队列都是以这种方式处理的:
mBulbThread = new Thread() {
@Override
public void run() {
// Do stuff
}
};
我应该怎么做才能在两个或三个线程中拆分它?队列是唯一的,所以我也应该拆分队列吗?