optimizations to ApkDecoder regarding reading compression of resources.arsc

This commit is contained in:
Connor Tumbleson 2013-01-18 14:26:14 -06:00
parent cb5bad5555
commit c836995ead

View File

@ -99,13 +99,9 @@ public class ApkDecoder {
// read the resources.arsc checking for STORED vs DEFLATE compression // read the resources.arsc checking for STORED vs DEFLATE compression
// this will determine whether we compress on rebuild or not. // this will determine whether we compress on rebuild or not.
JarFile jf = new JarFile(mApkFile.getAbsoluteFile()); JarFile jf = new JarFile(mApkFile.getAbsoluteFile());
Enumeration<?> e = jf.entries(); JarEntry je = jf.getJarEntry("resources.arsc");
while(e.hasMoreElements()) { if (je != null) {
JarEntry je = (JarEntry) e.nextElement(); setCompressionType(je.getMethod());
if (je.getName().equalsIgnoreCase("resources.arsc")) {
setCompressionType(je.getMethod());
continue;
}
} }
jf.close(); jf.close();
@ -302,13 +298,7 @@ public class ApkDecoder {
private void setCompressionType(int compression) { private void setCompressionType(int compression) {
// check for deflate vs stored // check for deflate vs stored
if (compression == ZipEntry.STORED) { mCompressResources = (compression == ZipEntry.STORED) ? false : (compression == ZipEntry.DEFLATED);
mCompressResources = false;
} else if (compression == ZipEntry.DEFLATED) {
mCompressResources = true;
} else {
mCompressResources = false;
}
} }
private final Androlib mAndrolib; private final Androlib mAndrolib;