兩個月前,咱們剛推出了 Android Q 的 Beta 版本,在過去的兩個月咱們一直在聆聽你們的反饋和意見,今年 Google I/O 上咱們剛推出了 Beta 3。在此強烈建議你們加入 Beta 項目並在上面測試本身的應用,歡迎你們反饋對於 Android Q 的意見、建議和需求。安全
以上是今年 Android Q 更新的三個主題。今天主要跟你們聊聊隱私上的行爲變動、性能提升、以及藉助 Project Mainline 更容易地更新用戶的系統。機器學習
系統UI的變化對用戶來講最爲直觀,在系統UI的修改上咱們的原則是經過改進讓開發人員在開發時更加駕輕就熟。咱們但願用戶可以方便地調用他們最想使用的功能,即便是應用沒有打開的狀況下也能用到其中一些功能。在 Android Q 上,咱們對分享、通知和多任務作了不少優化。異步
咱們在分享界面作了重大改版工具
一是引用新的 API 提高性能;post
二是改進了界面的展現,明確能夠向哪些地方分享內容。性能
如今分享頁面被劃分爲三塊區域。第一塊是新加入的內容預覽區,包含分享內容的連接、圖標和標題,以及一個複製的按鈕。開發者能夠在此區域添加 metadata 實現富內容預覽。學習
上圖是富內容預覽的代碼實現。測試
第二塊是分享捷徑,這塊讓用戶在應用中更快捷地分享出去。優化
該塊最多可顯示8個分享目標,能夠是通信工具裏最常互動的聯繫人或羣組,也能夠是最常使用的工做目錄等。由於應用內的分享會比打開應用再選擇分享的方式更高效,因此分享捷徑的區域會展現在分享應用的上方,一樣 Sharing Cuts 的優先級會高於以前版本中所提供的Chooser Target Service;咱們還經過 Android ACTS 提供了向下兼容:設計
創造捷徑內分享的方式也很簡單。
在 Sharing Shortcu 中添加一個完整字段的 Person 類信息會對分享的展現以及通知裏的展現提升優先級。
第三塊分享目標應用區域會展現全部可分享的應用。
過去幾個版本中,咱們一直在努力幫助用戶梳理他們的通知欄,在過去的版本中咱們也推出了幫助用戶關閉通知的快捷鍵。
秉着幫助用戶減小打擾並關注重要通知,咱們在 Android Q 上對優先級作了優化。
圖中上半部分是高優先級的通知,下半部分爲弱優先級。系統會尊重用戶設立的優先級,但爲了不應用濫用高優先級的 API,系統也會進行預判斷。系統會將有關「人」的通知、通話信息、事件等給予更高的優先級。優先級最終是由用戶決定,用戶在 Q 中能夠更輕鬆地更改應用的優先級。
強烈建議你們給本身應用的通知加入圖上的這種選擇 Action。
在Android Q 中,系統爲 Messaging 類的通知自動生成一些自動回覆的提示,包括文本內容、URL 連接和應用中的 Deep Links(如上圖所示)。出於隱私考慮以上操做均在設備上完成,而非雲端。
若是你想要在系統提示的基礎上進行一些自定義,好比說你想要讓用戶能夠點擊該回復而且進行編輯,或者是你想要加入一些機器學習的模型去推測用戶會加入怎樣的回覆,那麼若是是這種狀況的話,咱們就有一些自定義的建議,如下是一些代碼實例。
首先是如何建立新通知,這能夠幫助應用在系統免通知打擾模式開啓時跟系統更好地配合。setAllowSysemGeneratedContenxtualActions 在 Android Q 上是默認開啓並設成 True 的。
這裏咱們給出了一個如何加入機器學習模型來推測用戶輸入內容的例子。咱們利用 FirebaseNaturalLanguage 裏的 getSmartReply 來得到實例,再調用 suggest 方法。這裏有一個異步的操做,Firebase 會在雲端協助處理並返回可能的回覆值,而後把這些回覆值加入通知可能出現的 choices 裏面。
在ndroid Q 中咱們引入了 Bubbles,它是在 System Notification 基礎上支持多任務的新功能,用來取代以前被濫用的 System Alert Window。System Alert Window 設計之初不是面向用戶的功能,有些開發者用 System Alert Window 作了一些很酷的 Feature ,在 Q 中咱們會對這個接口的使用作一些限制。 相較於以前用於視頻播放場景的畫中畫功能,Bubbles 的出現用來處理多任務模式下須要更多用戶交互的場景。 Bubbles 在 Q 的預覽版中是默認開啓,但在最終版本中它將變成 Developer Only 的選項,須要在開發者選項中手動打開。
在收起態中,Bubbles 將會是一個圓形圖標,用一塊圓形的區域展現新收到的消息;當用戶點擊時會展開,展開一個完整的界面。開發者構建 Bubbles 須要三步:首先構建一個用於展現 Bubbles 的 Activity,而後構建好 Bubbles 的 Metadata 並添加到 notification 中,最後再發送這個 Notification。
如下是建立 Bubbles 的代碼。
首先須要在應用的 Mainfest 文件中設置 Activitity 的屬性。allowEmbedded、documentLaunchMode 和 resizeableActivity 是三個必須要有的屬性,不然不會按照 Bubbles 的形式將 Notification 展現出來。
首先要設置 Activity 的 Pending intent,而後是設置圖標。
建立好 Bubble 的 Metadata 以後,只須要那行高亮的代碼將其關聯到 Notification 當中,使用 Notification Manager 的接口把 Bubble 展現出來。
若你的 Notification 不屬於這三種場景,就不會被以 Bubbles 的形式展現出來。若是你的應用是實時通信類的應用,你須要使用 Message Style 內嵌的回覆方式,並關聯到 Notification 中;語音通話類應用要使用 Category Call,標註 person 字段,並要有前臺的服務。
過去的兩年中有愈來愈多的 Android 開發者使用了 Kotlin 語言。
Camera360團隊將他們使用 Kotlin 的新的與咱們進行了分享。
Google 如今推行 Kotlin-First,不只第一方應用優先使用 Kotlin,Jetpack 庫現已支持 Coroutine。此外咱們仍會支持 Java 和 C 語言在 Android 上的開發。
爲了幫助開發者更快上手 Kotlin,咱們和 JetBrains 聯合推動全球性社區自發的 Kotlin 學習活動。對 Kotlin 學習感興趣的可聯繫當地 GDG。
相較於 TLS 1.2,1.3最大的優化在於速度上的提高,更快創建安全連接。
注意,UUID 不會隨着應用的從新安裝或用戶的清除空間而保存。
使用該 API,容許其餘應用聆聽該應用的音頻輸出。
只有用戶容許時纔可以使用。
包括用戶指紋、人臉識別、虹膜識別等生物特徵。Q 在 API 的基礎上進行了一些優化。
在調用前,先使用BiometricManager.canAuthenticate來判斷是否能夠進行生物識別登陸操做。
建議你們在添加生物識別的同時,加入備選機制(如密碼、圖案、PIN碼等)
列出來的一些目前已有的改進。
提供了摺疊屏手機的屏幕模擬器,目前可建立7.3英寸和8英寸的模擬器。
改變了開發者抱怨已久的 Instant Run 功能,將其重寫並改成 Apply Changes。
容許在 Android Studio 設置 heap size,從而在開發過程當中達到更好的性能。
以上就是關於 Android 更新的全部內容,謝謝你們!