Android中的程序保活(不死程序)

2021-09-02 16:55:53 字數 884 閱讀 9222

android中的程序保活方式主要分為以下三種:

白色保活:啟動前台service

灰色保活:利用系統的漏洞啟動前台service

黑色保活

白色保活灰色保活

這種保活手段是應用範圍最廣泛。它是利用系統的漏洞來啟動乙個前台的service程序,與普通的啟動方式區別在於,它不會在系統通知欄處出現乙個notification,看起來就如同執行著乙個後台service程序一樣。這樣做帶來的好處就是,使用者無法察覺到你執行著乙個前台進(因為看不到notification),但你的程序優先順序又是高於普通後台程序的。那麼如何利用系統的漏洞呢,大致的實現思路如下:

api < 18,啟動前台service時直接傳入new notification();

api >= 18,同時啟動兩個id相同的前台service,然後再將後啟動的service做stop處理

這套殺程序**記憶體的機制就叫 low memory killer ,它是基於linux核心的 oom killer(out-of-memory killer)

根據程序的重要性,可以劃分為5級:

了解完 low memory killer,再科普一下oom_adj。什麼是oom_adj?它是linux核心分配給每個系統程序的乙個值,代表程序的優先順序,程序**機制就是根據這個優先順序來決定是否進行**。對於oom_adj的作用,你只需要記住以下幾點即可:

程序的oom_adj越大,表示此程序優先順序越低,越容易被殺**;越小,表示程序優先順序越高,越不容易被殺**

Android中的程序保活

最近在看aidl相關的知識,無意間看到一篇程序保活的文章,正好涉及到了程序相關的內容。順便學習一下。一 什麼是程序保活 程序保活可以理解為讓乙個程序最大程度不被殺死,或者殺死後第一時間復活。二 程序的劃分 1 活動程序 優先順序最高,使用者正在操作的程式,是前台程序,並且可操作。2 可見程序 次高優...

Android程序保活

2個方法 1.不讓殺 2.殺了復活 程序優先順序 1.前台程序 resume 2.可見程序 pause 4.後台程序 5.空程序 不被殺提公升優先順序1.前台服務 啟用2個前台服務,消除通知 變成可見程序 2.廣播監聽鎖屏解鎖,啟動1畫素活動 儘量減少記憶體占用,在相同oom adj的情況下,也更加...

Android程序保活

對於程式被殺死,一般我們能做到兩個方面優化 保證程序的優先順序 當程序被殺死之後的喚醒 程序的優先順序 程序根據優先順序區分可以分為 前台程序 可見程序 服務程序 後台程序 空程序 程序中有個較為具體的值oom adj,其數值越小對應的優先順序越高 紅色部分是易於被 的 4 16 綠色部分是不易被 ...