如何确定应用程序的方法计数?

时间:2013-03-19 20:12:16

标签: java android

我遇到的问题是我的应用程序有太多方法。

在下面链接的最后一篇文章中,海报张贴了他的申请的方法计数(按包分类)。我无法找到如何为我的应用程序获取此信息,任何建议?

https://code.google.com/p/android/issues/detail?id=20814

8 个答案:

答案 0 :(得分:31)

我用

cat build/dex/debug/classes.dex | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"'

我得到55176。 64k限制即将来临:D

答案 1 :(得分:12)

要获取每个构建的方法计数报告,请执行以下操作:

app/build.gradle中的

buildscript {
    repositories {
        mavenCentral() // or jcenter()
    }

    dependencies {
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.7.3'
    }
}

// make sure this line comes *after* you apply the Android plugin
apply plugin: 'com.getkeepsafe.dexcount'

它将显示每个包的方法数,适用于您自己的项目和您使用的库。

来自:https://github.com/KeepSafe/dexcount-gradle-plugin

答案 2 :(得分:6)

您可以在Android工作室中使用APK Analyzer

https://developer.android.com/studio/build/apk-analyzer.html

答案 3 :(得分:5)

有一个工具APK method count可以计算apk中方法的数量。

还有一个服务methodscount.com来检查库的方法计数。此服务还具有Android Studio/IntelliJ plugin,用于解析您的Android库依赖项,并将方法计数显示为方便提示。

答案 4 :(得分:4)

尝试使用静态代码分析器;例如,Source Monitor是免费的SW,并且有您正在搜索的计数。

或者如果您不想在没有其他插件的情况下这样做,请尝试这样做(仅限Eclipse):

  • 按Ctrl-H(搜索),然后选择“Java搜索”标签(如果没有出现,请单击左下角的“自定义...”按钮)
  • 将*放入搜索框
  • 在“搜索”字段集中选择“方法”
  • 在“限制到”字段集
  • 中选择“声明”
  • 在“搜索范围”字段集中选择“来源”
  • 在“范围”字段集中选择“工作区”
  • 点击“搜索”

搜索完成后,您应该会在搜索视图中看到“XXXX声明...”消息,这将是您的结果。

希望它有所帮助!

答案 5 :(得分:1)

您可以使用JavaNCSS获取此类统计信息。它可以在这里找到:http://www.kclee.de/clemens/java/javancss/

答案 6 :(得分:0)

你试过https://github.com/KeepSafe/dexcount-gradle-plugin吗?以图形方式和/或文本显示每个包的方法数。

答案 7 :(得分:0)

要查找和使用 multidex 支持的Android应用方法计数,请使用:

find | grep classes.dex | xargs -I {} hexdump -e '"%d {}\n"' -s 0x58 -n 4 {}