Save the date! Android Dev Summit is coming to Sunnyvale, CA on Oct 23-24, 2019.

核心應用程式品質

Android 使用者希望取得高品質的應用程式。應用程式品質會對應用程式的安裝、使用者評分與評論、吸引力及使用者挽留能力產生影響,因此直接影響到應用程式長期的成敗。

本文件將協助您透過一組精簡的核心應用程式品質準則與關聯的測試,對您應用程式品質的基本層面進行評估。所有 Android 應用程式都應符合這些準則。

在發行應用程式之前,請根據這些準則對其進行測試,以確保這些應用程式在許多裝置上能良好運作、符合 Android 的導覽與設計標準,並為 Google Play 市集內的推廣商機做好準備。您的測試並不限於本文所述內容,本文件的目的在於指定所有應用程式都應呈現的基本品質特性,以便您可以將其納入您的測試規劃中。

若您要建立適用於平板電腦及/或 Google Play for Education 的應用程式,應考慮其他品質準則,平板電腦應用程式品質指導方針與教育指導方針中已定義這些準則。

視覺設計與使用者互動

這些準則可確保您的應用程式提供標準的 Android 視覺設計與互動樣式 (若適用),從而提供一致且直觀的使用者體驗。

領域 ID 描述 測試
標準設計 UX-B1

應用程式遵循 Android 設計指導方針,並使用通用的 UI 樣式與圖示

  1. 應用程式不會重新定義系統圖示 (例如 [後退] 按鈕) 的預期功能。
  2. 若應用程式觸發標準 UI 行為,不會使用完全不同的圖示取代系統圖示。
  3. 若應用程式提供標準系統圖示的自訂版本,則該圖示會與系統圖示非常相似,並會觸發標準系統行為。
  4. 應用程式不會重新定義或誤用 Android UI 樣式,從而避免導致圖示或行為對使用者產生誤導或混淆。
CR-all
導覽 UX-N1

應用程式支援標準系統後退按鈕導覽,不會使用螢幕上的任何自訂「後退按鈕」提示。

CR-3
UX-N2

使用 [後退] 按鈕可以關閉所有對話方塊。

CR-3
UX-N3 任何時候按下 [首頁] 按鈕都會導覽至裝置的主螢幕。 CR-1
通知 UX-S1

通知遵循 Android 設計指導方針。尤其在以下方面更是如此:

  1. 會將多個通知堆疊到單一通知物件中 (若可能)。
  2. 只有在通知與執行中事件 (例如播放音樂或手機通話) 相關時,通知才持續存在。
  3. 除非使用者選擇,否則通知不包含與應用程式核心功能不相關的廣告或內容。
CR-11
UX-S2

應用程式只能使用通知實現以下目標:

  1. 指示與使用者個人相關的環境中發生的變更 (例如傳入的訊息),或
  2. 展示與執行中事件 (例如播放音樂或手機通話) 相關的資訊/控制項。
CR-11

相關資源

功能

這些準則可確保您的應用程式以適當的權限層級提供預期的功能行為。

領域 ID 描述 測試
權限 FN-P1 應用程式僅要求支援核心功能所需的絕對最低權限。 CR-11
FN-P2

除非與應用程式的核心功能相關,否則應用程式不會要求能對敏感資料 (例如連絡人或系統日誌) 或需使用者付款的服務 (例如撥號程式或 SMS) 進行存取的權限。

安裝位置 FN-L1

若安裝在 SD 卡上 (在應用程式支援的狀況下),應用程式將正常運作。

對於多數大型應用程式 (超過 10MB),建議支援在 SD 卡上進行安裝。如需有關哪些應用程式類型應支援在 SD 卡安裝的資訊,請參閱應用程式安裝位置開發人員指南。

SD-1
音訊 FN-A1 除非音訊是核心功能 (例如應用程式是音樂播放器),否則在螢幕關閉時不會播放該音訊。 CR-7
FN-A2 除非是核心功能,否則在螢幕鎖定後不會播放音訊。 CR-8
FN-A3 除非是核心功能,否則在主螢幕或其他應用程式上不會播放音訊。 CR-1、
CR-2
FN-A4 在應用程式回到前景,或向使用者指示播放處於暫停狀態時,音訊將恢復。 CR-1、CR-8
UI 與圖形 FN-U1

應用程式支援橫向與直向 (若可能)。

這兩個方向展示大部分相同的功能與動作,並具有同等功能。可以接受內容或檢視中的微小變更。

CR-5
FN-U2

在這兩個方向,應用程式都使用整個螢幕,不會因為顧及方向變更而採用上下黑邊式顯示。

可以接受採用少量的上下黑邊式顯示來補償螢幕幾何圖形的微小變更。

CR-5
FN-U3

應用程式可以正確處理兩個顯示方向之間的快速轉換,同時不出現顯示問題。

CR-5
使用者/應用程式狀態 FN-S1

除非與應用程式的核心功能相關,否則在應用程式位於背景中時,應用程式不應讓任何服務仍處於執行中狀態。

例如,應用程式不應讓服務處於執行中狀態以保持通知的網路連線、保持藍牙連線或保持 GPS 為開機狀態。

CR-6
FN-S2

應用程式能正確保留並還原使用者或應用程式狀態。

應用程式可以在離開前景時保留使用者或應用程式狀態,並防止因後退導覽及其他狀態變更而導致資料意外遺失。返回至前景時,應用程式必須還原所保留的狀態以及擱置的所有重要狀態交易,例如對可編輯欄位、遊戲進度、功能表、影片及應用程式或遊戲的其他部分進行的變更。

  1. 應用程式從最近應用程式切換器恢復後,可讓使用者返回至上次使用的確切狀態。
  2. 在裝置從睡眠 (鎖定) 狀態喚醒後,應用程式恢復時,應用程式可讓使用者返回至上次使用的確切狀態。
  3. 應用程式從 [首頁] 或 [所有應用程式] 重新啟動後,可將狀態還原為盡可能接近先前的狀態。
  4. 按下 [後退] 後,應用程式會提供選項供使用者儲存應用程式或使用者狀態,否則在後退導覽後將遺失該狀態。
CR-1、CR-3、CR-5

相關資源

效能與穩定性

這些準則可確保應用程式提供使用者預期的效能、穩定性與回應能力。

領域 ID 描述 測試
穩定性 PS-S1 在所針對的裝置上,應用程式不會當機、強制關閉、凍結或以其他異常方式運作。 CR-allSD-1HA-1
效能 PS-P1 應用程式可快速載入,若應用程式的載入時間超過兩秒,會在螢幕上向使用者提供回饋 (進度指示器或類似的提示)。 CR-allSD-1
PS-P2 在啟用 StrictMode (請參閱以下的 StrictMode 測試) 的狀況下,測試應用程式時 (包括執行遊戲、播放動畫、進行 UI 轉換以及執行應用程式的其他任何部分期間),紅色閃爍 (StrictMode 的效能警告) 不可見。 PM-1
媒體 PS-M1 在應用程式的一般使用與載入期間,音樂與影片可以順暢播放,無雜音、卡頓或其他瑕疵。 CR-allSD-1HA-1
視覺品質 PS-V1

應用程式顯示圖形、文字、影像與其他 UI 元素時,無明顯的變形、模糊或像素化。

  1. 應用程式會為其針對的所有螢幕大小與大小規格 (包括諸如平板電腦等較大螢幕裝置的大小規格) 提供高品質圖形。
  2. 功能表、按鈕與其他 UI 元素的邊緣不出現任何鋸齒。
CR-all
PS-V2

應用程式能以可接受的方式顯示文字及文字區塊。

  1. 在支援的所有大小規格 (包括諸如平板電腦等較大螢幕裝置的大小規格) 中可以接受複合。
  2. 不出現任何遭截斷的字母或字彙。
  3. 按鈕或圖示中不出現任何不正確的字彙換行。
  4. 文字與周圍的元素之間存在充分的間距。

相關資源

Google Play

這些準則可確保您的應用程式為在 Google Play 上發行而做好準備。

領域 ID 描述 測試
政策 GP-P1 應用程式應嚴格遵循 Google Play 開發人員內容政策的條款,不提供不適當的內容,不使用其他品牌的智慧財產,等等。 GP-all
GP-P2

根據內容評分指導方針正確設定應用程式的成熟度層級。

尤其請注意,若應用程式要求裝置位置的使用權限,則無法將其成熟度層級指定為「所有人」。

GP-1
應用程式詳細資料頁面 GP-D1

應用程式功能圖形遵循此部落格貼文中所述的指導方針。請確保:

  1. 應用程式清單包括高品質的功能圖形。
  2. 若裝置影像、螢幕擷取畫面或小文字在縮小比例以及在應用程式針對的最小螢幕大小上顯示時難以辨認,則功能圖形不包含這些項目。
  3. 功能圖形與廣告不相似。
GP-1、GP-2
GP-D2 應用程式螢幕擷取畫面與影片不顯示或不參考非 Android 裝置。 GP-1
GP-D3 應用程式螢幕擷取畫面或影片不以會引發誤導的方式展示應用程式的內容與體驗。
使用者支援 GP-X1 若 Google Play 頁面上 [評論] 標籤中使用者報告的常見錯誤可重現並在許多不同裝置上出現,則對其進行修正。若錯誤僅出現在少數裝置上,如果這些裝置是備受青睞的裝置或新裝置,您也應修正錯誤。 GP-1

相關資源

設定測試環境

若要評估您應用程式的品質,需要設定適當的硬體或模擬器環境以進行測試。

理想的測試環境包括少數實際硬體裝置 (代表關鍵的大小規格) 以及目前消費者可以使用的硬體/軟體組合。您無需在市場上的每個裝置上進行測試,而是應專注於少量的代表性裝置,甚至對每種大小規格測試一或兩個裝置即可。

若您無法取得供測試的實際硬體裝置,應設定模擬裝置 (AVD) 以代表最常見的大小規格與硬體/軟體組合。

若要不限於基本測試,您可以新增更多裝置、更多大小規格或新硬體/軟體組合至測試環境。此外,您也可以提高測試與品質準則的數量或複雜度。

測試程序

這些測試程序可以協助您探尋應用程式內各種類型的品質問題。您可以合併這些測試,或將多組測試整合到您的測試計劃中。如需將特定準則與特定測試關聯的參考,請參閱以上諸節。

類型 測試 描述
核心套件 CR-0

導覽至應用程式的所有部分 (所有畫面、對話方塊、設定及所有使用者流程)。

  1. 若應用程式涉及編輯或建立內容、執行遊戲或媒體播放,請確保進入這些流程以建立或修改內容。
  2. 在測試應用程式時,請引入網路連線、電池功能、GPS 或位置可用性、系統負載等的短暫變更。
CR-1 在每個應用程式畫面中,按下裝置的 [首頁] 鍵,然後從 [所有應用程式] 畫面重新啟動應用程式。
CR-2 在每個應用程式畫面中,切換至其他執行中應用程式,然後使用最近應用程式切換器返回受測試的應用程式。
CR-3 在每個應用程式畫面 (及對話方塊) 中,按下 [後退] 按鈕。
CR-5 在每個應用程式畫面中,旋轉裝置,使其在橫向與直向之間至少切換三次。
CR-6 切換至其他應用程式,以便將受測試的應用程式置於背景中。移至 [設定],檢查在受測試應用程式位於背景中時,是否有服務在執行中。在 Android 4.0 及更高版本中,移至 [應用程式] 畫面,然後在 [執行中] 標籤內尋找應用程式。在更低的版本中,使用「管理應用程式」檢查執行中的服務。
CR-7 按下電源按鈕讓裝置進入睡眠狀態,然後再次按下電源按鈕喚醒螢幕。
CR-8 將裝置設為按下電源按鈕時進入鎖定狀態。按下電源按鈕讓裝置進入睡眠狀態,然後再次按下電源按鈕喚醒螢幕,隨後將裝置解除鎖定。
CR-9 對於具有滑出式鍵盤的裝置,將鍵盤滑出並滑入至少一次。對於具有鍵盤基座的裝置,將裝置連接至鍵盤基座。
CR-10 對於具有外部顯示連接埠的裝置,插入外部顯示器。
CR-11 在通知抽出式導覽面板中觸發並觀察應用程式能顯示的所有類型的通知。在適用時展開通知 (Android 4.1 與更高版本),並點選提供的所有動作。
CR-12 移至 [設定] > [應用程式資訊] 檢查應用程式要求的權限。
在 SD 卡上安裝 SD-1

將應用程式安裝到裝置 SD 卡後,重複核心套件 (若應用程式支援)。

若要將應用程式移至 SD 卡,您可以使用 [設定] > [應用程式資訊] > [移至 SD 卡]。

硬體加速 HA-1

啟用硬體加速後,重複核心套件

若要強制啟用硬體加速 (在裝置支援的狀況下),請在應用程式宣示說明中新增 hardware-accelerated="true"<application>,然後重新編譯。

效能監控 PM-1

在啟用 StrictMode 分析後重複核心套件如下所述

密切注意記憶體回收及其對使用者體驗的影響。

Google Play GP-1 登入至 Developer Console 以檢閱您的開發人員簡介、應用程式描述、螢幕擷取畫面、功能圖形、成熟度設定及使用者回饋。
GP-2 下載您的功能圖形與螢幕擷取畫面,然後將其縮小,以便與裝置上的顯示器大小以及您所針對的大小規格相符。
GP-3 檢閱所有圖形資產、媒體、文字、程式碼資源庫,以及應用程式中封裝的其他內容,或擴充檔案下載。
付款 GP-4 導覽至您應用程式中的所有畫面,然後進入所有應用程式內購買流程。

使用 StrictMode 進行測試

對於效能測試,我們建議在您的應用程式中啟用 StrictMode,並將其用於擷取主執行緒與其他執行緒上影響效能、網路存取、檔案讀取/寫入等項目的操作。

您可以使用 StrictMode.ThreadPolicy.Builder 針對執行緒設定監控政策,並使用在 ThreadPolicydetectAll()啟用支援的所有監控。

請確保使用penaltyFlashScreen()針對 ThreadPolicy 啟用政策違犯的視覺通知