天天看點

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

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

一.新的notification

android n 增加了許多新的notifications api,進行了重新的設計,引入了新的風格。

● 模闆更新:開發者将能夠充分利用新模闆,隻需進行少量的代碼調整。

● 消息樣式自定義:可以自定義更多與使用messagestyle類的通知相關的使用者界面标簽。可以配置消息、會話标題和内容視圖。

● 捆綁通知:系統可以将消息組合在一起(例如,按消息主題)并顯示組。使用者可以适當地進行 dismiss 或 archive 等操作。

● 直接回複:對于實時通信應用,android 系統支援内聯回複,以便使用者可以直接在通知界面中快速回複短信。

● 自定義視圖:兩個新的 api ,在通知中使用自定義視圖時可以充分利用系統裝飾元素,如通知标題和操作。

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

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

運作 android n 的手機和平闆電腦上,使用者可以并排運作兩個應用,或者處于分屏模式時一個應用位于另一個應用之上。使用者可以通過拖動兩個應用之間的分隔線來調整應用。在android tv 裝置上,應用可以将自身置于畫中畫模式,進而讓它們可以在使用者浏覽或與其他應用互動時繼續顯示内容。

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

三.quick settings tile api

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

對于開發者,android n 還添加了一個新的 api,進而可以定義自己的“快速設定”圖塊,使使用者可以輕松通路應用中的關鍵控件和操作。

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

四.快速的應用安裝路徑

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),以幫助優化記憶體使用和電量消耗。此項變更很有必要,因為隐式廣播會在背景頻繁啟動已注冊偵聽這些廣播的應用,删除這些廣播可以顯著提升裝置性能和使用者體驗。

移動裝置會經曆頻繁的連接配接變更,例如在 wi-fi 和移動資料之間切換時。目前,可以通過在應用清單檔案中注冊一個接收器來偵聽隐式 connectivity_action廣播,讓應用能夠監控這些變更。由于很多應用會注冊接收此廣播,是以單次網絡切換即會導緻所有應用被喚醒并同時處理此廣播。同理,應用可以注冊接收來自其他應用(例如相機)的隐式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時可以提供更多有效的服務。

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

八.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 設計的平滑頭部跟蹤和立體聲通知功能。

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

十六.無障礙增強功能

(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、作用域目錄通路、鍵盤快捷鍵輔助工具等。

android 7.0諸多新特性,如何立刻體驗?

騰訊wetest 雲真機上已經有多部android 7.0手機可以選擇,讓您在網頁端流暢控制雲端手機。

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

作者:redyan

來源:51cto

繼續閱讀