- Android 5從入門到精通
- 李波
- 3800字
- 2021-03-19 15:28:56
1.4 Android5新特性介紹
Android 5.0 Lollipop是迄今為止規模最大的Android版本。該版本為用戶推出了各種嶄新的功能,為開發者提供了數千個新的API。不僅如此,它還將Android擴展得更廣,小到手機、平板電腦和穿戴式設備,大到電視和汽車。
本部分主要介紹Android Lollipop新增的幾個特性。
1.4.1 全新的Material design設計
Android 5.0將Material design設計引入Android系統,它自帶一個擴展的界面工具包,可以讓開發者輕松地將新的設計圖案集成到自己的應用中。在新的3D視圖中,設置z軸可以讓元素從視圖層面上“站”起來,甚至可以隨著元素的移動投下實時陰影。
1. 內置的Activity Transitions API
內置的Activity Transitions API可以通過優美的動畫天衣無縫地讓用戶從一種狀態切換到另一種狀態。素材主題為活動提供了各種過渡方式,包括在各個活動中使用共享的可視化元素功能。
要重播影片,可以單擊設備屏幕;可以對按鈕、復選框以及應用中的其他觸摸控件加上漣漪動畫;可以在XML文件中定義可動的矢量圖,讓它們展現出各種不同的動畫效果(矢量圖在自由縮放的同時不會失真,非常適合用作應用中的純色圖標)。
2. RenderThread
RenderThread是新推出的由系統管理的渲染線程,即使主界面線程出現延遲,它也能保持動畫運行流暢。
1.4.2 支持64位ART虛擬機
Android 5.0為用戶帶來更快、更流暢、更強大的計算體驗。
Android現在完全運行在全新構建的ART運行時上,支持混合使用預先編譯(AOT)、即時編譯(JIT)和編譯好的代碼。它可以在ARM、x86和MIPS架構上正常運行,并完全兼容64位。
ART改進了應用性能和響應能力。它采用高效的垃圾回收方式,減少了垃圾回收事件的次數和暫停時間,貼合搭配垂直同步窗口,因此應用不會出現掉幀現象。ART還會動態移動內存,針對前臺使用情況優化內存。
Android 5.0引入了對64位架構(已應用于Nexus 9的NVIDIA Tegra K1)的平臺支持,經過優化后提供更大的尋址空間,提升了針對特定的計算工作負載的性能。以Java編寫的應用可自動作為64位應用運行,不需要任何修改。如果應用使用原生代碼,也不用擔心,Android 5.0擴展了NDK,可支持適用于ARM v8、x86-64和MIPS-64的新ABI。
Android一如既往注重實現更流暢的性能,并在5.0中改進了聲音/視頻同步方式。音頻和圖形管道都經過調校,時間戳更為精準,因此視頻應用和游戲都能顯示流暢的同步內容。
1.4.3 全新的通知設計
在Android 5.0中,用戶可以更加方便地查看、使用和配置通知。
用戶可以根據需要,在鎖屏上顯示不同的詳細信息的通知,例如,他們可以選擇在安全鎖屏上完全不顯示通知,也可以選擇顯示部分或全部通知。
像來電這樣的重要通知警報會顯示在浮動通知中,如圖1.2所示。這是一個浮在上方顯示的小窗口,方便用戶不用退出當前應用就能響應或關閉通知。

圖1.2 浮動通知
開發者現在可以在通知中通過新的元數據來收集相關的聯系人(用于評級)、類別和優先級。
內置新的媒體通知模板可以設置多達6個控制按鈕(包括“thumbs up”之類的自定義控件),以通知方式實現一致的媒體控制,再也不需要用RemoteViews了!
1.4.4 以大屏幕呈現
Android TV打造了一個完整的電視平臺,讓開發者的應用在大屏幕上運行。它以簡潔的主屏幕體驗為核心,提供個性化推薦和語音搜索功能,方便客戶輕松查找內容。如圖1.3所示。

圖1.3 大屏幕呈現多個應用
有了Android TV,可以為應用或游戲內容提供更大的發揮空間,并支持與游戲控制器和其他輸入設備互動。Android還在v17支持庫中提供了Leanback界面框架,幫助開發者構建在25.4厘米處觀看的電視界面,給用戶一種全新的視覺效果。
Android TV輸入框架(TIF)能夠讓電視應用處理來自HDMI輸入、電視調諧器和IPTV接收器等等的視頻流。它還通過TV輸入框架發布的元數據支持直播電視搜索和推薦功能,并且內置HDMI-CEC控制服務,可以讓用戶通過單獨一個遙控器操控多個設備。
TV輸入框架能夠讓開發者廣泛使用大量直播電視輸入來源,并將它們匯總在同一個界面中供用戶瀏覽、查看和欣賞內容。如果開發者為內容構建電視輸入服務,用戶就能更便利地在電視設備上觀看這些內容。
1.4.5 以文檔為中心
Android 5.0引入了重新設計的“概述”空間Overview space(以前稱為“最近事項” Recents),以便更多樣化和多任務地處理。
新的API讓應用中的活動化身成為獨立的文檔,與其他最近活動的屏幕并排顯示,這樣可以充分利用并行文檔,讓用戶及時訪問更多內容或服務。例如,可以使用并行文檔展現高效的應用文件、游戲中的玩家比賽,或者聊天應用中的即時消息。
1.4.6 改進連接性能
Android 5.0新開發的API可以讓應用與低功耗藍牙(BLE)的掃描內圍模式和廣告(外圍模式)實現并行操作。
新的多網特性允許App查詢網絡狀態的可用性,例如,Wi-Fi網絡、蜂窩網絡、計量或提供某些網絡特性。然后,應用可以請求聯網,并在連接斷開或出現其他的網絡變動時作出響應。
近場通信(NFC)API現在允許應用動態注冊NFC應用ID(AID),還可以根據活動狀態下的服務設置首選卡模擬服務,并創建NDEF記錄(采用UTF-8文本數據)。
1.4.7 高性能圖形
Android 5現已支持Khronos OpenGL ES 3.1,因此開發者可以在受支持的設備上為游戲和其他應用采用最高性能的2D和3D圖形功能。
OpenGL ES 3.1增加了計算著色器、模版紋理、加速的視覺效果、優質ETC2/EAC紋理壓縮、高級紋理渲染、標準化紋理尺寸以及渲染緩沖區格式等功能。
Gameloft開發的《騎士對決》采用了AEP中的ASTC(自適應可伸縮紋理壓縮)和ES 3.1中的計算著色器,不僅打造出HDR(高動態范圍)泛光效果,而且圖形細節更加清楚。如圖1.4所示。

圖1.4 高性能圖形效果
Android 5.0還引入了Android擴展程序包(AEP),這是一組OpenGL ES擴展程序,可讓開發者使用鑲嵌圖案著色器、幾何圖形著色器、ASTC紋理壓縮、按樣本插入和著色以及其他高級渲染功能。有了AEP,開發者就可以通過一系列GPU運用高性能圖形。
1.4.8 功能更強的音頻處理
Android 5.0采用全新的音頻捕捉設計,提供低延遲音頻輸入功能。在此設計中,快速音頻捕捉線程只要不是讀取則永遠不會阻塞,高速客戶端采用本地取樣頻率、通道數和位深度;普通客戶端具備重新采樣、上/下行通道混合以及上/下位深度的特點。借助多通道音頻流混合,專業音頻應用可以混音多達八個通道,包括5.1和7.1通道在內。
應用現在可以公開自己的媒體內容,并瀏覽其他應用的媒體,然后請求播放。內容通過具有查詢功能的界面公開,不需要駐留在設備上。應用可以通過與特定區域設置、質量和延遲評級關聯的語音配置文件精準控制從文本到語音的合成。新的API還增強了對合成錯誤檢查、網絡合成、語言搜索和網絡回退的支持。
Android現在支持標準USB音頻外設,因此用戶可以連接USB耳機、揚聲器、麥克風和其他高性能數字外設。Android 5.0更是支持Opus音頻編解碼器。
在媒體播放控制領域內新開放的MediaSession API,能夠在不同屏幕和不同控制器之間保持一致的媒體控制。
1.4.9 進一步完善的攝像頭和視頻處理
Android 5.0引入了全新的攝像頭API,支持開發者以YUV和Bayer RAW等原始格式拍照,并針對每個獨立幀控制曝光時間、ISO感光度和幀持續時間。新的完全同步的攝像頭管道允許開發者在受支持的設備上以每秒30幀的速率捕獲未壓縮的全分辨率YUV圖片。除了圖片之外,開發者還可以通過攝像頭捕獲元數據,例如,噪聲模型和光學信息。
視頻如果是通過網絡發送視頻流,則現在可以利用H265高效視頻編碼(HEVC)實現視頻數據的最佳編碼和解碼。
Android 5.0還新支持多媒體隧道,以便針對超高清(4K)內容提供最佳體驗,并且能夠將壓縮的音頻和視頻數據一起播放。
用戶可以通過一致的方式查看其個人應用和工作應用,這些應用帶有標記,可以輕松識別。如圖1.5所示。

圖1.5 帶標記的應用
1.4.10 配置文件
為了在企業環境中實現自帶設備辦公,開發者可以借助全新的托管配置流程在設備上創建安全的工作配置文件。在啟動器中,應用如果帶有工作標記,則表示該應用及其數據是由IT管理員在工作配置文件內管理的。
針對個人配置文件和工作配置文件的通知都顯示在一個統一視圖中。每個配置文件的數據始終彼此分開,即使當兩個配置文件使用同一應用時也是如此。
對于公司自有的設備,IT管理員可以通過設備所有者著手處理新設備并予以配置。雇主可以針對已安裝并可配置全局設備設置的設備所有者應用發放這些設備。
1.4.11 屏幕截圖和共享
Android 5.0允許開發者在應用中使用屏幕捕獲和屏幕共享功能。
只要擁有用戶權限,開發者就可以從顯示屏捕獲非安全視頻,并可以選擇通過網絡發送。
1.4.12 新型傳感器
在Android 5.0中,新的傾斜檢測傳感器能夠幫助改善受支持設備上對活動的識別情況,心率傳感器則可報告觸摸設備的人員的心率。
新的互動復合傳感器現在可用來檢測特殊互動,例如“喚醒”手勢、“拾取”手勢和“掃視”手勢。
1.4.13 Chromium WebView
Android 5.0的初始版本包括一個適用于WebView的Chromium版本,該版本基于Chromium M37版本,增加了對WebRTC、WebAudio和WebGL的支持。Chromium瀏覽器圖標如圖1.6所示。

圖1.6 Chromium瀏覽器
Chromium M37還包括對所有Web組件規范的原生支持:定制元素、Shadow DOM、HTML導入以及模板。也就是說,開發者可以在WebView中使用Polymer及其Material design設計元素,無需polyfills。
雖然自Android 4.4以來WebView已基于Chromium,但現在可以從Google Play更新Chromium層。
當有新的Chromium版本可用時,用戶可以從Google Play進行更新以確保獲得針對WebView的最新增強功能和錯誤修復,以便為在Android 5.0和更高版本上使用WebView的應用提供最新的Web API和錯誤修復。
1.4.14 輔助功能和輸入
Android 5新的輔助功能API可以檢索屏幕(普通用戶可見并可與之互動)上窗口屬性的詳細信息,并且可以為界面元素定義標準或定制輸入操作。
新的輸入法編輯器(IME)API支持從輸入法更快地直接切換到其他IME。
1.4.15 可構建低電耗應用
新的作業調度API支持開發者將系統作業推遲到后期或特定情況(例如,設備在充電或已連接到Wi-Fi),從而最大延長電池壽命。
新的dumpsys batterystats命令會生成如圖1.7所示的耗電量統計信息,方便開發者了解整個系統的用電情況以及應用對設備電池的影響,開發者可以查看電源事件的歷史記錄、每個UID和系統組件的大致用電量,等等。

圖1.7 耗電量統計信息
Battery Historian是一個新工具,可以將dumpsys batterystats的統計信息轉成直觀的信息,方便電池進行調試。該工具可以到https://github.com/google/battery-historian下載。