外链: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库
未实现