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>
允許應用使用裝置的紅外線發射器(如果可用)
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)
呼叫返回的問題描述文字。
此版本對 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)