Android app启动秒开并避免白屏或黑屏

本篇记录Android 开发常见的一个优化点:冷启动优化。冷启动也就是应用本来没有启动,这时我们点击桌面图标或者使用adb启动应用。

问题:我们在桌面点击某些app图标时会感觉卡顿了一下才弹出app启动页,或者启动时先白屏或黑屏一会才显示启动页。这样给用户的体验不太好。

优化方法1:

    定义一个启动页专用的主题:

    

<style name="AppStartTheme" parent="Theme.AppCompat.Light.NoActionBar">    
 
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@android:color/transparent</item> 
</style>

这样启动时会给启动页一个透明的主题,可以解决启动时先白屏或黑屏一会才显示启动页。但是还是会有一点卡顿的效果。可以把应用的一些非必须的初始化做延迟处理。不要在application和启动页的oncreate中做太多的耗时操作。

启动时间测试方法:adb shell am start -W packageName/IndexActivity  替换自己的包名和启动页

 

 

优化方法2:

    给启动页设置一个图片做主题,这个图片就是app启动页背景图:可以直接使用图片,也可以使用layer-list形式的布局。推荐使用layer-list,屏幕适配好。

 

<style name="AppStartTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!--冷启动时间更慢 但是点击图标是立即打开视觉效果-->
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowBackground">@drawable/index1</item>
</style>

在启动页的oncreate中不要再设置contentview,只使用主题中背景图片。这种方法使用adb测试启动时间比方法1要耗时多,但是点击图标是立即打开的效果,没有卡顿也不会有白屏和黑屏。市场上一些秒开的app也是这么做的。

 

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值