App的性能優(yōu)化,可以從多角度優(yōu)化,包括App啟動優(yōu)化,App啟動優(yōu)化又分為main()函數(shù)執(zhí)行前優(yōu)化,main()函數(shù)執(zhí)行后優(yōu)化;包括界面卡頓優(yōu)化,頁面卡頓優(yōu)化又包括CPU優(yōu)化和GPU優(yōu)化;包括安裝包瘦身優(yōu)化、包括耗電優(yōu)化等。今天我們主要來講講如何處理App耗電優(yōu)化
圖片來自網(wǎng)絡(luò)
App中主要耗電來源有:CPU處理、網(wǎng)絡(luò)、定位、圖像處理等。我們可以從降低CPU、GPU功能消耗、減少定時器的使用、優(yōu)化I/O操作等來優(yōu)化。
1、盡量不要頻繁地寫入小數(shù)據(jù),最好批量一次寫入
2、讀寫大量數(shù)據(jù)時,考慮用dispatch_io,它提供了基于GCD的異步操作文件I/O的API,系統(tǒng)會優(yōu)化磁盤訪問
3、持久化數(shù)據(jù)量比較大時,建議使用數(shù)據(jù)庫存儲
網(wǎng)絡(luò)優(yōu)化
1、減少、壓縮網(wǎng)絡(luò)數(shù)據(jù)
2、如果多次請求的結(jié)果是相同的,盡量使用緩存
3、使用斷點續(xù)傳,否則網(wǎng)絡(luò)不穩(wěn)定時可能多次傳輸相同的內(nèi)容
4、網(wǎng)絡(luò)不可用時,不要嘗試執(zhí)行網(wǎng)絡(luò)請求
5、批量傳輸
定位優(yōu)化
1、如果只是快速確認(rèn)用戶位置,最好用CLLocationManager的requestLocation,定位完后,會自動讓定位硬件斷電
2、如果不是導(dǎo)航應(yīng)用,盡量不要實時更新位置,定位完畢就關(guān)掉定位服務(wù)
3、盡量降低定位精度
4、App需要后臺定位時,盡量設(shè)置
pausesLocationUpdatesAutomaticall為YES,如果用戶不太可能移動的時候系統(tǒng)會自動暫停位置更新