面向開發人員的 Android 7.0:新功能、性能升級和其他您不會關心的東西
已發表: 2022-03-11谷歌幾週前正式宣布了 Android 7.0 Nougat,但像往常一樣,你必須等待。 大多數用戶要到明年年初才能獲得無線 (OTA) 更新。 許多其他人將在一周內收到它們,因為一些設備供應商根本不打擾。
這聽起來像是我的一個惡作劇,但 Android 碎片化可不是開玩笑的。 多年來,這一直是用戶和開發人員非常頭疼的問題。 Android 7.0 無法解決這個問題,這很可惜,因為它啟用了許多用戶肯定會喜歡的新功能和性能改進。
但是,開發人員不應該抱有希望。 這裡沒有任何改變遊戲規則的人。 讓我們看看 Android 引擎蓋下的關鍵調整以及它們帶來的新機會,從影響最大到影響最小。
- 新的 JIT 編譯器,補充了 ART 現有的 AOT 編譯器
- 多窗口支持
- 支持 Vulkan API
- 直接啟動
- 直接回復和捆綁通知
- 白日夢虛擬現實 (VR) 模式
- UI、可訪問性調整和背景優化
這顯然不是所有新功能的完整列表; 我進入了前七名。 如果您前往 Google 的開發者天堂,您可以深入了解 Android 7.0。 我將為您省去不必要的絨毛,並以簡明易懂的形式為您提供有用的信息。
1.新的JIT編譯器,Profile-Guided Compiler
JIT 編譯又回來了,雖然聽起來像是回到了 Dalvik 時代,但事實並非如此。 這一次,谷歌在 ART 中添加了一個帶有代碼分析的 JIT 編譯器,以補充 ART 現有的 AOT 編譯器。 以個人資料為指導的編譯是當時的流行語。
ART 為每個應用程序的熱門方法和各種設備條件創建配置文件。 它可以預編譯熱方法以提供最佳性能、減少 RAM 使用、降低功耗等。
另一個好處是安裝和更新的絕對速度。 由於分析意味著沒有優化步驟,谷歌甚至聲稱在 Android 6.0 上需要幾分鐘才能安裝的大型應用程序現在可以在幾秒鐘內安裝或更新。 就個人而言,我希望這也適用於《坦克世界閃電戰》,因為它是唯一值得我花時間的安卓遊戲。
在過去的幾年裡,移動存儲取得了很大的進步。 許多當代設備使用快速 UFS 2.0 存儲,與過去的 eMMC 存儲相比,它提供了顯著的性能提升。 Android 7.0 應該使軟件工程師能夠充分利用這一新的存儲標準並解鎖更高的性能。
查看我之前的一篇博文,更詳細地了解 Google 的編譯器計劃對 Android 開發人員的意義。
開發人員影響:配置文件引導的編譯應該能夠實現卓越的性能和效率提升。 安裝和更新速度會更快,並且由於 Google 的大量文檔,實施應該相對容易。 少等大家。 這是一件好事。
2.多窗口支持
等一下——我們不是已經在 Android 上看到了多窗口功能嗎? 是與否; 一些分叉提供了多窗口支持,但現在它是原生的。 有兩種分屏實現:並排和一個在另一個之上。 這在移動設備方面或多或少是標準的,但不幸的是,我還沒有機會嘗試一下。
而且,老實說,我從來都不喜歡移動設備上的多窗口功能,因為大多數用戶根本不需要它。
然而,這不僅僅是智能手機。 谷歌也在悄悄地開發智能電視產品,因此多窗口支持也將擴展到這些設備,但會有所不同。 隨著更多的顯示空間可供使用,應用程序構建者將能夠在電視上使用畫中畫模式,並且某些功能將是特定於供應商的。 供應商將能夠決定是否啟用自由格式模式。 這意味著超大平板手機、平板電腦和其他具有大顯示屏的設備的供應商可能允許用戶隨意調整窗口大小和位置,這聽起來類似於微軟的方法,最初是在 Windows 8.x 上實現的。
對開發者的影響:多窗口支持不會改變遊戲規則,但它將立即為 Android 平板電腦和智能電視提供機會,後者還將獲得畫中畫和錄製視頻的能力。 問題? Android TV 不是很常見,Android 平板電腦也不是很流行,尤其是在生產力應用程序方面,這些應用程序可以從多窗口支持中獲得最大收益。
誰知道呢? 也許一個非常聰明的開發人員會創建一個利用它的殺手級智能手機應用程序。 我不會屏住呼吸。
3.Vulkan API
這是另一個潛在的強大更新。 當然,它不會像花哨的功能那樣引起媒體和消費者的興趣,但請不要誤會:Vulkan API 很重要。
如果您錯過了它,Vulkan API 是一種用於圖形處理單元 (GPU) 的新的、低開銷、接近金屬的 API。 不僅適用於 3D 遊戲,也適用於 GPU 計算。 基本上,它是 OpenGL 的後續版本,應該能夠在多線程處理器上實現卓越的性能以及跨平台兼容性。 它還應該在驅動程序開發中節省數千個工時。
那麼為什麼它沒有得到更多的嗡嗡聲? 嗯,這是一個新標準,引入一個全新的圖形 API 通常需要幾年時間。 這就是消費者不關心的原因,也是 Android 開發人員應該關心的原因。
要了解有關 Android 7.0 中 Vulkan 實現的更多信息,請閱讀我今年早些時候編寫的完整 Vulkan API 概述或查看 Google 的開發資源。
開發者影響: Vulkan API 的時代即將到來。 它將減少 CPU 開銷,從而提高 GPU 性能並降低 3D 遊戲的功耗。 然而,採用勢必會很慢,因為我們談論的是一個極其強大和復雜的圖形 API,而不僅僅是一個裝飾性的調整。
4.直接啟動
鎖定的 Android 7.0 設備會怎樣? 它以安全的直接啟動模式運行,直到用戶解鎖設備。
為了實現這一點,Android 7.0 有兩個數據存儲位置,以及兩種不同的加密解決方案:
- 設備加密存儲在直接啟動時可用,無論設備是鎖定還是解鎖都可以訪問。
- 憑證加密存儲仍然是默認位置,只有在用戶解鎖設備後才可用。
大多數含義是顯而易見的:在設備解鎖之前,需要在直接啟動模式下運行的應用程序必須啟用才能這樣做。 默認情況下,應用程序不能直接啟動運行,但開發者可以註冊不同的應用程序組件,需要在這種狀態下運行。
這應該包括傳遞重要或預定通知的應用程序,例如消息傳遞和日曆應用程序。 需要訪問存儲的應用程序必須依賴設備加密存儲,該存儲受設備執行驗證啟動後可用的密鑰保護。 訪問權限不會擴展到與用戶憑據相關的數據,即 PIN 和密碼。 憑據加密存儲在設備啟動並由用戶解鎖之前不可用,但一旦被訪問,它就會一直可用,直到設備斷電。
對開發人員的影響:直接啟動應該可以在不影響用戶體驗和響應能力的情況下提高安全性。 實施應該很簡單,但在某些情況下會涉及大量繁瑣的工作。 儘管如此,這聽起來像是增加安全性的一個小折衷。
5. 直接回復和捆綁通知
聽起來它與直接啟動有關,但直接回復是另一種野獸,允許用戶響應來自通知屏幕的消息和通知。 內聯回复操作可通過通知中的新按鈕獲得。 在實踐中,用戶應該能夠在不訪問應用程序的情況下回复通知,系統會處理其他所有事情。

只有當開發人員花時間通過調用getResultsFromIntent()
來啟用內聯回複檢索時,系統才能發揮它的魔力,它會返回一個包含所需文本響應的包。 在 Android 7.0 中,Google 為開發人員提供了一種表示排隊通知的新方法:捆綁通知。 該解決方案類似於 Android Wear 上的通知堆棧。
捆綁通知就是這樣:類似的郵件呈現在一個組中,具有乾淨的層次結構,並且父通知位於頂部。 然後,用戶可以展開捆綁包以訪問更多信息並採取適當的措施,或者如果他們不感興趣,可以輕鬆地忽略所有內容。
但是,捆綁通知並不適用於所有類型的通知。 谷歌在 Android 通知最佳實踐中明確了這一點。 理想情況下,該方法應該用於生成大量類似或相關通知的應用程序,例如消息傳遞應用程序。
從 Android 7.0(API 級別 24)開始,用戶可以在通知對話框中直接回复短信或更新任務列表。 在手持設備上,內聯回复操作顯示為通知中顯示的附加按鈕。 當用戶通過鍵盤回复時,系統會將文本響應附加到您指定的意圖(用於通知操作)並將其發送到您的手持應用程序。
開發者影響:直接回復和捆綁通知應該可以改善許多場景中的用戶體驗。 從谷歌的文檔來看,它們也應該不難實現。 顯然,電子郵件、消息傳遞和社交應用程序將從內聯回復中獲得最大收益,儘管該方法可以在其他地方實施。
6. 白日夢虛擬現實
谷歌最近對 VR 的關注證明這家搜索巨頭也不能倖免於炒作。 我們都記得 Google Cardboard 和 Google Glass,它們在增強現實領域是一個命運多舛的裂縫。
與 Glass 不同,Cardboard 並沒有簡單地枯萎和死亡,但它更像是一種實驗,而不是真正的產品。 谷歌改進了這個概念,它即將在幾週內重新推出,並使用一個新名稱:谷歌白日夢。 Daydream 或多或少是一個進化步驟。 它看起來像一個經過調整的 Cardboard 耳機,但很難發現實質性的變化。
下一代 Android 手機即將提供支持,但設計人員和開發人員可以在當前唯一符合Daydream的設備上測試他們的概念。
谷歌將Daydream描述為下一代移動 VR 解決方案,與 Cardboard 相比,它具有更好的交互性和更好的響應能力。 該公司表示,它對 Android 堆棧的各個級別進行了改進,以提高響應能力。 這應該允許 Android 7.0 更快地訪問傳感器數據,並在正確的時間渲染適當的 VR 場景,從而大大減少延遲。 Daydream還配備了帶有APP
和HOME
按鈕的新無線控制器。
不幸的是,這些調整都無法解決 VR 面臨的最大問題:缺乏內容。 好消息是情況正在好轉,谷歌承諾通過一系列合作夥伴關係在Daydream上提供更多內容,涵蓋從情景喜劇到遊戲的方方面面。
正如我在 Google Cardboard 概述中概述的那樣,我對移動 VR 的立場仍然有些保守。 最近的市場研究部分證實了我的觀點,這似乎表明對 VR 的需求仍然疲軟。 谷歌無法解決當今移動 VR 面臨的所有初期問題。 這不是自滿的問題。 谷歌必須等待更好的硬件。
甚至在我嘗試 Cardboard 之前,我就知道電池壽命和散熱會是一個問題,谷歌也是如此。 展望未來,這仍將是一個揮之不去的問題。 事實上,谷歌明確表示 Nexus 6P 的散熱性能“不代表”即將推出的支持Daydream的手機:
預計 6P 會在短時間使用後對 CPU 和 GPU 性能進行熱調節,具體取決於工作負載。
我們將不得不等待芯片製造商和智能手機供應商推出新一代產品,才能真正利用Daydream 。
開發者影響: Daydream VR 可能會提供一些新的可能性,但這並不像看起來那麼簡單。 雖然許多科技公司正在登上 VR 列車,但消費者卻沒有。 現在,這是一次孤獨而昂貴的旅程。
7. UI、可訪問性調整和背景優化
谷歌優化了用戶界面,添加了一些功能,並微調了性能,以提供更流暢的用戶體驗。 以下是新功能的味道:
- 部分支持大約 100 種新語言,以及改進的語言包和主要語言(如西班牙語和英語)的新本地變體。
- 設置中的多個語言環境,這將大大改善多本地和雙語用戶的體驗。
- 改進的 WebView,應用內瀏覽器。 它將依賴 Chrome APK(從 51 版開始)來呈現頁面,從而減少內存使用和帶寬需求。 只要啟用 Chrome 渲染,獨立的 WebView APK 將不再更新。
- Android for Work 更新以提高安全性並允許始終在線的 VPN 支持。 快速切換功能將允許用戶在工作和個人模式之間切換。
- Project Svelte,這是 Google 對一系列後台優化的名稱,這些優化改變了應用程序的運行方式以減少 RAM 使用量。 谷歌表示將繼續擴展和更新
JobScheduler
和GCMNetworkManager
,但與此同時,它刪除了三個廣泛使用的廣播:CONNECTIVITY_ACTION
、ACTION_NEW_PICTURE
和ACTION_NEW_VIDEO
。 如果您的應用程序依賴於其中任何一個,則您必須遷移到JobScheduler
。 您可以在 Google 上查看令人討厭的詳細信息。 - 對歡迎屏幕和快速設置磁貼的 UI 進行了調整,其中現在包含一個可在第三方應用程序中使用的新 API。 通知增強功能包括兩個新的自定義視圖 API。
- 谷歌助手、谷歌 Allo、谷歌 Duo。
對開發者的影響:這些新功能和調整是對 Android 的歡迎補充,但它們不太可能產生很多新機會。
Android 7.0:底線是什麼?
公平地說,Android 7.0 對開發人員來說並不是什麼大不了的事。 這是一個增量改進,主要是關於優化。 它不會促進以前無法實現的驚天動地的應用程序和服務的創建。
但我不認為這有什麼問題。 智能手機已經功能豐富,人們已經厭倦了噱頭,因此谷歌選擇專注於提高性能、電源效率、安全性和整體用戶體驗是可以理解的。 而且,與 iOS 一樣,Android 現在已經成熟。 如果您對缺乏新功能感到失望,我建議您習慣它,因為這是新常態。
想一想,圍繞 Android 7.0 的最大新聞並不是操作系統本身。 谷歌決定推出新的 Pixel 手機,旨在利用操作系統所提供的一切。 從硬件的角度來看,它們並不是特別特別——它們基於現成的技術,就像它們的 Nexus 系列前身一樣。 但谷歌對 Pixel 的商業模式卻截然不同,其重點是控制端到端的用戶體驗,並以類似蘋果的方式增加價值。
現在推測 Pixel 將對 Android 生態系統的其他部分產生什麼影響還為時過早,但可以肯定的是:這將是一個微妙的平衡行為。 谷歌可以選擇為其內部的 Pixel 手機保留一些功能,但同時也不能過分誇大其詞。 它不能通過添加太多 Pixel 專有功能而疏遠 Android 供應商並降低其產品的競爭力。
這一切如何發揮還有待觀察,但與此同時,我們應該專注於充分利用 Android 7.0。 實際上,製作 7.1,它是 Beta 版,可能很快就會發布。