關於崩潰
Android 崩潰分爲 Java
崩潰和 Native
崩潰。
Native 崩潰捕獲中最成熟的方案。使用Breakpad
(傳送門)工具。
ANR
(Application Not Responding,程序沒有響應)這問題。怎麼去發現應用中的 ANR 異常呢?
- 使用
FileObserver
監聽/data/anr/traces.txt
的變化。非常不幸的是,很多高版本的 ROM,已經沒有讀取這個文件的權限了。可以使用Google Play
服務,而國內微信利用Hardcoder
框架向廠商獲取了更大的權限。 - 從卡頓的性能入手。
HC 框架是一套獨立於安卓系統實現的通信框架,它讓 App 和廠商 ROM 能夠實時“對話”了,目標就是充分調度系統資源來提升 App 的運行速度和畫質,切實提高大家的手機使用體驗
耗電優化
檢測耗電。可以使用谷歌提供的Android Vitals
工具。在國內不好用。
長時間獲取 WakeLock
、WiFi 和藍牙的掃描
等。
耗電優化的第二個方向是符合系統的規則,讓系統認爲你耗電是正常的。
實際上,所有和屏幕亮度相關的
WakeLock
的 Flag ,在 API level 17+ 之上,都已經被標記廢棄了。WakeLock
是全局的,比較重。如果是保持屏幕亮,建議使用window flagFLAG_KEEP_SCREEN_ON
(結合clearFlags()使用)。或者使用View的屬性android:keepScreenOn
後臺任務的處理,參考傳送門