一,白屏
现象:启动app,白屏一段时间后才出现欢迎页android
解决:shell
1,添加styleapp
true
或者ide
@mipmap/welcome
其中@mipmap/welcome是一个欢迎页图片。相比之下第二种的更好一点,能够达到秒启动。第一种会有短暂的卡顿,而后显示启动页。测试
2,在Manifest中设置给WelcomeActivity优化
android:name=".main.login.WelcomeActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Launcher">
3,这样改变了整个app的主题,咱们须要在WelcomeActivity中把咱们原本的主题设置回去线程
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 咱们原本的style
setTheme(R.style.AppTheme_NoActionBar)
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
setContentView(R.layout.activity_welcome)
}
这样解决了白屏的问题。3d
二,黑屏
现象:由一个界面跳转到另外一个界面时出现黑屏,而后才显示后一个界面。code
分析:通常都是由于给AppTheme添加了windowIsTranslucent,这样过渡时前一个Acitivity被finish掉了,然后一个还没显示出来。就会出现黑屏。blog
解决:把AppTheme的windowIsTranslucent属性去掉。
@color/colorPrimaryDark
@color/colorPrimaryDark
@color/colorAccent
三,启动时间优化
咱们一般须要在application中作一下三方库的初始化。这些操做都会影响咱们的启动速度。
此时咱们能够把这些操做放到子线程中完成。如:
new Thread(new Runnable() {
@Override
public void run() {
init();
}
}).start();
只是举个栗子,不要内存泄漏了。
四,检测启动时间
能够经过adb命令来测试冷启动和热启动的耗时,
adb shell am start -W [包名]/[包名.类名]
如。