錯誤含義
WIN DEATH: Window{...} 表示 WindowManager 發現與該窗口關聯的進程已死亡。通常由以下原因導致:
- 應用主進程崩潰(Crash/ANR),系統強制回收窗口資源。
- 內存不足觸發 Low Memory Killer 殺死進程。
- 系統服務(如
SurfaceFlinger)異常重啟。
排查步驟
- 查看完整 Logcat,定位 Crash 堆棧或 ANR traces(
/data/anr/traces.txt)。 - 檢查是否在 UI 線程執行耗時操作(網絡、IO、複雜計算),導致 ANR。
- 使用
adb shell dumpsys meminfo <package> 觀察內存佔用趨勢。 - 若涉及第三方 SDK(地圖、推送),升級至最新版或檢查已知問題。
預防措施
- 嚴格遵守「主線程不做耗時操作」原則,使用协程/RxJava/Executor 切換線程。
- 接入崩潰收集 SDK(Bugly, Firebase Crashlytics)實時感知線上崩潰。
- 針對大內存場景(圖片、視頻)使用
inBitmap、Glide 等優化內存佔用。