Android P功能優化

支持HDR VP9和HEIF

Android P內置了對HDR VP9和HEIF(heic)圖像編碼的支持。HEIF是蘋果在iOS11推出的一種高效壓縮格式,目前在IphoneX、Iphone 8、IPhone 8P上已經支持。該格式的壓縮率更高,但是編碼該格式需要硬件的支持,解碼並不需要。最新的支持庫中的HeifWriter支持從YUV字節緩衝區、Surface或是Bitmap類轉換爲HEIF格式的靜態圖像。

Android P新引入了MediaPlayer2,支持DataSourceDesc創建的播放列表。



一、神經網絡API 1.1

在前不久發佈的Android 8.1 (API level 27)上,Google首次在Android平臺上推出了神經網絡API,這意味着我們的Android機器智能化水平又提高了一大步。而本次Android P,進一步豐富了神經網絡的支持,不僅對之前的相關API進行了優化,並且提供了9個新的操作,爲具體的數據操作方面提供了更深入的支持。

 

二、改進表單自動填充

Android 8.0(API等級26)中引入了自動填充框架,這使得在應用中填寫表單變得更加容易。 Android P引入了自動填充服務並實現了多項改進,得以在填寫表單時進一步增強用戶體驗。

 

三、安全增強

Android P引入了許多新的安全功能,包括統一的指紋驗證對話框和敏感交易的高確信度的用戶確認。應用程序內的指紋認證UI也將會更加一致。


統一的指紋驗證對話框

如果第三方APP想要使用指紋,Android系統框架爲應用提供了指紋認證對話框,該功能可以提供統一的外觀和使用體驗,用戶使用起來更放心。如果您的程序還在使用FingerprintManager,現在改用FingerprintDialog替代吧,系統來提供對話框顯示。對了,在使用FingerprintDialog之前,別忘了調用hasSystemFeature()方法檢查手機設備是否支持指紋。


敏感交易的高確信度的用戶確認

Android P系統提供了受保護的確認API,藉助這組全新的API,應用可以使用ConfirmationDialog對話框向用戶提示,請求用戶批准一條簡短的聲明, 該聲明允許應用提醒用戶,即將完成一筆敏感交易,例如支付。


如果用戶接受聲明,應用將會收到一條key-hash的消息認證碼(HMAC),該簽名由TEE產生,以保護用於輸入和認證對話框的顯示。該簽名表示用於已經看到了聲明並同意了。


硬件安全模塊

Android P還提供了StrongBox Keymaster(強力沙盒祕鑰大師),一個存儲在硬件安全模塊的具體實現。在這個硬件安全模塊中有自己的CPU、安全存儲空間,真隨機數生成器,以及額外的機制抵禦應用被篡改或是未授權應用的惡意加載。當檢查存儲在StrongBox Keymaster中的密鑰時,系統通過可信執行環境(TEE)確認密鑰的完整性。爲了降低能耗,StrongBox支持了一組算法和不同長度的祕鑰:

● RSA 2048

● AES 128 and 256

● ECDSA P-256

● HMAC-SHA256 (支持8字節到64字節任意祕鑰長度)

● Triple DES 168


需要說明的是,這個機制需要硬件支持。


安全祕鑰導入KeyStore

使用新的ASN.1編碼的祕鑰格式添加導入祕鑰到Keystore,Android P提供了額外的密碼解密安全能力。之後KeyMaster就可以解密KeyStore存儲的祕鑰,這種工作方式使得祕鑰明文永遠不會出現在設備內存中。這項特性要求設備支持Keymaster 4。

四、支持客戶端側Android備份加密

Android P支持使用客戶端密鑰對Android備份進行加密。 這項隱私措施,需要設備的PIN、圖案密碼或標準密碼才能從用戶設備備份的數據中恢復數據。


五、Accessibility優化

爲了使App使用更便捷,Android在多個方面爲開發者提供了易用性的優化。


Navigation semantics

Android P在App的場景切換和操作上爲開發者提供了很多的優化點。


Accessibility pane titles

Android P中對Section提供了新的機制,被稱爲accessibility pane titles, Accessibility services能夠接收這些標題的變化,使得能夠對一些變化提供更加細粒度的信息。


指定Section的標題,可以通過android:accessibilityPaneTitle新屬性來設置,同樣運行時可以通過setAccessibilityPaneTitle()來設置標題。


頂部欄導航

Android P提供了新的頂部欄導航機制,通過設置View實例的android:accessibilityHeading屬性爲true,來顯示邏輯標題。通過這些標題,用戶就可以從一個標題導航到下一個標題,


羣組導航和輸出

針對屏幕閱讀器,Android P對View提供了新的屬性android:screenReaderFocusable代替原有的android:focusable來做標記,來解決在一些場景下爲了使屏幕閱讀器工作而設置View爲可獲取焦點的操作。這時,屏幕閱讀器需要同時關注android:screenReaderFocusable和android:focusable設置爲ture的View。


便捷操作

tooltips交互

Android P中,可以使用getTooltipText()去讀取tooltips的文本內容。使用新的ACTION_SHOW_TOOLTIP和ACTION_HIDE_TOOLTIP控制View顯示或者隱藏tooltips。


新全局交互

Android P在AccessibilityService類中提供了兩個全新的操作。開發者的Service可以通過GLOBAL_ACTION_LOCK_SCREEN幫助用戶鎖屏,通過GLOBAL_ACTION_TAKE_SCREENSHOT幫助用戶完成屏幕截圖。


窗體改變的一些細節

Android P優化了在App多窗體同步發生變化時的更新內容獲取。當出現TYPE_WINDOWS_CHANGED時,開發者可以通過getWindowChanges()API獲取窗體變化情況。


當多窗體發生改變時,每個窗體都會發出自己的事件,開發者可以通過getSource()獲取到事件窗體的根View。


如果你的App爲View定義了accessibility pane titles,UI更新時你的Service就能夠識別到相應的改動。當出現TYPE_WINDOW_STATE_CHANGED事件時,使用新方法 getContentChangeTypes()返回的類型,就能夠獲取到當前窗體的變化情況。例如,現在就能夠通過上述的機制,檢測到一個[v1] 窗格是否有了新標題,或者一個窗格的消失。


六、新的Rotation方案

旋轉屏幕,是一些遊戲、視頻等場景必要的操作,但有一些場景,用戶旋轉屏幕並不是爲了讓應用顯示從豎屏變成橫屏或反過來。爲了避免這種誤操作,Android P提供了新的機制,開發者可以指定屏幕不隨重力感應旋轉,而是用戶通過一個單獨的按鈕自行控制屏幕顯示轉向。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章