Android性能优化(一):APP启动优化

   日期:2020-05-22     浏览:103    评论:0    
核心提示:Android性能优化(一):APP启动优化App启动的方式有三种:1.冷启动:App没有启动过或App进程被killed, 系统中不存在该App进程, 此时启动App即为冷启动。2.热启动:热启动意味着你的App进程只是处于后台, 系统只是将其从后台带到前台, 展示给用户。3.介于冷启动和热启动之间, 一般来说在以下两种情况下发生:(1)用户back退出了App, 然后又启动. App进程可能还在运行, 但是activity需要重建。(2)用户退出App后, 系统可能由于内存原因将App杀死,shell

Android性能优化(一):APP启动优化

App启动的方式有三种:

  1. 冷启动:App没有启动过或App进程被killed, 系统中不存在该App进程, 此时启动App即为冷启动。
  2. 热启动:热启动意味着你的App进程只是处于后台, 系统只是将其从后台带到前台, 展示给用户。
  3. 介于冷启动和热启动之间, 一般来说在以下两种情况下发生:
    (1)用户back退出了App, 然后又启动, App进程可能还在运行,但是activity需要重建。
    (2)用户退出App后, 系统可能由于内存原因将App杀死, 进程和activity都需要重启,但是可以在onCreate中将被动杀死锁保存的状态(saved instance state)恢复。

这里主要针对冷启动进行优化。

一、先来看看冷启动的流程:

  1. Zygote进程中fork创建一个新的进程。
  2. 先创建和初始化Application类。
  3. 创建和初始化Launch Activity(onCreate onMesure onLayout,ondraw)。
  4. 调用setContetView方法后,将view添加到DecorView中,调用view的measuer/layotu/draw显示到界面上。

二、冷启动优化:

优化之前先说如何查看应用启动时间,方便进行对比:

  • 第一种方法:手机连接电脑,打开Android Studio,查看Logcat打印出来信息,筛选关键字Displayed就可以看到应用启动时间。如下图:

  • 第二种方法:使用adb shell命令来启动应用并查看启动时间adb shell am start -W [packageName]/[packageName.launchActivity] 如下图:

    优化方法:

  • 针对Application的,不要在Application中进行业务操作和耗时操作,不要以静态变量的方式在Application中保存数据。

  • 针对Launch Activity,不要在Activity的onCreate方法进行耗时操作,如有必要则在线程中操作或者延时加载。

  • 针对Launch Activity的View的绘制,减少Activity布局view的层级,最好不要超过4层,减少View测量绘制的时间。

推荐使用下面这种延时加载,在窗口完成以后进行加载,这里面的run方法是在onResume之后运行的。

getWindow().getDecorView().post(new Runnable() {
    @Override
    public void run() {
        //TODO something
    }
});
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服