19

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

在下面链接的最后一篇文章中,一位发帖人发布了他的应用程序的方法计数(按包细分)。我无法找到如何为我的申请获取此信息,有什么建议吗?

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

4

8 回答 8

31

我用

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

我明白了55176。64k 限制即将到来:D

于 2014-05-21T10:24:14.450 回答
13

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

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

于 2015-08-31T07:57:07.160 回答
6

您可以在 Android Studio 中使用 APK Analyzer

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

于 2017-04-30T08:37:28.237 回答
5

有一个工具APK 方法计数,用于计算您的 apk 中方法的数量。

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

于 2016-09-15T09:36:14.860 回答
4

尝试使用静态代码分析器;例如,Source Monitor是免费的软件,并且有您要搜索的数量。

或者,如果您更喜欢不使用其他插件,请尝试这样做(仅限 Eclipse):

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

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

希望能帮助到你!

于 2013-03-19T20:15:33.960 回答
1

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

于 2013-03-19T20:15:55.420 回答
0

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

于 2017-05-14T12:46:55.880 回答
0

在有或没有multidex支持 的情况下查找和 Android 应用程序方法计数,请使用:

find | grep classes.dex | xargs -I {} hexdump -e '"%d {}\n"' -s 0x58 -n 4 {}
于 2017-07-01T01:34:47.103 回答