Android11超詳細(xì)適配攻略

近期,Google 發(fā)布了 Android 11的平臺(tái)穩(wěn)定版本雁歌。Android 11 將在確保用戶隱私安全的前提下宏浩,更好地讓用戶暢享最新科技。

下圖是 Android 11 發(fā)布整體流程的時(shí)間線:

image

個(gè)推深耕開發(fā)者領(lǐng)域靠瞎,一直緊跟行業(yè)發(fā)展趨勢(shì)比庄,對(duì)Android 11的有關(guān)更新展開了深入研究求妹。本文將從分區(qū)存儲(chǔ)、應(yīng)用包可見性佳窑、權(quán)限變化和新功能四個(gè)方面來(lái)談?wù)?Android 11 新特性制恍,以幫助開發(fā)者更快速、更便捷地上手適配Android新系統(tǒng)神凑。

正文

分區(qū)存儲(chǔ)

Android 10之前净神,外部存儲(chǔ)區(qū)的內(nèi)容主要以兩種形式存在,一種是由應(yīng)用的包名命名溉委,歸屬于特定應(yīng)用目錄下的內(nèi)容鹃唯,另一種是存儲(chǔ)在公共存儲(chǔ)區(qū)域的內(nèi)容。

在Android 10 中瓣喊,Google首次引入了分區(qū)存儲(chǔ)坡慌,將公共區(qū)域劃分成了不同的集合,并且在媒體文件和其他文檔之間建立了清楚的分割藻三。經(jīng)過(guò)劃分之后應(yīng)用不可以隨意訪問(wèn)外部存儲(chǔ)區(qū)中的文件洪橘,而只能訪問(wèn)媒體文件。如果想訪問(wèn)包含更多細(xì)節(jié)數(shù)據(jù)的其他文檔趴酣,應(yīng)用專門向用戶申請(qǐng)有關(guān)文檔的訪問(wèn)權(quán)限梨树。


image

分區(qū)存儲(chǔ)是需要以 Android 10 為目標(biāo)平臺(tái)的,系統(tǒng)默認(rèn)強(qiáng)制執(zhí)行岖寞。如果在 AndroidManifest 中添加了 requestLegacyExternalStorage=true 標(biāo)志,就可以不受此限制柜蜈。但是當(dāng) target API 更新為 30 后仗谆,系統(tǒng)會(huì)忽略該配置。

如果有數(shù)據(jù)需要遷移淑履,可以在 AndroidManifest 中將 preserveLegacyExternalStorage 屬性設(shè)為 true 隶垮,當(dāng)用戶升級(jí)到以 Android 11 為目標(biāo)平臺(tái)時(shí),這個(gè)配置就會(huì)生效秘噪。具體而言狸吞,這個(gè)配置在用戶重新安裝該應(yīng)用前都是有效的。

image

針對(duì)以 Android 11 為目標(biāo)平臺(tái)的應(yīng)用 (targetSdkVersion = 30) 指煎,WRITEEXTENRNALSTORAGE 和 WRITEMEDIASTORAGE 不再提供其他任何訪問(wèn)權(quán)限 蹋偏。

某些應(yīng)用的核心功能可能需要訪問(wèn)大量的文件,例如文件管理操作至壤、備份和恢復(fù)操作等等威始,此時(shí)就需要申請(qǐng) MANAGEEXTERNALSTORAGE 權(quán)限。我們可以通過(guò)使用 ACTIONMANAGEALLFILESACCESS_PERMISSION intent 操作將用戶引導(dǎo)至一個(gè)系統(tǒng)設(shè)置頁(yè)面像街,讓用戶為應(yīng)用授予所有文件的管理權(quán)限黎棠。

應(yīng)用包可見性

在 Android 11 之前晋渺,我們可以通過(guò) PackageManager.getInstalledPackages(0) 獲取其他所有應(yīng)用的包名等信息。

image

Android 11 為了增加安全性脓斩,更好地保護(hù)用戶的隱私木西,對(duì)應(yīng)用包的可見性做出了一些改動(dòng)。

當(dāng) targetSdkVersion 為 30 時(shí)随静,如果我們用getPackageInfo(“another.app”,0) 獲取其他應(yīng)用包信息時(shí) 户魏,會(huì)出現(xiàn) NameNotFoundException 的異常。

我們可以在 AndroidMainfest 中添加 <queries style="margin: 0px; padding: 0px;">來(lái)適配特定的使用場(chǎng)景:(該配置相當(dāng)于是添加應(yīng)用白名單)</queries>

  1. 已知想獲取的包名:
image

2. 查詢一組具有特定用途的應(yīng)用或與其交互:


image
  1. 對(duì)于一些特殊應(yīng)用挪挤,想要獲取所有包名信息:

權(quán)限變化

image

在 Android 11 中叼丑,系統(tǒng)為用戶的私人數(shù)據(jù)提供了更多可供選擇的授權(quán)方式,應(yīng)用也加大了后臺(tái)對(duì)位置的訪問(wèn)權(quán)限限制扛门。

對(duì)應(yīng)攝像頭鸠信、位置信息和麥克風(fēng)這幾個(gè)數(shù)據(jù)類型,用戶可以授予一次性的臨時(shí)訪問(wèn)權(quán)限论寨。

只要是在Android 11 上星立,該限制都會(huì)生效,如下圖:


image

這個(gè)一次性權(quán)限的生效周期指的是:

  1. 應(yīng)用 Activity 可見期間
  2. 應(yīng)用轉(zhuǎn)為后臺(tái)后的短時(shí)間內(nèi)
  3. 前臺(tái)服務(wù)存活期間
  4. 當(dāng)用戶撤銷單次授權(quán)后葬凳,應(yīng)用進(jìn)程退出绰垂,再次打開之后需要對(duì)應(yīng)用進(jìn)行重新授權(quán)期間

位置權(quán)限

在Android10 之前,我們通過(guò)ACCESSCOARRSELOCATION 或 ACCESSFINELOCATION(精確位置) 配置即可申請(qǐng)前后臺(tái)位置權(quán)限火焰。

Android 11將位置權(quán)限分為前臺(tái)和后臺(tái)兩種權(quán)限劲装。前文說(shuō)的主要是前臺(tái)權(quán)限,授權(quán)方式?jīng)]有變化昌简。應(yīng)用想要申請(qǐng)后臺(tái)權(quán)限占业,除了需要在清單文件中額外添加 ACCESSBACKGROUNDLOCATION 權(quán)限外,還需要應(yīng)用主動(dòng)引導(dǎo)用戶到指定頁(yè)面授權(quán)纯赎。


image

新功能

增加應(yīng)用退出原因功能

image

在Android 11之前谦疾,我們想要了解應(yīng)用退出的原因以及狀態(tài),都比較費(fèi)勁∪穑現(xiàn) Android 11 引入了 方法:ActivityManager.getHistoricalProcessExitReasons() 念恍,
可以讓我們清楚地了解到應(yīng)用退出的原因晚顷。

可變刷新率

image

應(yīng)用和游戲現(xiàn)在可以為其窗口設(shè)置首選幀率峰伙。大多數(shù) Android 設(shè)備以 60Hz 的刷新率更新屏幕,但是某些設(shè)備支持多種刷新率音同,例如 90Hz 和 60Hz词爬,并可在運(yùn)行時(shí)切換。在這些設(shè)備上权均,系統(tǒng)會(huì)基于首選幀率來(lái)為應(yīng)用選擇最佳刷新率顿膨。

結(jié)語(yǔ)

以上主要介紹了Android 11 對(duì)分區(qū)存儲(chǔ)锅锨、應(yīng)用包可見性和權(quán)限變化等模塊的更新介紹。Google 在力求讓用戶更加便捷地使用Android系統(tǒng)的基礎(chǔ)上恋沃,也希望用戶數(shù)據(jù)的隱私和安全性能在最大程度上受到保護(hù)必搞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市囊咏,隨后出現(xiàn)的幾起案子恕洲,更是在濱河造成了極大的恐慌,老刑警劉巖梅割,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霜第,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡户辞,警方通過(guò)查閱死者的電腦和手機(jī)泌类,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)底燎,“玉大人刃榨,你說(shuō)我怎么就攤上這事∷裕” “怎么了枢希?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)朱沃。 經(jīng)常有香客問(wèn)我苞轿,道長(zhǎng),這世上最難降的妖魔是什么为流? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任呕屎,我火速辦了婚禮,結(jié)果婚禮上敬察,老公的妹妹穿的比我還像新娘。我一直安慰自己尔当,他們只是感情好莲祸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著椭迎,像睡著了一般锐帜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上畜号,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天缴阎,我揣著相機(jī)與錄音,去河邊找鬼简软。 笑死蛮拔,一個(gè)胖子當(dāng)著我的面吹牛述暂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播建炫,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼畦韭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了肛跌?” 一聲冷哼從身側(cè)響起艺配,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎衍慎,沒想到半個(gè)月后转唉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡稳捆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年赠法,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片眷柔。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡期虾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驯嘱,到底是詐尸還是另有隱情镶苞,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布鞠评,位于F島的核電站茂蚓,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏剃幌。R本人自食惡果不足惜聋涨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望负乡。 院中可真熱鬧牍白,春花似錦、人聲如沸抖棘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)切省。三九已至最岗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間朝捆,已是汗流浹背般渡。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人驯用。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓脸秽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親晨汹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子豹储,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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