Android6.0 新特性詳解

一 運(yùn)行時(shí)權(quán)限

Android6.0 引入了一個(gè)新的應(yīng)用權(quán)限模型盯串,期望對(duì)用戶更容易理解庶近,更易用和更安全冤寿。該模型將標(biāo)記為危險(xiǎn)的權(quán)限從安裝時(shí)權(quán)限(Install Time Permission)模型 移動(dòng)到 運(yùn)行時(shí)權(quán)限模型(Runtime Permissions):

安裝時(shí)權(quán)限模型(Android5.1以及更早)中跌。用戶在應(yīng)用安裝和更新時(shí)毯辅,對(duì)危險(xiǎn)權(quán)限授權(quán)须妻。但是OEM和運(yùn)行商預(yù)裝的應(yīng)用將自動(dòng)預(yù)授權(quán)仔蝌。

運(yùn)行時(shí)權(quán)限(Android6.0及以后)。用戶在應(yīng)用運(yùn)行時(shí)荒吏,對(duì)應(yīng)用授予危險(xiǎn)權(quán)限敛惊。由應(yīng)用決定何時(shí)去申請(qǐng)權(quán)限(例如,在應(yīng)用啟動(dòng)時(shí)或者用戶訪問(wèn)某個(gè)特性時(shí))绰更,但必須容許用戶來(lái)授予或者拒絕應(yīng)用對(duì)特定權(quán)限組的訪問(wèn)瞧挤。OEM和運(yùn)營(yíng)商 可以預(yù)裝應(yīng)用,但是不能對(duì)權(quán)限進(jìn)行預(yù)授權(quán)(例外情況請(qǐng)看這里Create exception)动知。

運(yùn)行時(shí)權(quán)限提供給用戶關(guān)于應(yīng)用所需權(quán)限更多的相關(guān)上下文和可視性皿伺,這也讓開發(fā)者幫助用戶更好的理解:為什么應(yīng)用需要所請(qǐng)求的權(quán)限,授權(quán)將有什么樣的好處盒粮,拒絕將有何種不便鸵鸥。用戶可以通過(guò)設(shè)置中的菜單來(lái)撤銷應(yīng)用的權(quán)限。

受影響的權(quán)限

系統(tǒng)要求標(biāo)記為危險(xiǎn)(dangerous)的權(quán)限使用運(yùn)行時(shí)權(quán)限模型丹皱。查看危險(xiǎn)權(quán)限列表可以使用命令:adb shell pm list permissions -g -d妒穴。

Android6.0并不改變正常權(quán)限的行為。正常權(quán)限指的是所有非危險(xiǎn)(non-dangerous)權(quán)限摊崭,包括normal讼油,system和signature

權(quán)限。正常權(quán)限風(fēng)險(xiǎn)較低呢簸,用于容許應(yīng)用以最小風(fēng)險(xiǎn)來(lái)訪問(wèn)隔離的應(yīng)用級(jí)別的特性矮台。在Android5.1和早期版本中,系統(tǒng)在安裝時(shí)自動(dòng)將正常權(quán)限授予請(qǐng)求的應(yīng)用根时,并不提示用戶瘦赫。

請(qǐng)求

運(yùn)行時(shí)權(quán)限模型適用于所有應(yīng)用,包括預(yù)裝應(yīng)用蛤迎。應(yīng)用軟件的要求包括:

運(yùn)行時(shí)權(quán)限模型必須在所有運(yùn)行Android6.0的設(shè)備上是一致的确虱。這通過(guò)CTS來(lái)實(shí)施。

應(yīng)用必須在運(yùn)行時(shí)提示用戶進(jìn)行授權(quán)替裆。

帶有危險(xiǎn)權(quán)限的預(yù)裝應(yīng)用校辩,必須符合API level 23窘问,必須維護(hù)Android6.0的AOSP權(quán)限模型(例如,應(yīng)用安裝的UI流程不應(yīng)該脫離AOSP的packageInstaller的實(shí)現(xiàn)宜咒;用戶可以撤銷預(yù)裝應(yīng)用的危險(xiǎn)權(quán)限惠赫;等等)。

無(wú)界面的應(yīng)用必須使用Activity來(lái)申請(qǐng)權(quán)限荧呐,或者與其他有相應(yīng)權(quán)限的應(yīng)用共享UID汉形。細(xì)節(jié)請(qǐng)參考Headless applications

權(quán)限遷移

在設(shè)備從Android5.x升級(jí)到Android6.0之后倍阐,授予應(yīng)用的權(quán)限仍然有效概疆。但是用戶可以在任何時(shí)候撤銷這些權(quán)限。

二 存儲(chǔ):

從Android6.0開始峰搪,Android支持移動(dòng)存儲(chǔ)(adoptable storage)岔冀,例如SD卡或者USB。移動(dòng)存儲(chǔ)可以像內(nèi)部存儲(chǔ)一樣加密和格式化概耻,可以存儲(chǔ)所有類型的應(yīng)用數(shù)據(jù)使套。

權(quán)限

是否訪問(wèn)外部存儲(chǔ)由各種Android權(quán)限保護(hù)。

從Android1.0開始鞠柄,寫訪問(wèn)需要 WRITE_EXTERNAL_STORAGE 權(quán)限侦高;

從Android4.0開始,讀訪問(wèn)需要READ_EXTERNAL_STORAGE厌杜。

從Android4.4開始奉呛,外部存儲(chǔ)設(shè)備上的文件,也能夠基于目錄結(jié)構(gòu)來(lái)合成(synthesized

)不同的DAC權(quán)限(owner夯尽,group瞧壮,mode)。這容許應(yīng)用能夠在外部存儲(chǔ)上管理一個(gè)包相關(guān)的目錄匙握,而無(wú)需WRITE_EXTERNAL_STORAGE

咆槽。例如, 應(yīng)用com.example.foo

可以自由訪問(wèn)外部存儲(chǔ)上的Android/data/com.example.foo/圈纺。這種合成權(quán)限是通過(guò)fuse守護(hù)來(lái)包裹原始存儲(chǔ)設(shè)備來(lái)完成的秦忿。

運(yùn)行時(shí)權(quán)限

Android6.0 引入了新的運(yùn)行時(shí)權(quán)限(runtime

permissions)模型,用于應(yīng)用在運(yùn)行中必要時(shí)申請(qǐng)權(quán)限蛾娶。由于新模型包含了READ/WRITE_EXTERNAL_STORAGE小渊,因此平臺(tái)需要在不殺死或者重啟運(yùn)行中的應(yīng)用的前提下,動(dòng)態(tài)對(duì)存儲(chǔ)訪問(wèn)授權(quán)茫叭。這是通過(guò)維護(hù)所有掛載的存儲(chǔ)設(shè)備的三個(gè)不同視圖來(lái)實(shí)現(xiàn)的:

/mnt/runtime/default 對(duì)所有的應(yīng)用、root名字空間(adb 和其他系統(tǒng)組件)可見半等,而無(wú)需任何權(quán)限

/mnt/runtime/read 對(duì)有READ_EXTERNAL_STORAGE權(quán)限的應(yīng)用可見揍愁。

/mnt/runtime/write 對(duì)有WRITE_EXTERNAL_STORAGE權(quán)限的應(yīng)用可見呐萨。

在zygote fork時(shí),我們?yōu)槊總€(gè)運(yùn)行中的應(yīng)用創(chuàng)建一個(gè)mount名字空間莽囤,在其中bind

mount合適的初始視圖谬擦。然后,當(dāng)被授予運(yùn)行時(shí)權(quán)限時(shí)朽缎,vold在運(yùn)行中的應(yīng)用的名字空間上惨远,通過(guò)bind

mount來(lái)更新視圖。注意话肖,如果權(quán)限被撤銷北秽,將意味著該應(yīng)用被kill。

系統(tǒng)使用setns()函數(shù)來(lái)實(shí)現(xiàn)上述特性最筒,這要求Linux3.8,不過(guò)Linux3.4加上補(bǔ)丁上也可以支持該功能贺氓。

在Android6.0中,第三方應(yīng)用不再被加入sdcard_r和sdcard_rw組中床蜘。相反辙培,通過(guò)給應(yīng)用掛載合適的運(yùn)行時(shí)視圖,實(shí)現(xiàn)對(duì)外部存儲(chǔ)的訪問(wèn)控制邢锯。同時(shí)扬蕊,使用everybodyGID來(lái)進(jìn)行的跨用戶交互被禁止了。

三 電源管理

Android6.0引入了下列特性來(lái)延長(zhǎng)電池使用時(shí)間:

App Standby(應(yīng)用待機(jī))丹擎。系統(tǒng)可以將未使用的應(yīng)用置為AppStandby模式尾抑,臨時(shí)限制這些應(yīng)用的網(wǎng)絡(luò)訪問(wèn),延遲同步和后臺(tái)job

Doze(瞌睡)鸥鹉。如果用戶在某個(gè)時(shí)間期限內(nèi)未主動(dòng)使用設(shè)備(屏幕關(guān)閉蛮穿、設(shè)備靜止),平臺(tái)將進(jìn)入深度睡眠狀態(tài)毁渗。因?yàn)樵撎匦砸笃脚_(tái)檢測(cè)靜止?fàn)顟B(tài)践磅,因此只有那些在Sensor HAL中實(shí)現(xiàn)了顯式移動(dòng)檢測(cè)API的設(shè)備中才有效。

Exemptions(豁免)灸异。預(yù)裝在設(shè)備上的系統(tǒng)應(yīng)用和云消息服務(wù)府适,默認(rèn)通常被豁免。應(yīng)用開發(fā)者可以要求其應(yīng)用使用這種設(shè)定肺樟。用戶也可以在設(shè)置中來(lái)豁免某些應(yīng)用檐春。

AppStandby

對(duì)于不常用的應(yīng)用的,AppStandby通過(guò)延遲后臺(tái)網(wǎng)絡(luò)活動(dòng)和任務(wù)來(lái)延長(zhǎng)電池壽命么伯。

生命周期

檢測(cè):當(dāng)設(shè)備不在充電時(shí)疟暖,且在某個(gè)特定時(shí)鐘期限內(nèi)和亮屏?xí)r長(zhǎng)中,用戶沒(méi)有直接或者間接啟動(dòng)該應(yīng)用。間接啟動(dòng)指的是:前臺(tái)應(yīng)用訪問(wèn)另外某個(gè)應(yīng)用的service俐巴。

App Standy模式中:平臺(tái)限制應(yīng)用一天內(nèi)最多訪問(wèn)一次網(wǎng)絡(luò)骨望,延遲其同步和其他后臺(tái)任務(wù)。

退出:當(dāng)應(yīng)用被激活欣舵,或者設(shè)備充電時(shí)擎鸠,平臺(tái)將該應(yīng)用移出App Standby狀態(tài)。

活動(dòng)的應(yīng)用不受AppStandby的影響缘圈×庸猓活動(dòng)的含義是:

進(jìn)程處于前臺(tái)(Activity 或者 前臺(tái)服務(wù),或者 由另外一個(gè)Activity 或 前臺(tái)服務(wù)所使用)糟把,例如 notification listener绢涡,輔助服務(wù),live 墻紙糊饱,等等

供用戶查看的通知垂寥,可以是鎖屏通知或者通知圖標(biāo)。

用戶顯式啟動(dòng)的應(yīng)用另锋。

Doze

支持Doze功能的要求:

設(shè)備在Sensor HAL實(shí)現(xiàn)了significant motion detector (SMD) APIs 滞项。

設(shè)備有某個(gè)云消息服務(wù),如 Google Cloud Messaging (GCM)夭坪。這使得設(shè)備可以知道何時(shí)從Doze中喚醒文判。

生命周期

檢測(cè):當(dāng)未在充電時(shí),且當(dāng)設(shè)備靜止且滅屏了一段時(shí)間室梅。

Doze期間: 平臺(tái)嘗試讓系統(tǒng)處于休眠狀態(tài)戏仓,周期性地進(jìn)入在一個(gè)維持窗口恢復(fù)正常操作,然后進(jìn)入更長(zhǎng)的休眠狀態(tài)亡鼠。在休眠狀態(tài):

禁止網(wǎng)絡(luò)訪問(wèn)

忽略 wakelock

延遲鬧鐘赏殃,除了鬧鈴 和使用setAndAllowWhileIdle()設(shè)置的鬧鐘,以榮喜日歷等應(yīng)用顯示事件提醒

停止WIFI掃描

同步和后臺(tái)任務(wù)被推遲到下一個(gè)維護(hù)窗口间涵。

接收短信和MMS消息的應(yīng)用位于一個(gè)臨時(shí)白名單仁热,這樣他們可以完成其工作。

退出

用戶交互

設(shè)備移動(dòng)

亮屏

鬧鈴

集成Doze

確認(rèn)設(shè)備支持 SENSOR_TYPE_SIGNIFICANT_MOTION .

確認(rèn)設(shè)備安裝了一種云消息服務(wù)勾哩。抗蠢??思劳?迅矛?

在配置文件overlay/frameworks/base/core/res/res/values/config.xml中,修改:bool name=”config_enableAutoPowerModes”>true

檢查裝應(yīng)用和服務(wù):

Use the new power-saving optimization guidelines. For details, see Testing and optimizing applications.

OR潜叛,Are exempted from Doze and App Standby. For details, see Exempting applications.

確認(rèn)必要的服務(wù)從Doze中豁免秽褒。

豁免應(yīng)用

你可以在設(shè)置中壶硅,手動(dòng)將某些應(yīng)用從Doze和AppStandby中排除。

失敗是什么震嫉?沒(méi)有什么森瘪,只是更走近成功一步;成功是什么票堵?就是走過(guò)了所有通向失敗的路,只剩下一條路逮栅,那就是成功的路悴势。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市措伐,隨后出現(xiàn)的幾起案子特纤,更是在濱河造成了極大的恐慌,老刑警劉巖侥加,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捧存,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡担败,警方通過(guò)查閱死者的電腦和手機(jī)昔穴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)提前,“玉大人吗货,你說(shuō)我怎么就攤上這事”吠” “怎么了宙搬?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)拓哺。 經(jīng)常有香客問(wèn)我勇垛,道長(zhǎng),這世上最難降的妖魔是什么士鸥? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任闲孤,我火速辦了婚禮,結(jié)果婚禮上础淤,老公的妹妹穿的比我還像新娘崭放。我一直安慰自己,他們只是感情好鸽凶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布币砂。 她就那樣靜靜地躺著,像睡著了一般玻侥。 火紅的嫁衣襯著肌膚如雪决摧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音掌桩,去河邊找鬼边锁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛波岛,可吹牛的內(nèi)容都是我干的茅坛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼则拷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贡蓖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起煌茬,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤斥铺,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后坛善,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晾蜘,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年眠屎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剔交。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡组力,死狀恐怖省容,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情燎字,我是刑警寧澤腥椒,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站候衍,受9級(jí)特大地震影響笼蛛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛉鹿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一滨砍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧妖异,春花似錦惋戏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至棕孙,卻和暖如春舔亭,著一層夾襖步出監(jiān)牢的瞬間些膨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工钦铺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留订雾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓矛洞,卻偏偏與公主長(zhǎng)得像洼哎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缚甩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • 參考鏈接:leanote.com/blog/post/561658f938f41126b2000298 本文描述了...
    灬黑客灬閱讀 410評(píng)論 0 0
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,754評(píng)論 25 707
  • 九月擅威,天初涼,祖國(guó)的北疆冈钦,美麗的內(nèi)蒙古已經(jīng)開始步入秋季郊丛,早晚溫差逐漸拉大。?細(xì)密的秋雨后瞧筛,草原上的青草逐漸泛黃厉熟,其...
    微言微評(píng)閱讀 389評(píng)論 0 0
  • Mac OS 系統(tǒng)安裝盤制作和安裝 這個(gè)是制作10.11.5安裝盤的方式: 1、在 App Store 下載最新的...
    HHLM閱讀 927評(píng)論 0 1
  • 人之幸福较幌、生命之充實(shí)揍瑟,并不取決于物質(zhì)環(huán)境的優(yōu)劣,而取決于個(gè)人的自尊心和對(duì)生活細(xì)節(jié)的關(guān)注乍炉。一個(gè)人生活也好绢片,兩個(gè)人生活...
    海闊天空sw閱讀 154評(píng)論 0 0