跟黑馬程式員一起玩轉Android N

來源:互聯網
上載者:User

標籤:

       北京時間5月19號淩晨1點,Google在美國加州山景城舉辦了2016年的I/O開發人員大會。這是一場面向全世界開發人員介紹系統、軟體更新的盛會。今年的I/O大會Google推出了眾多新產品,包括Android N(7.0)、智能穿戴AndroidWear2.0、智能家居、VR虛擬現實等等。


      雖說整個大會的重心偏向了人工智慧(Google assistant、Allo&Duo 、Google Home),但Android作業系統作為智慧型裝置的“核心”(Android系統從手錶、手機覆蓋到電視、汽車,去年有超過600款Android智能手機上市,目前有100款汽車支援Android系統),AndroidN依舊是I/O大會最為重要看點之一。

Android N新功能匯總

本屆I/O開發人員大會上,Google發布的新一代的Android系統:Android N(7.0),今年的Android N重點關注了三個維度:分別是效能、安全和生產力。其中效能主要新增了Vulkan API與JIT編譯器(前者最佳化圖形效能、或者加快軟體安裝速度);安全性包括新的資料加密方式、惡意網站識別、系統的即時更新;生產力方面加入了分屏多任務功能、程式的快速切換,所有應用都可以支援“多視窗模式”。當然,也可以通過修改配置,讓應用不支援多視窗模式。

一、Android N新功能最亮點

·分屏多任務

隨著手機的尺寸不斷重新整理上限,智能手機與平板電腦之間的界限正被不斷打破。大尺寸螢幕帶來極佳視覺體驗的同時,也使人們能夠操控的螢幕面積增大了不少。大尺寸螢幕也為實現分屏多任務帶來了可能性。

早先只能在PC上實現的分屏多任務,如今可以在智能手機上運行。但不同Android ROM實現該功能的方式不一,對軟體的相容也大有不同,很難使全部APP完美相容。而Android N新增分屏多任務,除了讓第三方ROM開發商可以參照這個模板進行二次開發,軟體開發商也能根據Android N分屏多任務功能的實現方式去進行軟體的開發。大大加快開發速度,由此支援該功能的軟體會更多,相容性也會更好。


在運行 Android N 的手機和平板電腦上,使用者可以並排運行兩個App,或者處於分屏模式時一個App位於另一個App之上。對於AndroidTV裝置,應用程式可以將自己置身於畫中畫面模式,能夠繼續顯示在使用者瀏覽或與其他應用程式進行互動的內容。

開啟分屏多任務的方法十分簡單。只要進入後台,按住其中一個卡片向上拖動至頂部即可。當然這項功能支援左右與上下分屏,並且可以拖動中間的分割線來調整兩個App的比例。

·通知

         在Android N中重新設計了通知,可以達到更容易、更快使用的效果。一些主要的變化包括:

      模板更新:更新了通知模板重點內容和頭像。開發人員將能夠利用的新模板的優勢,在他們的代碼中實現最低限度的調整。

      捆綁通知:Android N的通知功能也更加人性化,現在會自動將相同應用的通知捆綁在一起,實現分組顯示,並且通過以兩指滑動實現預覽,理論上使用者可以在通知介面直接閱讀郵件等內容。

      直接回複:對於即時通訊應用程式,Android系統支援線上回複,使使用者可以以簡訊或簡訊通知介面內快速、直接響應。

      自訂視圖:兩個新的 API 讓使用者在通知中使用自訂視圖。


      Android N 開發人員預覽版的通知系統中還加入了兩個全新的 API 介面:Direct Replies 和 Bundling。前者支援為第三方應用的通知加入快速回複和快捷操作,後者則允許同時發出多條通知的應用進行通知拆分。

當一款應用完美的適配了 Android N,當收到一條訊息時就可以直接在下拉通知抽屜甚至是鎖屏中直接呼出輸入框進行回複,或是選擇事先設定好的快速處理操作(標示讀取、轉寄等)。而當使用者同時收到來自不同連絡人的訊息時,可以點擊知卡片上的通知分割按鈕對已經合并的通知進行拆分,拆分後的通知可以像其他的獨立通知一樣進行回複和處理。

當然,現階段適配了這兩個特性的應用屈指可數,除了 Google 的環聊、Messenger 以及 Gmail 等應用以外,目前僅發現第三方 Telegram 用戶端 Plus Messenger 支援以上功能。

面對各種應用的通知推送, Android N取以優先順序為核心的通知管理方式,而在 Android N中,通知管理也變得更加簡單:只需在需要在相應的通知上左右輕掃便能看見一個設定表徵圖,點擊該表徵圖就能在通知上方呼出一個簡潔的通知優先順序設定介面,在這個介面可以將應用通知設定為“靜默顯示”、“阻攔所有通知”和“預設”三個等級。


如果在”系統介面調諧器 - 其它“中開啟了”Show fullimportance settings”功能,這三個等級又將變為”屏蔽 - 低 - 一般 - 高 - 緊急”5 個,設定的方式也由縱列選項變為左右滑動。這個看似新穎的設計實際上是對現有通知管理操作的一次簡化,在 Android 6.0 中需要在兩個介面來回跳轉才能完成的操作,在Android7.0隻用在一個介面就可以搞定。

同時,Google 也將其對通知優先順序的定義從”幕後”搬到了”台前”,在進行完整的五層次優先順序設定時 Google 還會提醒不同優先順序所對應的通知效果。最後,勿擾模式也在 AndroidN 中得到了完善,加入了自動規則並允許使用者在“請勿打擾”模式下屏蔽靜音通知的彈窗甚至是手機的通知指示燈。

二、Android N 新特性持續改進

·改進的Doze休眠機制

       在Android 6.0中,Google帶來了全新的休眠機制Doze。據官方表示開啟Doze後,手機的續航可以延長數小時。實際測試中雖然沒有Google官方說的那般優秀,但依舊對續航起到了一定的改善作用。Doze休眠機制是當裝置處於空閑狀態時,通過延遲應用的 CPU 和網路活動以實現省電目的的系統模式。


       在 Android N 中,Doze休眠機制又前進了一步。只要螢幕關閉了一段時間,且裝置未插入電源,Doze休眠機制開啟,系統會嘗試通過限制網路訪問以及CPU密集的服務來儲存電量,這意味著使用者即使將裝置放入口袋裡也可以省電。

       具體點來說,就是螢幕關閉片刻後,裝置在使用電池時,Doze休眠機制將限制網路訪問,同時延遲作業和同步。在短暫的維護時間範圍後,其允許應用訪問網路,並執行延遲的作業/同步。開啟螢幕或將裝置插入電源會使裝置退出Doze休眠機制。當裝置再次處於靜止狀態時,螢幕關閉且使用電池一段時間,Doze休眠機制針對PowerManager.WakeLock,AlarmManager警報和 GPS/Wi-Fi 掃描應用完整 CPU 和網路限制。


      值得一提的是,新的Doze Mode還與Project Svelte強強聯合,Android N將會在待機方面創造奇蹟。

 

·Project Svelte後台最佳化

      Project Svelte 是AndroidKitKat時期推出的一種有效改善運存使用的演算法,它也在持續改善,以最大程度減少生態系統中一系列 Android 裝置中系統和應用使用的 RAM。在 Android N 中,Project Svelte 注重最佳化在後台中運行應用的方式。幕後處理是大多數應用的一個重要部分。處理得當能實現即時、快速的體驗。不得當則會毫無必要地消耗 RAM(和電池),也影響其他應用的系統效能。    

      自 Android 5.0以來,JobScheduler 已成為執行後台工作的首選。應用在安排作業的同時,允許系統基於記憶體、電源和串連情況進行最佳化。JobScheduler 可實現控制和簡潔性。另一個是 GCMNetworkManager(Google Play 服務的一部分),其在舊版 Android 中提供類似的作業安排和相容性。Google在繼續擴充 JobScheduler 和 GCMNetworkManager,以符合多個用例。在 Android N 中,可以基於內容提供者中的更改安排後台工作。棄用了一些會降低系統效能的較舊模式。

      在 Android N 中,刪除了三個常用隱式廣播: —CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO 。這些廣播可能會一次喚醒多個應用的後台進程,同時會耗盡記憶體和電池。

 

·流量節省程式(Data Saver)

      在行動裝置的整個生命週期,蜂窩資料計劃的成本通常會超出裝置本身的成本。對於許多使用者而言,蜂窩資料是他們想要節省的昂貴資源。Android N中提供了一個全域的流量控制機制:Data Saver 模式。這項新的系統服務有助於減少應用使用的蜂窩資料,無論是在漫遊,賬單周期即將結束,還是使用少量的預付費資料包。有效防止應用程式在後台惡意偷跑移動流量。此功能預設關閉,一旦開啟後除了GMS(Google Mobile Service,Google行動服務)之外,其他應用都預設不允許在後台使用超過前台所消耗的移動流量。

      Data Saver 讓使用者可以控制應用使用蜂窩資料的方式,同時讓開發人員開啟 Data Saver 時可以提供更多有效服務。對開發人員而言,在Android N系統中要主動檢查使用者是否開啟了流量節省程式,並注意節約後台時的資料流量消耗。

       使用者在 Settings 中啟用 DataSaver 且裝置位於計量付費網路上時,系統屏蔽後台資料使用,同時指示應用在前台儘可能使用較少的資料。例如通過限制用於流媒體服務的位元速率、降低圖片品質、延遲最佳的預緩衝等方法來實現。將特定應用加入白名單以允許後台按流量的資料使用,即使在開啟 Data Saver 時也是如此。

 

       Android N 繼承了 ConnectivityManager,以便為應用檢索使用者的 DataSaver 喜好設定並監控喜好設定變更提供一種方式。所有應用均應檢查使用者是否已啟用 Data Saver 並努力限制前台和後台資料的使用。

·範圍目錄訪問

      在Android N 中,應用可以使用新的 API 請求訪問特定的外部儲存目錄,包括抽取式媒體上的目錄,如 SD 記憶卡。新 API 大大簡化了應用訪問標準外部儲存目錄的方式,如 Pictures 目錄。應用可以使用這些 API(而不是使用 READ_EXTERNAL_STORAGE),其授予所有儲存目錄的存取權限或儲存訪問架構,從而讓使用者可以導航到目錄。

      此外,新的 API 簡化了使用者嚮應用授予外部儲存存取權限的步驟。當您使用新的 API 時,系統使用一個簡單的許可權 UI。

·快速設定欄API

“快速設定”通常用於直接從通知欄顯示關鍵設定和操作,非常簡單。在 Android N 中,已擴充“快速設定”的範圍,使其更加有用更方便。Google為額外的“快速設定”Tile添加了更多空間,使用者可以通過向左或向右滑動跨分頁的顯示地區訪問它們。還讓使用者可以控制顯示哪些“快速設定”Tile以及顯示的位置 — 使用者可以通過拖放Tile來添加或移動Tile。

      對於開發人員,Android N 還添加了一個新的API,從而可以定義自己的“快速設定”Tile,可以輕鬆訪問應用中的關鍵控制項和操作。對於急需或頻繁使用的控制項和操作,保留“快速設定”Tile,且不應將其用作啟動應用的捷徑。


Profile-guided  JIT (Just in Time)/ AOT編譯

       AndroidN引入了一種包含編譯、解釋和JIT(Just InTime)的交互式執行階段,以便在安裝時間、記憶體佔用、電池消耗和效能之間獲得最好的折衷。

ART取代了Dalvik,但保持了位元組碼級的相容, ART的主要特徵之一就是安裝時對應用的AOT編譯。這種方式的主要優點就是最佳化產生的本地代碼效能更好,執行起來需要更少的電量。在Lollipop和Marshmallow(Android 6.0)中,大的應用需要數分鐘才能安裝完。Android中N,添加了程式碼分析JIT編譯器技術,提高了Android應用程式的效能。應用在安裝時不做編譯,而是解釋位元組碼,所以可以快速啟動。JIT編譯器補充ART當前的時間提前(AOT)編譯器,有助於提高運行時效能,節省儲存空間,加快應用程式更新和系統更新。

      ART中有一種新的、更快的解譯器,通過一種新的JIT完成,但這種JIT的資訊不是持久化的。取而代之的是代碼在執行期間被分析,分析結果儲存起來。當裝置空轉和充電的時候,ART會執行針對“熱代碼”進行的基於分析的編譯,其他代碼不做編譯。為了得到更優的代碼,ART採用了幾種技巧包括深度內聯。

      這種混合使用AOT、解釋、JIT的策略的全部優點是即使是大應用,安裝時間也能縮短到幾秒;系統升級能更快地安裝,因為不再需要最佳化這一步;應用的記憶體佔用更小,有些情況下可以降低50%;改善了效能;更低的電池消耗。

      Profile-guided編譯管理讓ART管理,根據其實際使用每個應用程式的AOT / JIT編譯,以及在裝置上的條件。ART保持了每個應用程式的熱方法設定檔,可以先行編譯並緩衝以獲得最佳效能的方法。離開應用程式的其他部分未編譯,直到它們被實際使用。

除了改善應用程式的關鍵部位效能,Profile-guided編譯有助於減少應用程式的整體記憶體佔用,包括相關的二進位檔案。此功能在低記憶體裝置尤其重要。

·Android架構中提供部分ICU4J API支援

      ICU4J(International Componentsfor Unicode)是由IBM維護,基於IBM公用許可證分發的免費開源Unicode工具庫,開發人員可以使用ICU4J根據各地的風俗和語言習慣,實現對數字、貨幣、時間、日期、和訊息的格式化、解析,對字串進行大小寫轉換、整理、搜尋和排序等功能。

      但由於Android N內建了部分ICU4J API,如果Android應用只使用了這部分的API,那今後就可以不再整合龐大的高達10MB左右的ICU4J庫了。開發人員可以在Google Play上針對使用Android N的使用者提供不含ICU4J的輕量安裝包,而針對更早版本系統提供包含ICU4J的完整安裝包。


Android N已經發布,但考慮到國內各種深度定製化的Android系統還要對其作出硬體適配、軟體的捆綁整合,相信距離Android N的大面積普及還需要一段時間。

在Android N尚未推送之際,黑馬的驚喜福利先N一步從天而降!趕在Android N系統推送之前,黑馬程式員的優秀講師已經將《An droid N新特性課程》視頻已經錄製完畢!黑馬程式員的目標是時刻與Google保持同步更新,Google發布了Android N新版本,黑馬程式員第一時間投入研發新課程,並第一時間推出,目的就是讓黑馬的學員一直跑在行業的最前沿,引領整個行業!

PS:新老學員都可以免費擷取Android N最新課程資源!

附:Android N 視頻+資料 連結:http://pan.baidu.com/s/1bpC1HGN

【新老學員隨時可向班主任申請播放認證】

跟黑馬程式員一起玩轉Android N

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.