Android性能分析与优化笔记 - 3 启动时间优化

源码地址:https://github.com/codeguyFred/MyPerformance
https://github.com/codeguyFred/MyPerformance/tree/master/app/src/main/java/com/optimize/performance/launchstarter

3-2启动优化介绍

App startup time

  • 冷启动
    在这里插入图片描述
  • 温启动
    在这里插入图片描述
  • 热启动
    在这里插入图片描述

3-3 启动时间测量方式

adb shell am start -W 包名/首屏Activity
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
监听View首帧绘制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3-4 启动工具选择

在这里插入图片描述
会带偏
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3-5~3-7 aop切面统计方法消耗事时间在这里插入图片描述

3-8异步优化

    private static final int CORE_POOL_SIZE = Math.max(2, Math.min(CPU_COUNT - 1, 4));
    private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;
    ···
     ExecutorService service= Executors.newFixedThreadPool(MAXIMUM_POOL_SIZE);
        service.submit(new Runnable() {
            @Override
            public void run() {
                
            }
        });
有些不满足异步优化的条件可以通过计数,延迟Application onCreate的执行完毕,在需要计数的地方调用countDownLatch.countDown();在最末尾的地方调用countDownLatch.await();等待计数一样后才不等待

CountDownLatch countDownLatch=new CountDownLatch(1);
countDownLatch.countDown();
countDownLatch.await();

在这里插入图片描述
在这里插入图片描述

3-9~3-10 异步初始化最优解(对常规方法的优化)

在这里插入图片描述在这里插入图片描述
https://github.com/codeguyFred/MyPerformance/blob/master/app/src/main/java/com/optimize/performance/launchstarter/TaskDispatcher.java
通过树的排序确定初始化任务的执行顺序
https://github.com/codeguyFred/MyPerformance/blob/master/app/src/main/java/com/optimize/performance/launchstarter/sort/TaskSortUtil.java
在这里插入图片描述

主线程执行的task在这里插入图片描述
异步的task在这里插入图片描述
初始化
在这里插入图片描述

  • dispatcher.await 需要等待task完成才执行完onCreate,task需要重写needWait方法来声明
  • task重写dependOn方法,依赖于某个任务的初始化,比如极光推送初始化需要先获取设备id
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值