天天看點

android開發之Android 5.0 Lollipop新特性介紹

Android官網上主要介紹了14個更新的方面(其中一個是Your apps on the big screen,是有關于電視的,在此不介紹)。

1、Material design(材料設計)

1.新的3D視圖讓你可以設定z-level來擴充元素到新的層級,投射實時陰影。并支援移動。

2.内置的頁面轉換效果讓使用者通過優美、生動的手勢實作無縫的狀态轉換。材料主題為你的活動添加了轉換效果,包括了在整個活動實作視覺元素共享(shared visual elements)的能力。

3.将在按鈕、複選框等其他可觸摸控件上實作波紋動畫。

4.在XML中定義矢量圖檔,并賦予他們各種動畫效果。

5.一個新的系統線程——RenderThread:即使在主UI線程延遲的情況下,它依舊可以保證動畫的流暢性。

這裡 有一個有關材料設計的網頁介紹

http://www.ithome.com/html/android/91726.htm

1.材料主題

android開發之Android 5.0 Lollipop新特性介紹

Dark version

@android:style/Theme.Material

android開發之Android 5.0 Lollipop新特性介紹

light version

@android:style/Theme.Material.Light

自定義顔色:

<resources>  
    <!-- inherit from the material theme -->  
    <style name="AppTheme" parent="android:Theme.Material">    
        <!-- Main theme colors -->    
        <!--   your app branding color for the app bar -->    
        <item name="android:colorPrimary">@color/primary</item>    
        <!--   darker variant for the status bar and contextual app bars -->    
        <item name="android:colorPrimaryDark">@color/primary_dark</item>    
        <!--   theme UI controls like checkboxes and text fields -->    
        <item name="android:colorAccent">@color/accent</item>  
    </style>
</resources> 
           
android開發之Android 5.0 Lollipop新特性介紹

2.lists和cards

在布局檔案中設定四個邊界的角度,需要用到card_view:cardCornerRadius屬性。

在代碼中使用 CardView.setRadius。

設定card的背景顔色在,需在布局中使用card_view:cardBackgroundColor 屬性。

實作陰影效果,需在布局檔案中使用card_view:cardElevation屬性。

注意要添加v7 Support Libraries.

dependencies {    
    ...    
    compile 'com.android.support:cardview-v7:21.0.+'    
    compile 'com.android.support:recyclerview-v7:21.0.+'
} 
           

3.定義陰影和剪輯界面。

在布局檔案中使用android:elevation設定elevation;

在代碼中使用View.setElevation()設定elevation 。

使用View.setTranslationZ() 在代碼中設定translationZ。

android開發之Android 5.0 Lollipop新特性介紹

Z = elevation + translationZ

4.Drawables

可以為bitmap和.9圖檔着色。

新增的Palette類可以用來從圖檔提取顔色。

把bitmap對象傳遞給Palette.generate() Palette.generateAsync()

建立矢量圖:VectorDrawable 類用來代表矢量圖檔。

android:tint and android:tintMode andsetTint()。

Palette需添加依賴。

<!-- res/drawable/heart.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    <!-- intrinsic size of the drawable -->
    android:height="256dp"    
    android:width="256dp"    
    <!-- size of the virtual canvas -->    
    android:viewportWidth="32"    
    android:viewportHeight="32">  

    <!-- draw a path -->  
    <path 
        android:fillColor="#8fff"      
        android:pathData="M20.5,9.5                        
        c-1.955,0,-3.83,1.268,-4.5,3                        
        c-0.67,-1.732,-2.547,-3,-4.5,-3                        
        C8.957,9.5,7,11.432,7,14                        
        c0,3.53,3.793,6.257,9,11.5                        
        c5.207,-5.242,9,-7.97,9,-11.5                        
        C25,11.432,23.043,9.5,20.5,9.5z" />
</vector> 
           

5.自定義動畫

觸摸回報動畫效果。

例如波紋動畫效果:

1、有邊界動畫?android:attr/selectableItemBackground 。

2、無邊界動畫?android:attr/selectableItemBackgroundBorderless

RippleDrawable:定義方式有兩種

<!-- A red ripple masked against an opaque rectangle. --/> 
 <ripple android:color="#ffff0000">   
     <item 
         android:id="@android:id/mask"         
         android:drawable="@android:color/white" />
 <ripple /> 
           

6.相容性

2、Performance focus(性能的提升)

  1. 隻采用ART模式,提高了app的運作性能和反應性能。
  2. Android 5.0引入了支援64位架構的平台
  3. Android 5.0提供了改進的A/V sync。
  4. 高效的垃圾回收将減少GC事件導緻的停頓的次數和時間。在同步重新整理時,這會使得你的app不會跳幀。ART動态的把記憶體移動到最佳的狀态以供前台使用。
  5. 用Java語言編寫的app自動的以64位方式運作,不用做任何修改。
  6. 聲音視訊同步。聲音和圖檔的傳輸已經添加了某些裝置,保證更精确地時間戳,使得app流暢的同步内容。

3、Notifications(通知)

  1. 不同的通知資訊可以根據使用者的需求出現在鎖屏上。
  2. 關鍵性的警告通知——例如來電,以一個浮動小視窗出現在螢幕的頂上方,使用者可以選擇接通或者挂斷通話,而不用離開正在運作的app。
  3. 現在你可以通過添加中繼資料來搜集相關的聯系人,政策或者優先級。
  4. 一個新的notification模闆,提供一緻的媒體控制的通知。
  5. 使用者可以選擇在鎖屏中不出現通知、顯示某些通知消息或者顯示全部通知消息。
  6. 模闆有6個button,包括自定義控件,如:“thumbs up“。不再需要RemoteViews。

4、Document-centric apps(以文檔為中心的應用程式)

Android5.0 從新設計了預覽模式,這個模式更适用于多任務。

1. 您可以利用并行檔案提供使用者即時通路更多的内容或服務。例如,寫文檔,玩家在遊戲比賽,或聊天消息傳遞應用程式。

2. 新的api允許顯示分離的Activity 在app上,作為單獨的文檔在其他螢幕旁邊

android開發之Android 5.0 Lollipop新特性介紹

5、Advanced connectivity(更好的連通性)

  1. Android 5.0添加了新的api允許應用程式執行的并發操作與低能量藍牙 (BLE),允許掃描(中央模式)和廣告(外圍模式)。
  2. 新的多網特性允許app查詢網絡狀态的可用特性。
  3. 現在NFCapi允許應用程式動态地注冊一個NFC應用程式ID(援助)。他們還可以設定每個現役首選卡模拟服務并建立一個NDEF記錄包含utf- 8的文本資料。
  4. 比如是否wi - fi、行動電話、計量,或提供某些網絡特性。然後應用程式可以請求一個連接配接和響應連接配接損失或其他網絡的變化。

6、High-performance graphics(高性能圖像)

  1. 支援Khronos OpenGL ES 3.1現在提供遊戲和其他應用程式的性能最高的2 d和3 d圖形功能支援裝置。OpenGL ES 3.1增加了計算着色器,模闆紋理,視覺效果,加快高品質ETC2 / EAC紋理壓縮,先進的紋理渲染,标準化的紋理尺寸和render-buffer格式等等。
  2. Android 5.0還引入了Android擴充包(AEP),一組OpenGL ES擴充,給你通路等功能鑲嵌細工着色器,幾何着色器, ASTC紋理壓縮,每份樣本插值和陰影,和其他進階渲染功能。AEP可以提供高性能圖形一系列GPUs。
    android開發之Android 5.0 Lollipop新特性介紹

7、More powerful audio(更強大的音頻)

  1. 一個新的音頻捕捉設計提供低延遲音頻輸入。
  2. 新的設計包括:快速擷取線程從不阻塞讀期間除外;快速跟蹤捕捉客戶本地采樣率,通道數,和位深度;和正常捕獲客戶提供重采樣,上下通道混合,和上/下位深度。
  3. 多通道音頻流混合允許專業音響應用混合8頻道包括5.1和7.1通道。
  4. Android現在包括支援标準USB音頻裝置,允許使用者連接配接USB耳機,揚聲器,麥克風,或其他高性能數位外設。
  5. Android 5.0還增加了對作品的支援音頻編解碼器。
  6. 現在新的MediaSessionapi控制媒體播放更容易提供一緻的媒體控制螢幕和其他控制器。

8、Enhanced camera & video(加強的拍照和錄像)

  1. Android 5.0引入了新的攝像頭api允許您捕獲原始格式如YUV和Bayer RAW,和控制曝光時間等參數,ISO敏感性,和幀持續時間在每幀的基礎上。
  2. 新的完全同步相機管道允許您捕獲未壓縮的完全解決YUV圖像在30幀支援裝置。
  3. 随着圖像,還可以擷取中繼資料從相機噪聲模型和光學等資訊
  4. 應用程式發送視訊流在網絡上現在可以利用H.265高效視訊編碼(HEVC)優化的編碼和解碼的視訊資料。
  5. Android 5.0還增加了支援多媒體隧道為超高定義提供最好的體驗(4 k)内容和一起打壓縮音頻和視訊資料能力。

9、Android in the workplace

  1. 為了實作把自己的手機運用到工作環境中,新的配置管理流程建立了一個安全的配置檔案。在運作中apps顯示一個标記來代表這個app和他的資料被IT管理者通過工作配置檔案管理。
  2. 個人和工作資料的通知出現在同意的視圖中。配置檔案的資料互相間保證安全的分離,及時一個app的多個配置檔案也是如此。
  3. 對于公司的裝置,IT管理者可以開啟一個新的裝置,并給裝置配置一個擁有者。雇主可以發行這些被安裝的app,app已經配置全球裝置設定。

10、Screen capturing and sharing(截屏和分享)

Android 5.0允許您将螢幕捕捉和螢幕共享功能添加到您的應用程式。通過使用者權限,您可以捕獲從顯示沒有安全限制的視訊,然後你可以選擇上傳到網絡上。

11、New types of sensors(新增傳感器)

在Android5.0中,一個新的傾斜探測器傳感器支援幫助改善活動識别裝置,和一個人的心率心率傳感器報告觸摸裝置。現在可以使用新的互動複合傳感器檢測等特殊互動手勢醒來,挑選upgesture,看手勢。

12、Chromium WebView

最初版本的Android 5.0包括一個版本的WebView基于Chromium M37版本,添加支援WebRTCWebAudio,WebGL。在Android 5.0及以上的裝置,戶可以從谷歌應用商店更新,以確定他們獲得最新的版本和WebView bug修複,為應用程式提供最新的web api和bug修複。

13、Tools for building battery-efficient apps

  1. 新 job scheduling api允許您優化電池壽命,通過延遲工作系統運作在稍後的時間或在指定的條件下,比如當裝置充電或wifi連接配接。
  2. 新的 dumpsys batterystats指令生成電池使用資料,你可以了解全系統的電量使用,app對電池的影響。你可以檢視電源事件的記錄、每個UID的近似用電量和系統元件用電量等等。