一個(gè)新技巧 模擬app被系統(tǒng)回收

參考:


模擬的目的

為了保證在app回收時(shí)重啟應(yīng)用不產(chǎn)生crash 需要模擬這種情況并找到對(duì)策,這是一個(gè)健壯的app理應(yīng)做到的一點(diǎn)。

前期準(zhǔn)備工作:

打開應(yīng)用,按home鍵置入后臺(tái)


步驟一:

使用adb shell ps從一長串列表中查找目標(biāo)應(yīng)用的pid。
或是使用
1.adb shell回車;
2.ps | grep your.app.package定位到列表中單條目標(biāo)記錄查看pid;

The result should look like:

USER      PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
u0_a198   21997 160   827940 22064 ffffffff 00000000 S your.app.package

步驟二:

su獲取root權(quán)限
kill -9 'pid'命令殺死應(yīng)用

步驟三:

可以開始處理app被系統(tǒng)回收時(shí)產(chǎn)生的bug了(逃

  • 并不能像oschina的答案中那樣用adb shell ps | grep 'your.app.package'得到結(jié)果,也可能是我姿勢(shì)不對(duì)。
  • 不能使用adb shell am force-stop <package name>雖然進(jìn)程被殺死了,但是啟動(dòng)時(shí)還是正常的)

特別地

經(jīng)@YoKey提醒,還可以通過開啟開發(fā)人員選項(xiàng)中的"不保持活動(dòng)選項(xiàng)"達(dá)到相同的效果。
具體方式是,開啟選項(xiàng)后,啟動(dòng)目標(biāo)程序,用Home鍵返回桌面,稍候幾秒再次點(diǎn)擊啟動(dòng)目標(biāo)程序即和以上的"步驟一+步驟二"有相同的效果。
不過使用這種方法也意味著所有應(yīng)用都是處于無緩存狀態(tài)下運(yùn)行的,包括你的桌面!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評(píng)論 25 708
  • 當(dāng)生活一成不變的時(shí)候,還是渴望有所改變的。 3月29號(hào),我加入了“早起1小時(shí)”微信群,那句“每天早起一小時(shí),贏得屬...
    大臉and小臉閱讀 2,952評(píng)論 8 5
  • 「本期編輯」:體育專題主編 Rosalindcong 本期主題:2016年里約奧運(yùn)會(huì) 本期介紹:今天剛好是8月的尾...
    Rosalindcong閱讀 1,162評(píng)論 11 8
  • 大家表情都很嚴(yán)肅,為什么?怎么了?我為什么在這里…… 我想起身,為什么我動(dòng)不了?無法離開自己的座位。我只能四處看。...
    羽翼小球閱讀 316評(píng)論 0 0

友情鏈接更多精彩內(nèi)容