Android保活系列之——一像素Activity

本文為個(gè)人學(xué)習(xí)筆記分享恨樟,沒有任何商業(yè)化行為褪那,對(duì)其他文章的引用都會(huì)標(biāo)記幽纷。如有侵權(quán)行為,請(qǐng)及時(shí)提醒更正博敬!如需轉(zhuǎn)載請(qǐng)表明出處
Android庇呀活相關(guān)博客大綱
希望看了的小伙伴都關(guān)注一下。

上文說到偏窝,Android主要通過LMK(Low Memory Killer)來對(duì)進(jìn)程進(jìn)行回收管理收恢,LMK是在Android系統(tǒng)內(nèi)存不足而選擇kill部分進(jìn)程釋放空間武学,生死大權(quán)的決定者,其基于Linux的OOM機(jī)制伦意,LMK通過oom_adj與占用內(nèi)存的大小決定要?dú)⑺赖倪M(jìn)程火窒,oom_adj值越小,越不容易被殺死驮肉。上面的幾種進(jìn)程形態(tài)對(duì)于的不同的oom_adj值熏矿。前臺(tái)進(jìn)程的優(yōu)先級(jí)為0,普通service的進(jìn)程優(yōu)先級(jí)是8离钝。
所以保證進(jìn)程的高優(yōu)先級(jí)票编,可以在一定程度上避免應(yīng)用被LMK回收,從而達(dá)到應(yīng)用蹦纬剑活的效果

思路
在用戶鎖屏或者h(yuǎn)ome狀態(tài)下栏妖,開啟1px的Activity。以達(dá)到進(jìn)程高優(yōu)先級(jí)
1.1px Activity
自定義Activity奖恰,在onCreate方法中實(shí)現(xiàn)1px。

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Window window = getWindow();
        window.setGravity(Gravity.LEFT | Gravity.TOP);
        WindowManager.LayoutParams params = window.getAttributes();
        params.x = 0;
        params.y = 0;
        params.height = 1;
        params.width = 1;
        window.setAttributes(params);
    }

2.設(shè)置透明style

<style name="OnePxActivityStyle" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- 窗體背景顏色為透明 -->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 窗體沒有邊框 -->
        <item name="android:windowFrame">@null</item>
        <!-- 窗體不包含標(biāo)題欄 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 窗體懸浮 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 自定義TitleBar時(shí)去掉多余的陰影-->
        <item name="android:windowContentOverlay">@null</item>
        <!-- 不允許窗體背景變暗-->
        <item name="android:backgroundDimEnabled">false</item>
        <!-- 窗體切換無動(dòng)畫-->
        <item name="android:windowAnimationStyle">@null</item>
        <!-- 禁用窗口的預(yù)覽動(dòng)畫-->
        <item name="android:windowDisablePreview">true</item>
        <item name="android:windowNoDisplay">false</item>
        <item name="android:windowIsTranslucent">true</item>
    </style>
//在AndroidManifest.xml里設(shè)置
 <activity
        android:name=".OnePxActivity"
        android:screenOrientation="portrait"
        android:theme="@style/OnePxActivityStyle"></activity>

3.監(jiān)聽鎖屏廣播

        <receiver android:name=".Receiver.OnePixelReceiver">
            <intent-filter>
                <action android:name="android.intent.action.SCREEN_OFF" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>

/**
 * Created by Administrator on 2017/7/10.
 * 監(jiān)聽屏幕狀態(tài)的廣播
 */
public class OnePixelReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {    //屏幕關(guān)閉啟動(dòng)1像素Activity
            Intent it = new Intent(context, OnePxActivity.class);
            it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(it);
        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {   //屏幕打開 結(jié)束1像素
            context.sendBroadcast(new Intent("finish"));
            Intent main = new Intent(Intent.ACTION_MAIN);
            main.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            main.addCategory(Intent.CATEGORY_HOME);
            context.startActivity(main);
        }
    }
}

這種策略是比較常見的策略宛裕。但應(yīng)用場(chǎng)景比較狹窄瑟啃,只是作為保活的補(bǔ)充揩尸。在高版本系統(tǒng)會(huì)這種類型的Activity做限制蛹屿,但低版本手機(jī)還是可以嘗試的。毖矣埽活有風(fēng)險(xiǎn)错负,量力而為。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末勇边,一起剝皮案震驚了整個(gè)濱河市犹撒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌粒褒,老刑警劉巖识颊,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異奕坟,居然都是意外死亡祥款,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門月杉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刃跛,“玉大人,你說我怎么就攤上這事苛萎〗瓣迹” “怎么了跌帐?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)绊率。 經(jīng)常有香客問我谨敛,道長(zhǎng),這世上最難降的妖魔是什么滤否? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任脸狸,我火速辦了婚禮,結(jié)果婚禮上藐俺,老公的妹妹穿的比我還像新娘炊甲。我一直安慰自己,他們只是感情好欲芹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布卿啡。 她就那樣靜靜地躺著,像睡著了一般菱父。 火紅的嫁衣襯著肌膚如雪颈娜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天浙宜,我揣著相機(jī)與錄音官辽,去河邊找鬼。 笑死粟瞬,一個(gè)胖子當(dāng)著我的面吹牛同仆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播裙品,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼俗批,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了市怎?” 一聲冷哼從身側(cè)響起岁忘,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎焰轻,沒想到半個(gè)月后臭觉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辱志,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年蝠筑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揩懒。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡什乙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出已球,到底是詐尸還是另有隱情臣镣,我是刑警寧澤辅愿,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站忆某,受9級(jí)特大地震影響点待,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弃舒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一癞埠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧聋呢,春花似錦苗踪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至器贩,卻和暖如春颅夺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背磨澡。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工碗啄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稳摄。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像饲宿,于是被迫代替她去往敵國(guó)和親厦酬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 如何進(jìn)行進(jìn)程保活国夜,首先我們應(yīng)該先分析一下進(jìn)程被殺死的原因開始 Android進(jìn)程被殺死的場(chǎng)景分析: 從 Andro...
    如穎隨行日記閱讀 4,910評(píng)論 2 4
  • 如何進(jìn)行進(jìn)程背荡担活筹裕,首先我們應(yīng)該先分析一下進(jìn)程被殺死的原因開始 Android進(jìn)程被殺死的場(chǎng)景分析: 從 Andro...
    編程小豬閱讀 3,531評(píng)論 1 14
  • 版權(quán)聲明:本文為L(zhǎng)ooperJing原創(chuàng)文章朝卒,轉(zhuǎn)載請(qǐng)注明出處! 自己曾經(jīng)也在這個(gè)問題上傷過腦經(jīng)乐埠,前幾日剛好有一個(gè)北...
    LooperJing閱讀 29,680評(píng)論 98 481
  • 本篇文章是基于Android9.0來介紹Android系統(tǒng)關(guān)于進(jìn)程的優(yōu)先級(jí)是如何定義和管理的抗斤。 概述 1.進(jìn)程 進(jìn)...
    凡星軌跡閱讀 10,029評(píng)論 0 57
  • 就是在人工神經(jīng)網(wǎng)絡(luò)的神經(jīng)元上運(yùn)行的函數(shù)囚企,負(fù)責(zé)將神經(jīng)元的輸入映射到輸出端。是一個(gè)重要的非線性函數(shù)瑞眼,負(fù)責(zé)提高神經(jīng)網(wǎng)絡(luò)的...
    城市中迷途小書童閱讀 1,014評(píng)論 0 0