同花顺第一个口头任务: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。
以上方法可行。