O 2019: 助力開發者在Android和Play平臺打造最佳體驗


Google I/O 2019: 助力開發者在Android和Play平臺打造最佳體驗

北京時間 5 月 8 日 01:00am 起,2019 Google I/O 大會通過多種方式與全世界的 Android 開發者互動。相信 Shoreline Amphitheatre 露天劇場的 7,200 位現場嘉賓、收看大會直播的線上觀眾以及參與 GDG 社區 I/O 延展活動 的開發者都已經瞭解到我們為讓開發者更輕鬆地工作所做的努力。在 Google I/O 大會上,我們探討了兩大主題: 提升開發者的工作效率,以及在平臺中加強對用戶隱私和安全的保護。我們來詳細瞭解一下 I/O 大會目前已經爆出的與開發者相關的重磅新聞:

開發者的工作效率

今年,我們專注於一個簡單的想法,即我們想為您節省每天的工作時間。而實現這一目標的方法,就是改進您使用的每一項工具。

Kotlin

兩年前,我們宣佈 Android 平臺正式支持 Kotlin 語言。彼時我們的頂級開發者就已經對 Kotlin 愛不釋手,自那時起,其發展速度一直令人欣喜。現在有超過 50% 的專業開發者使用 Kotlin。近兩年,Kotlin 已躋身 Stack Overflow 上最受喜愛的語言,也是 GitHub 上貢獻者數量增長最快的語言之一。

現在,我們要宣佈另一項重大舉措: Android 開發將越來越向 Kotlin 傾斜。許多新增的 Jetpack API 和功能也將優先提供 Kotlin 版本。如果您正要啟動一個新項目,則應該使用 Kotlin 編寫,使用 Kotlin 編寫程序意味著更少的代碼。即,需要輸入、測試和維護的代碼數量更少。此外,在與 Jetbrains 和 Kotlin 基金會的合作期間,我們將在工具、文檔、培訓和活動方面持續投資,使 Kotlin 更加易學易用。其中就包括 Kotlin/Everywhere。這是一項新推出的全球系列活動,參與者可以詳細瞭解這門語言、新的 Udacity 課程等。

  • Kotlin
  • https://developer.android.google.cn/kotlin/
  • Kotlin/Everywhere
  • https://events.withgoogle.com/kotlin-everywhere/
  • Udacity
  • https://cn.udacity.com/course/developing-android-apps-with-kotlin--ud9012

Android Jetpack

去年,我們曾推出 Android 的 API Android Jetpack,旨在提升 Android 開發的速度,並讓開發者能夠使用更少的代碼,更輕鬆地編寫出高質量的應用。隨著我們繼續簡化更多開發者日常面臨的挑戰,在我們前 1000 名的應用中,超過 80% 的應用已經在使用 Jetpack。本次,我們要發佈 6 個全新 Jetpack 庫 (alpha 版),並將 5 個庫的質量提升至測試版水平。以下是 3 個亮點:

CameraX

各位開發者曾告訴我們很難在各種不同的 Android 設備上高效工作。CameraX 是一個全新 Android Jetpack 開源庫,可以降低相機應用開發的難度,提升開發速度。此開源庫可以在不同設備上提供始終如一的相機體驗,使您不再需要維護設備的具體配置。您可以在參與項目的製造商設備上找到對尖端軟硬件功能 (例如光學變焦、背景虛化、HDR,以及夜間模式) 的支持。CameraX 適用於近 90% 的設備,並向後兼容 Android L。此外,CameraX 還有一個簡單的遷移路徑,方便用戶從舊版相機 API 遷移,並且還可以與 camera2 API 無縫對接。Android 設備上 70% 的相機使用量來自安裝的應用,而非設備內置的相機應用,因此我們非常高興能夠降低相機應用的開發難度。

架構組件

我們根據各位開發者的反饋做出一些補充和改進。開發者們曾告訴我們在 Android 平臺上實現併發非常困難。因此,我們將為您帶來含有協程的 LiveData 和 Lifecycles,以支持常見的一次性異步操作。使用帶有 SavedState 模塊的 ViewModel,您可以消除樣本代碼,並通過簡單的 API 獲得使用 ViewModel 和 SavedState 的雙重益處,進而直接從您的 ViewModel 中保存和檢索數據。如果錯過這一版也沒有關係,我們在幾個月前剛剛發佈了 WorkManager (後臺處理) 和 Navigation (在應用屏幕間導航) 的穩定版。

Jetpack Compose

有許多開發者一直敦促我們提供適用於 Android 平臺的現代反應式風格界面工具包,並且可以利用 Kotlin,並能夠與平臺,以及現有的全部代碼無縫集成。我們要介紹該項目團隊在 Jetpack Compose 方面所作的工作。Jetpack Compose 旨在將反應式編程模型與 Kotlin 的簡潔性和易用性相結合,從而簡化界面開發。Jetpack Compose 與現有的界面工具包兼容,因此您可以通過直接訪問所有 Android 和 Jetpack API 來混合和匹配視圖。此外,工具包還對定義界面組件具有完全聲明性。而且,此工具包的設計從一開始便已考慮到材料、動畫和工具。從今日起,我們將以公開形式開發此工具包,您可以在 AOSP 上找到所有代碼。

  • Android Jetpack
  • https://developer.android.google.cn/jetpack
  • CameraX
  • https://developer.android.google.cn/training/camerax
  • 帶有 SavedState 模塊的 ViewModel
  • https://developer.android.google.cn/topic/libraries/architecture/viewmodel-savedstate
  • WorkManager
  • https://android-developers.googleblog.com/2019/03/android-jetpack-workmanager-stable.html
  • Navigation
  • https://android-developers.googleblog.com/2019/03/android-jetpack-navigation-stable.html

Android Studio

本次大會上,我們發佈了 Android Studio 3.5 測試版。幾個月來,該項目團隊與 Project Marble 團隊合作,專注於優化和改進日常開發流程。Android Studio 3.5 涵蓋針對大型項目的更優 IDE 內存管理、更低的輸入延遲、Lint 改進、CPU 使用優化、佈局編輯器改進、模擬器改進、版本號變更,以及對 Instant Run 的完全重寫。Instant Run 現稱為 Apply Changes,能夠可靠地提升在設備上查看代碼更改的能力,還能對 400 多種高優先級的漏洞予以修復。

  • Android Studio 3.5
  • https://developer.android.google.cn/studio/preview
  • Lint 改進
  • https://medium.com/androiddevelopers/android-studio-project-marble-lint-performance-8baedbff2521
  • 佈局編輯器改進
  • https://medium.com/androiddevelopers/android-studio-project-marble-layout-editor-608b6704957a
  • 模擬器改進
  • https://medium.com/androiddevelopers/android-emulator-project-marble-improvements-1175a934941e
  • 版本號變更
  • https://medium.com/androiddevelopers/improving-build-speed-in-android-studio-3e1425274837
  • Apply Changes
  • https://medium.com/androiddevelopers/android-studio-project-marble-apply-changes-e3048662e8cd

Android 規模的機器學習

在 Android Q 中,我們已對 Android 神經網絡 API (NNAPI) 做出重大改進。首先,我們將支持的運算符數量從 38 增加到 90。現在,NNAPI 無需更改即可加速絕大多數模型。我們還為高級用戶引入自檢 API,以幫助他們完全控制負責加速的硬件 (例如,DSP 與 NPU)。此外,我們還與硬件供應商緊密合作,以顯著提升性能 (降低延遲時間和能耗)。通過與 MediaTek 合作,我們能夠在 Helio P90 上將 ML Kit 人臉檢測 API 的運行速度提升 9 倍。與 Qualcomm 的合作使我們能夠提升 Google Lens OCR 在 Snapdragon 855 AI Engine 上的運行速度,並在提速 3 倍的同時將能耗降低 370%。

  • ML Kit
  • https://developers.google.cn/ml-kit/

動態功能和應用內更新

去年,我們曾推出能夠幫助您縮減應用大小並增加安裝量的 Android App Bundle。自那時起,我們已經看到 80,000 多個應用軟件包進入生產狀態,而應用大小則平均縮減 20%。本次大會我們要發佈許多內容,以幫助您縮減應用大小,並進一步提升向用戶發佈更新的速度。我們非常高興地介紹正在從測試版過渡到穩定版的動態功能模塊。藉助動態功能模塊,您可以根據設備功能、國家/地區等條件選擇應用要提供的功能,從而進一步縮減應用大小。您甚至可以按需提供模塊,而不用在安裝時統一添加。今天,我們還要將應用內更新功能從測試版轉為穩定版。這種動態更新應用的能力正是您長久以來希望獲得的功能。假設您的應用中存在一個嚴重漏洞,您需要立刻消除,而且不希望等到用戶在 Play Store 發現應用更新時才能消除。現在您就可以即刻消除漏洞。

  • Android App Bundle
  • https://developer.android.google.cn/platform/technology/app-bundle
  • 動態功能模塊
  • https://developer.android.google.cn/guide/app-bundle/playcore
  • 應用內更新
  • https://developer.android.google.cn/guide/app-bundle/in-app-updates

Android Q 的用戶隱私與安全

作為開發者社區,我們所有人都非常重視妥善處理用戶的隱私與安全問題。這關係到在構建能夠為開發者提供強大功能的平臺的同時,確保用戶的安全和隱私得到保護。幾個月前,我們推出的 Android Q 測試版具備 50 多項功能以及圍繞用戶隱私與安全做出的改進。這些 Android Q 的變更可為用戶提供更多的透明度和可控性。

一如既往,我們正努力完成有助於開發者採用新版本的所有工作。我們知道您有自己想要構建的功能。這也正是為什麼我們非常努力地將這些 Android Q 變更對您的影響降到最低,並將您的反饋納入其中。我們提供儘可能長的通知期,並預先提供完整詳盡的技術信息,以幫助開發者輕鬆採用新版本。我們還想感謝社區的持續反饋。這對努力試圖妥善解決此問題的團隊而言是非常巨大的幫助。一個非常典型的示例是第 3 個測試版的存儲空間變更,您的反饋幫助我們在測試期間改進功能。長久以來,Android 致力於將所有重大變更對用戶隱私和安全的影響降至最低。我們矢志不渝,並將努力讓 Android 成為我們鍾愛的靈活開放平臺,方便開發者使用。


Google I/O 2019: 助力開發者在Android和Play平臺打造最佳體驗



分享到:


相關文章: