App的性能優(yōu)化,可以從多角度優(yōu)化,包括App啟動(dòng)優(yōu)化,App啟動(dòng)優(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功能消耗、減少定時(shí)器的使用、優(yōu)化I/O操作等來優(yōu)化。
1、盡量不要頻繁地寫入小數(shù)據(jù),最好批量一次寫入
2、讀寫大量數(shù)據(jù)時(shí),考慮用dispatch_io,它提供了基于GCD的異步操作文件I/O的API,系統(tǒng)會(huì)優(yōu)化磁盤訪問
3、持久化數(shù)據(jù)量比較大時(shí),建議使用數(shù)據(jù)庫存儲(chǔ)
網(wǎng)絡(luò)優(yōu)化
1、減少、壓縮網(wǎng)絡(luò)數(shù)據(jù)
2、如果多次請求的結(jié)果是相同的,盡量使用緩存
3、使用斷點(diǎn)續(xù)傳,否則網(wǎng)絡(luò)不穩(wěn)定時(shí)可能多次傳輸相同的內(nèi)容
4、網(wǎng)絡(luò)不可用時(shí),不要嘗試執(zhí)行網(wǎng)絡(luò)請求
5、批量傳輸
定位優(yōu)化
1、如果只是快速確認(rèn)用戶位置,最好用CLLocationManager的requestLocation,定位完后,會(huì)自動(dòng)讓定位硬件斷電
2、如果不是導(dǎo)航應(yīng)用,盡量不要實(shí)時(shí)更新位置,定位完畢就關(guān)掉定位服務(wù)
3、盡量降低定位精度
4、App需要后臺(tái)定位時(shí),盡量設(shè)置
pausesLocationUpdatesAutomaticall為YES,如果用戶不太可能移動(dòng)的時(shí)候系統(tǒng)會(huì)自動(dòng)暫停位置更新