當前位置:網站首頁>如何徹底强制殺死後臺無關進程?

如何徹底强制殺死後臺無關進程?

2022-07-23 21:47:41飛猿_SIR

        在一些低端機型或小內存的ROM中,經常會出現內存不足的情况,除了優化自身程序外,往往需要通過殺死清空一些無關的後臺進程來節省內存。但現在許多程序都做了很强的守護進程或加入了平臺白名單,常規方法都無法徹底殺死。

        比如am.forceStopPackage(),或者 "adb shell killall -9 com.xxx.xxx".都是殺掉後一會又會自啟。那麼對於這種情况,改如何徹底幹掉這些討厭的家夥呢。

        這裏提供一種非常規方法,通過禁用該包名來實現,不過需要注意的是,禁用包名後,對應程序進程會被清空,而且無法再啟動,應用列錶也找不到它,這就需要重新恢複該包名的可用性,這時它是不會自啟的。可通過adb命令測試:

禁用程序:adb shell pm disable com.xxx.xxx

恢複程序:adb shell pm enable com.xxx.xxx

至於代碼實現,就是通過java 發送shell指令,參考如下:

 public static boolean RootCommand(String command)
    {
        Process process = null;
        DataOutputStream os = null;
        try {
            process = Runtime.getRuntime().exec("sh");
            os = new DataOutputStream(process.getOutputStream());
            os.writeBytes(command + "\n");
            os.writeBytes("exit\n");
            os.flush();
            process.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            try {
                if (os != null) {
                    os.close();
                }
                process.destroy();
            } catch (Exception e) {
            }
        }
        return true;
    }


//調用
RootCommand("pm disable com.xxx.xxx");

 這樣就可以徹底幹掉後臺頑固進程,不過切記禁用後記得及時恢複該包名的可用性。

        

版權聲明
本文為[飛猿_SIR]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/204/202207232147124746.html

隨機推薦