最近我Android Studio
从1.5
升级到2.0
。
有了它,我正在使用gradle 2.0.0
classpath 'com.android.tools.build:gradle:2.0.0'
但是它似乎有一些问题,每当我第一次运行我的应用程序时,它都会显示 while/黑屏 10-15 秒。
我在应用程序类或启动器活动上没有做任何事情,但它也需要花费这么多时间。
我不知道是AS 2.0
的问题还是Gradle 2.0.0
的问题.奇怪的是它在模拟器上正常工作,只是在设备上花费时间。因此,可能存在设备RAM或处理问题,但是我已经在10-12个设备中检查了它,并且所有设备都有相同的问题。
当我第一次运行我的应用程序时,然后在它像往常一样工作并在几分之一秒内加载启动器活动之后,就会出现问题。
谁能帮我?
每当我第一次运行我的应用程序时,它似乎有一些问题 时间,它显示 while/黑屏 10-15 秒。
我想您的应用程序中有冷启动问题。
冷启动 :
当用户启动应用时,Android 会创建一个新进程 在充电期间,显示黑/白屏幕,该屏幕内置 应用程序主题,或作为条目的活动的主题 点。
如果我们的应用程序很复杂并且 覆盖应用程序对象,该对象通常用于 初始化分析、错误报告器等。
溶液:
- 在应用程序主题中指定
android:windowBackground
。 - 将初始屏幕添加到应用。
有关详细信息,请查看,http://saulmm.github.io/avoding-android-cold-starts
谢谢。
正如文档描述的那样:
即时运行将更新的代码和资源推送到您连接的设备 或通过执行热插拔、热插拔或冷插拔来执行仿真器。它 根据类型自动确定要执行的交换类型 您所做的更改。
还有文档提到它不是即时运行的错误:
部署全新构建版本时,Android Studio 会将您的应用检测到 允许即时运行推送代码和资源更新。虽然更新 正在运行的应用程序发生得更快,第一次构建可能需要 完成时间更长。
您可以通过配置一些 DexOptions 设置来改进构建过程:
android {
...
dexOptions {
maxProcessCount 4 // this is the default value
javaMaxHeapSize "2g"
}
}
JavaMaxHeapSize
最大进程计数
在 android studio 中,打开首选项。在搜索栏(首选项对话框)中,键入即时运行或导航到"生成"、"执行"、"部署">"即时运行",然后取消选中所有选项。但是,当然,您将失去即时运行的力量。
更改类路径
classpath 'com.android.tools.build:gradle:2.0.0'
到您以前的构建版本(例如)
classpath 'com.android.tools.build:gradle:1.5.0'