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

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

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

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

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

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

多視窗支援

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

  • 在執行 Android N 的手機和平板電腦上,使用者可以並排執行兩個應用,或者處於分屏模式時一個應用位於另一個應用之上。 使用者可以通過拖動兩個應用之間的分隔線來調整應用。

  • 在 Android TV 裝置上,應用可以將自身置於畫中畫模式,從而讓它們可以在使用者瀏覽或與其他應用互動時繼續顯示內容。

這裡寫圖片描述

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

更強大的Notification

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

  • 模板更新:我們正在更新通知模板,新強調了英雄形象和化身。 開發者將能夠充分利用新模板,只需進行少量的程式碼調整。

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

  • 捆綁通知:系統可以將訊息組合在一起(例如,按訊息主題)並顯示組。 使用者可以適當地進行 Dismiss 或 Archive 等操作。 如果您已實現 Android Wear 的通知,那麼您已經很熟悉此模型。

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

  • 自定義檢視:兩個新的 API 讓您在通知中使用自定義檢視時可以充分利用系統裝飾元素,如通知標題和操作。

這裡寫圖片描述

分析: 更好的使用者體驗,更多元的設計(直接回覆在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 時可以提供更多有效的服務。

這裡寫圖片描述

分析:類似於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 中,我們已擴充套件“快速設定”的範圍,使其更加有用更方便。

這裡寫圖片描述

分析:各大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 的圖形延時非常低。

分析:網紅功能

一眼下去看到好多好多需要了解,學習的新功能新特性,感覺任重道遠。
接下來一段時間還會繼續分析,學習相關內容分享給大家。

相關傳送門:

這裡寫圖片描述

相關推薦

Android 7.0,看看什麼出人意料東西(搬運)

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

我們一探究竟 Android 7.0 適配中 FileProvider 部分

rip 使用 star 過程 限制 需要 lock 目錄文件 support 本文標簽: Android7.0 FileProvider 由於 Android 7.0 或更高版本的系統在國內手機市場上的占比不是很高,很多 Android 開發人員並沒有做 7.0 適配工作,

appium在android 7.0機上運行報錯command failed shell:............ps:'uiautomator"的解決方式

.proto androi sse ces node return std tomato 並且 appium版本:1_4_16 在CSDN中找到相關解決的方案,根據此解決方案順利的解決了讓人惆悵的問題,再次記錄。 1、找到appium安裝目錄下的adb.js文件,目錄為:A

為什麼應用程式在Android 7.0之後安裝和執行都變得更

需要了解幾個概念 Dalvik 虛擬機器 負責解釋dex檔案為機器碼,每次執行程式碼,都需要Dalvik將dex程式碼翻譯為微處理器指令,然後交給系統處理,這樣效率不高。 JIT(Just-In-Time) 為了解決上面的問題,Google在2

Android 8.0新特性適配測試報告啦!

WeTest 導讀谷歌2017 I/O開發者大會上釋出了Android 8.0的正式版, 其官方代號為Oreo(奧利奧)。網上關於Android8.0新功能特性的介紹已鋪天蓋地,新功能特性會對程式應用帶來哪些影響呢,我們從相容性角度來看下這部分變化。 測試版本:Android 8.0  安裝啟動測試 A

remount issue on android 7.0

n) 重新 tar 版本 all vfat art memmove html http://blog.chinaunix.net/uid-23141914-id-5754416.html 最近在新版本的android 7.0上,發現filesystem的remount老是報

Android 7.0 以上保留數據去除鎖屏密碼的方法

ngs idt ech auto 密碼加密 方法 b- mar jpg 在很多情況下,由於我們的疏忽,導致忘記了鎖屏密碼。也沒有開啟 USB 調試,內置存儲中還有要保留的數據。我們需要在不清除數據的情況下刪除鎖屏密碼。接下來我們就介紹該如何做。 註意事項 首先要註意

Android 7.0 下載APK後自動安裝

mime 顯示 sse cast works 入口 新的 限制 itl 隨著Android版本越來越高,Android對隱私的保護力度也越來越大。這些隱私權限的更改在為用戶帶來更加安全的操作系統的同時也為開發者帶來了一些新的任務。如何讓你的APP能夠適應這些

Android 7.0 Gallery圖庫源碼分析4 - SlotView手勢監聽及頁面跳轉

ofo 自帶 end follow mat views mha creat 找到 上篇文章講了初始化View時會實例化一個SlotView並監聽其事件,至於它是怎麽實現的,用的是Android自帶的GestureDetector。 GestureDetector是Andro

Android 7.0 Gallery圖庫源碼分析2 - 分析啟動流程

rec star bject erro argument hold default add 切換 前面一講解了Gallery啟動Activity以及界面如何繪制,現在開始講解啟動流程的代碼邏輯。 GalleryActivity的onCreate方法中調用initialize

Android 7.0 Gallery圖庫源碼分析3 - 數據加載及顯示流程

不為 isempty stat submit mode 準備工作 RKE xtu ida 前面分析Gallery啟動流程時,說了傳給DataManager的data的key是AlbumSetPage.KEY_MEDIA_PATH,value值,是”/combo/{/loca

Robotframework Appium Android 7.0 測試

Robotframework Appium Android 7.0 測試 最近在安卓機上測試一個專案,發現有的安卓機器可以正常執行指令碼,有的安卓機器不能正常執行。 就上網搜了一下,發現是Appium 的版本太低,對安卓7.0 的系統不支援,另外安卓7.0 的還需要 u

Android 7.0 app升級內部安裝apk—FileProvider使用

隨著Android 版本升級 Google在保護使用者隱私和安全方面增加了力度 像Android 6.0 細分了普通許可權和高危許可權,涉及到高危許可權則需要及時申請使用者必須感知。Android7.0 增加了 "StrictMode API" 政策即私有目錄限制訪問。本篇講解一下如何在Androi

Eclipse 在Android 7.0的手機上除錯無法輸出logcat解決方案

最近公司很多專案都上了Android 7.0 的系統,因為web 專案的開發並行的原因,所以一直沒有切換到AS 上來,發現使用eclipse 的時候無法輸出logcat ,通過網上google 發現瞭解決方案 需要更新ADT,這個ADT 並不是google 官方的。 下載地址:連結:ht

Android 7.0 之拍照與圖片裁剪適配

在Android 7.0以上,在相機拍照和圖片裁剪上,可能會碰到以下一些錯誤: Process: com.yuyh.imgsel, PID: 22995 // 錯誤1 android.os.FileUriExposedException: file:///storage/emulate

Android 7.0以上系統獲取以content開頭的檔案拿不到正確路徑,報錯column-data-does-not-exist

我們專案的使用場景,手機qq開啟檔案,選擇其他開啟方式,選擇我們自己的應用開啟,通過intent.getData()獲取檔案地址,後來發現在Android7.0之後的版本,獲取到的地址不正確,說檔案不存在。日誌報錯column-data-does-not-exist, 經過一天的折騰,終於在網上

解決android 7.0 popwindow的showAsDropDown沒有效果問題

當手機安卓系統為7.0時,showAsDropDown()不起效果,我們可以用showAtLocation來解決這個問題 if (Build.VERSION.SDK_INT < 24) { brandPopup.showAsDropDown(parent); } else {

Android 7.0及以上使用OpenCL

由於從Android 7.0, API 24, 開始, 系統將阻止應用連結至非公開NDK庫, 所以, 使用libOpenCL.so時與面向低版本的Android平臺有所不同, 需要把依賴的非公開NDK庫打包到APK中 確定依賴的庫 首先應該確定你所使用的libOpenC.so所依賴的庫, 使用命令objd

Android開發——Android 7.0以上出現儲存圖片失敗的問題

前言 在日常的Android開發當中,我們可能遇到儲存圖片的需求。這個功能是相對容易去實現的,但是今天我更新之前的專案的程式碼的時候出現了一個Android 7.0儲存圖片失敗的情況。因為不是本人開發的,我將程式碼從頭看起,看起來沒有程式碼寫的沒有錯誤呀!我就有點頭疼呀,到底是哪個環

Android 7.0 獲取自定義許可權

private String[] permissions = {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, // Manifest.permission.ACCESS_COARSE_