我正在制作一个使用dex2jar库将dex文件(来自android应用程序包)转换为jar文件的应用程序。但是该过程需要相当长的时间,尤其是由于android.support。x个类别。有没有一种方法可以使dex2jar在反编译时跳过某些类(我们指定的)?
这是我当前正在使用的代码:
DexFileReader reader = new DexFileReader(new File(PackageDir));
Dex2jar.from(reader)
.reUseReg(reuseReg)
.topoLogicalSort(topologicalSort || topologicalSort1)
.skipDebug(!debugInfo)
.optimizeSynchronized(optmizeSynchronized)
.printIR(printIR)
.verbose(verbose)
.to(file);
您可以使用dexlib2加载dex文件,删除您不感兴趣的类,然后构建一个新的dex文件。
int api = 19;
DexFile dexFile = DexFileFactory.loadDexFile(dexFilePath, api);
List<ClassDef> classes = new ArrayList<ClassDef>();
for (ClassDef classDef: dexFile.getClasses()) {
if (!classDef.getType().startsWith("Landroid/support/")) {
classes.add(classDef);
}
}
dexFile = new ImmutableDexFile(classes);
DexFileFactory.writeDexFile(dexFilePath, dexFile);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句