【问题标题】:Android Studio APK Analyzer for debug builds用于调试构建的 Android Studio APK 分析器
【发布时间】:2016-06-01 00:09:58
【问题描述】:

我正在运行刚刚发布的最新版本的 Android Studio(2.2 预览版 1),并尝试利用一些新工具。

新的 APK Analyzer 非常有用,但我无法让它与调试版本一起使用,它似乎只对发布版本准确。

这是发布版本的截图,您可以看到方法计数看起来准确,并且包括了我正在使用的所有 android 库。

现在,如果我引入同一个应用程序的调试版本,它看起来完全不同。我的所有应用程序代码以及所有第三方库都丢失了。您可以看到方法数也大大减少了。

那么我在这里做错了吗?我怎样才能在我的调试版本上也进行这种分析?

注意来自 James Lau 在 G+ 上:

工具旨在帮助您了解并减少您的 发布 APK,因为那是您发布的内容。因此,您可能 想在你的 Release APK 上运行它。您可以关闭 Instant Run on 用于将 Release APK 构建为 Instant Run 仅适用于 Debug。

【问题讨论】:

  • 这听起来像是一个应该报告为错误的东西。我相信code.google.com/p/android/issues/list 仍然是正确的位置
  • 好吧听起来不错,也许我会继续添加。
  • 只是想跟进并澄清一下,这绝对不是错误。它只是 Instant Run 的一个副作用。
  • @David Argyle Thacker:我可以看到您解决了您的问题,只是想在此处添加一些内容:“如果您在发布 gradle 中使用 minifyEnabledshrinkResources,那么它将缩小您的代码和资源,这就是为什么 dexresources 的大小会急剧减少”!欲了解更多信息,请参阅:developer.android.com/studio/build/shrink-code.html

标签: android android-studio dex android-studio-2.2


【解决方案1】:

您确定您有完整的调试版本,而不是用于 HOT 或 WARM SWAP 的 APK 文件吗?

Android Studio 自 2.0 起有一个名为“Instant Run”的功能,允许在您进行一些小改动后创建某种“delta-APKs”来更新设备上的应用程序。优点是您不必执行完整的 gradle 构建过程,因此这样的 HOT SWAP 更快。

这些特殊的 HOT/WARM SWAP APK 仅包含您最近所做的更改以及一些用于将创建的 APK 合并到设备上现有 APK 的附加代码。

因此您应该尝试执行“Rebuild project”或“Clean project”,看看创建的调试 APK 是否符合您的预期。

【讨论】:

  • 是的,就是这样。一旦我卸载了应用程序并禁用了 Instant Run,我就在下次构建我的 apk 时获得了完整的 dex 文件。
  • 如果您想使用 APK Analyzer 查看调试 APK,则无需禁用 Instant Run。如果您转到 Build > Build APK,则会生成一个未启用 Instant-Run 的常规调试 APK。
猜你喜欢
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 2013-02-09
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
相关资源
最近更新 更多