reference to : http://www.jianshu.com/p/61e8f803e0d1
Android在開發過程中,隨着引用的庫以及業務的增多,不可避免的會出現64K limit問題,也就是方法數過多的問題,Java代碼中的Method總數和Field總數都不能超過65535個,那統計一下每一個jar包中包含多少個Method還是很有必要的,目前Google已經為我們實現了這樣的工具:
dexdump命令 (查看apk的method總數)
#查看apk的method總數 dexdump -f app.apk | grep method_ids_size #查看apk的field總數 dexdump -f app.apk | grep field_ids_size
但是這只是apk文件,如果是jar包呢,上面的命令不能滿足需求,那我們可以用下面的命令來實現:
dx --dex --verbose --no-strict --output=temp.dex xxx.jar > /dev/null # temp.dex 生成的dex文件存放的路徑 # xxx.jar 目標jar文件
生成temp.dex文件后,執行以下命令:
cat temp.dex | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"'
我對netty-3.9.5.Final.jar
計算后,輸出了8302
在Android上用上Netty這個庫,可真是重量級啊!