大家都知道Android有65535方法数的问题,也就是说App的Java代码Method总数、Field总数都不能超过65535个,那我们有什么办法能查看我们App的这个值已经有多少了呢?
#查看apk的method总数
dexdump -f app.apk | findstr method_ids_size
#查看apk的field总数
dexdump -f app.apk | findstr field_ids_size
dexdump 支持 后缀 .dex、.jar、.zip、.apk的文件,所以不需要将apk反编译成jar哦,而且这个是Android SDK自带的命令,在这个目录${ANDROID_SDK}/build-tools/23.0.1/dexdump.exe
findstr是windows下的过滤命令,在linux环境中可以替换成grep。
但是有一个问题,对apk的统计只是针对单个dex的,如果你的apk有多个dex,那么只会计算classes.dex的方法数,所以针对多个dex的话你需要自己解开,然后再加起来。当然我使用的是 23.0.1 的版本,build-tools以后升级了也许会支持多个dex的。