安卓系統如何殺程序
❶ Android進程管理篇(二)-進程查殺方式總結
本篇文章簡單總結一下Android系統查殺進程的方式。
註:AMS對應的應用層調用方法在ActivityManager中,通過如下方法獲取ActivityManager來調用:
2.1 查殺方法:
調用AMS forceStopPackageLocked(final String packageName, int uid, String reason)
2.2 查殺條件:
除此之外,以下情況則必然會成為被殺進程:
進程的pkgList是在啟動組件或者創建進程的過程向該隊列添加的,代表的是該應用下有組件運行在該進程。那麼pkgDeps是指該進程所依賴的包名,調用ClassLoader的過程添加。
2.3 查殺過程:
當app被force-stop後,90%保活策略都會失效:
參考:
http://gityuan.com/2016/10/22/force-stop/
系列文章:
Android進程管理篇(一)-應用進程啟動過程
Android進程管理篇(二)-進程查殺方式總結
Android進程管理篇(三)-AMS進程調度
lowmemorykiller總結
❷ android中如何殺死自己的進程
其中的killBackgroundProcesses是android.app.ActivityManager類中的方法,而必須在Manifest.xml文件中加入<uses-permission
android:name="android.permission.KILL_BACKGROUND_PROCESSES"/> 的設置。 restartPackage (String packageName) 也是一種殺死進程的方法。 該方法的原型 public void killBackgroundProcesses (String packageName) 僅有一個參數為package Name,使用方法比較簡單。
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
am.killBackgroundProcesses("cn.com.android123.cwj"); // API Level至少為8才能使用
❸ 手機ROOT之後,如何徹底終止後台程序
這個不可能殺干凈的,手機的ram就是起程序進程暫存的作用,安卓系統的機制是這樣,結束後台就可以,一味的殺進程,進程又會重辯悔啟,cpu又空舉得工作,只怕會更加的費電 。建議樓主正常使用進行。軟體用了退出,平時把流量關了就行。
❹ 安卓手機關閉後台應用方法 如何徹底退出後台應用
若使用的是vivo手機,可以從屏幕底部中間往上滑後停頓調出後台應用(部分機型需點擊左鍵),按住軟體圖標上滑,即可關閉後台運行的應用。
❺ android怎麼手動殺掉進程
手動殺掉進程的話,如果是小米手機,長按主按鍵就可以,單擊殺掉所有進程就可以了。
❻ 安卓系統怎麼才能把那後台運行的程序關閉,謝謝!
安卓android後台的軟體自動啟動程序 - 使用android手機必讀(精華中的精華)2011-08-25 16:06不用在意剩餘內存的大小,其實很多人都是把使用其他系統的習慣帶過來來了。android大多應用沒有退出的設計其實是有道理的,這和系統對進程的調度機制有關系。如果你知道java,就能更清楚這機制了。其實和java的垃圾回收機制類似,系統有一個規則來回收內存。進行內存調度有個閥值,只有低於這個值系統才會按一個列表來關閉用戶不需要的東西。當然這個值默認設置得很小,所以你會看到內存老在很少的數值徘徊。但事實上他並不影響速度。相反加快了下次啟動應用的速度。這本來就是android標榜的優勢之一,如果人為去關閉進程,沒有太大必要。特別是使用自動關進程的軟體。(這里解決了大家非要關進程的誤區!)
到這里有人會說了,那為什麼內存少的時候運行大型程序會慢呢?其實很簡單,在內存剩餘不多時打開大型程序,會觸發系統自身的調進程調度策略,這是十分消耗系統資源的操作,特別是在一個程序頻繁向系統申請內存的時候。這種情況下系統並不會關閉所有打開的進程,而是選擇性關閉,頻繁的調度自然會拖慢系統。所以,論壇上有個更改內存閥值的程序可以有一定改善。但改動也可能帶來一些問題,取決於值的設定。
那麼,進程管理軟體有無必要呢?有的。就是在運行大型程序之前,你可以手動關閉一些進程釋放內存,可以顯著的提高運行速度。但一些小程序,完全可交由系統自己管理。
談到這里,可能有的朋友會問,如果不關程序是不是會更耗電。我就說說android後台的原理,你就明白了。android的應用在被切換到後台時,它其實已經被暫停了,並不會消耗cpu資源,只保留了運行狀態。所以為什麼有的程序切出去重進會到主界面。但是,一個程序如果想要在後台處理些東西,如音樂播放,它就會開啟一個服務。服務可在後台持續運行,所以在後台耗電的也只有帶服務的應用了。這個在進程管理軟體里能看到,標簽是service。至於廣播什麼的我就不涉及了。所以沒有帶服務的應用在後台是完全不耗電的,沒有必要關閉。這種設計本來就是一個非常好的設計,下次啟動程序時,會更快,因為不需要讀取界面資源,何必要關掉他們抹殺這個android的優點呢?(告訴我們如何合理使用進程管理軟體)
還有一個,為什麼android一個應用看起來那麼耗內存。大家知道,android上的應用是java,當然需要虛擬機,而android上的應用是帶有獨立虛擬機的,也就是每開一個應用就會打開一個獨立的虛擬機。這樣設計的原因是可以避免虛擬機崩潰導致整個系統崩潰,但代價就是需要更多內存。(跟塞班也不一樣,案桌不容易死機重啟)
以上這些設計確保了android的穩定性,正常情況下最多單個程序崩潰,但整個系統不會崩潰,也永遠沒有內存不足的提示出現。大家可能是被windows毒害得太深了,總想保留更多的內存,但實際上這並不一定會提升速度,相反卻喪失了程序啟動快的這一系統特色,很沒必要。大家不妨按我說的習慣來用用這個系統。