码迷,mamicode.com
首页 > 其他好文 > 详细

统计APK中方法数量

时间:2015-07-20 01:21:46      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:android开发

Android开发中有对APK的方法数量做限制,不能超过65536.如果超过了该数目,会遇到如下异常:

Conversion to Dalvikformat failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536

之所以出现上述问题,主要原因在于Android系统中,方法id存储在Dex文件中使用的是short类型数据,所以导致了dex中方法不能超过65k。

知道了上面的限制,那么如何知道生成的APK的方法数量呢?以及如何解决APK中方法总数超过65536并生成包。

我们可以使用dex-method-counts(https://github.com/mihaip/dex-method-counts)来统计包中的总体数量,使用方法很简单,只需执行下面语句即可:
java -jar path\dex-method-counts.jar path\App.apk
为了省却大家重新编译生成jar包问题,提供下载地址
 
知道了统计包中方法数量,如果超过了限制如何处理呢?
首先想到的就是去掉代码中没使用到的函数,去掉没有使用到的jar包,以及将类中成员由private换成public,减少set/get函数。但是这些都是去标不去本的方法,有没什么更好的解决方法呢?
采用类似微信方式的插件or使用分包机制。
详细内容可以参考美团提供的解决方案:
http://tech.meituan.com/mt-android-auto-split-dex.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

统计APK中方法数量

标签:android开发

原文地址:http://blog.csdn.net/zhengdan66/article/details/46960131

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!