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庫
未實現
總結
以上是生活随笔為你收集整理的app启动速度优化实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “当高启强遇到陈书婷”与TCP协议
- 下一篇: 平滑折线巧设置