[Android各版本特性]Android 6.0 Marshmallow

[Android各版本特性]專欄目錄
01. Android API 版本對照表
02. Android 4.4以前版本特性
03. 爲什麼以Android4.4做分界線
04. Android 4.4 Kitkat
05. Android 5.0 Android Lollipop
06. Android 6.0 Marshmallow
07. Android 7.0 Nougat
08. Android 8.0 Oreo
09. Android 9.0 Pie
10. Android 10
11. 總結(推薦)

1.差異變更

  1. 運行時權限
    此版本引入了一種新的權限模式,如今,用戶可直接在運行時管理應用權限。這種模式讓用戶能夠更好地瞭解和控制權限,同時爲應用開發者精簡了安裝和自動更新過程。用戶可爲所安裝的各個應用分別授予或撤銷權限。
    對於以 Android 6.0(API 級別 23)或更高版本爲目標平臺的應用,請務必在運行時檢查和請求權限。即使您的應用並不以 Android 6.0(API 級別 23)爲目標平臺,您也應該在新權限模式下測試您的應用。

  2. 低電耗模式和應用待機模式
    此版本引入了針對空閒設備和應用的最新節能優化技術。這些功能會影響所有應用,因此請務必在這些新模式下測試您的應用。

  • 低電耗模式:如果用戶拔下設備的電源插頭,並在屏幕關閉後的一段時間內使其保持不活動狀態,設備會進入低電耗模式,在該模式下設備會嘗試讓系統保持休眠狀態。在該模式下,設備會定期短時間恢復正常工作,以便進行應用同步,還可讓系統執行任何掛起的操作。
  • 應用待機模式:應用待機模式允許系統判定應用在用戶未主動使用它時處於空閒狀態。當用戶有一段時間未觸摸應用時,系統便會作出此判定。如果拔下了設備電源插頭,系統會爲其視爲空閒的應用停用網絡訪問以及暫停同步和作業。
  1. 取消支持 Apache HTTP 客戶端
    Android 6.0 版移除了對 Apache HTTP 客戶端的支持。如果您的應用使用該客戶端,並以 Android 2.3(API 級別 9)或更高版本爲目標平臺,請改用 HttpURLConnection 類。此 API 效率更高,因爲它可以通過透明壓縮和響應緩存減少網絡使用,並可最大限度降低耗電量。要繼續使用 Apache HTTP API,您必須先在 build.gradle 文件中聲明以下編譯時依賴項:

    android {
    	useLibrary 'org.apache.http.legacy'
    }
    
  2. 硬件標識符訪問權
    爲給用戶提供更嚴格的數據保護,從此版本開始,對於使用 WLAN API 和 Bluetooth API 的應用,Android 移除了對設備本地硬件標識符的編程訪問權。WifiInfo.getMacAddress() 方法和 BluetoothAdapter.getAddress() 方法現在會返回常量值 02:00:00:00:00:00。

*2.常用API應該注意的部分

  1. 指紋身份驗證
    用戶只需掃描其指紋即可完成身份驗證。
    要通過指紋掃描驗證用戶身份,您的應用必須運行在帶有指紋傳感器的兼容設備上。您必須在應用中實現指紋身份驗證流的用戶界面,並在 UI 中使用標準 Android 指紋圖標。
    如果您要開發多個使用指紋身份驗證的應用,每個應用必須獨立驗證用戶的指紋。

  2. 確認憑據
    您的應用可以根據用戶在多久之前最後一次解鎖設備來驗證其身份。此功能讓用戶不必費心記憶應用特定密碼,您也無需實現自己的身份驗證用戶界面。您的應用應當利用此功能並結合實現公鑰或私鑰,以進行用戶身份驗證。

  3. 直接共享
    此版本爲您提供的一些 API 可讓用戶直觀、快捷地進行共享。現在,您可以定義可在您的應用內啓動特定 Activity 的直接共享目標。這些直接共享目標通過“共享”菜單公開給用戶。此功能讓用戶可以向其他應用內的目標(如聯繫人)共享內容。例如,直接共享目標可以啓動另一社交網絡應用中的某個 Activity,讓用戶可以直接向該應用中的某位朋友或某個社區共享內容。

  4. 可採用的存儲設備
    使用此版本時,用戶可以採用 SD 卡等外部存儲設備。採用外部存儲設備可加密和格式化設備,使其具有類似內部存儲設備的行爲。用戶可以利用此特性在存儲設備之間移動應用及其私有數據。

    請注意,在內部存儲設備與外部存儲設備之間移動應用時,如果您的應用訪問以下 API 或字段,它們返回的文件路徑將會動態變化。強烈建議:在生成文件路徑時,請始終動態調用這些 API。請勿使用硬編碼文件路徑或之前生成的永久性完全限定文件路徑。

  • Context 方法:
    • getFilesDir()
    • getCacheDir()
    • getCodeCacheDir()
    • getDatabasePath()
    • getDir()
    • getNoBackupFilesDir()
    • getFileStreamPath()
    • getPackageCodePath()
    • getPackageResourcePath()
  • ApplicationInfo 字段:
    • dataDir
    • sourceDir
    • nativeLibraryDir
    • publicSourceDir
    • splitSourceDirs
    • splitPublicSourceDirs
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章