android速度優化
Ⅰ 如何優化 android 系統應用的啟動速度
一、應用的啟動
啟動方式
通常來說,在安卓中應用的啟動方式分為兩種:冷啟動和熱啟動。
1、冷啟動:當啟動應用時,後台沒有該應用的進程,這時系統會重新創建一個新的進程分配給該應用,這個啟動方式就是冷啟動。
2、熱啟動:當啟動應用時,後台已有該應用的進程(例:按back鍵、home鍵,應用雖然會退出,但是該應用的進程是依然會保留在後台,可進入任務列表查看),所以在已有進程的情況下,這種啟動會從已有的進程中來啟動應用,這個方式叫熱啟動。
- adb shell am start -W [packageName]/[packageName.MainActivity]
特點
1、冷啟動:冷啟動因為系統會重新創建一個新的進程分配給它,所以會先創建和初始化Application類,再創建和初始化MainActivity類(包括一系列的測量、布局、繪制),最後顯示在界面上。
2、熱啟動:熱啟動因為會從已有的進程中來啟動,所以熱啟動就不會走Application這步了,而是直接走MainActivity(包括一系列的測量、布局、繪制),所以熱啟動的過程只需要創建和初始化一個MainActivity就行了,而不必創建和初始化Application,因為一個應用從新進程的創建到進程的銷毀,Application只會初始化一次。
上面說的啟動是點擊app的啟動圖標來啟動的,而另外一種方式是進入最近使用的列表界面來啟動應用,這種不應該叫啟動,應該叫恢復。
二、應用啟動的流程
在安卓系統上,應用在沒有進程的情況下,應用的啟動都是這樣一個流程:當點擊app的啟動圖標時,安卓系統會從Zygote進程中fork創建出一個新的進程分配給該應用,之後會依次創建和初始化Application類、創建MainActivity類、載入主題樣式Theme中的windowBackground等屬性設置給MainActivity以及配置Activity層級上的一些屬性、再inflate布局、當onCreate/onStart/onResume方法都走完了後最後才進行contentView的measure/layout/draw顯示在界面上,所以直到這里,應用的第一次啟動才算完成,這時候我們看到的界面也就是所說的第一幀。
所以,總結一下,應用的啟動流程如下:
Application的構造器方法——>attachBaseContext()——>onCreate()——>Activity的構造方法——>onCreate()——>配置主題中背景等屬性——>onStart()——>onResume()——>測量布局繪制顯示在界面上。
三、測量應用啟動的時間
在上面這個啟動流程中,任何一個地方有耗時操作都會拖慢我們應用的啟動速度,而應用啟動時間是用毫秒度量的,對於毫秒級別的快慢度量我們還是需要去精確的測量到到底應用啟動花了多少時間,而根據這個時間來做衡量。
什麼才是應用的啟動時間
從點擊應用的啟動圖標開始創建出一個新的進程直到我們看到了界面的第一幀,這段時間就是應用的啟動時間。
我們要測量的也就是這段時間,測量這段時間可以通過adb shell命令的方式進行測量,這種方法測量的最為精確,命令為:
執行成功後將返回三個測量到的時間:
1、ThisTime:一般和TotalTime時間一樣,除非在應用啟動時開了一個透明的Activity預先處理一些事再顯示出主Activity,這樣將比TotalTime小。
2、TotalTime:應用的啟動時間,包括創建進程+Application初始化+Activity初始化到界面顯示。
3、WaitTime:一般比TotalTime大點,包括系統影響的耗時。
下面是測量一個應用冷啟動和熱啟動的時間:
冷啟動:
熱啟動:
以上就是本文的全部內容,希望對大家學習Android軟體編程有所幫助。
Ⅱ 安卓機卡了怎麼優化
隨著安卓不斷得優化和升級,身邊越來越多的人從IOS轉向安卓,在安卓陣營逐步擴大的同時,安卓系統遺留問題也越來越突出,由於安卓系統不像IOS那樣封閉,所以安卓系統擁有多樣化的同時,後期的用戶體驗度卻不高
生活中不少朋友問過白菜,為什麼他的安卓手機越用越卡,其實我也郁悶,為什麼我的安卓機用了三年,一如既往的流暢,而他們買了不久的卻卡出了砸機的沖動,下面白菜就為大家分享一下手機內核優化,很簡單,也很實際用,喜歡的歡迎收藏和轉載
以華為手機為例
1. 打開手機的【設置】功能,在設置窗口內找到【關於手機】選項,並進入(如下圖)
2. 在關於手機窗口中找到【版本號】這一欄,連續點擊5~6次,直到提示'您已處於開發者模式',此時退出到【設置】窗口中,並且已經出現【開發者選項】子窗口,點擊進入(如下圖)
3. 在【開發者選項】窗口中把'窗口動畫縮放'、'過渡動畫縮放'、'動畫程序時長縮放'都改為'0.5',再把'強制進行GPU渲染'和'強制啟用4xMSAA'開啟,
4. 如果手機比較卡,可以在【開發者選項】內進入(後台進程限制)子窗口,把後台進程限制改為'不得超過3個進程'等(根據自身需求選擇)
小米用戶的開發者選項中有一個(內存優化級別)的選項,將其調為高級即可