Now in Android | 12 月刊 · 2019

做者 / Chet Haase, Android 開發技術推廣工程師html

歡迎你們來到 Now in Android 欄目,本欄目將專一於爲開發者們提供近期值得關注的 Android 開發熱點內容。java

Android Dev Summit 視頻回顧

咱們於近兩個月一直在連載關於 Android Dev Summit 的中文字幕視頻,包括《是時候遷移至 AndroidX 了》、《Android Studio 的進展與新功能》和《Fragment 的過去、如今和未來》等。也請同時關注咱們的 Bilibili 帳號查看更多谷歌開發技術視頻!android

手勢導航連載

咱們的同事 Chris Banes 爲各位開發者們發佈了一個「手勢導航」系列的文章,幫助你們處理 Android 10 中的手勢變動的問題:

手勢導航 (一) | 開啓全面屏體驗》介紹了將應用構建到全面屏設備,開啓 "邊到邊" 的全面屏體驗之旅。git

手勢導航 (二) | 處理視覺衝突》介紹如何處理與系統 UI 出現視覺重疊的問題,判斷安全的交互區域。github

手勢導航 (三) | 處理手勢衝突》介紹如何處理您的應用和 Android 10 中新引入的系統交互手勢之間的衝突。數據庫

手勢導航 (四) | 沉浸模式》介紹手勢交互和衝突在全屏應用 (系統欄也被隱藏) 下的狀況和注意事項。安全

無障礙文檔改進

文檔團隊最近迭代了一些無障礙 (Accessibility) 相關的文檔。其中請你們特別關注這兩篇: 《讓應用使用起來更沒有障礙》和《改進應用無障礙特性的原則》。尤爲須要你們留意的是關於標籤元素 (Label) 的章節,咱們在其中提供了大量的案例來進行重點講解。app

AndroidX 庫發佈狀況更新

近一個月內的一些主要組件更新到了一個里程碑版本,包括穩定版和發佈候選版:編輯器

穩定版發佈列表ide

Room 2.2.3 在 2.2.0 穩定版的基礎上作了一些 bug 修復。這裏回顧一下咱們在 10 月初發布的 Room 2.2.0 這個重要的正式版本中所包含的新內容:

  1. 預封裝的數據庫。如今您能夠在本身的 APK 資源中發佈一個預先填充過內容的數據庫,也能夠經由文件來加載數據庫內容。Florina Muntenescu 幾周前在一篇文章中介紹過這個功能。
  2. 更好的關係: SQLite 能夠處理多對多關係,但之前的 Room 就不行……如今能夠了 (咱們接下來會發布一篇介紹文章,敬請關注)。
  3. Flow: 爲了完善前一個發佈版本中對協程的使用,Room 如今支持將 Flow 做爲 DAO 返回類型。
  4. 速度更快的構建 (相信這正是你們想要的): 註解處理器的增量構建優點如今也被用在了 Room 上 。這個功能如今尚未默認啓用,但你們能夠在本身的構建中作一些設置來啓用這個功能,從而提高速度。

ViewPager2 1.0.0

相比較舊版的 ViewPager,ViewPager2 所作的改進有:

  • 支持 RTL (從右向左) 佈局
  • 支持豎直朝向佈局
  • 可靠的 Fragment 支持 (包括將變更信息傳遞給下層的 Fragment 集合)
  • 數據集變化動畫 (包括對 DiffUtil 的支持)

從舊版 ViewPager 遷移至 ViewPager2 十分輕鬆 (咱們儘量確保了 API 的延續性)。請參考遷移指南和咱們提供的示例應用

請閱讀 ViewPager2 使用指南以瞭解如何在 Fragment 頁面間完成滑動操做。

Transition 1.2.0

若是您的編譯目標是 API 29,此次更新對您來講就很是重要。Android 10 針對非 SDK 接口 (限制非公開 API 的使用) 作出的更改影響了一些方法,而這些方法影響到了 Transition 代碼庫的映射。更新後的代碼庫將使用咱們提供的新版公開方法。因此,若是您確有須要,請更新到這個版本。

同時發佈穩定版的組件庫有:

  • Annotation-Experimental 1.0.0
  • Autofill 1.0.0
  • Benchmark 1.0.0
  • Biometric 1.0.1
  • Browser 1.2.0
  • CoordinatorLayout 1.1.0
  • Enterprise 1.0.0
  • Exifinterface 1.1.0
  • Paging 2.1.1
  • Recyclerview 1.1.0
  • ViewPager2 1.0.0
  • Webkit 1.1.0。

上述提到的組件庫發佈相關內容,請參見這個連接瞭解更多: developer.android.google.cn/jetpack/and…

發佈候選 (Release Candidate) 列表

發佈候選的意思基本上是: "咱們認爲它已經進入穩定/終版狀態,不過在正式這麼宣佈以前,咱們會再觀察一陣子"。下面的這些代碼庫即將在它們的下個版本進入發佈候選列表:

  • Activity 1.1.0-rc03
  • Core 1.2.0-rc01
  • Fragment 1.2.0-rc04
  • Lifecycle 2.2.0-rc03
  • Lifecycle-ViewModel-Savedstate 1.0.0-rc03
  • Navigation 2.2.0-rc04
  • ShareTarget 1.0.0-rc01
  • Transition 1.3.0-rc02

關於全部 RC 版組件庫的發佈和更新,請參見這個連接瞭解更多: developer.android.google.cn/jetpack/and…

Jetpack Compose

△ Jetpack Compose 使用教程中的示例代碼
Jetpack Compose 在十月底的 Android Dev Summit 上公佈,不過它並不屬於典型的 alpha/beta/發佈候選/穩定版的範疇: 它屬於 "開發者預覽版" 。這是一種很是早期的版本,比 alpha 版還早,咱們的團隊還會不斷改進它。若是您如今就想一睹爲快,上手作作代碼實驗,請移步至 Jetpack Compose 教程,其中提供了許多內容幫您上手。此外,正如許多教程都會作的那樣,它也會爲您提供一些解釋說明和範例。

若是您想要上手操做更深刻的範例,請來試試咱們全新推出的 Codelab: Jetpack Compose Basics

學習課程和開發指南

Udacity 課程

△ 使用 Kotlin 進行 Android 進階開發
Udacity 現已推出全新的免費課程: 使用 Kotlin 進行 Android 進階開發。這些全新的內容由開發者關係團隊的多名成員講授 (我也會在課程裏爲你們講解屬性動畫,正如我自 2012 年以來在 DevBytes 中所作的同樣。生活頗有趣,是一個螺旋上升的過程不是嗎?)

這套課程涵蓋了 Android 開發過程當中的各類進階問題,包括通知、定製視圖、動畫、映射、測試,以及使用 Firebase UI 登陸等等。

Codelabs

△ 使用 Kotlin 進行 Android 進階開發的 Codelabs 列表
咱們還爲各位開發者們準備了一系列新的 Codelabs,組成了一個 "使用 Kotlin 進行 Android 進階開發" 的課程。這一系列的 Codelabs 安排與教學課程相似,相比較所有由講師主導課程,咱們但願可讓開發者們自行決定學習進度,並在這個基礎上與視頻教學內容配合學習。不管您是喜歡經過閱讀和代碼實驗來自行解決問題,仍是傾向於在講師的幫助下了解代碼,咱們均可以知足您的需求。您只須要: 選好方向,開始學習!

  • 課程主頁: 使用 Kotlin 進行 Android 進階開發:

codelabs.developers.google.com/advanced-an…

另外咱們還推出了使用 Dagger 進行依賴注入的 Codelab,也別忘了進來看看。

依賴注入的開發指南

咱們還製做了一個全新的指南,教您如何在 Android 中進行依賴注入 (Dependency Injection, DI)。爲了更加紮實地指導你們編寫 Android 應用,咱們推薦你們採用 Dagger 來進行 DI 操做。(請注意,咱們提供的指導和建議僅供參考,目的是向你們說明各類選擇的做用,並非非遵循不可的規則;最適合本身的代碼寫法仍是隻有本身最清楚。)

Android Studio 4.0 Canary

一般咱們並不會公開發表 Studio 的 canary 版本,由於大多數開發者想要的是更加穩定的終版。不過 4.0 版本中備受期待的功能實在太多,實在是值得拿出來一說。咱們已經在 Android 開發者峯會上屢次介紹過它 (包括 Android Studio 的新功能介紹和新設計工具介紹),這裏再多說幾句也無妨。

4.0 版本中的部分新功能包括:

  • 若是您想嘗試一下 Compose 的開發者預覽版本,就必須使用 4.0 版本。

△ Motion Editor 能夠編輯起始和結束狀態,以及在兩者之間切換時的動畫

  • Motion Editor: MotionLayout 的初步版本已經發布了一段時間,但只能靠 XML 編輯器來操做的話感受就很不方便。如今你們可使用專門爲它構建的設計工具來建立動畫了。
  • Java 8 代碼庫脫糖,包括對 java.util.stream 以及其餘 Java 8 API 的支持,以上支持均經過神奇的 D8 編譯器完成。

……注意上面這些只是部分新功能,遠不是所有!

請你們參閱發佈說明以瞭解各類功能的詳情。若是您想要試用這些新功能,請前往 Canary 頻道下載。

又到了追蹤聖誕老人的時節了!

年關將至,Santa Tracker 再度歸來!今年咱們的 " 追蹤聖誕老人" Android 應用與 網站、新遊戲等等內容進行了更豐富的整合。此次咱們也會照例在明年年初對應用進行開源,請關注 咱們的 GitHub,時刻了解最新進展。

謝謝你們對 Now in Android 欄目的支持,祝你們在 Android 開發路上一切順心!

點擊這裏提交產品反饋建議

相關文章
相關標籤/搜索