1. 程式人生 > >Android 7.0新特性,深入瞭解Android7.0

Android 7.0新特性,深入瞭解Android7.0

深度瞭解Android 7.0 ,你準備好了嗎?

導語

2016年8月22日,谷歌正式推送Android 7.0 Nougat(牛軋糖)正式版,首發推送了多款Nexus裝置。除了修復常規BUG,Android 7.0還新增了分屏、新的Notification、VR支援等新特性。

8月22日,谷歌正式推送Android 7.0 Nougat(牛軋糖)正式版,首發推送了多款Nexus裝置。除了修復常規BUG,Android 7.0還新增了分屏、新的Notification、VR支援等新特性。

8月22日,谷歌正式推送Android 7.0 Nougat(牛軋糖)正式版,他們還會三個月一次推送開發版,而曝光的訊息看,第一個開發版就是Android 7.1,Android N主要新增了以下的新特性和優化。

一、新的Notification

Android N 增加了許多新的notifications API,進行了重新的設計,引入了新的風格。
● 模板更新:開發者將能夠充分利用新模板,只需進行少量的程式碼調整。

● 訊息樣式自定義:可以自定義更多與使用MessageStyle類的通知相關的使用者介面標籤。可以配置訊息、會話標題和內容檢視。

● 捆綁通知:系統可以將訊息組合在一起(例如,按訊息主題)並顯示組。使用者可以適當地進行 Dismiss 或 Archive 等操作。

● 直接回復:對於實時通訊應用,Android 系統支援內聯回覆,以便使用者可以直接在通知介面中快速回復簡訊。

● 自定義檢視:兩個新的 API ,在通知中使用自定義檢視時可以充分利用系統裝飾元素,如通知標題和操作。
圖片描述
這裡寫圖片描述

二、多視窗支援(分屏模式)

執行 Android N 的手機和平板電腦上,使用者可以並排執行兩個應用,或者處於分屏模式時一個應用位於另一個應用之上。使用者可以通過拖動兩個應用之間的分隔線來調整應用。在Android TV 裝置上,應用可以將自身置於畫中畫模式,從而讓它們可以在使用者瀏覽或與其他應用互動時繼續顯示內容。
圖片描述
這裡寫圖片描述

三、Quick Settings Tile API

“快速設定”通常用於直接從通知欄顯示關鍵設定和操作,非常簡單。在 Android N中,已擴充套件“快速設定”的範圍,使其更加有用更方便。為額外的“快速設定”圖塊添加了更多空間,使用者可以通過向左或向右滑動跨分頁的顯示區域訪問它們。 還讓使用者可以控制顯示哪些“快速設定”圖塊以及顯示的位置 — 使用者可以通過拖放圖塊來新增或移動圖塊。

對於開發者,Android N 還添加了一個新的 API,從而可以定義自己的“快速設定”圖塊,使使用者可以輕鬆訪問應用中的關鍵控制元件和操作。
圖片描述
這裡寫圖片描述

四、快速的應用安裝路徑

Android 執行元件的 JIT 編譯器最實際的好處之一是應用安裝和系統更新的速度。即使在Android 6.0 中需要幾分鐘進行優化和安裝的大型應用,現在只需幾秒鐘就可以完成安裝。系統更新也變得更快,因為省去了優化步驟。

五、隨時隨地低電耗模式

在 Android N 中,低電耗模式又前進了一步,隨時隨地可以省電。只要螢幕關閉了一段時間,且裝置未插入電源,低電耗模式就會對應用使用熟悉的 CPU 和網路限制。這意味著使用者即使將裝置放入口袋裡也可以省電。

六、Project Svelte:後臺優化

Project Svelte在持續改善,以最大程度減少生態系統中一系列 Android 裝置中系統和應用使用的 RAM。在 Android N 中,Project Svelte 注重優化在後臺中執行應用的方式。

後臺處理是大多數應用的一個重要部分。處理得當,可實現非常棒的使用者體驗—即時、快速和情境感知。如果處理不得當,後臺處理會毫無必要地消耗 RAM和電池,同時影響其他應用的系統性能。

Android N 刪除了三項隱式廣播(CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO),以幫助優化記憶體使用和電量消耗。此項變更很有必要,因為隱式廣播會在後臺頻繁啟動已註冊偵聽這些廣播的應用,刪除這些廣播可以顯著提升裝置效能和使用者體驗。
因此單次網路切換即會導致所有應用被喚醒並同時處理此廣播。同理,應用可以註冊接收來自其他應用(例如相機)的隱式ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO 廣播。
當用戶使用相機應用拍攝照片時,這些應用即會被喚醒處理廣播。

為減緩這些問題,Android N應用了以下優化措施:

1、面向 Android N 開發的應用不會收到 CONNECTIVITY_ACTION 廣播,即使它們已有清單條目來請求接受這些事件的通知。在前臺執行的應用如果使用BroadcastReceiver請求接收通知,則仍可以在主執行緒中偵聽CONNECTIVITY_CHANGE。

2、 應用無法傳送或接收 ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO廣播。此項優化會影響所有應用,而不僅僅是面向 Android N 的應用。

未來的 Android 版本還可能會棄用其他隱式廣播以及未繫結的後臺服務。有鑑於此,應避免依賴在清單檔案中宣告的接收器來偵聽隱式廣播或刪除此依賴關係,以及避免或刪除對後臺服務的依賴關係。

Android 框架提供多種解決方案來降低這些隱式廣播或後臺服務的必要性。例如,JobScheduler API 提供了一個穩健可靠的機制來安排滿足指定條件(例如連入不按流量計費的網路)時所執行的網路操作。甚至可以使用JobScheduler來響應內容提供程式所發生的變更。

七、Data Saver

在移動裝置的整個生命週期,蜂窩資料計劃的成本通常會超出裝置本身的成本。對於許多使用者而言,蜂窩資料是他們想要節省的昂貴資源。

Android N推出了Data Saver模式,這是一項新的系統服務,有助於減少應用使用的蜂窩資料,無論是在漫遊,賬單週期即將結束,還是使用少量的預付費資料包。 Data Saver讓使用者可以控制應用使用蜂窩資料的方式,同時讓開發者開啟Data Saver時可以提供更多有效的服務。
圖片描述
這裡寫圖片描述

八、Vulkan API

Android N 將一項新的 3D 渲染 API Vulkan™ 整合到平臺中。就像 OpenGL™ ES 一樣,Vulkan是 3D 圖形和渲染的一項開放標準,由Khronos Group 維護。

Vulkan是完全從零開始設計,以最小化驅動器中的 CPU 開銷,並能讓應用更直接地控制 GPU 操作。Vulkan還允許多個執行緒同時執行工作,如命令緩衝區構建,以獲得更好的並行化。

Vulkan開發工具和庫都已捲入Android NDK。它們包括:

● 頭

● 驗證層(除錯庫)

● SPIR-V 著色程式編譯器

● SPIR-V 執行時著色器編譯庫

● Vulkan僅適用於已啟用Vulkan硬體的裝置上的應用,如 Nexus 5X、Nexus 6P 和Nexus Player。

九、號碼遮蔽

Android N 現在支援在平臺中進行號碼遮蔽,提供框架 API,讓服務提供商可以維護遮蔽的號碼列表。預設簡訊應用、預設手機應用和提供商應用可以對遮蔽的號碼列表進行讀取和寫入操作,其他應用則無法訪問此列表。

十、來電過濾

Android N 允許預設的手機應用過濾來電。手機應用執行此操作的方式

是實現新的CallScreeningService,該方法允許手機應用基於來電的

Call.Details執行大量操作,例如:

● 拒絕來電

● 不允許來電到達通話記錄

● 不向使用者顯示來電通知

十一、多區域設定支援、多語言

Android N 現在允許使用者在設定中選擇多個區域設定,以更好地支援雙語用例。應用可以使用新的 API 獲取使用者選擇的區域設定,然後為多區域設定使用者提供更成熟的使用者體驗,如以多個語言顯示搜尋結果,並且不會以使用者瞭解的語言翻譯網頁。

除多區域設定支援外,Android N 還擴充套件了使用者可用的語言範圍。它針對常用語言提供超過 25種的變體,如英語、西班牙語、法語和阿拉伯語。它還針對 100 多種新語言添加了部分支援。

應用可以通過呼叫 LocaleList.GetDefault() 獲取使用者設定的區域設定列表。 為支援擴充套件的區域設定數量,Android N 正在改變其解析資源的方式。

十二、新增的表情符號

Android N引入更多表情符號和表情符號相關功能,包括膚色表情符號和支援變數選擇符。如果應用支援表情符號,請遵循以下準則,以便能充分利用這些表情符號相關功能優勢。

● 在插入之前,檢查裝置是否包含表情符號。若要檢查系統字型中有哪些表情符號,使用hasGlyph(String) 方法。

● 檢查表情符號是否支援變數選擇符。變數選擇符能夠呈現一些彩色或黑白的表情符號。在移動裝置上,應用應呈現彩色的表情符號,而不是黑白的。但是,如果應用顯示嵌入在文字中的表情符號,那應使用黑白變數。若要確定表情符號是否有變數,使用變數選擇符。如需有關支援變數的字元的完整清單,請參閱變數的 Unicode 文件中的表情符號變數序列部分。

● 檢查表情符號是否支援膚色。Android N允許使用者按照他們的喜好修改表情符號呈現的膚色。鍵盤應用應為有多個膚色的表情符號提供視覺化的指示,並應允許使用者選擇他們喜歡的膚色。若要確定哪些系統表情符號有膚色修改器,使用hasGlyph(String) 方法。可以通過讀取Unicode 文件來確定哪些表情符號使用膚色。

十三、Android 中的 ICU4J API

ICU4J 是一個廣泛使用的開源 Java 庫集合,為軟體應用提供 Unicode 和全球化支援。Android N 在android.icu軟體包下顯示 Android 框架中的 ICU4J API 子集,供應用開發者使用。遷移很簡單,主要是需要從com.java.icu名稱空間更改為android.icu。如果已在應用中使用 ICU4J 捆綁包,切換到 Android 框架中提供的android.icu API 可以大量節省 APK 大小。

十四、OpenGL™ ES 3.2 API

Android N 添加了框架介面和對 OpenGL ES 3.2 的平臺支援,包括:

● 來自 Android 擴充套件包 (AEP) 的所有擴充套件(EXT_texture_sRGB_decode除外)。

● 針對 HDR 的浮點幀緩衝和延遲著色。

● BaseVertex繪圖呼叫可實現更好的批處理和流媒體服務。

● 強大的緩衝區訪問控制可減少WebGL開銷。

十五、VR 支援(面向Android的 Google VR SDK)

圖片描述
這裡寫圖片描述

Android N 添加了新的VR 模式的平臺支援和優化,以使開發者能為使用者打造高質量移動 VR體驗。新版針對開發者提供了大量效能增強特性,包括單一緩衝區渲染以及允許 VR 應用訪問某個專屬的CPU 核心。在應用中,可以享受到專為 VR 設計的平滑頭部跟蹤和立體聲通知功能。

十六、無障礙增強功能(API參考 android.accessibilityservice.GestureDescription)

Android N 現在針對新的裝置設定直接在歡迎螢幕上提供“Vision Settings”。這使使用者可以更容易發現和配置他們裝置上的無障礙功能,包括放大手勢、字型大小、顯示屏尺寸和TalkBack。

十七、金鑰認證

使用硬體支援的金鑰庫,可更安全地在 Android 裝置上建立、儲存和使用加密金鑰。它們可保護金鑰免受 Linux 核心、潛在的 Android 漏洞的攻擊,也可防止從已取得根許可權的裝置提取金鑰。

為了讓硬體支援的金鑰庫使用起來更簡單和更安全,Android N 引入了金鑰認證。應用和關閉的裝置可使用金鑰認證以堅決地確定 RSA 或 EC 金鑰對是否受硬體支援、金鑰對的屬性如何,以及其使用和有效性有何限制。

應用和關閉的裝置服務可以通過 X.509 認證證書(必須由有效的認證金鑰簽署)請求有關金鑰對的資訊。認證金鑰是一個 ECDSA 簽署金鑰,其在出廠時被注入裝置的硬體支援的金鑰庫。因此,有效的認證金鑰簽署的認證證書可確認硬體支援的金鑰庫是否存在,以及該金鑰庫中金鑰對的詳細資訊。

為確保裝置使用安全的官方 Android 出廠映像,金鑰認證要求裝置 bootloader向可信執行環境(TEE)提供以下資訊:
裝置上安裝的作業系統版本和補丁級別

● 驗證的啟動公鑰和鎖定狀態。

● 除金鑰認證外,Android N 還推出了指紋繫結金鑰,在指紋註冊時不會撤銷。

另外新增特性還有直接啟動、列印服務增強、持續效能 API、作用域目錄訪問、鍵盤快捷鍵輔助工具等。

作者:Redyan, 騰訊移動客戶端開發工程師
商業轉載請聯絡騰訊WeTest獲得授權,非商業轉載請註明出處。
原文連結:http://wetest.qq.com/lab/view/288.html