Now in Android:13 万众瞩目的 Android 11!
Hello 各位同學(xué)好呀,我是 wanbo,今天我們繼續(xù)更新 Now in Android 第十三期的內(nèi)容。
Now in Android 是由 Chet Haase 在 Medium 上發(fā)布的一系列關(guān)于 Android 相關(guān)技術(shù)的文章,創(chuàng)辦這個(gè)系列的目的是為了,幫助廣大開發(fā)者可以更好的掌握 Android 的最新技術(shù)動(dòng)態(tài),最近 Android Team 重新設(shè)計(jì)了新系列的 **Now in Android 。**全新的 Now in Android 目前將會(huì)整合所有 Android 開發(fā)者需要掌握和學(xué)習(xí)的最新內(nèi)容,以視頻和文章的形式為大家統(tǒng)一介紹,并在文章中會(huì)附上相應(yīng)技術(shù)的官方鏈接地址,幫助大家了解詳細(xì)內(nèi)容。
我也會(huì)結(jié)合自己的理解,在本公眾號(hào)【Android|Kotlin】中為大家同步更新 Now in Android 的最新內(nèi)容,同時(shí)這也是目前 Now in Android 這個(gè)系列的最新一期,終于趕上官方的進(jìn)度了,感興趣的同學(xué)記得關(guān)注訂閱呀。
萬眾矚目的 Android 11
嘗鮮
截止到我寫文章的時(shí)候,Android 11 已經(jīng)發(fā)布第二個(gè)開發(fā)者預(yù)覽版了,所以這里我會(huì)為大家合并整理兩個(gè)版本的更新內(nèi)容。
如果你想嘗鮮 Android 11 的話,這里有兩種方式可以馬上體驗(yàn)到 Android 11.
需要注意的是,Android 11 目前才到開發(fā)者預(yù)覽版,所以有很多未知的 bug,主力機(jī)謹(jǐn)慎升級(jí)。
Android 11 鏡像下載地址:
https://developer.android.com/preview/download
新變化
作為開發(fā)者,每一次的 Android 大版本發(fā)布其實(shí)我們只需要關(guān)注兩點(diǎn)就可以:變更和新特性。變更指的是:某些功能及 API 相較之前發(fā)生了變化。新特性指的是:在新版中新加入的功能及 API。
變更會(huì)影響到我們 App 中現(xiàn)有的功能在 Android 11 系統(tǒng)是否能正常工作,相比新特性我們更需要重點(diǎn)關(guān)注變更這個(gè)點(diǎn)。而新特性則標(biāo)志著 Android 11 帶給我們可能的新的需求場(chǎng)景,所以變更的內(nèi)容是需要我們必須掌握的,而新特性可以先了解為主,當(dāng)有實(shí)際需求出現(xiàn)的時(shí)候,再去細(xì)化研究也不遲。
由于篇幅的問題,這里為大家簡單介紹幾個(gè)新變化:
關(guān)于更多 Android 11 開發(fā)者預(yù)覽版 1 和 2 的詳細(xì)內(nèi)容,可以查看以下來自谷歌開發(fā)者的兩片文章:
更上一層樓: Android 11 首個(gè)開發(fā)者預(yù)覽版到來
Android 11 開發(fā)者預(yù)覽版 2 現(xiàn)已發(fā)布
如何適配
這里根據(jù)官網(wǎng)的內(nèi)容,總結(jié)提供給你幾點(diǎn)建議:
優(yōu)先查看 Android 11 中的變更文檔,這包括行為變更和隱私權(quán)變更,同時(shí)還需要了解哪些變更是自動(dòng)生效,哪些是被動(dòng)生效的。自動(dòng)生效是指當(dāng)你的 App 即使沒有修改 targetSdkVersion 和 compileSdkVersion 適配 Android 11,它也會(huì)在 Android 11 的設(shè)備上自動(dòng)處理為變更后的邏輯。被動(dòng)生效是指只有你將 targetSdkVersion 和 compileSdkVersion 修改為 Android 11 之后,這些變更才會(huì)生效。
行為變更文檔地址:
https://developer.android.com/preview/behavior-changes-all
隱私權(quán)變更文檔地址:
https://developer.android.com/preview/privacy
你需要確保你的 App 與 Android 11 兼容,即在沒有修改 targetSdkVersion 和 compileSdkVersion 的情況下,在 Android 11 的設(shè)備上確保用戶可以正常使用 App 中的任何功能。因?yàn)樯弦稽c(diǎn)說了有些內(nèi)容是自動(dòng)生效的,所以這一步是你最先要處理的東西。
修改 targetSdkVersion 和 compileSdkVersion 到 Android 11 的對(duì)應(yīng)版本,完成被動(dòng)生效的適配內(nèi)容。
查看 Androd 11 中的新特性,為之后的新需求做到心里有數(shù)。
新特性文檔地址:
https://developer.android.com/preview/features
查看 Android 11 的版本說明,這其中會(huì)為開發(fā)者提供現(xiàn)有 Android 11 存在的已知 bug 方便我們遇到問題時(shí)更好的排查。
Android 11 發(fā)布時(shí)間線
上圖是有關(guān) Android 11 的發(fā)布時(shí)間線,其實(shí)不只是 Android 11,每一年的 Android 都是按照這個(gè)時(shí)間線發(fā)布的。
- 2月-4月開發(fā)者預(yù)覽版本的公布,通常會(huì)迭代 3 個(gè)版本
- 5月-6月通常會(huì)在 Google I/O 上面發(fā)布首個(gè) Beta 版本,雖然現(xiàn)在 Google I/O 線下會(huì)議已經(jīng)取消了,但是應(yīng)該還是會(huì)轉(zhuǎn)移到線上進(jìn)行。
- 在 Q3 也就是第三季度,會(huì)發(fā)布最后一個(gè) Beta 3 版本,這個(gè)版本通常就是正式版,這時(shí) Google 會(huì)將代碼發(fā)布到 AOSP,供各手機(jī)廠商適配,當(dāng)然當(dāng) release 版本的發(fā)布才意味這 Google 正式開發(fā)完成,但 AOSP 上的代碼是一直在 Push 的,所以各手機(jī)廠商通常都會(huì)提前拿到代碼進(jìn)行適配。
最后在科普一下,AOSP 上的 Android 代碼才真正稱的上是【原生 Android】,而 Pixel 上運(yùn)行的 Android 系統(tǒng)和我們常用的 miui、flyme 一樣都屬于手機(jī)廠商二次開發(fā)的閉源系統(tǒng)。
Android Studio
Android Studio 3.6 正式版已經(jīng)發(fā)布了,想必你也已經(jīng)早早用上了。需要注意的是,Android Studio 4.0 進(jìn)入了 beta 測(cè)試階段,之前 alpha 存在的 Jetpack Compose 已經(jīng)被移除了,如果想體驗(yàn) Jetpack Compose 的同學(xué),需要下載最新的 4.1 版本。
全新的后臺(tái)位置指南
位置隱私可以說是 Android 眾多隱私權(quán)限中最重要的了,Android 團(tuán)隊(duì)希望 App 對(duì)位置的使用,對(duì)用戶而言是公開、透明、可控的。所以這次全新上線了,有關(guān)如何在后臺(tái)正確的使用位置的指南,并在指南中提供了最佳實(shí)踐方案。
文檔地址:
https://developer.android.com/training/location/background
Dynamic Feature Module Testing
上一期 Now in Android:12 你知道 Emoji 是怎么來的嗎?中為大家簡單介紹了一下 Dynamic Feature Module,其中還提到了新的 Navigation 支持自動(dòng)下載和安裝 Dynamic Feature Module,這期 Now in Android 中提到了一個(gè)新的問題
Dynamic Feature Module 的測(cè)試是非常麻煩的,需要通過 Play Store 才能完成測(cè)試。
所以這里為大家提供了新的本地 Dynamic Feature Module 測(cè)試指南,不過需要 Play Core 1.6.5 以上版本才支持本地測(cè)試。
老實(shí)說這個(gè)功能和我們其實(shí)關(guān)系不大,就算有在 Play Store 上架的 App ,但是支持 Dynamic Feature Module 的應(yīng)該也沒有幾個(gè)吧?有的話歡迎評(píng)論區(qū)告訴我。
文檔地址:
https://developer.android.com/guide/app-bundle/test/testing-fakesplitinstallmanager
Material Motion
Android 中有設(shè)計(jì)好看的 App 很少,有設(shè)計(jì)好看而且交互也很好的那就更少了,當(dāng)然這也與 Android 本身的機(jī)制有一些關(guān)系。但是在最近的幾個(gè)版本中,無論是 Andorid API 還是 Android Studio 都在為能作出更好的動(dòng)畫和交互而作出努力。
Material Design 團(tuán)隊(duì)推出了一個(gè) UI 過渡指南,同時(shí)其 Material Design Components library 中的控件在 1.2.0-alpha05 支持了一些常見的過渡效果。
如果你感興趣,歡迎查看一下
https://material.io/design/motion/the-motion-system.html#shared-axis
文章推薦
Android Styling
在上期中為大家推薦了 Android Styling 系列中的一期文章:Theme vs Style,不知道你們有沒有去看呢?在上期發(fā)布完成之后,我花一上午的時(shí)間把 Android Styling 這個(gè)系列的文章全部看了一遍,收獲特別多,讓我重新對(duì) Theme 和 Style 有了全新的認(rèn)知。
其中有介紹 Theme 和 Style 的應(yīng)用場(chǎng)景、Android 系統(tǒng)中內(nèi)置的公共樣式屬性、如何使用 Theme 輕松的完成品牌升級(jí)等等,內(nèi)容特別棒!
說到這,問你們一個(gè)小問題,用來自檢一下你對(duì) Android 中樣式相關(guān)的內(nèi)容是否系統(tǒng)性的了解過。
你知道 ?android:attr/XXX 和 ?attr/XXX 區(qū)別在哪里嗎?
如果你不知道,歡迎去閱讀 Android Styling 這一系列的文章,幫你全部了解 Android 中樣式相關(guān)的知識(shí)。
https://medium.com/@crafty
Use view binding to replace findViewById
之前的文章中介紹了 Android Studio 3.6 中新增加的 View binding,用來替代繁瑣的 findViewById(),今天這里再分享一個(gè)來自 Sean McQuillan 的文章,在這篇文章中為大家介紹了 View binding 內(nèi)部是如何實(shí)現(xiàn)的。
https://medium.com/androiddevelopers/use-view-binding-to-replace-findviewbyid-c83942471fc
Using Biometric Prompt with CryptoObject
分享一篇 Isai Damier 的文章,展示了加密技術(shù)和生物識(shí)別技術(shù)如何協(xié)同工作來保護(hù)數(shù)據(jù),尤其是政府、金融、醫(yī)療保健和企業(yè)應(yīng)用。
https://medium.com/androiddevelopers/using-biometricprompt-with-cryptoobject-how-and-why-aace500ccdb7
代碼分享:Biometric Login
根據(jù)上面的文章,Isai Damier 還創(chuàng)建了 GitHub 倉庫,用于向大家介紹如何使用 AndroidX biometric library 將加密技術(shù)和生物識(shí)別技術(shù)集成到項(xiàng)目中。
https://github.com/android/security-samples/tree/biometriclogin/BiometricLoginKotlin
視頻分享
Vector Assets
第一個(gè)視頻來自 Nick Butcher 分享的有關(guān)在 Android 中使用 Vector Assets 的種種好處,例如如何使用 Vector Assets 來提供清晰的、可調(diào)整大小的和可動(dòng)畫化的圖像。
https://www.youtube.com/watch?v=fgbl34me3kk&feature=emb_logo
Sealed Classes
Florina Muntenescu 為大家介紹了如何使用 Kotlin 中的 Sealed Classes 來替代枚舉,并展示了 Sealed Classes 區(qū)別去枚舉的強(qiáng)大指出。
https://www.youtube.com/watch?v=OyIRuxjBORY&feature=emb_logo
AndroidX Releases
最后是一些有關(guān) AndroidX 的更新:Fragment 發(fā)布 1.2.2 版本,Media2 發(fā)布 1.0.3 版本、Room 發(fā)布 2.2.4 版本、Transition 發(fā)布 1.3.1 版本,看了更新日志,基本都是關(guān)于 bug 修復(fù)的。
完整更新日志在這里:
https://developer.android.com/jetpack/androidx/versions/stable-channel#february_5_2020
最后
至此,就是全新的 Now in Android : 13 的內(nèi)容,這一期為大家介紹了 Android 11 以及為如何適配 Android 11 提供了一些我個(gè)人的建議、分享了全新的后臺(tái)位置指南和本地測(cè)試 Dynamic Feature Module 的指南,介紹了 Material Design Components 有關(guān) UI 過渡效果的支持以及非常有用的幾篇文章和視頻供大家學(xué)習(xí)。
本公眾號(hào)也會(huì)開啟 Now in Android 的新系列更新,關(guān)注公眾號(hào)【Android |Kotlin】,在首頁點(diǎn)擊 新鮮事兒 → Now in Android ,就可以看到這一系列文章的全部內(nèi)容。
感謝你的閱讀。
總結(jié)
以上是生活随笔為你收集整理的Now in Android:13 万众瞩目的 Android 11!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win11怎么设置用独立显卡来运行游戏
- 下一篇: ipv4v6双栈技术_浅析从IPv4到I