multidex+DexKnifePlugin实现分包

同花顺第一个口头任务:apk分包


android官网上有使用multidex解决配置方法数超过64K的应用
参考该文章,实现了dex分包。

为了方便以后可能忘记的自己查询,把文章中的关键部分拷贝在下面

但是demo中方法数超过64k是一件比较难的事情。为了测试是否分包成功,我们决定将指定类放置于第二个dex中。

首先,为了查看dex中包含的类,查看了AndroidStudioo的文章反编译apk。不过我直接用winRAR解压了apk(打开winRAR,在winRAR中可以查看apk内容并解压),然后再用dex2jar将dex转换成jar,最后用jd-gui查看。

//其中,使用dex2jar的时候,和原文略有不同
d2j-dex2jar D:\Decompile\classes2.dex -o D:\Decompile\classes2.jar
//指定转化后的jar的名称和目录,其他指令请直接输入d2j-dex2jar回车查看

关键点在于如何将某类放置于第二个dex。最终搜索到一种方法:
使用dexKnife,这个插件可以将某个类放置于maindex(不超过65536方法数的前提下),将某类放置于第二个dex或者更靠后。

最终,调试完成。设置过的test.class位于classes2.dex,而MainActivity.class位于classes.dex。
以上方法可行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容