1. 程式人生 > >android kitkat(4.4以上)各個版本的特性解析

android kitkat(4.4以上)各個版本的特性解析

先看下android官網 API Kitkat(4.4 巧克力)的新特性:

Lollipop(5.0 棒棒糖)的新特性:

MarshMallow(6.0 棉花糖)新特性:

Nougat(7.0 牛軋糖)的新特性:

下面我來具體的說一下各個版本的重點更新:

Kitkat(4.4):

1,許可權問題

您的應用在 Android 4.4 上執行時無法讀取外部儲存空間上的共享檔案,除非您的應用具有  許可權。也就是說,沒有此許可權,您無法再訪問  返回的目錄中的檔案。但是,如果您僅需要訪問

增強的通知偵聽器

  提供的您的應用特有目錄,那麼,您不需要  許可權。

您的應用必須使用 <uses-permission>

 標記請求下面的新許可權才能使用某些新 API:

允許應用使用裝置的紅外線發射器(如果可用)

2,,關於AlarmManager

為提高電源效率,Android 現在批處理在合理的相似時間發生的所有應用的鬧鈴,以便系統僅喚醒裝置一次,而不是多次喚醒裝置來處理每個鬧鈴。

如果您的鬧鈴沒有與精確的時鐘時間關聯,但您的鬧鈴仍必須在特定時間範圍(例如,在下午 2 點至 4 點之間)觸發,那麼您可以使用新的 方法,其接受鬧鈴的“最早”時間以及最早時間之後的一個時間“視窗”,在這個視窗內,系統應觸發鬧鈴。

如果您的鬧鈴必須固定到一個精確的時鐘時間(例如,日曆事件提醒),那麼您可以使用新的  方法。

這個精確的批處理行為僅適用於更新後的應用。如果您已將 targetSdkVersion 設定為“18”或更低版本,那麼在 Android 4.4 上執行時,您的鬧鈴的行為方式和在以前版本上一樣。

3,關於狀態列

等等還有其他的重要更新,我只說一些比較常用的

MarshMallow(5.0)

1,ART(Android Runtime)

在 Android 5.0 中,ART 執行時取代 Dalvik 成為平臺預設設定。Android 4.4 中已引入處於實驗階段的 ART 執行時。

關於Dalvik和ART的詳解和區別可以參考以下文章:

2,通知

包括樣式,聲音和振動,浮動通知(比如微信和qq的浮動視窗的通知)

3,其他許可權問題

MarshMallow(6.0)

1,許可權(手動檢查和提醒使用者)

此版本引入了一種新的許可權模式,如今,使用者可直接在執行時管理應用許可權。這種模式讓使用者能夠更好地瞭解和控制權限,同時為應用開發者精簡了安裝和自動更新過程。使用者可為所安裝的各個應用分別授予或撤銷許可權。

對於以 Android 6.0(API 級別 23)或更高版本為目標平臺的應用,請務必在執行時檢查和請求許可權。要確定您的應用是否已被授予許可權,請呼叫新增的  方法。要請求許可權,請呼叫新增的  方法。即使您的應用並不以 Android 6.0(API 級別 23)為目標平臺,您也應該在新許可權模式下測試您的應用。

2,Doze(休眠)

Doze模式下的app的網路連線被斷開,鬧鐘AlarmManager失效,數分鐘後應用被殺死(白名單的應用除外)

3,ART

ART 執行時環境現在可正確實現  方法的訪問規則。此變更修正了之前版本中 Dalvik 無法正確檢查訪問規則的問題。如果您的應用使用  方法,並且您想重寫訪問檢查,請呼叫  方法(將輸入引數設定為 true)。如果您的應用使用 v7 appcompat 庫或 v7 recyclerview 庫,則您必須更新應用以使用這些庫的最新版本。否則,請務必更新從 XML 引用的任何自定義類,以便能夠訪問它們的類建構函式。

此版本更新了動態連結程式的行為。動態連結程式現在可以識別庫的 soname 與其路徑之間的差異(公開錯誤 6670),並且現在已實現了按 soname 搜尋。之前包含錯誤的 DT_NEEDED 條目(通常是開發計算機檔案系統上的絕對路徑)卻仍工作正常的應用,如今可能會出現載入失敗。

現已正確實現 dlopen(3) RTLD_LOCAL 標記。請注意,RTLD_LOCAL 是預設值,因此不顯式使用 RTLD_LOCAL 的 dlopen(3) 呼叫將受到影響(除非您的應用顯式使用 RTLD_GLOBAL)。使用 RTLD_LOCAL 時,在隨後通過呼叫 dlopen(3) 載入的庫中並不能使用這些符號(這與由 DT_NEEDED 條目引用的情況截然不同)。

在之前版本的 Android 上,如果您的應用請求系統載入包含文字重定位資訊的共享庫,系統會顯示警告,但仍允許載入共享庫。從此版本開始,如果您的應用的目標 SDK 版本為 23 或更高,則系統會拒絕載入該庫。為幫助您檢測庫是否載入失敗,您的應用應該記錄 dlopen(3) 失敗日誌,並在日誌中加入 dlerror(3) 呼叫返回的問題描述文字。

4,網路WIFI

此版本對 WLAN API 和 Networking API 引入了以下行為變更。

  • 在之前的版本中,如果應用利用帶有 disableAllOthers=true 設定的  強制裝置連線特定 WLAN 網路,裝置將會斷開與移動資料網路等其他網路的連線。在此版本中,裝置不再斷開與上述其他網路的連線。如果您的應用的 targetSdkVersion 為 “20” 或更低,則會固定連線所選 WLAN 網路。如果您的應用的 targetSdkVersion 為 “21” 或更高,請使用多網路 API(如 、 和新增的  方法)來確保通過所選網路傳送網路流量。

4,App Links(APP關聯)
  安卓6.0加強了軟體間的關聯,谷歌在現場展示了 一個例子,比如你的手機郵箱裡收到一封郵件,內文裡有以個Twitter連結,使用者點選該連結可以直接跳轉到Twitter應用,而不再是網頁。

其他通知和改變就不一一詳解了,其實主要就是增加了系統的安全性

Nougat(7.0 )

1,多屏多工

進入後臺多工管理頁面,然後按其中的一張卡片,向上推送至頂部即可開啟分屏多工,支援上下和左右分欄,允許兩個App

的螢幕佔比拖動

2,通知欄訊息快捷回覆

3,電量和記憶體上的進一步優化(Doze模式的優化dengdeng)