zoukankan      html  css  js  c++  java
  • 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的嵌套布局少一点。

  • 相关阅读:
    PHP FILTER_VALIDATE_REGEXP 过滤器
    PHP FILTER_VALIDATE_FLOAT 过滤器
    PHP FILTER_VALIDATE_BOOLEAN 过滤器
    PHP FILTER_VALIDATE_INT 过滤器
    PHP FILTER_UNSAFE_RAW 过滤器
    PHP addslashes() 函数
    PHP FILTER_SANITIZE_NUMBER_FLOAT 过滤器
    PHP FILTER_SANITIZE_NUMBER_INT 过滤器
    PHP FILTER_SANITIZE_URL 过滤器
    PHP FILTER_SANITIZE_EMAIL 过滤器
  • 原文地址:https://www.cnblogs.com/sharkchao/p/10326690.html
Copyright © 2011-2022 走看看