首次 运行 使用 AS 2.0 和 gradle 2.0 所花费的时间

Time taken on first run with AS 2.0 and gradle 2.0

最近我将 Android Studio1.5 升级到 2.0

我正在使用 gradle 2.0.0

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

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

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

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

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

谁能帮我解决这个问题?

documentation描述:

Instant Run pushes updated code and resources to your connected device or emulator by performing a hot swap, warm swap, or cold swap. It automatically determines the type of swap to perform based on the type of change you made.

还有文档提到它不是 instant 运行 的 Bug :

When you deploy a clean build, Android Studio instruments your app to allow Instant Run to push code and resource updates. Although updating the running app happens much more quickly, the first build may take longer to complete.

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

android {
  ...
  dexOptions {
    maxProcessCount 4 // this is the default value
    javaMaxHeapSize "2g"
  }
}

在 android 工作室中,打开首选项。在搜索栏(首选项对话框)中键入 instant 运行 或导航到构建、执行、部署 > Instant 运行 并取消选中所有选项。但是当然,你会失去瞬间的力量运行。

there seems some issue with it, whenever i am running my app for first time, it is showing while/black screen for 10-15 seconds.

我猜你的应用程序有冷启动问题。

Cold Start :

When a user launches an application, Android creates a new process that, during it charge, shows a black/white screen which is built with the application theme, or the theme of the activity that is the entry point.

This load can be increased if our application is complex and overwrites the application object, which is normally used to initialize the analytics, error reporters, etc.

解决方案:

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

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

谢谢。

更改类路径

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

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

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