如何查看Android App的方法总数

字数 329阅读 9312

大家都知道Android有65535方法数的问题,也就是说App的Java代码Method总数、Field总数都不能超过65535个,那我们有什么办法能查看我们App的这个值已经有多少了呢?

dexdump命令

#查看apk的method总数
dexdump -f app.apk | grep method_ids_size

#查看apk的field总数
dexdump -f app.apk | grep field_ids_size

dexdump 支持 后缀 .dex、.jar、.zip、.apk的文件,所以不需要将apk反编译成jar哦,而且这个是Android SDK自带的命令,在这个目录${ANDROID_SDK}/build-tools/23.0.1/dexdump.exe

但是有一个问题,对apk的统计只是针对单个dex的,如果你的apk有多个dex,那么只会计算classes.dex的方法数,所以针对多个dex的话你需要自己解开,然后再加起来。当然我使用的是 23.0.1 的版本,build-tools以后升级了也许会支持多个dex的。

使用Gradle的插件com.getkeepsafe.dexcount

如果使用Android Studio的话可以使用这个插件,插件的地址在这里

使用的方式就是在你的Gradle的脚本里边加入这一段就好了

buildscript { 
    repositories { 
        mavenCentral() // or jCenter() 
    }
    dependencies { 
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.2.1' 
    }
}
apply plugin: 'com.getkeepsafe.dexcount'

当你执行编译和打包命令的时候,这个插件会自动被执行,然后执行结果会被详细记录在/app/build/outputs/dexcount/debug.txt 里边

推荐阅读更多精彩内容