how I debug my android app

今天要談一下debug app的一些技巧

當發生一些不尋常的crash時,我會朝幾個方向尋找

  1. 不保留活動
  2. async task
  3. stop app

不保留活動,意思就是開啟不保留活動的設定

開發人員選項->進階選項->不保留活動

開啟這個項目,代表每次activity 被收到背景時就會被Android OS kill掉,利用這個選項你也可以檢查有沒有處理好saveInstance,大部分的問題都可以利用onSaveInstanceState處理掉

aysnc task

通常這個問題比較會出現在network不即時的時候,為了要能夠順利的debug這個問題,我們可以利用新版的android emulator 模擬比較慢的網路速度

Cellular -> Network type

stop app

我們的app常常可以看到某個Singleton或者是某個static 欄位被清成預設值,然後造成crash的問題,我一直找不到原因,利用不保留活動無法重現,async task無法重現,一直懷疑是memory不足使得OS直接把app kill掉造成的問題,但是又一直無法找到複製的手法

後來我發現android 其實一直以來都有一個很方便的工具

Tools -> Android -> Android Device Monitor

點擊上面的stop,我們可以模擬我們的app 在os memory不足時被kill掉的情況,要複製的步驟就是 將app收到背景,點擊stop,再用歷史紀錄將app叫回來,這個通常是用來模擬user離開app一陣子之後,想要回來使用app時遇到的問題

利用這三個方法就可以很輕易的模擬出crash相關的問題. 下次當各位遇到類似的問題,不仿依照這幾個方法試試看,說不定可以快速複製出問題唷~

Show your support

Clapping shows how much you appreciated Mr. Liang’s story.