天天看點

Android 7.0來的真快,來看看又來了些什麼出人意料的東西(牆外搬運)

轉載請注明出處:王亟亟的大牛之路

先安利,本周會完成工具類等子產品的拆分,敬請期待:https://github.com/ddwhan0123/Useful-Open-Source-Android

最近都在看RN的東西,然後發現React.js的文法還是不熟又想去看看JS但是7.0又頂在菊花後面,還有我那丢了許久的Python和一堆源生知識點,感覺整個人都要爆炸了(這裡還沒工作的東西擠進來)。

不過作為一個Native的開發者和腦殘粉還是把Native的新特性放在第一位,畢竟RN還不成熟,React.js是前端的事,Python隻是随便寫寫。

這一篇會介紹官方主推的一些新特性和功能,接下來的幾天會陸續推出相關詳細的介紹,不過按照國内更新疊代的尿性,還早,這個是真的還早,想想隔壁的 6.0,不過作為開發者還是要先人一步!!

N的未成熟版在我的電腦裡沉寂許久現在“完整版”已經浮出水面,又多了一些新特性以及大量優化,本篇文章會一個一個點的給大家做介紹!

多視窗支援

現在,使用者可以一次在螢幕上打開兩個應用。

  • 在運作 Android N 的手機和平闆電腦上,使用者可以并排運作兩個應用,或者處于分屏模式時一個應用位于另一個應用之上。 使用者可以通過拖動兩個應用之間的分隔線來調整應用。
  • 在 Android TV 裝置上,應用可以将自身置于畫中畫模式,進而讓它們可以在使用者浏覽或與其他應用互動時繼續顯示内容。
Android 7.0來的真快,來看看又來了些什麼出人意料的東西(牆外搬運)

分析:很贊的一個新功能,會讓“超大屏”手機/平闆 獲得新的活力和拓展空間!

更強大的Notification

進行了重新的設計,引入了新的風格。

  • 模闆更新:我們正在更新通知模闆,新強調了英雄形象和化身。 開發者将能夠充分利用新模闆,隻需進行少量的代碼調整。
  • 消息樣式自定義:您可以自定義更多與您的使用 MessageStyle 類的通知相關的使用者界面标簽。 您可以配置消息、會話标題和内容視圖。
  • 捆綁通知:系統可以将消息組合在一起(例如,按消息主題)并顯示組。 使用者可以适當地進行 Dismiss 或 Archive 等操作。 如果您已實作 Android Wear 的通知,那麼您已經很熟悉此模型。
  • 直接回複:對于實時通信應用,Android 系統支援内聯回複,以便使用者可以直接在通知界面中快速回複短信。
  • 自定義視圖:兩個新的 API 讓您在通知中使用自定義視圖時可以充分利用系統裝飾元素,如通知标題和操作。
Android 7.0來的真快,來看看又來了些什麼出人意料的東西(牆外搬運)

分析: 更好的使用者體驗,更多元的設計(直接回複在iOS和個别國産ROM裡已經有了實作,官方将其推向普及是個不錯的舉措)

快速的應用安裝路徑

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

分析:媽媽再也不用擔心我編譯大項目10分鐘啦!!

随時随地低電耗模式

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

分析:更好的優化算法+邏輯便于使用者更好的續航

Project Svelte:背景優化

Project Svelte 在持續改善,以最大程度減少生态系統中一系列 Android 裝置中系統和應用使用的 RAM。 在 Android N 中,Project Svelte 注重優化在背景中運作應用的方式。

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

官方還删了3個高頻耗電廣播,内容如下:

删除了三個常用隐式廣播 — CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO — 因為這些廣播可能會一次喚醒多個應用的背景程序,同時會耗盡記憶體和電池。 如果您的應用收到這些廣播,請充分利用 N Developer Preview 以遷移到 JobScheduler 和相關的 API。

分析:流氓軟體總會換着法的保持常駐,任重而道遠!!

Data Saver

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

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

Android 7.0來的真快,來看看又來了些什麼出人意料的東西(牆外搬運)

分析:類似于OS的 Cellular Data開關,對偷跑流量的流氓們做了更好的限制。

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。 我們正在與合作夥伴密切合作,以盡快使 Vulkan 能面向更多的裝置。

分析:對3D圖像處理加了一種新的解決方式,難道是覺得OpenGL過于“繁重”,要予以“替換”?

Quick Settings Tile API

“快速設定”通常用于直接從通知欄顯示關鍵設定和操作,非常簡單。 在 Android N 中,我們已擴充“快速設定”的範圍,使其更加有用更友善。

Android 7.0來的真快,來看看又來了些什麼出人意料的東西(牆外搬運)

分析:各大Rom廠商在這部分已經有了自己的風格,主要是看易用性吧

号碼屏蔽

Android N 現在支援在平台中進行号碼屏蔽,提供架構 API,讓服務提供商可以維護屏蔽的号碼清單。 預設短信應用、預設手機應用和提供商應用可以對屏蔽的号碼清單進行讀取和寫入操作。 其他應用則無法通路此清單。

分析:很好的安全措施,很好地防止流氓軟體的讀取使用者資料

來電過濾

Android N 允許預設的手機應用過濾來電。手機應用執行此操作的方式是實作新的 CallScreeningService,該方法允許手機應用基于來電的 Call.Details 執行大量操作,例如:

  • 拒絕來電
  • 不允許來電到達通話記錄
  • 不向使用者顯示來電通知

分析:這部分是否開放我個人覺得有待商榷。。。。

多區域設定支援、多語言

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

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

分析:更完善的語言,地區适應性功能

新增的表情符号

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

  • 在插入之前,檢查裝置是否包含表情符号。 若要檢查系統字型中有哪些表情符号,使用 hasGlyph(String) 方法。
  • 檢查表情符号是否支援變量選擇符。 變量選擇符使您能夠呈現一些彩色或黑白的表情符号。 在移動裝置上,應用應呈現彩色的表情符号,而不是黑白的。但是,如果您的應用顯示嵌入在文本中的表情符号,那應使用黑白變量。 若要确定表情符号是否有變量,使用變量選擇符。 如需有關支援變量的字元的完整清單,請參閱變量的 Unicode 文檔中的 表情符号變量序列部分。
  • **檢查表情符号是否支援膚色。**Android N 允許使用者按照他們的喜好修改表情符号呈現的膚色。 鍵盤應用應為有多個膚色的表情符号提供可視化的訓示,并應允許使用者選擇他們喜歡的膚色。 若要确定哪些系統表情符号有膚色修改器,使用 hasGlyph(String) 方法。 您可以通過讀取 Unicode 文檔來确定哪些表情符号使用膚色。

Android 中的 ICU4J API

Android N 目前在 Android 架構(位于 android.icu 軟體包下)中提供 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 開銷。

Android N 上适用于 OpenGL ES 3.2 的架構 API 與 GLES32 類一起提供。 使用 OpenGL ES 3.2 時,請務必通過 标記和 android:glEsVersion 屬性在您的清單中聲明要求。

分析:子產品Update

VR 支援

Android N 添加了新的 VR 模式的平台支援和優化,以使開發者能為使用者打造高品質移動 VR 體驗。 新版針對開發者提供了大量性能增強特性,包括單一緩沖區渲染以及允許 VR 應用通路某個專屬的 CPU 核心。在您的應用中,您可以享受到專為 VR 設計的平滑頭部跟蹤和立體聲通知功能。 最重要的是,Android N 的圖形延時非常低。

分析:網紅功能

一眼下去看到好多好多需要了解,學習的新功能新特性,感覺任重道遠。

接下來一段時間還會繼續分析,學習相關内容分享給大家。

相關傳送門:

https://developer.android.com/topic/performance/background-optimization.html

https://developer.android.com/training/monitoring-device-state/doze-standby.html#assessing_your_app

https://developer.android.com/guide/topics/ui/notifiers/notifications.html

https://developer.android.com/guide/topics/ui/multi-window.html

Android 7.0來的真快,來看看又來了些什麼出人意料的東西(牆外搬運)