Android O Preview 相關(guān)-后臺(tái)執(zhí)行限制

Android O 是下一代 android? 系統(tǒng),Android O Developer Preview 計(jì)劃將為開發(fā)者提供針對(duì)下一個(gè)版本的 Android 系統(tǒng)提升您應(yīng)用的兼容性和開發(fā)應(yīng)用所需的所有功能篮撑。該軟件是免費(fèi)的开镣,只需下載預(yù)覽版工具使用即可。

附錄官網(wǎng)計(jì)劃預(yù)覽:https://developer.android.com/preview/overview.html#timeline 咽扇,可查看有關(guān)該計(jì)劃的介紹邪财。

有關(guān)android O 的一些行為變更官網(wǎng)地址:https://developer.android.com/preview/behavior-changes.html

以下主要介紹一下androd O 中關(guān)于后臺(tái)執(zhí)行限制變更。

后臺(tái)執(zhí)行限制

每當(dāng)應(yīng)用程序在后臺(tái)運(yùn)行時(shí)质欲,它會(huì)消耗某些設(shè)備的有限資源树埠,如RAM。這可能會(huì)影響用戶的使用體驗(yàn)嘶伟,特別是如果用戶正在使用資源密集型應(yīng)用程序怎憋,例如玩游戲或觀看視頻。為了改善用戶體驗(yàn)绊袋,Android O在后臺(tái)運(yùn)行時(shí)對(duì)應(yīng)用程序可以執(zhí)行的操作施加限制毕匀。

-OverView

Android系統(tǒng)中的許多應(yīng)用和服務(wù)可以同時(shí)運(yùn)行。例如癌别,用戶可以在一個(gè)窗口中玩游戲皂岔,同時(shí)在另一個(gè)窗口中瀏覽網(wǎng)頁(yè),在另一應(yīng)用中播放音樂展姐。一次運(yùn)行的應(yīng)用程序越多躁垛,系統(tǒng)上的負(fù)載就越多。如果其他應(yīng)用程序或服務(wù)在后臺(tái)運(yùn)行圾笨,則會(huì)在系統(tǒng)上增加額外的負(fù)載教馆,可能音樂應(yīng)用程序會(huì)突然關(guān)閉,這會(huì)導(dǎo)致用戶體驗(yàn)不佳;

為了降低這些問題的機(jī)會(huì)擂达,Android O對(duì)用戶不直接與他們進(jìn)行交互的應(yīng)用程序可以執(zhí)行哪些操作土铺。應(yīng)用程式有兩種限制:

后臺(tái)服務(wù)限制:當(dāng)應(yīng)用程序空閑時(shí),使用后臺(tái)服務(wù)有限制板鬓。這不適用于對(duì)用戶更為重要的前臺(tái)服務(wù)舒憾。

廣播限制:除了有限的例外,應(yīng)用程序不能使用其清單來注冊(cè)隱式廣播穗熬。他們?nèi)匀豢梢栽谶\(yùn)行時(shí)注冊(cè)這些廣播镀迂,他們可以使用清單來注冊(cè)針對(duì)他們的應(yīng)用的明確的廣播。

注意:默認(rèn)情況下唤蔗,這些限制僅適用于以 Android O 為目標(biāo)的應(yīng)用探遵。但是,即使該應(yīng)用尚未定位到Android O妓柜,用戶也可以從“設(shè)置”界面為任何應(yīng)用啟用這些限制箱季。

在大多數(shù)情況下,應(yīng)用程序可以通過使用?JobScheduler?作業(yè)解決這些限制棍掐。該方法允許應(yīng)用程序安排在應(yīng)用程序沒有正常運(yùn)行時(shí)執(zhí)行工作藏雏,但仍然給予系統(tǒng)以不影響用戶體驗(yàn)的方式安排這些作業(yè)的余地。Android O提供了一些改進(jìn)JobScheduler作煌,可以更輕松地用計(jì)劃的作業(yè)來替換服務(wù)和廣播接收器;

-后臺(tái)服務(wù)限制

在后臺(tái)運(yùn)行的服務(wù)可能會(huì)消耗設(shè)備資源掘殴,這也會(huì)導(dǎo)致更用戶體驗(yàn)。為了減輕此問題粟誓,系統(tǒng)對(duì)服務(wù)應(yīng)用了一些限制奏寨。

系統(tǒng)區(qū)分?前臺(tái)?和?后臺(tái)?應(yīng)用程序。(為了服務(wù)限制的目的鹰服,背景的定義與內(nèi)存管理所使用的定義不同;一個(gè)應(yīng)用程序可能在內(nèi)存管理方面屬于后臺(tái)病瞳,但在前臺(tái)涉及其啟動(dòng)服務(wù)的能力揽咕。)符合一下條件之一的應(yīng)用程序會(huì)被認(rèn)為是在前臺(tái):

  1有一個(gè)可見的活動(dòng)套菜,無論活動(dòng)是啟動(dòng)還是暫停亲善。

  2有一個(gè)前臺(tái)服務(wù)逗柴。

 ∮纪贰3另一個(gè)前臺(tái)應(yīng)用程序通過綁定到其中一個(gè)服務(wù)或通過使用其內(nèi)容提供者之一連接到應(yīng)用程序。如以下處于前臺(tái)的應(yīng)用程序:

   ●?IME

  ● Wallpaper service

  ● Notification listener

  ● Voice or text service

不符合以上條件嚎于,應(yīng)用程序則被認(rèn)為是在后臺(tái)。

注意:這些規(guī)則不會(huì)以任何方式影響綁定的服務(wù)挟冠。如果應(yīng)用程序定義了綁定的服務(wù)于购,則其他組件可以綁定到該服務(wù),無論您的應(yīng)用程序是否在前臺(tái)知染。

當(dāng)應(yīng)用程序處于前臺(tái)時(shí)肋僧,它可以自由創(chuàng)建和運(yùn)行前臺(tái)和后臺(tái)服務(wù)。當(dāng)應(yīng)用程序進(jìn)入后臺(tái)時(shí)控淡,它有一個(gè)幾分鐘的窗口嫌吠,它仍然允許創(chuàng)建和使用服務(wù)。在該窗口的最后掺炭,該應(yīng)用被認(rèn)為是空閑的辫诅。在這個(gè)時(shí)候,系統(tǒng)會(huì)停止應(yīng)用的后臺(tái)服務(wù)涧狮,就像應(yīng)用程序調(diào)用了服務(wù)的Service.stopSelf()方法一樣炕矮。

在許多情況下,您的應(yīng)用程序可以使用?JobScheduler?作業(yè)替換后臺(tái)服務(wù)者冤。例如肤视,CoolPhotoApp 需要檢查用戶是否收到了來自朋友的共享照片,即使應(yīng)用程序未在前臺(tái)運(yùn)行涉枫。以前邢滑,該應(yīng)用程序使用后臺(tái)服務(wù)來檢查應(yīng)用程序的云存儲(chǔ)。要遷移到Android O愿汰,開發(fā)人員可以使用定期啟動(dòng)的計(jì)劃作業(yè)來替換后臺(tái)服務(wù)困后,定期啟動(dòng),查詢服務(wù)器衬廷,然后退出操灿。

在Android O之前,創(chuàng)建前臺(tái)服務(wù)的通常方法是創(chuàng)建后臺(tái)服務(wù)泵督,然后將該服務(wù)提升到前臺(tái)趾盐。但在Android O ?中,系統(tǒng)不允許后臺(tái)應(yīng)用創(chuàng)建后臺(tái)服務(wù)。因此救鲤,Android O引入了 Context.startForegroundService() 在前臺(tái)啟動(dòng)新服務(wù)的新方法久窟。系統(tǒng)創(chuàng)建服務(wù)后,應(yīng)用程序有五秒鐘可以調(diào)用該服務(wù)的?startForeground()?方法來顯示一個(gè)用戶可見的有關(guān)該服務(wù)的通知本缠。如果該應(yīng)用在時(shí)間限制內(nèi)沒有?startForeground()斥扛,系統(tǒng)將停止該服務(wù)并聲明該應(yīng)用為ANR

-廣播限制

如果應(yīng)用程序注冊(cè)接收廣播丹锹,則應(yīng)用程序的接收方在每次發(fā)送廣播時(shí)都會(huì)消耗資源稀颁。如果太多的應(yīng)用程序注冊(cè)以基于系統(tǒng)事件接收廣播,觸發(fā)廣播的系統(tǒng)事件可能導(dǎo)致所有這些應(yīng)用程序快速連續(xù)地消耗資源楣黍,從而削弱用戶體驗(yàn)匾灶。為了減輕這個(gè)問題,Android 7.0(API 25級(jí))對(duì)廣播進(jìn)行了限制租漂,如背景優(yōu)化所述阶女。Android O使這些限制更加嚴(yán)格。

針對(duì)Android O的應(yīng)用程序不能再在其 manifest 文件中注冊(cè)隱式廣播接收器哩治。一個(gè)隱式廣播 是沒有指定一個(gè)專門的應(yīng)用程序的廣播秃踩。例如,ACTION_PACKAGE_REPLACED是一個(gè)隱式廣播业筏,因?yàn)樗话l(fā)送到所有注冊(cè)的監(jiān)聽器憔杨,讓他們知道設(shè)備上的某些包被替換。然而蒜胖,ACTION_MY_PACKAGE_REPLACED這不是一個(gè)隱含的廣播芍秆,因?yàn)樗话l(fā)送到包被被替換的應(yīng)用程序,無論有多少其他應(yīng)用程序已經(jīng)注冊(cè)了該廣播的監(jiān)聽器翠勉。

應(yīng)用程序可以繼續(xù)在其清單中注冊(cè)顯式廣播妖啥。

應(yīng)用程序可以Context.registerReceiver()在運(yùn)行時(shí)動(dòng)態(tài)注冊(cè)接收器進(jìn)行任何廣播,無論是隱式還是顯式对碌。

需要簽名許可的廣播將免除此限制荆虱,因?yàn)檫@些廣播僅發(fā)送到使用相同證書簽署的應(yīng)用程序,而不是設(shè)備上的所有應(yīng)用程序朽们。

在許多情況下怀读,以前注冊(cè)為隱式廣播的應(yīng)用程序可以通過使用JobScheduler作業(yè)獲得類似的功能。例如骑脱,社交照片應(yīng)用程序可能需要不時(shí)對(duì)其數(shù)據(jù)執(zhí)行清理菜枷,并且在設(shè)備連接到充電器時(shí)更喜歡這樣做。以前叁丧,應(yīng)用程序ACTION_POWER_CONNECTED在其 manifest 文件中注冊(cè)了一個(gè)接收器;當(dāng)應(yīng)用程序收到廣播時(shí)啤誊,它會(huì)檢查是否需要清理岳瞭。為了遷移應(yīng)用到Android O,需在應(yīng)用程序的 manifest 文件中刪除該接收器蚊锹,而應(yīng)用程序會(huì)自己調(diào)度瞳筏,在設(shè)備空閑并充電時(shí)運(yùn)行的清理作業(yè)。

注意:現(xiàn)在許多隱性廣播不受此限制牡昆。應(yīng)用程序可以繼續(xù)在其manifest 文件中注冊(cè)這些廣播的接收者姚炕,無論應(yīng)用程序的API級(jí)別如何。有關(guān)免除廣播的列表丢烘,請(qǐng)參閱隱式廣播例外柱宦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市播瞳,隨后出現(xiàn)的幾起案子掸刊,更是在濱河造成了極大的恐慌,老刑警劉巖狐史,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痒给,死亡現(xiàn)場(chǎng)離奇詭異说墨,居然都是意外死亡骏全,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門尼斧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姜贡,“玉大人,你說我怎么就攤上這事棺棵÷タ龋” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵烛恤,是天一觀的道長(zhǎng)母怜。 經(jīng)常有香客問我,道長(zhǎng)缚柏,這世上最難降的妖魔是什么苹熏? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮币喧,結(jié)果婚禮上轨域,老公的妹妹穿的比我還像新娘。我一直安慰自己杀餐,他們只是感情好干发,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著史翘,像睡著了一般枉长。 火紅的嫁衣襯著肌膚如雪冀续。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天搀暑,我揣著相機(jī)與錄音沥阳,去河邊找鬼。 笑死自点,一個(gè)胖子當(dāng)著我的面吹牛桐罕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播桂敛,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼功炮,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了术唬?” 一聲冷哼從身側(cè)響起薪伏,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎粗仓,沒想到半個(gè)月后嫁怀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡借浊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年塘淑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚂斤。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡存捺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出曙蒸,到底是詐尸還是另有隱情捌治,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布纽窟,位于F島的核電站肖油,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏臂港。R本人自食惡果不足惜森枪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望趋艘。 院中可真熱鬧疲恢,春花似錦、人聲如沸瓷胧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)搓萧。三九已至杂数,卻和暖如春宛畦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背揍移。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工次和, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人那伐。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓踏施,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親罕邀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子畅形,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,745評(píng)論 25 707
  • 前言 谷歌剛剛發(fā)布了Android O技術(shù)預(yù)覽版,為了提升續(xù)航和減少耗電诉探,Android進(jìn)一步限制了后臺(tái)服務(wù)的運(yùn)行...
    客家小羅閱讀 7,195評(píng)論 1 14
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理日熬,服務(wù)發(fā)現(xiàn),斷路器肾胯,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • 前言 本文主要針對(duì)Android O的適配竖席,文中大部分內(nèi)容將來自官網(wǎng),本文只是總結(jié)提取出適配需要的注意點(diǎn)敬肚,關(guān)于An...
    GrayMonkey閱讀 4,069評(píng)論 0 5
  • 七律 . 秋聲 昨夜金風(fēng)凋碧樹毕荐,輕煙曉露弄晴空。 寒蟬陌上啼高處帘皿,落葉籬前叩短蓬东跪。 稻谷沙沙騰細(xì)浪畸陡,李桃颯颯競(jìng)嫣紅...
    不語(yǔ)不問閱讀 382評(píng)論 0 4