Как ускорить разархивирование в Java / Android?

Распаковка файлов на android кажется ужасно медленной. Сначала я подумал, что это просто эмулятор, но похоже, что на телефоне он такой же. Я пробовал разные уровни сжатия и в конце концов перешел в режим хранения, но это все равно занимает много времени.

В любом случае, должна быть причина! Кто-нибудь еще сталкивался с этой проблемой? Мой метод распаковки выглядит следующим образом:

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);

}
    }
33
задан Dilum Ranatunga 23 April 2012 в 19:43
поделиться