Android 6.0 測試指南

Android 6.0 可讓您確保應用程式可搭配下一個版本運作。這個版本包含多項可能會影響應用程式的 API 和行為變更,如「API 總覽」和「行為變更」所述。使用這個版本測試應用程式時,您應特別留意一些特定的系統變更,確保使用者能享有良好體驗。

本指南將介紹如何使用您的應用程式測試 Android 6.0 功能以及測試功能。由於這些功能可能對應用程式的行為影響很大,建議您優先測試這些特定功能:

測試權限

新的權限模型會改變使用者分配權限的方式。應用程式必須在執行階段要求使用者提供個別權限,而非在安裝過程中授予所有權限。對使用者來說,這項行為可讓人更精確地掌控每個應用程式的活動,也能提供更準確的背景資訊,瞭解應用程式要求特定權限的原因。使用者隨時可以個別授予或撤銷對應用程式授予的權限。這個版本的這項功能很可能對應用程式行為產生影響,也可能使部分應用程式功能無法運作,或運作狀態降低。

這項變更會影響在新平台上運作的所有應用程式,包括未指定新平台版本的應用程式。該平台對舊版應用程式的相容性行為有限,但建議您現在就開始規劃應用程式遷移至新版權限模型的程序,以便在正式平台發布時發布更新版應用程式。

測試提示

請使用下列測試提示,規劃及執行新的權限行為應用程式測試。

  • 找出應用程式目前的權限和相關程式碼路徑。
  • 針對受權限保護的服務和資料,測試使用者流程。
  • 測試授予/撤銷權限的各種組合情況。
  • 使用 adb 工具,透過指令列管理權限:
    • 依群組列出權限和狀態:
      adb shell pm list permissions -d -g
    • 使用以下語法授予或撤銷一或多項權限:
      adb shell pm [grant|revoke] <permission.name> ...
  • 針對會使用權限的服務進行應用程式分析。

測試策略

權限變更會影響應用程式的結構和設計,以及你提供給使用者的使用者體驗和流程。您應評估應用程式目前的權限使用情況,並開始規劃所需的新流程。平台的官方版本提供相容性行為,但您應規劃更新應用程式,而非仰賴這些行為。

找出應用程式實際需要及使用的權限,然後找出使用受權限保護服務的各種程式碼路徑。方法可以結合對新平台和程式碼分析的測試。在測試過程中,您應專注於將應用程式的 targetSdkVersion 變更為 API 級別 23,藉此選擇加入執行階段權限。

測試撤銷及新增的各種權限組合,以醒目顯示需要權限的使用者流程。如果依附元件不明顯或具邏輯性,您應考慮重構或劃分該資料流,藉此消除依附元件,或明確指出需要該權限的原因。

如要進一步瞭解執行階段權限的行為、測試和最佳做法,請參閱「使用系統權限」開發人員。

測試打盹和應用程式待命功能

「打盹」和應用程式待命功能的省電功能會限制應用程式在裝置處於閒置狀態或未處於焦點狀態時,可以執行的背景處理量。系統對應用程式實施的限制包括:限製或無法存取網路、已暫停的背景工作、已暫停的通知、忽略的喚醒要求和鬧鐘。為確保應用程式在執行這些省電最佳化功能時能正常運作,您應模擬這些低電量狀態來測試應用程式。

使用打盹測試應用程式

如何使用應用程式測試打盹:

  1. 使用 Android 7.0 (API 級別 24) 系統映像檔設定硬體裝置或虛擬裝置。
  2. 將裝置連線至您的開發機器,並安裝應用程式。
  3. 執行應用程式,並讓應用程式維持啟用狀態。
  4. 執行下列指令,模擬裝置進入打盹模式:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
    
  5. 在裝置重新啟用時觀察應用程式行為。請確保在裝置退出「打盹」模式時可正常復原。

使用應用程式待命功能測試應用程式

如何使用應用程式測試應用程式待機模式:

  1. 使用 Android 7.0 (API 級別 24) 系統映像檔設定硬體裝置或虛擬裝置。
  2. 將裝置連線至您的開發機器,並安裝應用程式。
  3. 執行應用程式,並讓應用程式維持啟用狀態。
  4. 執行下列指令,模擬應用程式進入待機模式:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
    
  5. 使用下列指令模擬喚醒應用程式:
    $ adb shell am set-idle <packageName> false
  6. 觀察應用程式喚醒時的行為。請確保產品能從待機模式正常復原。請特別注意,檢查應用程式的通知和背景工作是否繼續正常運作。

自動備份應用程式和裝置專屬 ID

如果您的應用程式會在內部儲存空間中保留任何裝置專屬 ID (例如 Google 雲端通訊註冊 ID),請務必遵循最佳做法,從自動備份中排除儲存位置,詳情請參閱「使用自動備份功能備份使用者資料」。