【Android性能优化】 应用启动优化

发布时间:2023年12月26日

?这篇文字其实没什么内容,就是介绍了一下冷启动跟热启动以及白屏。

?启动流程

应用启动流程是指从启动到显示主界面这一段,全流程在下面的热启动介绍。

应用启动分为热启动冷启动冷启动就是就是应用之前没有被点开过,或者点开之后又在最近任务中删除,不会在最近任务中;热启动就是应用被点开过了,在最近任务中能看到它。

冷启动就是要走应用启动的全流程,创建应用程序进程-->创建和初始化Application-->创建和初始化MainActivity-->MainActivity中View的measure、layout、draw。

热启动已经有存活的Application了,只需要执行:创建和初始化MainActivity-->MainActivity中View的measure、layout、draw。

我个人对热启动、冷启动的记忆区分就是,热启动就是趁应用还没有彻底凉凉(进程彻底被杀死)的时候启动应用。

启动时间

查看启动时间命令行:

adb shell am start -W 包名/主界面含包名全路径?
例子:adb shell am start -W com.example.sim/com.example.sim.MainActivity

结果如下图:

????????冷启动:

?????????热启动:

可见在这个程序里冷启动花费的时间比热启动多得多。

优化启动时间

?冷启动介绍里已经列举了应用启动的流程,避免在这个流程里写太多耗时操作就行,可以将一些耗时操作放到异步进程进行,降低布局的层级也可以减少View的measure、layout、draw时间。

优化体验

我们自己开发app的时候,点击桌面图标进入app时会看到白屏,用户看着白屏的体验可能不太好,可以将它设置为好看的图片。

1.图片替代白屏

1.在theme.xml文件里新建一个style。

    <style name="Theme.SIM.MainActivity">
        <item name="android:windowBackground">@drawable/ic_launcher_foreground</item>
    </style>

2.Manifast中将新的style用在MainActivity上。

        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:theme="@style/Theme.SIM.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

3.在MainActivity的onCreate方法恢复原来的主题,不然背景会一直是那张图片。

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(R.style.Theme_SIM);
        setContentView(R.layout.activity_main);
    }

这样之后你点开app图标就会显示这张图片了。

2.设置背景为透明

将style换成下面的就行,其他步骤跟图片是一样的,不过我试了没效果,不知道是为什么。

    <style name="Theme.SIM.MainActivity">
        <item name="android:windowIsTranslucent">true</item>
    </style>

文章来源:https://blog.csdn.net/lxjlxj2333/article/details/135198601
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。