首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使dex2jar在将dex转换为jar时跳过某些类?

如何使dex2jar在将dex转换为jar时跳过某些类?
EN

Stack Overflow用户
提问于 2014-02-07 14:15:06
回答 1查看 971关注 0票数 3

我正在开发一个应用程序,它使用dex2jar库将一个dex文件(从一个安卓应用程序包)转换为一个jar文件。但是这个过程花费了相当长的时间,特别是由于android.support.x类。是否有一种方法可以让dex2jar在反编译时跳过某些类(我们指定的类)?

这是我目前使用的代码:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-07 18:04:15

您可以使用dexlib2加载dex文件,删除您不感兴趣的类,然后构建一个新的dex文件

代码语言:javascript
复制
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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21629975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档