2013-07-24 143 views

回答

107

第一種方式
需要root

使用kill

adb shell ps =>將列出設備上所有正在運行的進程的進程ID
adb shell kill <PID> =>而不是<PID>使用過程您的應用程序的ID

第二種方式
在Eclipse中打開DDMS的視角。
Devices視圖中您可以找到所有正在運行的進程。
選擇該過程並點擊Stop

enter image description here

第三種方式
這會殺了一個應用程序的唯一後臺進程。

adb shell am kill [options] <PACKAGE> =>終止與(應用程序包名稱)關聯的所有進程。該命令僅殺死可以殺死並且不會影響用戶體驗的進程。
選項有:

--user |全部| current:指定要殺死進程的用戶;所有用戶如果沒有指定。

第四種方式
需要root

adb shell pm disable <PACKAGE> =>禁用給定的包或組分(寫爲 「包/類」)。

第五方式
需要注意的是運行的僅支持了與調試密鑰簽名的應用程序。

run-as <package-name> kill <pid>

第六方式
介紹了在蜂窩

adb shell am force-stop <PACKAGE> =>強制停止使用(該應用程序的包名)相關的一切。

P.S .:我知道第六種方法不適合你,但我認爲將這種方法添加到列表中很重要,所以每個人都會知道它。

+1

謝謝回答,但是當我用'kill'我得到「不允許操作」錯誤。我的設備沒有固定,我必須通過ADB來完成。 –

+0

我更新了我的答案,嘗試第二種或第五種方式。 – EvZ

+1

我用了第六個。奇蹟般有效。我用它來停止主應用程序,然後做一個工廠重置並重新安裝。這個小腳本可能是有用的(分號表示換行符,替換它們):adb shell am force-stop ; adb shell擦除數據; adb shell擦除緩存; adb重啓恢復; TIMEOUT 80/nobreak; adb install ; – Batdude

2

如果你有一個根深蒂固設備,您可以使用kill命令

連接到您的設備與亞行:

adb shell 

一旦會話建立後,你必須凱雷德特權:

su 

Then

ps 

將列出正在運行的進程。記下您想要終止的進程的PID。然後擺脫它

kill PID 
+1

如果進程繼續運行,即使被殺死後。那我該怎麼辦? @EricVB – gumuruh

1

要從應用程序殺,你可以這樣做:

android.os.Process.killProcess(android.os.Process.myPid());