Android
Android P
今年是Android發布十周年的日子,Android P Beate 版如期在大會上發布,Android P更加注重人工智能方面的探索,此版本更新有以下三個方面:Intelligence(智力)、Simplicity(簡單)、Digital wellbeing(數字健康)。
更新支持:首批支持升級到P的設備有9家:Google、Nokia、vivo、oneplus、小米、Sony、Essential(Android之父推出產品)、OPPO。
Intelligence
1. Adaptive Battery
電量優化。基于人工智能根據用戶習慣,減少30%的CPU喚醒,Android內置的機器學習系統,能知道你接下來何時使用某些軟件以合理分配電量。
2. Adapter Brightness
亮度調節優化。根據用戶習慣,在不同場景下調節不同亮度。
3. App Actions。
預測用戶使用應用,根據用戶習慣,在合適場景顯示用戶可能打開的應用。開發時,只需加入actions.xml到應用。
根據不同的使用習慣以及相關性高低,App Actions 呈現給用戶不一樣的內容,并且支持多種谷歌以及 Android 服務平臺,包括谷歌搜索應用 (Google Search App)、Play Store、谷歌智能助理 (Google Assistant) 以及啟動器 (launcher)。App Actions 很快就能和各位開發者見面。您可同時在應用中構建一個 Conversational Action 作為輔助用途,它適用于任何支持谷歌智能助理 (Google Assistant) 服務的設備,如揚聲器和智能顯示器。這兩種類型的 Actions 均使用一套共用的意圖類別。
4. slices
讓開發者定義用戶界面的交互式片段。(在你搜索時,會對你進行推薦,如:搜索職位,給你推薦找工作App;在你搜索地址時,將在該地的照片推送給你。)
Slices 提供一系列 UI 模板,幫助開發者在應用中呈現豐富的動態交互式內容,支持所有 Android 系統以及提供谷歌服務的平臺。Slices 可以展現實時數據、滾動內容、內聯行為以及與您應用相連的深度鏈接,因此從播放音樂到檢查預約更新,用戶可以做任何事情。Slices 也可以包括像是開關或者滑塊一類的互動控制元素。從今天開始創建您的 Slices,很快它們就會呈現在用戶眼前。
5. ML Kit
通過Firebase提供的API。ML Kit是建立在TensorFlow Kite基礎上,并針對移動設備進行優化的庫。
Simplicity
1. New System Navigation
新的系統導航欄,引入了全新的手勢操作。取消了傳統三大按鍵中的多任務鍵,直接按住 home 鍵上滑打開多任務,然后 home 鍵按鈕變成了類似 iPhone X 的小白條,左右滑動可以來回查看多個應用,底部一欄就是建議你使用的應用。在多任務狀態下再次上滑可以看到所有應用。
- Quick settings。
- Volume controls。
- Betters screenshots。
- Rotation confirmation。
- Crash dialogs。
- Notifications。
- Status bar。
- Work profiles。
Digital wellbeing
- Dashboard。顯示你使用應用的詳細統計信息。
2. Updated Do Not Disturb
期間不顯示電話、短信、通知,可以通過設置接收重要人信息。
- App timer。
- Wind down。
Android開發生態
Jetpack
在Keynote上發布了 Android Jetpack,幫助提升應用開發速度。作為下一代的 Android 組件,Android Jetpack 將支持庫向后兼容和立即更新的優點融合到更多組件中,讓開發者能夠快速輕松地開發出擁有卓越性能的高質量應用。簡單來說就是官方的組件、工具和架構庫。此庫完美兼容Kotlin,主要有4個模塊構成:WorkManager、Paging、Navigation 及 Slices。
Navigation——導航組件
Navigation是 單Activity多Fragment 開發模式下的頁面跳轉的導航組件。官方文檔介紹如下:
利用導航組件對 Fragment 的原生支持,可以獲得架構組件的所有好處(例如生命周期和 ViewModel),同時讓此組件為您處理 FragmentTransaction 的復雜性。此外,Navigation組件還可以讓您聲明我們為您處理的轉場。它可以自動構建正確的“向上”和“返回”行為,包含對深層鏈接的完整支持,并提供了幫助程序,用于將導航關聯到合適的 UI 小部件,例如抽屜式導航欄和底部導航。
和其他的Fragment管理庫(如Fragmentation)相比,Navigation優勢明顯:
- 專業的 開發/維護 和 測試 團隊,保證代碼的質量及穩定性;
- AndroidStudio IDE專屬支持,包括可視化的編輯界面,和通過鼠標拖拽對Fragment的導航管理功能;
- 對ViewModel,Lifecycle等 官方架構組件 的支持;
- 官方針對遷移至Navigation 的流程提供了詳細的文檔;
- 更多Android開發者會使用它,您可以在網上獲取非常詳盡的學習資料;
- Google爸爸官方出品,無腦支持。
Paging——分頁組件
官方對于 Paging 的相關介紹:
應用中呈現的數據可能非常大,這就導致加載的開銷比較大,因此,避免一次下載、創建或呈現過多數據就顯得非常重要。 分頁組件 讓您可以輕松加載和呈現大型數據集,同時在您的 RecyclerView 中進行 快速、無限滾動。它可以從本地存儲和/或網絡加載 分頁數據,并讓您能夠定義內容的加載方式。此組件原生支持 Room、LiveData 和 RxJava。
優勢也是相當明顯:
- 專業的 開發/維護 和 測試 團隊,保證代碼的質量及穩定性;
- 原生支持Room、LiveData 和 RxJava;
- 官方針對分頁庫 遷移至Paging 的流程提供了詳細的文檔;
- 更多Android開發者會使用它,您可以在網上獲取非常詳盡的學習資料;
- Google爸爸官方出品,無腦支持。
WorkManager
WorkManager是一個很新穎的庫,它的作用一句話概述就是:
管理一些要在后臺工作的任務, ——即使應用沒啟動也能保證任務能被執行。
還在為使用RxJava 和 AsyncTask 在后臺線程干活, 但是應用一被殺或被關閉, 這些工具就不執行了而苦惱嘛?WorkManager不是, 它在應用被殺, 甚至設備重啟后仍能保證你安排給他的任務能得到執行。
- 易于安排:您可以在 特定條件 下啟動任務,同時,任務之間可以相互鏈接,這意味著,你可以將任務 串行 或者 并行 執行。
- 易于取消:您擁有對任務執行的控制權,通過API您可以輕松取消計劃任務。
- 易于查詢:您可以將任務進度展示在各種各樣的UI上。
- 支持所有Android版本!就像描述的一樣,各個Android版本下,WorkManager的API都是一致的。
Slices
Slices 提供了一系列 UI 模板,幫助開發者在應用中呈現豐富的動態交互式內容,支持所有 Android 系統以及提供谷歌服務的平臺 。
Kotlin
Play Store 中用 Kotlin 開發的應用在去年增至 6 倍,在高級開發者中有 35% 的人選擇使用 Kotlin 進行開發,而且這個數字正在逐月遞增。
- Google會繼續改善 Kotlin 在支持庫、工具、運行時 (runtime)、文檔以及培訓中的開發體驗。
- 今天發布的Jetpack中包含Android KTX力圖繼續優化Kotlin開發體驗。
- 繼續改善 Android Studio、Lint 支持以及 R8 優化中的工具對Kotlin的支持;
- 對 Android P 中的運行時 (Android Runtime) 進行微調,以此加快 Kotlin 編寫的應用的運行時間;
- 在 “谷歌開發者專家項目” 內為 Kotlin 專門設立了一個分塊;
- 發布 Kotlin 版本的《API 參考文檔》。
Android Studio
發布了Android Studio 3.2 金絲雀版,3.2主要更新如下:
- 引入了 Android Jetpack 支持工具,包括一款視覺導航編輯器以及全新代碼重構工具。
- 還包含了可用于創建全新的 Android App Bundle 格式的構建工具。
- 用于快速啟動 Android 模擬器的快照功能 (Snapshot)。
- 給下載及安裝包瘦身的新 R8 優化器。
- 以及用于測量應用對電池續航影響的新電量分析工具 (Energy Profiler)。
Android App Bundle
向 Android 引入新 app 模式。利用全新發布格式 —— Android App Bundle,大幅度減少應用體積。現在您只須在 Android Studio 中構建一個應用束 (app bundle),就可以將應用所需的全部內容 (適用于所有設備) 都涵蓋在內:所有語言、所有設備屏幕大小、所有硬件架構。接著,在用戶下載您的應用時,Google Play 的新動態交付只會傳輸適用于用戶設備的代碼和資源。人們在 Play Store 上看到的安裝包體積更小,下載速度也越快,同時也節省了設備存儲空間。
Android App Bundle 支持模塊化,因此開發者可以隨時按需交付功能,而不是僅限在安裝過程中。您可以在最新發布的 Android Studio 金絲雀版本中構造動態功能模塊。
Android 應用生態
Google Play
Play Console 的新功能和報告能夠幫助您提升應用性能并擴展業務。點擊閱讀有關控制面板、統計、Android vitals、發布前報告、用戶獲取報告以及訂閱面板的相關改進項。您也可以使用我們新的發布格式 —— Android App Bundle,上傳、測試以及發布應用。
Instant App
作為Google應對類似小程序類應用的方案,Instant App還在更新。好像影響還不大,期待繼續變好吧。國內現在影響不到,日后再學。
今天宣布所有游戲開發者都能構建即時應用 (instant app) Google Play Instant。現在 Google Play Instant 支持全球超過 10 億臺設備。
為了簡化即時應用的開發,我們將在這周發布對應的 Unity 游戲引擎插件服務,以及與 Cocos Creator 的 beta 版本集成。最近,我們開始測試 Google Play Instant 與 AdWords 的兼容性,讓人們能直接通過通用廣告活動 (Universal App campaigns) 覆蓋的所有渠道里的廣告直接試玩游戲。
Android Things
在大會前一天,Google正式發布了 AndroidThings 的1.0版本。Android Things 作為 Google 旗下的一款操作系統 (OS),能夠幫助開發者規模化開發和維護物聯網設備。
平臺現添加對 3 種新系統模組 (System-on-Modules 或 SoMs) 的支持,并承諾在接下來的三年中提供長期支持,同時讓開發者自行決定是否需要擴展支持,幫助他們更容易地設計出原型并推向市場。而同時推出的 Android Things 控制臺 (Android Things Console) 更是將簡化產品開發推向極致,幫助開發者定期獲取 Google 最新穩定性修復包以及安全升級包,從而實現從發布、管理到設備更新的無縫連接。
Android Wear
發布了新的 Wear OS的 開發者預覽版,為 Wear OS 帶來 Android P 平臺的心功能。主要進行了一下更新:
- 全新省電模式
- 更多功耗優化,包括藍牙連接斷開時關閉 Wi-Fi 以及 后臺活動與前臺服務限制
- 通知智能回復
AR Core
參考文獻
- 任玉剛寫作平臺 感謝剛哥寫作平臺的高質量文章
- Android cn 官網