Android冷启动优化

我们知道新打开一个应用的时候,会出现短暂的白屏或者黑屏,严重影响到我们的用户体验,其实这个过程是launcher启动新进程,进程中启动activity时,会先绑定window,然后使用默认的windowBackground导致的。

下面有三种解决办法:

1.主题切换法:

设置背景为透明:

<style name="AppTheme.Launcher" parent="Theme.AppCompat.Light.NoActionBar">
           <item name="android:windowIsTranslucent">true</item>
 </style>

或者直接修改为图片:

<style name="AppTheme.Launcher" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/appstart_background</item>
</style>

之后在清单文件中使用:

 <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@style/AppTheme.Launcher">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

最后不要忘了在activity中再设置为自己的主题:

public class MainActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(R.style.SaoTheme);
        setContentView(R.layout.activity_main);
    }
}

2.在application的oncreate中不要执行耗时操作,新进程启动会先执行application的oncreate。

3.mainActivity的嵌套布局少一点。

原文地址:https://www.cnblogs.com/sharkchao/p/10326690.html