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

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

性能优化系列文章:

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

Android性能优化(二):UI布局优化
Android性能优化(三):响应优化
Android性能优化(四):内存优化

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
    }
});
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值