深度了解Android 7.0 ,你準備好了嗎?
2016年8月22日,谷歌正式推送Android 7.0 Nougat(牛軋?zhí)?正式版,他們還會三個月一次推送開發(fā)版,而曝光的消息看,第一個開發(fā)版就是Android 7.1,Android N主要新增了以下的新特性和優(yōu)化。
一.新的Notification
Android N 增加了許多新的notifications API,進行了重新的設(shè)計,引入了新的風(fēng)格。
● 模板更新:開發(fā)者將能夠充分利用新模板,只需進行少量的代碼調(diào)整。
● 消息樣式自定義:可以自定義更多與使用MessageStyle類的通知相關(guān)的用戶界面標簽。可以配置消息、會話標題和內(nèi)容視圖。
● 捆綁通知:系統(tǒng)可以將消息組合在一起(例如,按消息主題)并顯示組。用戶可以適當(dāng)?shù)剡M行 Dismiss 或 Archive 等操作。
● 直接回復(fù):對于實時通信應(yīng)用,Android 系統(tǒng)支持內(nèi)聯(lián)回復(fù),以便用戶可以直接在通知界面中快速回復(fù)短信。
● 自定義視圖:兩個新的 API ,在通知中使用自定義視圖時可以充分利用系統(tǒng)裝飾元素,如通知標題和操作。
二.多窗口支持(分屏模式)
運行 Android N 的手機和平板電腦上,用戶可以并排運行兩個應(yīng)用,或者處于分屏模式時一個應(yīng)用位于另一個應(yīng)用之上。用戶可以通過拖動兩個應(yīng)用之間的分隔線來調(diào)整應(yīng)用。在Android TV 設(shè)備上,應(yīng)用可以將自身置于畫中畫模式,從而讓它們可以在用戶瀏覽或與其他應(yīng)用交互時繼續(xù)顯示內(nèi)容。
三.Quick Settings Tile API
“快速設(shè)置”通常用于直接從通知欄顯示關(guān)鍵設(shè)置和操作,非常簡單。在 Android N中,已擴展“快速設(shè)置”的范圍,使其更加有用更方便。為額外的“快速設(shè)置”圖塊添加了更多空間,用戶可以通過向左或向右滑動跨分頁的顯示區(qū)域訪問它們。 還讓用戶可以控制顯示哪些“快速設(shè)置”圖塊以及顯示的位置 — 用戶可以通過拖放圖塊來添加或移動圖塊。
對于開發(fā)者,Android N 還添加了一個新的 API,從而可以定義自己的“快速設(shè)置”圖塊,使用戶可以輕松訪問應(yīng)用中的關(guān)鍵控件和操作。
四.快速的應(yīng)用安裝路徑
Android 運行組件的 JIT 編譯器最實際的好處之一是應(yīng)用安裝和系統(tǒng)更新的速度。即使在Android 6.0 中需要幾分鐘進行優(yōu)化和安裝的大型應(yīng)用,現(xiàn)在只需幾秒鐘就可以完成安裝。系統(tǒng)更新也變得更快,因為省去了優(yōu)化步驟。
五.隨時隨地低電耗模式
在 Android N 中,低電耗模式又前進了一步,隨時隨地可以省電。只要屏幕關(guān)閉了一段時間,且設(shè)備未插入電源,低電耗模式就會對應(yīng)用使用熟悉的 CPU 和網(wǎng)絡(luò)限制。這意味著用戶即使將設(shè)備放入口袋里也可以省電。
六.Project Svelte:后臺優(yōu)化
Project Svelte在持續(xù)改善,以最大程度減少生態(tài)系統(tǒng)中一系列 Android 設(shè)備中系統(tǒng)和應(yīng)用使用的 RAM。在 Android N 中,Project Svelte 注重優(yōu)化在后臺中運行應(yīng)用的方式。
后臺處理是大多數(shù)應(yīng)用的一個重要部分。處理得當(dāng),可實現(xiàn)非常棒的用戶體驗—即時、快速和情境感知。如果處理不得當(dāng),后臺處理會毫無必要地消耗 RAM和電池,同時影響其他應(yīng)用的系統(tǒng)性能。
Android N 刪除了三項隱式廣播(CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO),以幫助優(yōu)化內(nèi)存使用和電量消耗。此項變更很有必要,因為隱式廣播會在后臺頻繁啟動已注冊偵聽這些廣播的應(yīng)用,刪除這些廣播可以顯著提升設(shè)備性能和用戶體驗。
移動設(shè)備會經(jīng)歷頻繁的連接變更,例如在 Wi-Fi 和移動數(shù)據(jù)之間切換時。目前,可以通過在應(yīng)用清單文件中注冊一個接收器來偵聽隱式 CONNECTIVITY_ACTION廣播,讓應(yīng)用能夠監(jiān)控這些變更。由于很多應(yīng)用會注冊接收此廣播,因此單次網(wǎng)絡(luò)切換即會導(dǎo)致所有應(yīng)用被喚醒并同時處理此廣播。同理,應(yīng)用可以注冊接收來自其他應(yīng)用(例如相機)的隱式ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO 廣播。當(dāng)用戶使用相機應(yīng)用拍攝照片時,這些應(yīng)用即會被喚醒處理廣播。
為減緩這些問題,Android N應(yīng)用了以下優(yōu)化措施:
1、面向 Android N 開發(fā)的應(yīng)用不會收到 CONNECTIVITY_ACTION 廣播,即使它們已有清單條目來請求接受這些事件的通知。在前臺運行的應(yīng)用如果使用BroadcastReceiver請求接收通知,則仍可以在主線程中偵聽CONNECTIVITY_CHANGE。
2、 應(yīng)用無法發(fā)送或接收 ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO廣播。此項優(yōu)化會影響所有應(yīng)用,而不僅僅是面向 Android N 的應(yīng)用。
未來的 Android 版本還可能會棄用其他隱式廣播以及未綁定的后臺服務(wù)。有鑒于此,應(yīng)避免依賴在清單文件中聲明的接收器來偵聽隱式廣播或刪除此依賴關(guān)系,以及避免或刪除對后臺服務(wù)的依賴關(guān)系。
Android 框架提供多種解決方案來降低這些隱式廣播或后臺服務(wù)的必要性。例如,JobScheduler API 提供了一個穩(wěn)健可靠的機制來安排滿足指定條件(例如連入不按流量計費的網(wǎng)絡(luò))時所執(zhí)行的網(wǎng)絡(luò)操作。甚至可以使用JobScheduler來響應(yīng)內(nèi)容提供程序所發(fā)生的變更。
七.Data Saver
在移動設(shè)備的整個生命周期,蜂窩數(shù)據(jù)計劃的成本通常會超出設(shè)備本身的成本。對于許多用戶而言,蜂窩數(shù)據(jù)是他們想要節(jié)省的昂貴資源。
Android N推出了Data Saver模式,這是一項新的系統(tǒng)服務(wù),有助于減少應(yīng)用使用的蜂窩數(shù)據(jù),無論是在漫游,賬單周期即將結(jié)束,還是使用少量的預(yù)付費數(shù)據(jù)包。 Data Saver讓用戶可以控制應(yīng)用使用蜂窩數(shù)據(jù)的方式,同時讓開發(fā)者打開Data Saver時可以提供更多有效的服務(wù)。
八.Vulkan API
Android N 將一項新的 3D 渲染 API Vulkan™ 集成到平臺中。就像 OpenGL™ ES 一樣,Vulkan是 3D 圖形和渲染的一項開放標準,由Khronos Group 維護。
Vulkan是完全從零開始設(shè)計,以最小化驅(qū)動器中的 CPU 開銷,并能讓應(yīng)用更直接地控制 GPU 操作。Vulkan還允許多個線程同時執(zhí)行工作,如命令緩沖區(qū)構(gòu)建,以獲得更好的并行化。
Vulkan開發(fā)工具和庫都已卷入Android NDK。它們包括:
● 頭
● 驗證層(調(diào)試庫)
● SPIR-V 著色程序編譯器
● SPIR-V 運行時著色器編譯庫
● Vulkan僅適用于已啟用Vulkan硬件的設(shè)備上的應(yīng)用,如 Nexus 5X、Nexus 6P 和Nexus Player。
九.號碼屏蔽
Android N 現(xiàn)在支持在平臺中進行號碼屏蔽,提供框架 API,讓服務(wù)提供商可以維護屏蔽的號碼列表。默認短信應(yīng)用、默認手機應(yīng)用和提供商應(yīng)用可以對屏蔽的號碼列表進行讀取和寫入操作,其他應(yīng)用則無法訪問此列表。
十.來電過濾
Android N 允許默認的手機應(yīng)用過濾來電。手機應(yīng)用執(zhí)行此操作的方式是實現(xiàn)新的CallScreeningService,該方法允許手機應(yīng)用基于來電的Call.Details執(zhí)行大量操作,例如:
● 拒絕來電
● 不允許來電到達通話記錄
● 不向用戶顯示來電通知
十一.多區(qū)域設(shè)置支持、多語言
Android N 現(xiàn)在允許用戶在設(shè)置中選擇多個區(qū)域設(shè)置,以更好地支持雙語用例。應(yīng)用可以使用新的 API 獲取用戶選擇的區(qū)域設(shè)置,然后為多區(qū)域設(shè)置用戶提供更成熟的用戶體驗,如以多個語言顯示搜索結(jié)果,并且不會以用戶了解的語言翻譯網(wǎng)頁。
除多區(qū)域設(shè)置支持外,Android N 還擴展了用戶可用的語言范圍。它針對常用語言提供超過 25種的變體,如英語、西班牙語、法語和阿拉伯語。它還針對 100 多種新語言添加了部分支持。
應(yīng)用可以通過調(diào)用 LocaleList.GetDefault() 獲取用戶設(shè)置的區(qū)域設(shè)置列表。 為支持擴展的區(qū)域設(shè)置數(shù)量,Android N 正在改變其解析資源的方式。
十二.新增的表情符號
Android N引入更多表情符號和表情符號相關(guān)功能,包括膚色表情符號和支持變量選擇符。如果應(yīng)用支持表情符號,請遵循以下準則,以便能充分利用這些表情符號相關(guān)功能優(yōu)勢。
● 在插入之前,檢查設(shè)備是否包含表情符號。若要檢查系統(tǒng)字體中有哪些表情符號,使用hasGlyph(String) 方法。
● 檢查表情符號是否支持變量選擇符。變量選擇符能夠呈現(xiàn)一些彩色或黑白的表情符號。在移動設(shè)備上,應(yīng)用應(yīng)呈現(xiàn)彩色的表情符號,而不是黑白的。但是,如果應(yīng)用顯示嵌入在文本中的表情符號,那應(yīng)使用黑白變量。若要確定表情符號是否有變量,使用變量選擇符。如需有關(guān)支持變量的字符的完整清單,請參閱變量的 Unicode 文檔中的表情符號變量序列部分。
● 檢查表情符號是否支持膚色。Android N允許用戶按照他們的喜好修改表情符號呈現(xiàn)的膚色。鍵盤應(yīng)用應(yīng)為有多個膚色的表情符號提供可視化的指示,并應(yīng)允許用戶選擇他們喜歡的膚色。若要確定哪些系統(tǒng)表情符號有膚色修改器,使用hasGlyph(String) 方法??梢酝ㄟ^讀取Unicode 文檔來確定哪些表情符號使用膚色。
十三.Android 中的 ICU4J API
ICU4J 是一個廣泛使用的開源 Java 庫集合,為軟件應(yīng)用提供 Unicode 和全球化支持。Android N 在android.icu軟件包下顯示 Android 框架中的 ICU4J API 子集,供應(yīng)用開發(fā)者使用。遷移很簡單,主要是需要從com.java.icu命名空間更改為android.icu。如果已在應(yīng)用中使用 ICU4J 捆綁包,切換到 Android 框架中提供的android.icu API 可以大量節(jié)省 APK 大小。
十四.OpenGL™ ES 3.2 API
Android N 添加了框架接口和對 OpenGL ES 3.2 的平臺支持,包括:
● 來自 Android 擴展包 (AEP) 的所有擴展(EXT_texture_sRGB_decode除外)。
● 針對 HDR 的浮點幀緩沖和延遲著色。
● BaseVertex繪圖調(diào)用可實現(xiàn)更好的批處理和流媒體服務(wù)。
● 強大的緩沖區(qū)訪問控制可減少WebGL開銷。
十五.VR 支持
(面向Android的 Google VR SDK)
Android N 添加了新的VR 模式的平臺支持和優(yōu)化,以使開發(fā)者能為用戶打造高質(zhì)量移動 VR體驗。新版針對開發(fā)者提供了大量性能增強特性,包括單一緩沖區(qū)渲染以及允許 VR 應(yīng)用訪問某個專屬的CPU 核心。在應(yīng)用中,可以享受到專為 VR 設(shè)計的平滑頭部跟蹤和立體聲通知功能。
十六.無障礙增強功能
(API參考 android.accessibilityservice.GestureDescription)
Android N 現(xiàn)在針對新的設(shè)備設(shè)置直接在歡迎屏幕上提供“Vision Settings”。這使用戶可以更容易發(fā)現(xiàn)和配置他們設(shè)備上的無障礙功能,包括放大手勢、字體大小、顯示屏尺寸和TalkBack。
十七.密鑰認證
使用硬件支持的密鑰庫,可更安全地在 Android 設(shè)備上創(chuàng)建、存儲和使用加密密鑰。它們可保護密鑰免受 Linux 內(nèi)核、潛在的 Android 漏洞的攻擊,也可防止從已取得根權(quán)限的設(shè)備提取密鑰。
為了讓硬件支持的密鑰庫使用起來更簡單和更安全,Android N 引入了密鑰認證。應(yīng)用和關(guān)閉的設(shè)備可使用密鑰認證以堅決地確定 RSA 或 EC 密鑰對是否受硬件支持、密鑰對的屬性如何,以及其使用和有效性有何限制。
應(yīng)用和關(guān)閉的設(shè)備服務(wù)可以通過 X.509 認證證書(必須由有效的認證密鑰簽署)請求有關(guān)密鑰對的信息。認證密鑰是一個 ECDSA 簽署密鑰,其在出廠時被注入設(shè)備的硬件支持的密鑰庫。因此,有效的認證密鑰簽署的認證證書可確認硬件支持的密鑰庫是否存在,以及該密鑰庫中密鑰對的詳細信息。
為確保設(shè)備使用安全的官方 Android 出廠映像,密鑰認證要求設(shè)備 bootloader向可信執(zhí)行環(huán)境(TEE)提供以下信息:
設(shè)備上安裝的操作系統(tǒng)版本和補丁級別
● 驗證的啟動公鑰和鎖定狀態(tài)。
● 除密鑰認證外,Android N 還推出了指紋綁定密鑰,在指紋注冊時不會撤銷。
另外新增特性還有直接啟動、打印服務(wù)增強、持續(xù)性能 API、作用域目錄訪問、鍵盤快捷鍵輔助工具等。
Android 7.0諸多新特性,如何立刻體驗?
騰訊WeTest 云真機上已經(jīng)有多部Android 7.0手機可以選擇,讓您在網(wǎng)頁端流暢控制云端手機。