i91h1r / AndroidColdStart

Android 冷启动,优化app启动速度(视觉上提高启动速度)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AndroidColdStart

Android 冷启动,优化app启动速度(视觉上提高启动速度) ###一 介绍: 默认情况下,当app启动时候会出现一小段时间的空白现象。

出现这种现象的原因

  • 当用户点击一个没有执行过的应用后到执行Activity.onCreat() 这个时间会比较长,还会出现白色的背景现象。这是因为当启动一个应用,系统会先解析启动Activity的Theme,根据里面的元素绘制出一个初始的界面,如主题定义的状态栏颜色和窗口的背景,当系统加载完所有的资源并启动Activity的onCreate()之后,然后再把初始界面替换为Activity的实际layout的界面

#####效果:

###使用:

  • 首先在style.xml 中定义一个新的主题
    <style name="AppTheme.Launcher"> <item name="android:windowBackground">@drawable/launch_screen</item> </style>

  • launch_screen.xml :

    <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque"> <item android:drawable="@android:color/white"/>  <item> <bitmap android:src="@drawable/googlelogo" android:gravity="center"/> </item> </layer-list>
    android:opacity="opaque" :防止出现闪屏现象

    <bitmap android:src="@drawable/googlelogo" android:gravity="center"/>:设置预览图

  • 将需要启动的activity的Theme设置为<activity android:name=".MainActivity" android:theme="@style/AppTheme">

  • 最后在activity的 setContentView(R.layout.activity_main); 之前设置setTheme(R.style.AppTheme); 即可。 ###优点: 相比传统的Splash界面:

  • 没有另外的activity需要加载,这是利用系统特性来实现的一个启动界面

  • 不需要消耗额外的系统资源启动速度更快,首次启动不会出现白屏现象,体验更好


######还可以使用一个.9的toolbar作为windowBackground的背景,可以实现一个先加载背景,后加载页面数据的冷启动

About

Android 冷启动,优化app启动速度(视觉上提高启动速度)


Languages

Language:Java 100.0%