1
我在外部存储器上有100个图像,我在for循环中执行了以下两个任务。在android中改善文件保存性能
- 加载的每个项目为位图,并在内存中
而对于100倍的图像需要花费太多的时间与另一个位图合并它
这是我如何合并位图: how to merge to two bitmap one over another
我这是怎么保存的位图到文件:
File imageFileFolder = new File(Statics.TEMP_PATH);
imageFileFolder.mkdirs();
FileOutputStream out = null;
File imageFileName = new File(imageFileFolder, imageName);
try {
out = new FileOutputStream(imageFileName);
imageBitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
注意,所有这些都是在一个块的AsyncTask。
你可以尝试添加一个缓冲区,即'out = new BufferedOutputStream(new FileOutputStream(imageFileName),8 * 1024);'(尝试更大的尺寸)有任何可测量的效果。 – zapl
太多时间了?请告诉几秒钟。同时告诉文件大小。使用cpu的核心并使用线程。每个核心都有一个线程。或者两个。 – greenapps
@greenapps保存文件是一项昂贵的任务。如果你有任何解决方案,请告诉我,我会告诉你的差异。因为数据集不是很重要。 – Aerox