14

最近我从Android Studio升级1.52.0.

我正在使用gradle 2.0.0

classpath 'com.android.tools.build:gradle:2.0.0'

但它似乎有一些问题,每当我第一次运行我的应用程序时,它会显示 10-15 秒的白屏/黑屏。

我在 applicationClass 或启动器活动上没有做任何事情,但它也需要这么多时间。

不知道是 还是 的AS 2.0问题Gradle 2.0.0。奇怪的是它在模拟器上正常工作,它只是在设备上花费时间。因此可能存在设备 RAM 或处理问题的可能性,但我已经在 10-12 台设备中检查过,并且所有设备都有相同的问题。

当我第一次运行我的应用程序时出现问题,然后在它像往常一样工作并在几秒钟内加载启动器活动之后。

有人可以帮我吗?

4

4 回答 4

1

它似乎有一些问题,每当我第一次运行我的应用程序时,它会显示 10-15 秒的白屏/黑屏。

我猜您的应用程序中存在冷启动问题。

冷启动 :

当用户启动应用程序时,Android 会创建一个新进程,该进程在充电期间会显示一个黑白屏幕,该屏幕由应用程序主题或作为入口点的 Activity 主题构建。

如果我们的应用程序很复杂并且覆盖了通常用于初始化分析、错误报告器等的应用程序对象,则此负载可能会增加。

解决方案 :

  1. android:windowBackground在您的应用程序主题中指定。
  2. 将启动画面添加到您的应用程序。

有关详细信息,请查看http://saulmm.github.io/avoding-android-cold-starts

谢谢。

于 2016-05-04T12:50:02.270 回答
0

文档所述:

Instant Run 通过执行热交换、热交换或冷交换将更新的代码和资源推送到连接的设备或模拟器。它会根据您所做的更改类型自动确定要执行的交换类型。

文件还提到它不是即时运行的错误:

当您部署干净的构建时,Android Studio 会检测您的应用以允许 Instant Run 推送代码和资源更新。虽然更新正在运行的应用程序发生得更快,但第一次构建可能需要更长的时间才能完成

您可以通过配置一些 DexOptions 设置来改进构建过程:

android {
  ...
  dexOptions {
    maxProcessCount 4 // this is the default value
    javaMaxHeapSize "2g"
  }
}
于 2016-04-27T20:31:58.210 回答
0

在 android studio 中,打开首选项。在搜索栏(首选项对话框)中输入即时运行或导航至构建、执行、部署 > 即时运行并取消选中所有选项。但是,当然,您将失去即时运行的力量。

于 2016-05-02T17:50:37.227 回答
0

改变你的类路径

classpath 'com.android.tools.build:gradle:2.0.0'

到您以前的构建版本(例如)

classpath 'com.android.tools.build:gradle:1.5.0'
于 2016-09-07T08:31:19.513 回答