app启动速度优化实践

外链:http://2d7eb962.wiz03.com/share/s/0JvHBy3NOASk2pFO7C39hO7i0ulHDJ32D4KW2AZQuK1p0cxF

延迟初始化

基于application第三方sdk初始化直接影响app启动速度,对这部分代码进行延迟执行处理;
使用Runnable保存相关初始化代码,并将这些Runnable保存到application中的LinkedBlockQueue队列;
在首屏界面(SplashActivity),通过DecorView去post队列中的Runnable,这样就不存在多线程可能导致的问题,同时也完成了延迟初始化的要求

启动速度数据

以adb shell am start -W -S中的totalTime为标准,启动首屏为SplashActivity

  • WaitTime 就是总的耗时,包括前一个应用 Activity pause 的时间和新应用启动的时间;

  • ThisTime 表示一连串启动 Activity 的最后一个 Activity 的启动耗时;

  • TotalTime 表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用 Activity pause 的耗时。

相关可以参考这篇文章
Android中如何计算App的启动时间?

启速取10次数据,去除最大和最小之后的平均值

20190225

指令运行后,时间一出来立即运行下一条指令

360n7lite

4+32 360uiV114 Android8.1

优化前 1427 1431 1438 1440 1441 1450 1452 1453 1460 1460 = 1445.625

优化后 811 815 815 830 830 830 830 830 831 862 = 826.375

优化前 1435 1435 1438 1454 1456 1457 1478 1480 1494 1513 = 1461.5

优化后 797 813 814 829 829 830 832 833 847 847 = 828.375

小米6

6+128 miui109.1.24开发 Android8.0

优化前 1757 1772 1782 1782 1799 1801 1804 1817 1849 1863 = 1800.75

优化后 706 709 709 712 713 714 716 722 754 759 = 718.625

优化前 1383 1716 1736 1742 1764 1782 1795 1817 2053 2124 = 1800.625

优化后 717 722 722 725 725 726 742 744 770 798 = 734.5

华为nova3

6+64 emui8.2 Android8.1

优化前 1076 1078 1084 1085 1089 1092 1095 1097 1098 1098 = 1089.75

优化后 615 617 619 622 628 629 630 635 637 640 = 627.125

优化前 1029 1051 1064 1073 1074 1080 1082 1086 1090 1092 = 1075

优化后 624 629 631 635 636 638 643 644 644 649 = 637.5

努比亚Z9MAX

2+16 nubia 5.0 Android5.1.1

优化前 1982 2056 2103 2124 2124 2131 2140 2151 2199 2270 = 2128.5

优化后 1567 1572 1576 1597 1613 1651 1659 1715 1718 1753 = 1637.625

优化前 2151 2180 2206 2219 2256 2273 2282 2332 2333 3416 = 2260.125

优化后 1514 1637 1648 1665 1668 1674 1688 1707 2735 3126 = 1802.75

华为荣耀9i

4+64 emui8.0 Android8.0

优化前 2055 2062 2064 2064 2065 2067 2075 2079 2087 3023 = 2070.375

优化后 1285 1288 1293 1303 1304 1304 1307 1324 1331 1332 = 1306.75

优化前 2067 2068 2074 2083 2088 2096 2099 2107 2117 2119 = 2091.5

优化后 1310 1312 1319 1322 1339 1340 1347 1349 1648 1664 = 1372

20190226

今天想测试下小米4C的启动速度数据,发现前一天的测试操作有点问题,部分手机的启动速度波动较大,所以今天的测试方式是在跳转MainActivity后再运行下一条指令,后面27号再按照这种方式重新测试一下

小米4C

3+16 MIUI10.1.1.0 Android6.0.1

3432 3436 3468 3493 3583 3645 3658 3764 3788 4010 = 3604.375

1642 1717 1729 1733 1758 1773 1777 1794 1808 1809 = 1761.125

3376 3404 3572 3573 3576 3577 3590 3654 3656 3688 = 3575.25

1648 1703 1709 1720 1727 1732 1760 1765 1776 1810 = 1736.5

延迟加载.so库

未实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值