我正在尝试将我的apk资源文件夹中的大量文件夹和子文件夹快速复制到我的SD卡。这些文件夹包含12mb的小文件,大概总共2500个。此SO问题的代码示例有效,但我的设备需要5分钟。有更快的方法吗?
我最初尝试将文件夹添加到zip存档中并在将其移动到设备上后将其解压缩,但它在不同设备上创建了许多问题,并且在整个过程中失败了很多。
答案 0 :(得分:1)
12mb应该节省一点,如果您使用其他SO question中的方法,请尝试增加copyFile
中的缓冲区大小,
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[8192]; // 1024 is kind small,..try 8192 or 4096!!
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}
答案 1 :(得分:1)
我创建了一个zip文件,将其放在我的应用程序中的raw或assets中,并在用户首次打开应用程序时解压缩,从而获得了非常好的,一致的结果。我建议你再试一次,因为我已经看到我已经看到数百次安装的零问题。
我将帮助方法基于zip和解压缩文件的教程在这里: Unzipping Files w/ Android,和 Zipping Files w/ Android
应该注意的是,我使用Java API来创建我在安装我的应用程序时包含的zip。这可能就是我使用Android中的Java API解压缩它们的原因。
希望这有帮助!祝你好运!