當使用者透過 Google Play 搜尋或瀏覽可供下載的應用程式時,系統會根據與裝置相容的應用程式篩選結果。 舉例來說,如果應用程式需要使用相機,Google Play 就不會在沒有相機的裝置上顯示該應用程式。這項「篩選功能」可協助開發人員管理應用程式的發行,並確保使用者能享有最佳體驗。
Google Play 篩選功能是以多種應用程式中繼資料和配置設定為基礎,包括資訊清單宣告、必要程式庫、架構依附元件,以及 Google Play 管理中心設定的發行控制項 (例如指定地理區域、價格等)。
Google Play 篩選功能部分是以資訊清單宣告和 Android 架構的其他方面為基礎,但實際的篩選行為與架構的不同,而且不受特定 API 級別限制。本文指定了 Google Play 目前使用的篩選規則。
Google Play 篩選器的運作方式
Google Play 採用下述篩選器限制,以決定是否要向在 Google Play 應用程式中瀏覽或搜尋應用程式的使用者顯示您的應用程式。
在決定是否要顯示應用程式時,Google Play 會檢查裝置的軟硬體需求,以及電信業者、位置和其他特性,然後將這些內容與應用程式資訊清單檔案和發布詳細資料所示的限制和依附元件互相比較。
根據篩選器規則,如果應用程式與裝置相容,Google Play 就會向使用者顯示應用程式。如果不相容,即便使用者點選深層連結直接導向至 Google Play 內的應用程式 ID,藉此特別請求應用程式,Google Play 仍會在搜尋結果和類別瀏覽當中隱藏應用程式。
您可以為應用程式選用任何適用的篩選器組合。舉例來說,您可以在應用程式內設定 minSdkVersion
需求 "4"
並設定 smallScreens="false"
,則在將應用程式上傳到 Google Play 時,即可僅鎖定歐洲國家/地區 (電信業者)。因此,Google Play 篩選器會在未完全符合以上三項要求的裝置上隱藏應用程式。
所有篩選限制都與應用程式的版本相關聯,並可能因版本不同而有所變動。舉例來說,如果使用者安裝了您的應用程式,而您發布的更新讓使用者無法再查看該應用程式,則使用者不會看到有可用更新。
Google Play 網站的篩選功能
當使用者瀏覽 Google Play 網站時,就能看到所有已發行的應用程式。不過,Google Play 網站會比較使用者每部註冊裝置的應用程式要求,以便瞭解相容性,並且只會在應用程式與裝置相容時才允許安裝。
根據應用程式資訊清單篩選
大多數的篩選器由應用程式資訊清單檔案 AndroidManifest.xml 中的元素觸發,但並非資訊清單檔案中的所有元素均能觸發篩選功能。表 1 列出了應用於觸發篩選功能的資訊清單元素,並說明各項元素的篩選功能如何運作。
資訊清單元素 | 篩選器名稱 | 運作方式 |
---|---|---|
<supports-screens>
|
螢幕大小 |
應用程式會設定 一般而言,Google Play 會假設裝置上的平台可配合較大的螢幕調整較小的版面配置,但無法配合較小的螢幕調整較大的版面配置。因此,如果應用程式宣告僅支援「一般」螢幕大小,則 Google Play 會對一般和大螢幕裝置提供應用程式,但會進行篩選確保小螢幕裝置無法使用應用程式。 如果應用程式未宣告
範例 1 範例 2 範例 3 如要進一步瞭解如何宣告應用程式支援的螢幕大小,請參閱 |
<uses-configuration>
|
裝置設定: 鍵盤、導覽、觸控螢幕 |
應用程式可以要求特定的硬體功能,而 Google Play 只會在具備所需硬體的裝置上顯示應用程式。 範例 1 範例 2 詳情請參閱 |
<uses-feature>
|
裝置功能 ( name ) |
應用程式可能會要求裝置具備特定的裝置功能。這項功能是在 Android 2.0 (API 級別 5) 中推出。 範例 1 範例 2 如需完整資訊,請參閱 根據隱含功能篩選:在某些情況下,Google Play 會將透過 |
OpenGL-ES 版本 ( openGlEsVersion ) |
應用程式可以使用 範例 1 範例 2 範例 3 範例 4 詳情請參閱 |
|
<uses-library> |
軟體程式庫 | 應用程式可能會要求裝置具備特定的共用程式庫。 範例 1 範例 2 詳情請參閱 |
<uses-permission> |
嚴格來說,Google Play 不會根據 一般而言,如果應用程式要求取得硬體相關權限,Google Play 會假設應用程式需要基礎硬體功能,即使沒有對應到 如需隱含硬體功能的權限清單,請參閱 |
|
<uses-sdk> |
最低架構版本 (minSdkVersion ) |
應用程式需要最低 API 級別。 範例 1 範例 2 為了避免發生第二種情況,建議您一律宣告 |
最高架構版本 (maxSdkVersion ) |
已淘汰。Android 2.1 以上版本不會檢查或強制執行 建議「不要」宣告 |
進階資訊清單篩選器
除了表 1 中的資訊清單元素以外,Google Play 也可以根據表 2 中的進階資訊清單元素來篩選應用程式。
這些資訊清單元素和觸發的篩選功能僅適用於特殊用途。它們適合特定類型的高效能遊戲和類似應用程式,需要嚴格的應用程式發行控制。大多數應用程式都不應使用這些篩選器。
資訊清單元素 | 摘要 |
---|---|
<compatible-screens> |
如果裝置螢幕大小和密度與 注意:在一般情況下,請勿使用這個資訊清單元素,這個元素會排除您未列出的所有螢幕大小和密度組合,進而大幅降低應用程式的潛在使用者數量。請改用 |
<supports-gl-texture> |
除非裝置也支援應用程式所支援的一或多個 GL 紋理壓縮格式,否則 Google Play 會篩選應用程式。 |
其他篩選器
Google Play 會根據其他應用程式特性,決定是否要在特定裝置上對某使用者顯示或隱藏應用程式,如下表所示。
篩選器名稱 | 運作方式 |
---|---|
發布狀態 | 只有已發布的應用程式會顯示在 Google Play 的搜尋與瀏覽內容中。 即使應用程式已取消發布,只要使用者在購買的應用程式、已安裝的應用程式或最近解除安裝的應用程式中的「下載內容」部分看到該應用程式,即可安裝。 應用程式遭到停權後,即使有顯示於「下載內容」,使用者也無法重新安裝或更新。 |
價格狀態 | 部分使用者無法看見付費應用程式。如要顯示付費應用程式,裝置必須搭載 Android 1.1 以上版本,且位於提供付費應用程式的國家/地區。如果裝置有 SIM 卡,SIM 卡的電信業者就會決定是否提供付費應用程式。如果裝置沒有 SIM 卡,系統會使用裝置的 IP 位址來決定裝置是否位於提供付費應用程式的國家/地區。 |
鎖定國家/地區 | 將應用程式上傳到 Google Play 時,您可以在「定價與發行」下選取要發行應用程式的國家/地區,應用程式便只會提供給指定國家/地區的使用者。 |
CPU 架構 (ABI) | 如果應用程式包含指定特定 CPU 架構的原生資料庫 (例如 ARM EABI v7 或 x86),則僅支援該架構的裝置才能看到應用程式。如要進一步瞭解 NDK 並使用原生資料庫,請參閱 Android NDK 簡介 |
有複製保護的應用程式 | Google Play 不再支援 Play 管理中心的「複製保護」功能,無法再以此篩選應用程式。如要保護應用程式,請改用「應用程式授權」。詳情請參閱「複製保護替代機制」。 |
使用不同篩選器發布多個 APK
有些特定的 Google Play 篩選器可讓您針對同一個應用程式發布多個 APK,以便為不同的裝置設定提供不同的 APK。舉例來說,假設您開發的電玩遊戲採用高擬真度圖像資源,則可以建立兩個分別支援不同紋理壓縮格式的 APK。這樣一來,就只需要加入每項裝置設定所需的紋理,APK 檔案大小便可因此縮減。視每部裝置支援的紋理壓縮格式而定,Google Play 會將您宣告支援裝置的 APK 提供給應用程式。
目前,只有在每個 APK 根據下列設定提供不同篩選器時,Google Play 才能針對同一個應用程式發布多個 APK:
- OpenGL 紋理壓縮格式
使用
<supports-gl-texture>
元素。 - 螢幕大小 (及螢幕密度 (選用))
使用
<supports-screens>
或<compatible-screens>
元素。 - API 級別
使用
<uses-sdk>
元素。 - CPU 架構 (ABI)
加入使用 Android NDK 建立的原生資料庫。這個資料庫會指定特定 CPU 架構 (例如 ARM EABI v7 或 x86)。
所有其他篩選器仍然照常運作,但僅有這四種篩選器可以區分 Google Play 中同一個應用程式資訊內的 APK。舉例來說,如果 APK 的區別僅在於裝置是否擁有相機,那您「無法」針對同一個應用程式發布多個 APK。
注意:針對同一個應用程式發布多個 APK 是一種進階功能,大多數應用程式只能發布一個支援多種裝置設定的 APK。發布多個 APK 時,您必須遵守篩選器的特定規則,並特別留意每個 APK 的版本代碼,確保各項設定都有適當的更新路徑。
如要進一步瞭解如何在 Google Play 發布多個 APK,請參閱「支援多個 APK」。