日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS性能优化篇 —— 耗电优化总结

發布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS性能优化篇 —— 耗电优化总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??

手機App耗電的主要來源有以下四個因素:

  • CPU處理,Processing
  • 網絡,Networking
  • 定位,Location
  • 圖像,Graphics

耗電優化最終目的:通過盡可能降低CPU、GPU功耗來降低手機電量消耗。

  • 盡可能少用定時器;
  • 優化I/O操作(所謂的I/O操作也就是文件操作,我們簡稱為I/O操作。怎么優化呢?盡量不要頻繁寫入小數據,最好批量一次性寫入。讀寫大量主要的數據時,考慮用dispatch_io,其提供了基于GCD的異步操作文件I/O的API。用dispatch_io系統會優化磁盤訪問);
  • 數據量比較大的,建議使用數據庫(SQlite、CoreData);

網絡方面優化

  • 減少、壓縮網絡數據。(不同格式數據提交關系:XML提交比較大;JSON 提交比較小,protobuf提交最小)

  • 如果多次請求的結果相同,盡量使用緩存。NSMutableRequest 里面可以設置使用NSCache進行緩存;

  • 盡量使用斷點續傳,否則網絡不穩定的時候可能多次傳輸相同的內容。(傳輸1M文件,如果一次性下載,一旦網絡問題下載失敗,下次重新請求,會從頭開始。之前下載過的部分會進行重新下載,斷點續傳可以保證之前下載的數據緩存起來);

  • 網絡不可用,不要嘗試執行網絡請求;

  • 讓用戶可以取消長時間運行或者速度很慢的網絡操作,設置合適的超時時間;

  • 批量傳輸,比如下載視頻流時,不要傳輸很小的數據包,直接下載整個文件或者一大塊一大塊地下載。如果下載廣告,一次性多下載一些,然后再慢慢展示。如果下載電子郵件,一次下載多封,不要一封一封地下載。

定位優化

  • 如果只是需要快速確定用戶的位置,最好用CLLocationManager的requestLocation方法。定位完成后,會自動讓定位硬件斷電;

  • 如果不是導航的應用,盡量不要實時更新位置,定位完畢就關掉定位服務;

  • 盡量降低定位精度,比如盡量不要使用精度最高的KCLLocationAccuracyBest;精度越高,硬件模塊功耗越大;

  • 需要后臺定位時,盡量設置pauseLocationUpdatesAutomatically為YES,如果用戶不太可能移動的時候系統會自動暫停位置更新。

  • 盡量不要使用startMonitoringSignificantLocationChanges,優先考慮startMonitoringForRegion:

硬件檢測優化

  • 用戶移動、搖晃、傾斜設備時,會產生動作(motion)事件,這些事件由加速度計、陀螺儀、磁力計等硬件檢測。在不需要檢測的場合,應該及時關閉這些硬件。

轉載于:https://www.cnblogs.com/iOS-mt/p/10484820.html

總結

以上是生活随笔為你收集整理的iOS性能优化篇 —— 耗电优化总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。