Android 5.0 Lollipop介紹

來源:互聯網
上載者:User

標籤:三維圖形   資源   色彩配置   去除   file   內容   方法   iap   c/c++   

Android   Lollipop 介紹

 

Android 5.0 Lollipop,此版本為使用者提供了豐富的新功能,並為開發人員新增了數以千計的 API,它進一步擴充了 Android 的應用範圍,從手機、平板電腦和可穿戴式裝置,擴充到電視和汽車。

1、Android  5.0新增功能與特性 Material Design

簡介:Material Design語言的一些重要功能包括 系統字型Roboto的升級版本 ,同時顏色更鮮豔,動畫效果更突出。杜拉特還簡要談到了新架構的一些變化——這個新架構也於今天在 google.com/design 公開發布。Google的想法是讓Google平台上的開發人員掌握這個新架構,從而讓所有應用就有統一的外觀,就像是蘋果向開發人員提出的設計原則一樣。Google還基於這種新的設計語言對本公司旗艦應用進行了重新設計,包括安卓和網頁端的Gmail和Calendar。大家可能還會記得,看到過有關這些變動的文章, 有些部落格 已經掌握了外泄截屏,顯示經過了重新設計的Gmail,介面更乾淨、更簡約。在安卓平台上,這種新介面被稱為Material,支援各種新動畫效果,具有內建的即時UI陰影,以及可在不同螢幕之間切換的hero元素。

Android 5.0 為 Android 引入了 Material Design,並為您提供了擴充的 UI 工具包,更便於您在應用中整合新的設計模式。

新增的三維視圖允許您設定 Z 維度來讓視圖元素升高偏離視圖層次並投射即時陰影,即使是動態元素也能實現。

內建的 Activity 轉換可讓使用者在賞心悅目的動畫中無縫完成狀態轉換。Material Design 主題為您的 Activity 添加了轉換,提供了在所有 Activity 中使用共用視覺元素的功能。

為您的應用中的按鈕、複選框以及其他觸摸控制項提供了波紋動畫。

您還可以在 XML 中定義可繪製向量,並以各種方式為其添加動畫。可繪製向量可在不損失清晰度的情況下進行縮放,非常適合單色應用內表徵圖。

新增了一種名為渲染線程的系統管理處理線程,即使是在主 UI 線程出現延遲的情況下,仍可保持動畫的流暢。

以以文件為主的應用

Android 5.0 引入了重新設計的“概覽”空間(以前稱作“最近使用的應用”),通用性和多任務處理實用性更強。

新增的 API 允許您將應用中不同的 Activity 作為單個文檔與其他最近使用的應用螢幕一併顯示。

您可以充分利用並發文檔,讓使用者能即時訪問您的更多內容或服務。例如,您可以利用並發文檔在生產力應用中表示檔案,在遊戲中表示玩家比賽,或者在訊息傳遞應用中表示聊天。

 圖1:以以文件為主的最近使用的應用

高效能圖形

  對 Khronos OpenGL ES 3.1 的支援現在可在受支援裝置上為遊戲和其他應用提供最高效能的 2D 和 3D 圖形能力。

OpenGL ES 3.1 添加了計算著色器、模具紋理、加速視覺效果、高品質 ETC2/EAC 紋理壓縮、進階紋理渲染、標準化紋理尺寸和 render-buffer 格式以及其他功能。

Android 5.0 還引入了 Android 擴充包(AEP),這組 OpenGL ES 擴充讓您可以訪問鑲嵌著色器、幾何著色器、ASTC 紋理壓縮、每採用插入和著色之類的功能,以及其他進階渲染功能。您可以藉助 AEP 在各類 GPU 上實現高效能圖形。

  OpenGL ES簡介:OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三維圖形 API 的子集,針對手機、PDA和遊戲主機等嵌入式裝置而設計。該API由Khronos集團定義推廣,Khronos是一個圖形軟硬體行業協會,該協會主要關注圖形和多媒體方面的開放標準。

  OpenGL ES 是從 OpenGL 裁剪的定製而來的,去除了glBegin/glEnd,四邊形(GL_QUADS)、多邊形(GL_POLYGONS)等複雜圖元等許多非絕對必要的特性。經過多年發展,現在主要有兩個版本,OpenGL ES 1.x 針對固定管線硬體的,OpenGL ES 2.x 針對可程式化管線硬體。OpenGL ES 1.0是以 OpenGL 1.3 規範為基礎的,OpenGL ES 1.1 是以OpenGL 1.5 規範為基礎的,它們分別又支援common和 common lite兩種profile。lite profile只支援定點實數,而common profile既支援定點數又支援浮點數。 OpenGL ES 2.0 則是參照 OpenGL 2.0 規範定義的,common profile發佈於2005-8,引入了對可程式化管線的支援。

螢幕採集和共用

  Android 5.0 讓您可以為應用添加螢幕採集和螢幕畫面分享功能。

  在使用者許可的情況下,如果您願意,可以從顯示屏採集非安全視頻並通過網路提供採集的視頻。

新的感應器類型

  在 Android 5.0 中,新增的傾斜檢測器感應器有助於改善受支援裝置上的 Activity 識別,心率感應器可報告觸摸裝置者的心率。

  新增的互動複合感應器現在可以檢測“喚醒”手勢、“拿起”手勢和“掃視”手勢等特殊互動。

Chromium WebView

  Android 5.0 的初始版本提供了一版基於 Chromium M37 版本的 Chromium for WebView,添加了對 WebRTC、WebAudio 和 WebGL 的支援。

Chromium M37 還提供對以下所有 Web 元件規範的原生支援:自訂元素、陰影 DOM、HTML 匯入和模板。這意味著您無需 polyfill 便可在 WebView 中使用 Polymer 及其 Material Design 元素。

儘管 Android 4.4 以來 WebView 一直基於 Chromium,但 Chromium 層現在可從 Google Play 進行更新

2、 Android  5.0行為變更(API層級:21)

Android 5.0 除了提供諸多新特性和功能外,還對系統和 API 行為做出了各種變更。本節重點介紹應該瞭解並在開發應用時加以考慮的一些主要變更。

Android Runtime (ART)

ART和Dalvik: Android Runtime (ART) 是 Android 上的應用和部分系統服務使用的託管運行時。ART 及其前身 Dalvik 最初是專為 Android 項目打造的。作為運行時的 ART 會執行 Dalvik 可執行檔並遵循 Dex 位元組碼規範。

ART 和 Dalvik 是運行 Dex 位元組碼的相容運行時,因此針對 Dalvik 開發的應用也能在 ART 環境中運作。不過,Dalvik 採用的一些技術並不適用於 ART。

Android 5.0部分主要的新功能包括:1.預先 (AOT) 編譯 2.改進的記憶體回收 (GC) 3.改進的調試支援。

大多數 Android 應用無需任何更改就可以在 ART 下工作。不過,部分適合 Dalvik 的技術並不適用於 ART。如存在以下情況,應特別注意:

  • 您的應用使用 Java 原生介面 (JNI) 運行 C/C++ 代碼。
  • 您使用產生非標準代碼的開發工具(例如,一些代碼混淆工具)。
  • 您使用與壓縮記憶體回收不相容的技術。
通知 (通知設計指南:https://material.io/guidelines/patterns/notifications.html)

  Material Design 樣式

  在白色(或非常淺)的背景上使用深色文本繪製通知,以便與新的 Material Design 小組件匹配。請確保您的所有通知都與新的色彩配置協調一致。如果您的通知看上去不協調,請進行修正:

  1、使用 setColor() 在您的表徵圖映像後面的圓形中設定重點色彩。

  2、更新或移除使用色彩的資源。系統在操作表徵圖和主要通知表徵圖中忽略所有非阿爾法通道。您應假設這些表徵圖僅支援阿爾法通道。系統用白色繪製通知表徵圖,用深灰色繪製操作表徵圖。

  聲音和震動

  如果您當前使用 Ringtone、MediaPlayer 或 Vibrator 類向通知中添加聲音和震動,則移除此代碼,以便系統可以在“優先”模式中正確顯示通知。取而代之的是,使用 Notification.Builder 方法添加聲音和震動。

  將裝置設為 RINGER_MODE_SILENT 可使裝置進入新的優先模式。如果您將裝置設為 RINGER_MODE_NORMAL 或 RINGER_MODE_VIBRATE,則裝置將退出優先模式。

  以前,Android 使用 STREAM_MUSIC 作為主串流來控制平板電腦裝置上的音量。在 Android 5.0 中,手機和平板電腦裝置的主音量串流現已合并,由 STREAM_RING 或 STREAM_NOTIFICATION 進行控制。

  鎖定螢幕可見度

  預設情況下,在 Android 5.0 中,通知現在顯示在使用者的鎖定螢幕上。使用者可以選擇保護敏感資訊不被公開,在此情況下,系統會自動刪減通知顯示的文本。要自訂此刪減的通知,請使用 setPublicVersion()。

  如果通知不包含個人資訊,或者您想允許媒體播放控制項顯示在通知上,則調用setVisibility()方法並將通知的可見度層級設為 VISIBILITY_PUBLIC。

  媒體播放

  如果您要實現顯示媒體播放狀態或傳輸控制項的通知,請考慮使用新的Notification.MediaStyle模板,而不是自訂RemoteViews.RemoteView對象。無論您選擇使用哪個方法,請務必將通知的可見度設為VISIBILITY_PUBLIC,以便可通過鎖定螢幕訪問您的控制項。請注意,從Android 5.0 開始,系統不再將RemoteControlClient對象顯示在鎖定螢幕上。

  浮動通知

  現在,當裝置處於活動狀態時(即,裝置未鎖定且其螢幕已開啟),通知可以顯示在小型浮動視窗中(也稱為“浮動通知”)。這些通知看上去類似於精簡版的通知,只是浮動通知還顯示操作按鈕。使用者可以在不離開當前應用的情況下處理或清除浮動通知。

  可能觸發浮動通知的條件樣本包括:

  1、使用者的 Activity 處於全螢幕模式中(應用使用 fullScreenIntent)

  2、通知具有較高的優先順序並使用鈴聲或震動

  如果您的應用在以上任何情形下實現通知,請確保系統正確顯示浮動通知

媒體控制項和 RemoteControlClient :

RemoteControlClient類現已棄用。請儘快切換到新的MediaSession API。

Android 5.0 中的鎖定螢幕不會為MediaSession或RemoteControlClient顯示傳輸控制項。不過,您的應用可以通過一個通知從鎖定螢幕提供媒體播放控制項。這讓您的應用可以對媒體按鈕的顯示進行更多控制,同時為使用鎖定裝置和未鎖定裝置的使用者提供一致的體驗。

為實現此目的,Android 5.0引入了一個新的Notification.MediaStyle 模板。Notification.MediaStyle將您使用Notification.Builder.addAction()添加的通知操作轉換為精簡按鈕,嵌入到應用的媒體播放通知中。將您的會話令牌傳遞到setSession()方法以告知系統該通知控制進行中的媒體會話。

請務必將通知的可見度設為VISIBILITY_PUBLIC,以將通知標記為安全,從而顯示在任何鎖定螢幕上(以安全方式或其他方式)

getRecentTasks() :

Android 5.0 中引入新的“並發文檔和 Activity 任務”功能後,為提升使用者隱私的安全性,現已棄用ActivityManager.getRecentTasks()方法。對於向後相容性,此方法仍會返回它的一小部分資料,包括調用應用自己的任務和可能的一些其他非敏感任務(如首頁)。如果您的應用使用此方法檢索它自己的任務,則改用getAppTasks()檢索該資訊。

Android NDK 中的 64 位元支援 :

Android 5.0 引入了對 64 位元系統的支援。64 位元增強功能可增加地址空間和提升效能,同時仍完全支援現有的 32 位應用。64 位元支援也可改進用於加密的 OpenSSL 的效能。此外,該版本還引入了新的原生媒體 NDK API,以及原生 OpenGL ES (GLES) 3.1 支援。

綁定到服務 :

Context.bindService()方法現在需要顯式Intent,如果提供隱式 intent,將引發異常。為確保應用的安全性,請使用顯式 intent啟動或綁定Service,且不要為服務聲明intent過濾器。

WebView

Android 5.0 更改了應用的預設行為。

1、如果您的應用是面向 API 層級 21 或更進階別:

預設情況下,系統會阻止混合內容和第三方Cookie。要允許混合內容和第三方Cookie,請分別使用setMixedContentMode()和setAcceptThirdPartyCookies ()方法。

系統現在可以智能地選擇要繪製的 HTML 文檔部分。這個新的預設行為有助於減少記憶體佔用和提升效能。如果您要一次渲染整個文檔,可通過調用enableSlowWholeDocumentDraw()停用此最佳化。

2、如果您的應用是面向低於 21 的 API 層級:系統允許混合內容和第三方 Cookie,並始終一次渲染整個文檔。

自訂許可權唯一性要求

  根據許可權概述中所述,Android 應用可以定義以專有方式管理組件存取權限的自訂許可權,無需使用平台預定義的系統許可權。應用在其資訊清單檔中聲明的<permission>元素中定義自訂許可權。

少數情況下定義自訂許可權是合規且安全的方法。不過,建立自訂許可權有時並無必要,甚至可能會給應用帶來潛在風險,具體取決於分配給許可權的保護層級。

Android 5.0 其中一項行為變更確保只有一個應用可以定義給定自訂許可權,除非使用與定義許可權的其他應用相同的密鑰進行簽名。

  您的應用需要注意的事項

  在 Android 5.0 和更新的版本中,應用可以和以前一樣繼續定義自己的自訂許可權,並通過<uses-permission>機制請求其他應用的自訂許可權。不過,對於Android 5.0中引入的新要求,您應仔細評估可能給您的應用帶來的影響。

  下面是一些需要考慮的因素:

  您的應用是否在其資訊清單檔中聲明任何<permission>元素?如果是,那麼這些許可權是否確實是您的應用或服務正常運行不可或缺的?或者,能否使用系統預設許可權代替它們?

  如果您的應用中具有<permission>元素,您是否知道它們來自哪裡?

  您實際上是否打算讓其他應用通過<uses-permission>請求您的自訂許可權?

  您是否在您包含<permission>元素的應用中使用樣板檔案或範例程式碼?那些許可權元素確實是不可或缺的嗎?

  您的自訂許可權使用的名稱是簡單名稱還是基於其他應用可能共用的通用術語?

  新安裝和更新

  如上所述,在運行 Android 4.4 或更早版本的裝置上新安裝和更新您的應用不會受影響,且行為沒有任何變化。在運行 Android 5.0 或更新版本的裝置上進行新安裝和更新時,如果應用定義一個已由現有駐留應用定義的自訂許可權,則系統會阻止安裝您的應用。

  使用 Android 5.0 系統更新的現有安裝

  如果您的應用使用自訂更新且已廣泛分發和安裝,那麼,當使用者收到將裝置升級到 Android 5.0 的更新時,您的應用可能會受影響。在安裝系統更新後,系統重新驗證已安裝的應用,包括檢查它們的自訂許可權。如果您的應用定義一個已由另一個通過驗證的應用定義的自訂許可權,且您的應用沒有使用與該應用相同的密鑰簽名,則系統不會重新安裝您的應用。

  建議在運行 Android 5.0 或更新版本的裝置上,我們建議您立即檢查您的應用,進行任何所需的調整,並儘快向您的使用者發布更新版本。

  如果您在應用中使用自訂許可權,則考慮它們的來源以及您是否確實需要它們。從您的應用中移除所有<permission>元素,除非您確定它們是應用正常運行所必需的元素。

  儘可能考慮使用系統預設許可權替代您的自訂許可權。

    •   如果您的應用需要自訂許可權,則重新命名您的自訂許可權,使其成為您的應用專屬的許可權,例如,將它們追加到應用的完整軟體包名稱。
    •   如果您有一組使用不同密鑰簽名的應用,且這些應用通過自訂許可權訪問共用組件,則確保此自訂許可權在共用組件中僅定義一次。使用共用組件的應用不應自己定義自訂許可權,而應通過 <uses-permission> 機制請求存取權限。
    •   如果您有一組使用相同密鑰簽名的應用,則每個應用都可以根據需要定義相同的 自訂許可權,系統允許以常規方式安裝這些應用。
TLS/SSL 預設配置變更

Android 5.0 針對 HTTPS 和其他 TLS/SSL 通訊引入了對應用使用的預設 TLS/SSL 配置的變更:

1.TLSv1.2 和 TLSv1.1 協議現已啟用,

2.AES-GCM (AEAD) 加密套件現已啟用,

3.MD5、3DES、匯出和靜態密鑰 ECDH 加密套件現已停用,

4.首選使用 Forward Secrecy 加密套件(ECDHE 和 DHE)。

在下面列出的少數情況下,這些變更可能會導致 HTTPS 或 TLS/SSL 串連斷開。請注意,來自Google Play服務的安全性ProviderInstaller自Android 2.3 開始就已在Android平台版本上提供這些變更。

1.伺服器不支援任何已啟用的加密套件

2.應用對用於串連伺服器的加密套件做出錯誤的假設

3.伺服器不支援 TLSv1.1、TLSv1.2 或新的 TLS 擴充

支援託管設定檔

裝置管理員可以向裝置添加託管設定檔。此設定檔由管理員所有,讓管理員控制託管設定檔的同時,允許由使用者控制其自己的個人設定檔及其儲存空間。此變更會通過下列方式影響您的現有應用的行為。

3、 Android  5.1行為變更(API層級:22)

Android 5.1 (LOLLIPOP_MR1) 是對 Lollipop 版本的更新,為使用者和應用開發人員提供了諸多新功能。本節旨在介紹其中最值得關注的新 API。

多 SIM 卡支援

Android 5.1 添加了對同時使用多個蜂窩電訊廠商 SIM 卡的支援。有了此功能,使用者可以在具有兩個或多個 SIM 卡插槽的裝置上啟用和使用額外的 SIM。

您可以通過SubscriptionManager類擷取有關當前啟用的 SIM 的資訊,包括裝置是否被認為在當前網路上漫遊。對於希望為對資料訪問費用敏感的裝置使用者減少或關閉應用資料訪問的開發人員而言,這些資訊非常有用。可以通過請求READ_PHONE_STATE許可權和對SubscriptionManager對象設定SubscriptionManager.OnSubscriptionsChangedListener,提醒您的應用注意裝置當前網路連接的狀態變化。

已棄用的 HTTP 類

Android 5.1 中已棄用org.apache.http類和android.net.http. AndroidHttpClient類。這些類將不再保留,您應儘快將使用這些API的任何應用代碼遷移至URLConnection類。

電訊廠商服務

Android 5.1 支援通訊服務供應商建立可以在 Android 裝置上執行電訊廠商配置任務的應用。利用這些 API,電訊廠商開發的應用可以安全、靈活地執行這些任務和通過 Google Play 發布。使用這些功能的應用必須獲得認證的簽名,此認證和裝置的通用整合電路卡 (UICC) 中的認證相匹配。

電訊廠商服務 API 已添加到TelephonyManager類、SmsManager類和新增的CarrierMessagingService類。應用可以通過調用hasCarrierPrivileges()方法,檢查是否可以訪問這些 API。可以調用但無法訪問這些 API 的應用將收到SecurityException。

 

 

 

 

 

 

Android 5.0 Lollipop介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.