我正在使用的Android应用程序正在超出dex方法计数限制。有没有一种简单的方法来显示按软件包分组的方法计数
我可以获得方法的总数,但是我的应用程序包含多个组件,因此我试图找出哪个组件是最大的贡献者。

最佳答案

这将使您了解每个包层次结构对方法计数的贡献。结果包括该目录/包中的所有类以及所有子目录/包。

baksmali blah.apk -o out
cd out
find * -type d -print -exec sh -c "smali {} -o {}/classes.dex && sh -c \"dexdump -f {}/classes.dex | grep method_ids_size\"" \;

这个经过稍微修改的版本与之类似,只是它仅适用于该特定目录/包中的类,不包括任何子目录/子包。
baksmali blah.apk -o out
cd out
find * -type d -print0 | xargs -0 -I{} sh -c "echo {} && find {} -maxdepth 1 -name \"*.smali\" -print0 | xargs -r -0 smali -o {}/classes.dex"
find -name "*.dex" -print -exec sh -c "dexdump -f {} | grep method_ids_size" \;

关于android - 按包显示dex方法计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17094094/

10-12 04:00