Android 13新特性及適配開發(fā)指南
Part 01 功能更新
1.1 應(yīng)用圖標(biāo)支持跟隨主題
從Android 13開始,開發(fā)者可以選擇啟用帶主題的應(yīng)用圖標(biāo)。借助此功能,用戶可以調(diào)節(jié)受支持的 Android 啟動(dòng)器中應(yīng)用圖標(biāo)的色調(diào),以繼承所選壁紙和其他主題的配色。
在啟用該功能時(shí),目標(biāo)應(yīng)用必須提供自適應(yīng)圖標(biāo)和單色應(yīng)用圖標(biāo),并通過(guò)list中的 <adaptive-icon> 元素指向該單色應(yīng)用圖標(biāo)。如果用戶啟用了帶主題的應(yīng)用圖標(biāo),而啟動(dòng)器支持此功能,則系統(tǒng)將使用用戶選擇的壁紙和主題來(lái)確定色調(diào)顏色,然后該顏色將應(yīng)用于單色應(yīng)用圖標(biāo)。
圖1 帶主題的應(yīng)用圖標(biāo)示意圖
1.2 剪切板預(yù)覽
相信每個(gè)安卓用戶對(duì)剪切板功能都不陌生,用戶可以使用剪切板輕松復(fù)制界面上的內(nèi)容,方便進(jìn)行內(nèi)容的編譯和修改。但剪切板為用戶提供輕松功能的同時(shí)也帶來(lái)一些安全隱患:剪切板復(fù)制的內(nèi)容可能包含敏感信息(賬號(hào)、密碼、手機(jī)號(hào)等),從Android 13開始,將內(nèi)容添加到剪切板時(shí),系統(tǒng)會(huì)默認(rèn)執(zhí)行以下操作:
- 確定內(nèi)容已經(jīng)成功復(fù)制
- 提供所復(fù)制內(nèi)容的預(yù)覽
?
圖2 剪切板預(yù)覽功能
此外,Android 13還提供了脫敏功能,能夠讓用戶對(duì)剪切板中的敏感信息進(jìn)行隱藏。
1.3 啟動(dòng)畫面效率提高
在Android 13中,Splash Screen API中的動(dòng)畫啟動(dòng)畫面效率的帶了提高,系統(tǒng)會(huì)直接從AnimatedVectorDrawable推斷動(dòng)畫時(shí)長(zhǎng),在之前的版本里,開發(fā)者必須設(shè)置windowSplashScreenAnimationDuration。
使用windowSplashScreenBehavior 屬性可以更好地控制應(yīng)用是否始終在Android 13及更高版本中的啟動(dòng)畫面上顯示該圖標(biāo)。
Part 02 隱私權(quán)限變更
2.1 WIFI權(quán)限變更
在萬(wàn)物互聯(lián)的時(shí)代,WIFI作為各終端連接的媒介,應(yīng)該受到開發(fā)者的格外關(guān)注。在Android 13中,為了避免App過(guò)度索取權(quán)限,導(dǎo)致用戶隱私信息泄露,系統(tǒng)將WIFI權(quán)限與位置權(quán)限剝離,引入了全新的權(quán)限機(jī)制:NEARBY_WIFI_DEVICES。如果App只需調(diào)用WIFI相關(guān)API而不需調(diào)用與位置相關(guān)的API時(shí),那么開發(fā)者可以使用NEARBY_WIFI_DEVICES機(jī)制,流程如下圖:
圖3 Android 13 WIFI權(quán)限流程圖
2.2 通知權(quán)限
1、 通知欄消息一直是App與用戶進(jìn)行信息傳遞的主要途徑。在Android 13中,新增了通知運(yùn)行時(shí)權(quán)限POST_NOTIFICATIONS,在之前版本,如果要向用戶推送通知消息,App只需使用NotificationManager,該情況下,當(dāng)App需要發(fā)送通知時(shí),系統(tǒng)會(huì)自動(dòng)彈出授權(quán)彈窗,如果用戶點(diǎn)擊“允許”,App即可正常推送通知;點(diǎn)擊“不允許”則無(wú)法發(fā)送通知。在Android 13版本下,開發(fā)者需要在AndroidManifest.xml中聲明POST_NOTIFICATIONS權(quán)限,還需要在使用通知欄推送功能時(shí)在代碼中申請(qǐng)運(yùn)行時(shí)權(quán)限。這對(duì)于新安裝的App,通知默認(rèn)處于關(guān)閉狀態(tài),在請(qǐng)求新的權(quán)限并得到“允許”之前,App都無(wú)法發(fā)送通知。為減少更新對(duì)現(xiàn)有應(yīng)用的影響,當(dāng)升級(jí)到Android 13后,系統(tǒng)會(huì)自動(dòng)向符合條件的現(xiàn)有應(yīng)用自動(dòng)授予相應(yīng)權(quán)限。該變更能夠有效提升用戶的使用體驗(yàn),減少被無(wú)效通知頻繁騷擾的情況。
2.3 精準(zhǔn)的鬧鐘權(quán)限
為減少用戶被權(quán)限通知頻繁地打擾,Android 13引入了全新鬧鐘權(quán)限USE_EXACT_ALARM,當(dāng)用戶在日程管理、時(shí)間管理相關(guān)應(yīng)用申請(qǐng)了該權(quán)限時(shí),那么便不能在設(shè)置界面關(guān)閉該權(quán)限。該變更能夠?yàn)橛脩魩?lái)一些便利,但也會(huì)造成一定的權(quán)限濫用,因此谷歌設(shè)置了嚴(yán)格的審核機(jī)制,除了鬧鐘、計(jì)時(shí)器和日歷等相關(guān)App之外,其他應(yīng)用如果使用了USE_EXACT_ALARM權(quán)限會(huì)被嚴(yán)格禁止上架應(yīng)用市場(chǎng)商城。
Part 03 平板電腦和大屏設(shè)備的支持
3.1 可編輯的著色器
從Android 13開始,系統(tǒng)支持可編程 RuntimeShader 對(duì)象,其行為通過(guò)Android圖形著色語(yǔ)言定義。通過(guò)這些著色器,開發(fā)者可以輕松實(shí)現(xiàn)漣漪效果、模糊效果和拉伸滾頂,為用戶帶來(lái)更豐富的視覺體驗(yàn)。
3.2 大屏多窗口顯示
在Android 13中,用戶可以在一個(gè)大屏幕上顯示多個(gè)Activity,從而充分利用大屏幕的顯示空間。開發(fā)者需要通過(guò)創(chuàng)建XML配置文件或調(diào)用Jetpack WindowManager API來(lái)確定多個(gè)Activity在同個(gè)大屏上的具體排布方式,如以切割任務(wù)窗口來(lái)顯示兩個(gè)Activity。
圖4 切割窗口示意圖
3.3 更好的兼容性支持
對(duì)于尚未配置大屏窗口的App,Android 13也提供了更恰當(dāng)?shù)募嫒菪灾С?,讓這些App有著更協(xié)調(diào)的UI顯示效果,給與客戶更良好的視覺體驗(yàn)。
圖5 大屏兼容性適配示意圖
Part 04 總結(jié)
通過(guò)近兩年的Android系統(tǒng)更新可以看到,Google不再對(duì)Android系統(tǒng)進(jìn)行大刀闊斧的改動(dòng),而是在用戶體驗(yàn)、隱私保護(hù)、系統(tǒng)安全、組件優(yōu)化等方面大做文章。一句話總結(jié),Android 13新增功能小而美、隱私權(quán)限更細(xì)致、大屏適配更和諧。
圖片說(shuō)明
圖片1、2、3、5來(lái)源于Android 13官網(wǎng)
(https://developer.android.google.cn/about/versions/13)