對于應用質(zhì)量,Google Play采取什么樣的衡量標準?
在Google Play中只有質(zhì)量達到標準的應用才能去申請推薦,以獲取更多的用戶。
今天我們將分享一些Google Play對應用質(zhì)量審核的標準,希望可以幫助開發(fā)者檢查自身的應用是否質(zhì)量達標。
在發(fā)布應用之前,可以根據(jù)這些標準對應用進行測試,并確保應用能在多臺設備上正常運行,為之后在 Google Play 開展推廣做好準備。當然,開發(fā)者的測試范圍遠不止這里所介紹的內(nèi)容,但所有應用都應具備下面這些基本質(zhì)量特征,因此開發(fā)者可以在測試計劃中納入這些內(nèi)容。

視覺設計和用戶交互
標準設計:
應用不能重新定義系統(tǒng)圖標(例如“返回”按鈕)的預期功能。
如果系統(tǒng)圖標觸發(fā)的是標準界面行為,則應用不能使用完全不同的圖標替換系統(tǒng)圖標。
如果應用提供標準系統(tǒng)圖標的自定義版本,那么該圖標要與系統(tǒng)圖標十分相似并能夠觸發(fā)標準的系統(tǒng)行為。
應用不能重新定義或濫用 Android 界面模式,如此一來,圖標或行為可能會誤導用戶或令用戶困惑。
導航:
應用須支持標準系統(tǒng)“返回”按鈕,不能使用任何自定義的“返回按鈕”屏幕提示。
所有對話框均可以使用“返回”按鈕關閉。
在任何位置按下“主屏幕”按鈕即可轉(zhuǎn)到設備的主屏幕。
通知:
如果可能,應將多個通知放入一個通知對象中。
只有與進行中的活動(例如音樂播放或通話)相關時,通知才會持續(xù)保留。
通知中不能包含廣告或與應用核心功能無關的內(nèi)容,除非用戶選擇接受這樣的通知。
應用只出于以下目的使用通知:說明與用戶個人相關的上下文更改(例如收到消息),或者展示與進行中的活動(例如音樂播放或通話)相關的信息/控件。
功能
權限:
應用只能請求支持核心功能所需的絕對最低級別權限。
除非與應用的核心功能相關,否則應用不能請求訪問敏感數(shù)據(jù)(例如通訊錄或系統(tǒng)日志)或用戶付費服務(例如撥號器或短信)的權限。
安裝位置:
應用安裝在 SD 卡上(如果應用支持)時應可以正常工作。建議大多數(shù)的大型應用(大于 10MB)支持安裝到 SD 卡。
音頻:
音頻不能在屏幕關閉時播放,除非這是應用的核心功能(例如應用是音樂播放器)。
音頻不會在鎖定屏幕后播放,除非這是核心功能。
音頻不能在主屏幕上或其他應用運行時播放,除非這是應用的核心功能。
音頻應在應用返回前臺時恢復,或者提示用戶播放已處于暫停狀態(tài)。
界面和圖形:
應用橫屏和豎屏兩種方向應展現(xiàn)大致相同的特征和操作,并保持同等功能??山邮軐?nèi)容或視圖做出的細微更改。
應用在兩種顯示方向下都占用整個屏幕,不能因為顯示方向更改而出現(xiàn)黑邊??山邮転檠a償屏幕幾何圖形的細微差異而出現(xiàn)少許黑邊。
應用須正確處理顯示方向之間的快速轉(zhuǎn)換,而不會出現(xiàn)呈現(xiàn)問題。
用戶應用狀態(tài):
應用轉(zhuǎn)入后臺時,不應再有任何服務處于運行狀態(tài),除非該服務與應用核心功能相關。例如,不得為接收通知而保持網(wǎng)絡連接、保持藍牙連接或保持 GPS 開啟,從而讓服務保持運行狀態(tài)。
應用須正確保留和恢復用戶或應用的狀態(tài)。應用在離開前臺時須保留用戶或應用的狀態(tài),并防止因返回導航和其他狀態(tài)更改而意外丟失數(shù)據(jù)。返回前臺時,應用必須恢復保留的狀態(tài)和待處理的任何重要的狀態(tài)性事務,例如對可編輯字段的更改、游戲進程、菜單、視頻以及應用或游戲的其他部分。
當應用從“最近使用的應用”切換器恢復時,它能夠準確地讓用戶返回到上次使用的狀態(tài)。
當設備從休眠(鎖定)狀態(tài)中被喚醒后,在應用恢復時,應用須準確地讓用戶返回到上次使用的狀態(tài)。
當應用從主屏幕或“所有應用”重新啟動時,應用會盡可能恢復為與之前狀態(tài)最接近的狀態(tài)。
在按“返回”鍵時,應用須讓用戶選擇是否保存會因返回導航而丟失的任何應用或用戶狀態(tài)。
兼容性、性能和穩(wěn)定性
穩(wěn)定性:
應用不會在任何適配的設備上崩潰、強制關閉、凍結(jié)或出現(xiàn)其他功能異常。
性能:
應用須迅速加載,如果加載時間超過 2 秒,須向用戶提供屏幕反饋(進度指示器或類似提示)。
啟用 StrictMode 之后,在應用運行期間(包括玩游戲、動畫和界面轉(zhuǎn)換期間以及應用的其他部分),指示燈不會呈紅色閃爍(StrictMode 的性能警告)。
SDK:
用在最新公開版本的 Android 平臺上運行,而不會崩潰或丟失核心功能。
應用須通過設置 targetSdk 值適配最新 SDK,以最大限度減少使用平臺提供的任何兼容性回退。
應用通過設置 compileSdk 值,使用最新 SDK 進行構建。
電池:
應用正確支持電源管理功能(低電耗模式和應用待機模式)。如果核心功能被電源管理中斷,則只有符合條件的應用才能請求豁免。
媒體:
在應用正常使用和加載期間,音樂和視頻播放流暢,沒有中斷、卡殼或其他異常聲音。
視覺質(zhì)量:
應用顯示的圖形、文本、圖像和其他界面元素須沒有明顯的失真、模糊或像素化。應用為所有適配的屏幕尺寸和機型提供高品質(zhì)的圖形。菜單邊緣、按鈕和其他界面元素沒有明顯的走樣。
應用須以可接受的方式顯示文本和文本塊。構圖在所有支持的機型上均可接受。沒有明顯的字母或詞語丟失。按鈕或圖標中沒有明顯的不當文本換行。文本與周圍元素之間有足夠的間距。
安全性
數(shù)據(jù):
所有不公開數(shù)據(jù)均存儲在應用的內(nèi)部存儲空間中。
外部存儲空間中的所有數(shù)據(jù)需經(jīng)過驗證后才可加以訪問。
所有 Intent 廣播遵循最佳安全做法。如果已知目標應用,則 Intent 是顯式內(nèi)容。Intent 強制執(zhí)行并使用相應權限。包含數(shù)據(jù)和負載的 Intent 需經(jīng)過驗證才能使用。
不能將個人或敏感用戶數(shù)據(jù)記錄到系統(tǒng)或應用特定的日志中。
應用組件:
只能導出與其他應用共享數(shù)據(jù)的應用組件,或應由其他應用調(diào)用的組件。這類組件包括 Ativity、服務、廣播接收器,尤其是內(nèi)容提供程序。無論是否導出應用組件,始終要明確設置 android:exported 屬性。
與其他應用共享內(nèi)容的所有應用組件均需定義相應權限。這類組件包括 Ativity、服務、廣播接收器,尤其是內(nèi)容提供程序。
在應用之間共享內(nèi)容的所有內(nèi)容提供程序均使用
?android:protectionLevel="signature"。
網(wǎng)絡:
所有網(wǎng)絡流量均通過 SSL 進行發(fā)送。
應用應當聲明網(wǎng)絡安全配置。
如果應用使用 Google Play 服務,則安全提供程序在應用啟動時進行初始化。
庫:
所有庫、SDK 和依賴項均保持最新狀態(tài)。
WebView:
在所有 WebView 中,JavaScript 已停用(除非另外要求)。
如果可能,WebView 僅加載白名單內(nèi)容。
WebView 不對不信任的內(nèi)容使用 addJavaScriptInterface()。在 Android M 和更高版本中,可以使用 HTML 消息通道。
執(zhí)行:
應用不能從應用 APK 外部動態(tài)加載代碼。
加密:
應用可使用平臺提供的強大加密算法,但不能實現(xiàn)自定義算法。
具體地講,應用可使用適當?shù)陌踩S機數(shù)生成器初始化加密密鑰。
最后
當我們的應用達到以上標準后也別忘記做好測試硬件準備工作,以確保應用上線質(zhì)量。理想的測試硬件設備能夠代表目前消費者可用的主要機型和軟硬件組合。開發(fā)者不需要測試市場上的每種設備,只需關注少量有代表性的設備,針對每種機型選用一兩臺設備即可。