Android5.0,6.0,7.0,8.0新特性整理,Android5.0(AndroidLollipop)是谷歌公司2014年10月發佈的全新安卓系統,至今已經兩年多。然而由於國產手機對安卓ROM的深度定制或修改,以及手機廠商、芯片制造商、運營商之間錯綜復雜的關系,我們更新最新安卓版本往往需要1年左右時間的等待。2015年5月發佈瞭Android6.0(Android Marshmallow),2016年8月發佈瞭Android7.0(Android Nougat)。目前來說,用上6.0系統的手機都不太多,Android4.4和Android5.1版本占比重較高。但是,隨著時間推移,手機陸續都會升級到更高的系統版本,所以,提前學習到各版本的新特性,把一下好的效果添加到代碼中,並盡量做到向下兼容,應用才能擁有更好的體驗,面對升級過後的系統才能從容不迫。
概述內容
從Android 5.0(Android Lollipop)開始,android迎來瞭扁平化時代,使用一種新的Material Design 設計風格,設計瞭全新的通知中心,開始支持多種設備。在性能上,放棄瞭之前一直使用的Dalvik虛擬機,改用ART模式,程序加載時間大幅提升。增加瞭Battery Saver模式來進行省電處理,以及全新的“最近應用程序”。
Android 6.0(Android Marshmallow)最大的亮點是為用戶提供瞭兩套相互獨立的解決方案,簡單的說,就是為每位用戶的每一個應用提供瞭兩套數據存儲方案。一套存儲工作資料,另一套存儲個人信息。另外Android M系統層面加入指紋識別,還加入瞭運行時權限,加入瞭App Standby(應用待機)、Doze(瞌睡)Exemptions(豁免)等模式來加強電源管理。
Android 7.0(Android Nougat),在性能處理有瞭巨大的提升,同時對文件數據加密,更加安全。 添加瞭分屏多任務,重新設計瞭通知,改進Doze休眠機制等。總而言之,Android N將更快,更高,更強。
Android 5.0新特性
Material Design
提起Android5.0,就不得不說Material Design,扁平化的設計理念。新的視覺語言,在基本元素的處理上,借鑒瞭傳統的印刷設計,字體版式、網格系統、空間、比例、配色、圖像使用等這些基礎的平面設計規范。
之前的一些需要自定義的效果,現在都提供瞭系統級的支持,用起來更加方便瞭,而且android提供的效果看起來更加流暢。這裡篇幅較多,本著不重復造輪子的思想,筆者找瞭一片寫的很全面的Material Design的網站,圖文並茂,值得學習。
Meterial Design開發者參考文檔。https://www.materialdoc.cn/
支持多種設備
現在無論是智能手機、平板電腦、筆記本電腦、智能電視、汽車、智能手表甚至是各種傢用電子產品,谷歌的Android系統已經可以在所有設備的屏幕上出現。而這一概念與微軟不謀而合,之前微軟也宣佈將會把Windows 10打造成跨設備跨平臺的統一系統,幫助自己走出困境。
全新通知中心設計
谷歌在Android Lollipop中加入瞭全新風格的通知系統。改進後的通知系統會優先顯示對用戶來說比較重要的信息,而將不太緊急的內容隱藏起來。用戶隻需要向下滑動就可以查看全部的通知內容。
新的通知系統另外一個很酷的新功能是在鎖屏界面也可以直接查看通知消息瞭。不僅如此,用戶還可以直接在鎖屏的情況下就行回復或進入應用。另外,如果在操作手機的過程中有電話進入,也不會進行全畫面切換,而是同樣以彈出通知的方式告知用戶。
支持64位ART虛擬機
新系統不僅在視覺效果上帶來瞭巨大的變化,Android Lollipop還在內部的性能上進行瞭飛躍。首先,新系統放棄瞭之前一直使用的Dalvik虛擬機,改用瞭ART模式,實現瞭真正的跨平臺編譯,在ARM、X86、MIPS等,無處不在。
ART 虛擬機編譯器在內存占用及應用程序加載時間上進行瞭大幅提升,谷歌承諾所有性能都會比原來提升一倍。另外,對64位的支持也讓ART虛擬機如魚得水,開發者可以針對像ARM Cortex-A57這樣的64位架構核心開發應用程序。Android Lollipop支持更大的寄存器,支持新的指令集,提升瞭內存尋址空間,未來Android智能手機將支持4GB以上的內存。
《Android ART運行時無縫替換Dalvik虛擬機的過程分析》https://blog.csdn.net/luoshengyang/article/details/18006645
Project Volta電池續航改進計劃
Project Volta計劃增加瞭新工具可以讓開發者能夠更容易的找出為何自己的應用程序會對電量產生比較大的影響,同時確保在執行某型任務時將手機電量的影響降至最低。首先,Battery Historian可以列出手機電量消耗的詳細情況,幫助開發者識別電量消耗的原因或者是哪個硬件或任務對電池壽命的影響比較大;而Job Scheduler API則可以讓開發者更容易的選擇合適的時機觸發電量消耗比較高的任務,避免在低電量或未完成充電時更新應用程序。
上面是針對開發者的改進,而在用戶層面上,Android Lollipop增加瞭Battery Saver模式,這與三星和HTC上的超級省電模式有些類似。在低電量的時候系統會自動降低屏幕亮度、限制自動更換背景等功能。
全新的“最近應用程序”
除瞭界面風格設計的改變之外,新的最近應用界面還借鑒瞭Chrome瀏覽器的理念,采用單獨的標簽展示方式。更重要的是,谷歌已經向開發者開放瞭API,所以第三方開發人員可以利用這個改進為特定的應用增加全新的功能。
改進安全性
現在個人識別解鎖還是一個比較新鮮的智能概念,當用戶的藍牙耳機連接到手機或平板電腦時,設備可以基於當前的位置或用戶的聲音自動解鎖。比如當特定的智能手表出現在Android設備的附近,那麼就會直接繞過鎖屏界面進行操作。而Android Lollipop也增加瞭這種針對特定特任識別解鎖的模式。換句話說,當設備沒有檢測到附近有可用的信任設備時,就會啟動安全模式防止未授權訪問。
另外,Android Lollipop還默認開啟瞭系統數據加密功能,並且通過SELinux執行應用程序,這就意味著對於惡意軟件來說,新系統變得更加安全。
不同數據獨立保存
谷歌表示Android Lollipop將擁有一個全新的特性,讓用戶通過一臺設備就可以搞定所有的工作和生活娛樂活動。該特性首先將各種數據獨立保存,並且讓所有新數據的生成都有依據。
我們已經看到谷歌已經與三星加強瞭合作,包括三星的Knox安全系統同樣可以像Android Lollipop一樣將重要數據和其它數據分開保存。另外谷歌還允許向三星以外的Android設備提供支持。
改進搜索
谷歌將新系統的搜索功能重點放在瞭“重新發現”上,因此這意味著Google Search將會更好的意識到用戶正在做什麼。比如系統會根據用戶當前的位置自動過濾無關的搜索結果。
另外,當用戶在進行應用搜索時,可以直接展示相似或部分提示,並且進入特定的應用程序而無需將內容全部輸入。
支持藍牙4.1、USB Audio、多人分享等其它特性
Android Lollipop還增加瞭多個新的API支持、藍牙4.1、USB Audio外接音響及多人分享等功能。其中多人分享功能可以在用戶手機丟失的情況下,使用其它Lollipop設備登錄賬戶,從雲端下載聯系人、日歷等資料,並且不影響其它設備的內容。
Android 6.0 新特性
動態權限管理
Android 6.0引入瞭動態權限管理,將標記為危險的權限從安裝時權限(Install Time Permission)模型移動到運行時權限模型(Runtime Permissions):
安裝時權限模型(Android5.1以及更早):用戶在應用安裝和更新時,對危險權限授權。但是OEM和運行商預裝的應用將自動預授權。
運行時權限(Android6.0及以後):用戶在應用運行時,對應用授予危險權限。由應用決定何時去申請權限(例如,在應用啟動時或者用戶訪問某個特性時),但必須容許用戶來授予或者拒絕應用對特定權限組的訪問。OEM和運營商可以預裝應用,但是不能對權限進行預授權。
運行時權限提供給用戶關於應用所需權限更多的相關上下文和可視性,這也讓開發者幫助用戶更好的理解:為什麼應用需要所請求的權限,授權將有什麼樣的好處,拒絕將有何種不便。用戶可以通過設置中的菜單來撤銷應用的權限。
受影響的權限
系統要求標記為危險(dangerous)的權限使用運行時權限模型。查看危險權限列表可以使用命令:adb shell pm list permissions -g -d 。
Android6.0並不改變正常權限的行為。正常權限指的是所有非危險(non-dangerous)權限,包括normal,system和signature 權限。正常權限風險較低,用於容許應用以最小風險來訪問隔離的應用級別的特性。在Android5.1和早期版本中,系統在安裝時自動將正常權限授予請求的應用,並不提示用戶
請求權限
運行時權限模型適用於所有應用,包括預裝應用。應用軟件的要求包括:
運行時權限模型必須在所有運行Android6.0的設備上是一致的。這通過CTS來實施。
應用必須在運行時提示用戶進行授權。
帶有危險權限的預裝應用,必須符合API level 23,必須維護Android6.0的AOSP權限模型(例如,應用安裝的UI流程不應該脫離AOSP的packageInstaller的實現;用戶可以撤銷預裝應用的危險權限;等等)。
無界面的應用必須使用Activity來申請權限,或者與其他有相應權限的應用共享UID。
權限遷移
在設備從Android5.x升級到Android6.0之後,授予應用的權限仍然有效。但是用戶可以在任何時候撤銷這些權限。
《Android 6.0: 動態權限管理的解決方案》https://blog.csdn.net/caroline_wendy/50587230
指紋識別(Fingerprint Support)
說到指紋識別,很多用戶都會覺得現在的中高端安卓手機都支持,但事實上這些安卓手機的指紋識別都是各個廠商自行開發的並沒有系統底層的支持。Android 6.0則在系統層面加入指紋識別,能提供原生指紋識別API,這不但降低瞭廠商開發指紋識別模塊的成本,最重要的是原生指紋識別將會大大提升安卓手機的指紋識別支付安全性。
APP關聯(App Links)
Android M加強瞭軟件間的關聯,谷歌在現場展示瞭一個例子,比如你的手機郵箱裡收到一封郵件,內文裡有以個Twitter鏈接,用戶點擊該鏈接可以直接跳轉到Twitter應用,而不再是網頁。
Chrome App Links這個就相當於在Web中使用Scheme來進行App的跳轉功能一樣,隻不過這裡Chrome默認就支持瞭,用戶隻需要搜索相關的關鍵詞,就可以直接顯示App,然後通過App Link直接啟動App。這個東西對用戶來說應該是一件非常好、方便的事情,但由於國內這些瀏覽器的問題,不知道能否會兼容這個功能。
Android pay
Android支付統一標準。新的M系統中集成瞭Android Pay。其特性在於簡潔、安全、可選性。Android Pay是一個開放性平臺,用戶可以選擇谷歌的服務或者使用銀行的APP來使用它,Android Pay支持4.4以後系統設備,谷歌宣佈Android Pay已經與美國三大運營商700多傢商店達成合作,支付功能可以使用指紋來進行支付。
電源管理
Android6.0引入瞭下列特性來延長電池使用時間:
App Standby(應用待機): 系統可以將未使用的應用置為AppStandby模式,臨時限制這些應用的網絡訪問,延遲同步和後臺job
Doze(瞌睡): 如果用戶在某個時間期限內未主動使用設備(屏幕關閉、設備靜止),平臺將進入深度睡眠狀態。因為該特性要求平臺檢測靜止狀態,因此隻有那些在Sensor HAL中實現瞭顯式移動檢測API的設備中才有效。
Exemptions(豁免): 預裝在設備上的系統應用和雲消息服務,默認通常被豁免。應用開發者可以要求其應用使用這種設定。用戶也可以在設置中來豁免某些應用。
App Standby
對於不常用的應用的,AppStandby通過延遲後臺網絡活動和任務來延長電池壽命。
生命周期
檢測:當設備不在充電時,且在某個特定時鐘期限內和亮屏時長中,用戶沒有直接或者間接啟動該應用。間接啟動指的是:前臺應用訪問另外某個應用的service。
App Standy模式中:平臺限制應用一天內最多訪問一次網絡,延遲其同步和其他後臺任務。
退出:當應用被激活,或者設備充電時,平臺將該應用移出App Standby狀態。
活動的應用不受AppStandby的影響。活動的含義是:
進程處於前臺(Activity 或者前臺服務,或者由另外一個Activity 或前臺服務所使用),例如 notification listener,輔助服務,live 墻紙,等等。
供用戶查看的通知,可以是鎖屏通知或者通知圖標。
用戶顯式啟動的應用。
Doze
支持Doze功能的要求:
設備在Sensor HAL實現瞭significant motion detector (SMD) APIs 。
設備有某個雲消息服務,如 Google Cloud Messaging (GCM)。這使得設備可以知道何時從Doze中喚醒。
生命周期
檢測:當未在充電時,且當設備靜止且滅屏瞭一段時間。
Doze期間:平臺嘗試讓系統處於休眠狀態,周期性地進入在一個維持窗口恢復正常操作,然後進入更長的休眠狀態。在休眠狀態:
禁止網絡訪問
忽略 wakelock
延遲鬧鐘,除瞭鬧鈴 和使用setAndAllowWhileIdle()設置的鬧鐘,以榮喜日歷等應用顯示事件提醒
停止WIFI掃描
同步和後臺任務被推遲到下一個維護窗口。
接收短信和MMS消息的應用位於一個臨時白名單,這樣他們可以完成其工作。
退出:
用戶交互
設備移動
亮屏
鬧鈴
集成Doze
確認設備支持 SENSOR_TYPE_SIGNIFICANT_MOTION .
確認設備安裝瞭一種雲消息服務。
在配置文件overlay/frameworks/base/core/res/res/values/config.xml中,修改:bool name=”config_enableAutoPowerModes”>true
檢查裝應用和服務:
Use the new power-saving optimization guidelines. For details, see Testing and optimizing applications.
OR,Are exempted from Doze and App Standby. For details, see Exempting applications.
確認必要的服務從Doze中豁免。
Exemptions
你可以在設置中,手動將某些應用從Doze和AppStandby中排除。
存儲
在之前,安卓系統雖然可以支持TF卡擴展,但TF卡擴展的容量隻能當成外置存儲。雖然用戶可以把照片、音樂等內容放進去,但App不能安裝到其中。在安卓6.0中,當首次插入TF卡的時候,系統會詢問會將TF卡作為外置還是內置儲存。如果選擇作為內置存儲,系統則會對TF卡格式化並加密——註意,這會丟失數據!然後,TF卡的容量就和設備的內置存儲融合瞭。
一般來說,設備的內置存儲速度會比TF卡快上不少,穩定性也更高,因此如果不是容量特別緊張,並不建議把TF當成內置儲存植入。同時,市面上支持TF卡擴展的安卓設備也越來越少,安卓6.0的這個新特性也許會遭到冷遇。
《Android數據存儲之Android 6.0運行時權限下文件存儲的思考》https://www.cnblogs.com/whoislcj/p/6137398.html
《Android6.0權限適配之WRITE_EXTERNAL_STORAGE(SD卡寫入)》
https://unclechen.github.io/2016/03/06/
Android 7.0 新特性
Android7.0提供新功能以提升性能、生產效率和安全性。
關於Android N的性能改進,Android N建立瞭先進的圖形處理Vulkan系統,能少的減少對CPU的占用。與此同時,Android N加入瞭JIT編譯器,安裝程序快瞭75%,所占空間減少瞭50%。
在安全性上,Android N加入瞭全新安全性能,其中包括基於文件的數據加密。谷歌移動版Chrome能識別惡意網站。
Android N可以進行無縫更新,與Chromebook一樣,用戶將不再需要下載安裝,也不再需要進行重啟。
在效率提升上,Android N可以自動關閉用戶較長時間未使用的應用程序。在通知上新增瞭直接回復功能,並支持一鍵全部清除功能
分屏多任務
進入後臺多任務管理頁面,然後按住其中一個卡片,然後向上拖動至頂部即可開啟分屏多任務,支持上下分欄和左右分欄,允許拖動中間的分割線調整兩個APP所占的比例。
全新下拉快捷開關頁
在Android 7.0中,下拉打開通知欄頂部即可顯示5個用戶常用的快捷開關,支持單擊開關以及長按進入對應設置。如果繼續下拉通知欄即可顯示全部快捷開關,此外在快捷開關頁右下角也會顯示一個“編輯”按鈕,點擊之後即可自定義添加/刪除快捷開關,或拖動進行排序。
新通知消息
通知消息快捷回復
加入瞭全新的API,支持第三方應用通知的快捷操作和回復,例如來電會以橫幅方式在屏幕頂部出現,提供接聽/掛斷兩個按鈕;信息/社交類應用通知,還可以直接打開鍵盤,在輸入欄裡進行快捷回復。
通知消息歸攏
Android7.0會將同一應用的多條通知提示消息歸攏為一項,點擊該項即可展開此前的全部通知,允許用戶對每個通知執行單獨操作。
夜間模式
Android7.0中重新加入瞭夜間深色主題模式,該功能依然需要在系統調諧器中開啟,從頂部下劃打開快捷設置頁,然後長按其中的設置圖標,齒輪旋轉10秒鐘左右即可提示已開啟系統調諧器,之後用戶在設置中即可找到“系統調諧器”設置項。點開其中的“色彩和外觀”,即可找到夜間模式,開啟後即可使用全局的深色主題模式,同時亮度和色彩也會進行一定的調整,該功能可以基於時間或地理位置自動開啟。另外,系統調諧器中也提供瞭RGB紅綠藍三色調節滑動條,允許用戶手動精細調節,例如減少藍色或增加紅色以提供類似護眼模式的效果。
流量保護模式
新增的流量保護模式不僅可以禁止應用在後臺使用流量,還會進一步減少該應用在前臺時的流量使用。推測其有可能使用瞭類似Chrome瀏覽器的數據壓縮技術。此外,谷歌還擴展瞭ConnectivityManager API的能力,使得應用可以檢測系統是否開啟瞭流量保護模式,或者檢測自己是否在白名單中。Android7.0允許用戶單獨針對每個應用,選擇是否開啟數據保護模式。
全新設置樣式
Android7.0啟用瞭全新的設置樣式,首先每個分類下各個子項之間的分割線消失瞭,隻保留分類之間的分割線。全新的設置菜單還提供瞭一個綠色的頂欄,允許用戶通過後方的下拉箭頭,快速設定勿擾模式等。除瞭勿擾模式外,頂欄菜單還可以顯示諸多其他的設置狀態,例如數據流量的使用情況,自動亮度是否開啟等。谷歌也在安卓7.0的設置中加入瞭漢堡菜單,在二級設置界面中的左上角,你就會看到這個漢堡菜單,點擊後即可看到所有設置項,方便用戶快速跳轉。
改進的Doze休眠機制
谷歌在Android7.0中對Doze休眠機制做瞭進一步的優化,在此前的Android6.0中,Doze深度休眠機制對於改善安卓的續航提供瞭巨大的作用。而在Android67.0中,谷歌對Doze進行瞭更多的優化,休眠機制的使用規則和場景有所擴展,例如隻要手動在後臺刪掉應用卡片,關屏後該應用就會被很快深度休眠。
系統級電話黑名單功能
Android7.0將電話攔截功能變成瞭一個系統級功能。其它應用可以調用這個攔截名單,但隻有個別應用可以寫入,包括撥號應用、默認的短信應用等。被攔截號碼將不會出現在來電記錄中,也不會出現通知。另外用戶也可以通過賬戶體系備份和恢復這個攔截名單,以便快速導入其它設備或賬號。
菜單鍵快速應用切換
雙擊菜單鍵,就能自動切換到上一個應用。此外,如果你不停地點擊菜單鍵的話,就會在所有應用中不間斷地輪換,應用窗口會自動放大,頂部還會出現倒計時條,停止點擊且倒計時結束後,當前應用會自動放大並返回到前臺。