1. 程式人生 > >安卓各版本主要的特性

安卓各版本主要的特性

安卓各版本特性

參考:

https://developer.android.com/about/versions/nougat/index.html


安卓5.0特性

1、全新 Material Design 設計風格

谷歌希望能夠讓Material Design 給使用者帶來紙張化的體驗。

l  統自帶Materialdesign主題

l  元件陰影

通過新增elevation去新增Z軸的維度和深度。CardView的使用是個好例子

l  RecyclerView元件以取代ListView

l  Drawable動畫和樣式效果。(這裡應該是指Ripple Drawable之類)(Drawable animation and styling effects)

<ripple

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:color="@color/accent_dark">

    <item>

        <shape

            android:shape="oval">

            <solid android:color="?android:colorAccent" />

        </shape>

    </item>

</ripple>

只要把drawable放到ripple元素裡,很直接地改變效果,

l  Material design風格的動畫和activity過渡效果

當你觸控Material元素的時候,它也可以擡起以迎合你的手指,就像磁鐵異性相吸一樣。你可以通過translationZ屬性動畫來實現這種效果,translationZ屬性與elevation相似,不過它的主要作用是做這些過渡效果。 Z = elevation + translationZ. 新的stateListAnimator屬性輕鬆建立觸控時的Z軸動畫(Buttons預設就有這效果):

示例程式碼:

layout/your_layout.xml

<ImageButton …

    android:stateListAnimator="@anim/raise" />

anim/raise.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_enabled="true" android:state_pressed="true">

        <objectAnimator

            android:duration="@android:integer/config_shortAnimTime"

            android:propertyName="translationZ"

            android:valueTo="@dimen/touch_raise"

            android:valueType="floatType" />

    </item>

    <item>

        <objectAnimator

            android:duration="@android:integer/config_shortAnimTime"

            android:propertyName="translationZ"

            android:valueTo="0dp"

            android:valueType="floatType" />

    </item>

</selector>

l  基於元件狀態的Animator。(Animatorsfor view properties based on the state of the view)

l  可定製的UI元件和工具欄(這裡指的應該是ToolBar)

新的activiy的封裝,封裝toolbar

l  基於XML的向量動畫和圖形(Animatedand non-animated drawables)

2、全新的通訊中心設計

設計了新的訊息通知機制,同時在鎖屏介面也可以直接檢視通知訊息了。不僅如此,使用者還可以直接在鎖屏的情況下就行回覆或進入應用。

3、支援 64 位 ART 虛擬機器

新系統放棄了之前一直使用的Dalvik 虛擬機器,改用了 ART 模式。

1、提前編譯(AOT)

2、增強的垃圾回收

3、增強的debug支援

適配ART的注意事項,尤其要注意的是下面的情況:

1、 你的app使用了JNI來執行C/C++程式碼

ART 在 Android 開源專案 (AOSP) 有正在開發中的緊湊型垃圾回收器。 一旦該緊湊型垃圾回收器投入使用,便可在記憶體中移動物件。 如果您使用 C/C++ 程式碼,請勿執行與緊湊型 GC 不相容的操作。(ART 的 JNI 會在多種情況下引發錯誤,而Dalvik 則不然。(同樣地,您可以通過使用 CheckJNI 執行測試來捕獲大量此種情況))

2、 你使用了產生非標準程式碼的(比如一些程式碼混淆工具)

ART 會在安裝時執行比 Dalvik 更嚴格的位元組程式碼驗證。Android 構建工具生成的程式碼應該沒有問題。但一些後期處理工具(尤其是執行模糊處理的工具)可能會生成被 Dalvik 容忍而被 ART 拒絕的無效檔案。我們已經與工具供應商合作,查詢並修復此類問題。在許多情況下,獲取最新版本的工具並重新生成 DEX 檔案可以修復這些問題。

3、你使用了不相容compactinggarbage collection的技術

4、Project Volta 電池續航改進計劃

Project Volta 計劃增加了新工具可以讓開發者能夠更容易的找出為何自己的應用程式會對電量產生比較大的影響,同時確保在執行某型任務時將手機電量的影響降至最低。首先,Battery Historian 可以列出手機電量消耗的詳細情況,幫助開發者識別電量消耗的原因或者是哪個硬體或任務對電池壽命的影響比較大;而 Job Scheduler API 則可以讓開發者更容易的選擇合適的時機觸發電量消耗比較高的任務,避免在低電量或未完成充電時更新應用程式。

上面是針對開發者的改進,而在使用者層面上,Android Lollipop 增加了 Battery Saver 模式,這與三星和 HTC 上的超級省電模式有些類似。在低電量的時候系統會自動降低螢幕亮度、限制自動更換背景等功能。

5、WebView

Android 5.0 改變了app的預設行為。

如果你的系統target api為21以上:

系統現在可以智慧選擇HTML文件的portion來繪製。這種新特性可以減少記憶體footprint並改進效能。若要一次性渲染整個HTML文件,可以呼叫這個方法enableSlowWholeDocumentDraw()

*如果你的app的target api低於21: *系統允許mixedcontent和第三方cookie,並且總是一次性渲染整個HTML文件。

安卓6.0特性(API23)

1、許可權管理

許可權管理是 Android M 最大的改變,許可權管理更加精細,並且由以前的安裝時靜態授權,改為現在的執行時動態授權。大家對 Android 的許可權吐槽已久,Android 應該能極大的改善這方面的問題。主要改變有:

l  系統設定中可以對 APP 各個許可權單獨控制

l  許可權根據內容進行分組了

l  普通許可權還是在安裝時授權

l  其他許可權在執行時系統彈窗授權,並且要解析使用這個許可權的目的

2、指紋解鎖

提供了新的 API FingerprintManager,讓第三方 APP 來用來獲得指紋認證的功能。

3、相機API

提供 API setTorchMode() 來直接開關閃光燈,並且可以監聽閃光燈的開光狀態,以前很多 APP 已經支援用閃光燈來做手電筒,現在官方提供 API 來做這樣的事情了。

從 Android 5.0 開始,就提供了一套全新的相機 API Camera2,這裡在此基礎上添加了處理相關 API。

安卓7.0特性(API)

1、多視窗支援

使用者可以一次在螢幕上開啟兩個應用。

l  在執行 Android7.0 的手機和平板電腦上,使用者可以並排執行兩個應用,或者處於分屏模式時一個應用位於另一個應用之上。使用者可以通過拖動兩個應用之間的分隔線來調整應用。

l  在 Android TV 裝置上,應用可以將自身置於畫中畫模式,從而讓它們可以在使用者瀏覽或與其他應用互動時繼續顯示內容。

2、通知功能的增強

在 Android 7.0 中,我們重新設計了通知,使其更易於使用並且速度更快。部分變更包括:

模板更新:我們正在更新通知模板,新強調了英雄形象和化身。開發者將能夠充分利用新模板,只需進行少量的程式碼調整。

訊息傳遞樣式自定義:您可以自定義更多與您的使用 MessagingStyle 類的通知相關的使用者介面標籤。您可以配置訊息、會話標題和內容檢視。

捆綁通知:系統可以將訊息組合在一起(例如,按訊息主題)並顯示組。使用者可以適當地進行拒絕或歸檔等操作。如果您已實現 Android Wear 的通知,那麼您已經很熟悉此模式。

直接回復:對於實時通訊應用,Android系統支援內聯回覆,以便使用者可以直接在通知介面中快速回復簡訊。

自定義檢視:兩個新的 API 讓您在通知中使用自定義檢視時可以充分利用系統裝飾元素,如通知標題和操作。

3、Project Svelte:後臺優化

Project Svelte 在持續改善,以最大程度減少生態系統中一系列 Android 裝置中系統和應用使用的 RAM。

3、VR 支援

安卓8.0特性

參考:https://www.qcloud.com/community/article/875259?fromSource=gwzcw.92976.92976.92976

1、通知渠道細分操作(Notification Channels)

使用者可以根據通知渠道進行細分控制,而不是同一管理應用的所有通知。

我們開發者需要去專門配置通知的相關內容。

2、畫中畫(PIP)

多視窗顯示模式,多用於視訊播放,即你可以一邊發微信一邊看視訊。

3、自適應圖示(Adaptive Icons)

系統可以基於裝置選擇的蒙版將這些圖示顯示為不同形狀。同時還實現與圖示的自動互動,並在啟動器、快捷方式、設定、共享對話方塊以及概覽螢幕中使用它們。通過定義兩張圖層(前景與背景)你可以制定你的桌面圖示外觀。

開發時必須按照以下的規範定義你的圖層大小:

1、 兩張圖層大小都必須為108 x 108 dp。

2、 圖層中心 72 x 72dp 範圍為可視範圍。

3、 系統會保留四周外的36dp 範圍用於生成有趣的視覺效果(如視差和跳動)。

4、固定快捷方式和小部件 (Pinningshortcuts)

放置於桌面上,用於更快速的開啟某一 APP的某單一任務