當前位置:編程學習大全網 - 源碼下載 - Android從5.0到9.0版本的主要變更

Android從5.0到9.0版本的主要變更

Android 5.0 中,全面由 Dalvik 轉用 ART (Android Runtime)編譯。大大提高了性能。

采用全新 Material Design 設計,頁面更加的美觀,立體。

設備未鎖定且其屏幕處於打開狀態,通知可以顯示在小型浮動窗口中,稱為 浮動通知

啟動或綁定服務必須 顯式啟動 ,如果 隱式啟動 ,會引發下列異常:

如果非要 隱式啟動 ,可以使用下列方案來避免異常:

用戶可直接在 運行時 管理應用權限。這種模式讓用戶能夠更好地了解和控制權限,同時為應用開發者精簡了安裝和自動更新過程。用戶可為所安裝的各個應用分別 授予 撤銷 權限。

在低電耗模式下,您的應用會受到以下限制:

Android 6.0 版移除了對 Apache HTTP 的支持,推薦使用 HttpURLConnection ,因為它可以通過透明壓縮和響應緩存減少網絡使用,並可最大限度降低耗電量。

如果想繼續使用 Apache HTTP ,必須先在 build.gradle 文件中如下聲明:

為了提高私有文件的 安全性 ,應用 私有目錄 被限制訪問,此設置可防止私有文件的元數據泄漏,如它們的大小或存在性。

file_paths.xml 文件內容:

<files-path path="image" name="files" /> :對應的文件路徑為: getFilesDir() / image/

Android 6.0 引入了 低電耗模式 ,當用戶設備未插接電源、處於靜止狀態且屏幕關閉時,該模式會推遲 CPU和網絡 活動,從而延長電池壽命。而 Android 7.0 則通過在設備未插接電源且屏幕關閉狀態下、但不壹定要處於 靜止狀態 (例如用戶外出時把手持式設備裝在口袋裏)時應用部分 CPU和網絡 限制,進壹步增強了 低電耗模式 。

如果在後臺服務中調用 startService() ,則會拋出 IllegalStateException 。 調用 Context.startForegroundService() 將啟動壹個前臺服務。即使應用在後臺運行,系統也允許其調用 Context.startForegroundService() 。不過,應用必須在創建服務後的五秒內調用該服務的 startForeground() 。

為節約電池電量、保持良好的用戶體驗和確保系統健康運行,在運行 Android 8.0 的設備上使用 後臺應用時 ,降低了後臺應用接收 位置更新的頻率 。此行為變更會影響包括 Google Play 服務在內的所有接收位置更新的應用。

影響的API:

Android 8.0(API 級別 26) 引入了 自適應啟動器圖標 ,它可以在不同設備型號上顯示為不同的形狀。例如,在壹臺原始設備制造商 (OEM) 設備上,自適應啟動器圖標可顯示為圓形,而在其他設備上則可顯示為方圓形。每個設備的原始設備制造商 (OEM) 都會提供壹個 蒙版 ,系統使用該蒙版渲染所有具有相同形狀的自適應圖標。自適應啟動器圖標還會在快捷方式、“設置”應用、***享對話框和概覽屏幕中使用。

後臺對傳感器的訪問受限: Android 9 限制後臺應用訪問用戶輸入和傳感器數據的能力。 如果您的應用在運行 Android 9 設備的後臺運行,系統將對您的應用采取以下限制:

限制訪問通話記錄: Android 9 引入 CALL_LOG權限組 並將 READ_CALL_LOG、WRITE_CALL_LOG和PROCESS_OUTGOING_CALLS 權限移入該組。 在之前的 Android版本 中,這些權限位於 PHONE權限組 。

如果您的應用需要訪問通話記錄或者需要處理去電,則您必須向 CALL_LOG權限組 明確請求這些權限。 否則會發生 SecurityException 。

為幫助確保應用 穩定性和兼容性 ,此平臺對某些 非SDK 函數 和 字段 的使用進行了限制;無論您是直接訪問這些 函數 和 字段 ,還是通過 反射 JNI 訪問,這些限制均適用。 在 Android 9 中 ,您的應用可以繼續訪問這些受限的接口;該平臺通過 toast 和日誌條目提醒您註意這些接口。 如果您的應用顯示這樣的 toast ,則必須尋求受限接口之外的其他實現策略。

默認啟用網絡傳輸層安全協議 (TLS): 默認使用 https ,會阻止 http 請求,如果想繼續使用 http 可以在清單文件中做如下配置:

在 Android 6.0 中 ,我們移除了對 Apache HTTP 的支持。從· Android 9 開始·,該內容庫已從 bootclasspath 中移除,且默認情況下應用無法使用它。要繼續使用 Apache HTTP ,以 Android 9 及更高版本為目標平臺的應用可以向其 AndroidManifest.xml 添加以下內容:

如果應用以 Android 9 或更高版本為目標平臺並使用 前臺服務 ,則必須請求 FOREGROUND_SERVICE 權限。這是普通權限,因此,系統會自動為請求權限的應用授予此權限。

如果以 Android 9 或更高版本為目標平臺的應用嘗試創建前臺服務且未請求 FOREGROUND_SERVICE ,則系統會拋出 SecurityException 。

  • 上一篇:數碼相機如何選購?
  • 下一篇:error C2664: “CreateWindowExW”: 不能將參數 3 從“char [18]”轉換為“LPCWSTR” 1> 與指向的類型無關
  • copyright 2024編程學習大全網