Descomprimir archivos en Android parece ser terriblemente lento. Al principio pensé que esto era solo el emulador pero parece ser el mismo en el teléfono. Probé con diferentes niveles de compresión y eventualmente bajé al modo de almacenamiento, pero aún demora años.¿Cómo acelerar el tiempo de descompresión en Java/Android?
De todos modos, debe haber una razón! ¿Alguien más tiene este problema? Mi método de descompresión se ve así:
public void unzip()
{
try{
FileInputStream fin = new FileInputStream(zipFile);
ZipInputStream zin = new ZipInputStream(fin);
File rootfolder = new File(directory);
rootfolder.mkdirs();
ZipEntry ze = null;
while ((ze = zin.getNextEntry())!=null){
if(ze.isDirectory()){
dirChecker(ze.getName());
}
else{
FileOutputStream fout = new FileOutputStream(directory+ze.getName());
for(int c = zin.read();c!=-1;c=zin.read()){
fout.write(c);
}
//Debug.out("Closing streams");
zin.closeEntry();
fout.close();
}
}
zin.close();
}
catch(Exception e){
//Debug.out("Error trying to unzip file " + zipFile);
}
}
considere dónde está descomprimiendo. Contexto.getCacheDir() va a ser un almacenamiento interno, donde Environment.getDataDirectory() puede ser interno (o no) y Environment.getExternalDirectory() estará en la tarjeta SD. la memoria interna es casi seguro que va a ser más rápida. –