Google Play:將現(xiàn)有游戲轉換為免安裝游戲

來源: Google Developers
作者:Google Developers
時間:2020-12-07
16850
用于設置支持Google Play免安裝體驗的應用的步驟(如創(chuàng)建您的第一個免安裝應用中所述)也適用于游戲。本指南著重介紹專用于游戲的一些設置步驟。

用于設置支持Google Play免安裝體驗的應用的步驟(如創(chuàng)建您的第一個免安裝應用中所述)也適用于游戲。本指南著重介紹專用于游戲的一些設置步驟。

您可以使用Unity(無論是否帶有Google Play Instant Unity插件)、Cocos2D、Android Studio或自己的自定義引擎,開發(fā)支持Google Play免安裝體驗的游戲。

本指南假定您已了解自己想要提供的游戲體驗。如果您想了解制作高品質(zhì)游戲的理念和最佳做法,請參閱支持Google Play免安裝體驗的游戲的用戶體驗最佳做法。

此外,在發(fā)布支持Google Play免安裝體驗的游戲前,您還應查閱技術要求核對清單。

指定入口點

包含以下intent過濾器的Activity將作為Google Play免安裝體驗的入口點:

<activity android:name=".GameActivity">

<intent-filter>

<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

當用戶點按Play商店中的立即體驗或Google Play游戲應用中的立刻開玩按鈕時,系統(tǒng)便會啟動該Activity。您也可使用深層鏈接API直接啟動該Activity。

注意:您可以將此入口點Activity與其他幾個Activity一起打包在一個模塊中,用以提供游戲的免安裝體驗。

定義正確的版本號

游戲的免安裝體驗版的版本號必須低于游戲的可安裝版本的版本號。通過這種方式對應用進行版本控制,有助于讓玩家從Google Play免安裝體驗過渡到在自己的設備上下載并安裝游戲。Android框架將這一過渡視為應用更新。

注意:如果玩家在自己的設備上安裝了游戲,則當用戶通過Google Play或某個鏈接啟動免安裝體驗時,將始終運行該安裝版,而非免安裝體驗版。即使所安裝的游戲版本低于免安裝體驗的版本,也是如此。

為確保遵循建議的版本控制方案,請遵循以下某種策略:

從頭開始重新設置Google Play免安裝體驗的版本號。

將安裝式APK的版本號提高一個較大的數(shù)值(如1000),以確保有足夠的空間來提高免安裝體驗的版本號。

您可以在兩個單獨的Android Studio項目中開發(fā)您的免安裝游戲和可安裝游戲。但是,如果您這樣做,則必須執(zhí)行以下操作才能將游戲發(fā)布到Google Play平臺上:

在兩個Android Studio項目中使用相同的軟件包名稱。

在Google Play管理中心將兩個變體上傳到同一應用。

注意:版本號不是面向用戶的值,主要由系統(tǒng)使用。面向用戶的版本名稱沒有限制。

如需詳細了解游戲版本設置,請參閱控制應用版本。

支持執(zhí)行環(huán)境

與其他應用一樣,支持Google Play免安裝體驗的游戲也在設備上的受限沙盒內(nèi)運行。為了支持此執(zhí)行環(huán)境,請完成以下各部分中所示的步驟。

選擇停用明文流量

支持Google Play免安裝體驗的游戲不支持HTTP流量。如果游戲以Android 9(API級別28)或更高版本為目標平臺,Android會默認停用游戲中的明文支持。

而如果游戲以Android 8.1(API級別27)或更低版本為目標平臺,則必須創(chuàng)建一個網(wǎng)絡安全配置文件。在此文件中,應將cleartextTrafficPermitted設為false,如以下代碼段所示:

res/xml/network_security_config.xml

<?xml version="1.0"encoding="utf-8"?>

<network-security-config&gt;

<domain-config cleartextTrafficPermitted="false">

<domain includeSubdomains="true"&gt;secure.example.com&lt;/domain>

</domain-config>

</network-security-config>

更新目標沙盒版本

更新免安裝游戲的AndroidManifest.xml文件,使其以Google Play免安裝體驗支持的沙盒環(huán)境為目標平臺。您可以通過將android:targetSandboxVersion屬性添加到游戲的<manifest&gt;元素來完成此更新,如以下代碼段所示:

<manifest

xmlns:android="http://schemas.android.com/apk/res/android"

...

android:targetSandboxVersion="2"...>

如需了解詳情,請參閱targetSandboxVersion屬性文檔。

不要依賴于緩存或應用數(shù)據(jù)的存在

已下載的免安裝體驗仍會保留在用戶的設備上,直到免安裝體驗緩存被清除。系統(tǒng)會在出現(xiàn)以下情況時執(zhí)行清除操作:

由于設備的可用內(nèi)存不足,系統(tǒng)會對免安裝體驗緩存進行垃圾回收。

用戶重啟設備。

如果出現(xiàn)上述任一情況,用戶必須重新下載免安裝體驗才能與之互動。

如果系統(tǒng)運行所用的存儲空間很少,可能會將免安裝體驗的用戶數(shù)據(jù)從內(nèi)部存儲空間中移除。因此,建議您定期將用戶數(shù)據(jù)與游戲服務器進行同步,以便保留用戶的進度。

縮減APK的大小

與其他類型的應用不同,支持Google Play免安裝體驗的游戲具有15MB的下載大小限制。為了創(chuàng)建此大小的游戲,您可能需要重構游戲的邏輯。本部分將介紹一些可以幫助您優(yōu)化游戲大小的工具和技巧。

工具

下面的工具可以幫助您確定哪些內(nèi)容構成了游戲的大小:

APK分析器:提供關于已編譯的APK所含內(nèi)容的完整視圖。通過該視圖,您可以了解各個元素在總體大小中所占的字節(jié)數(shù)。此工具可以快速檢查游戲所用的資源、素材資源、邏輯和原生庫的大小。

Bloaty McBloatface:顯示二進制文件的大小配置文件。

Android GPU檢查器:在不重新編譯游戲的情況下,查看縮減紋理大小對文件大小的影響。

技巧

下面列出的技巧可以幫助您縮減游戲的大小:

提取游戲的部分邏輯并將其放入一個或多個功能模塊中,這些模塊不會計入大小限制。

降低游戲紋理的分辨率。

考慮使用WebP格式,特別是在GPU上使用未壓縮的紋理時。以WebP格式創(chuàng)建的圖像的質(zhì)量與JPEG圖像的質(zhì)量相同,但大小會縮減15%到30%。雖然解壓縮WebP圖像需要花費更長的時間,但此時間仍然比下載游戲紋理所需的時間要短得多。Google也將此格式整合到了開源游戲引擎中。

壓縮或重復使用聲音和音樂。

使用不同的編譯標記來幫助縮小二進制文件:

-fvisibility=hidden是最重要的一個。在cmake中,您可以按照如下方式來指定它:

$set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)

-Oz對縮減大小也很重要。如果使用gcc進行編譯,請改用-Os。

-flto有時可以縮減文件大小。

連接器標記:將--gc-sections和編譯器標記(如-ffunction-sections和-fdata-sections)搭配使用。

使用Proguard壓縮代碼和資源。

使用Gradle 4.4或更高版本生成更小的DEX文件。

實現(xiàn)資源的云端分發(fā)。

將大型游戲分割為多個APK

即使采用了縮減APK大小的建議,也可能很難通過優(yōu)化Google Play免安裝體驗來使游戲容納到單個15MB的APK中。為克服這一困難,您可以將游戲分割為多個APK。玩家可以先下載主要的基礎APK,然后在他們玩游戲的過程中,游戲可以從后臺調(diào)用其他拆分APK。

例如,基礎APK可以包含核心游戲引擎以及顯示加載屏幕所需的資源?;AAPK啟動后,它會顯示加載屏幕,并立即請求包含游戲和關卡數(shù)據(jù)的其他拆分APK。在這個拆分APK可用后,它可以將其資源加載到游戲引擎中,并向玩家提供開始游戲所需的內(nèi)容。

采用用戶體驗最佳做法

將游戲配置為支持免安裝體驗后,您可以添加以下各部分中介紹的邏輯以提供良好的用戶體驗。

檢查游戲是否在運行免安裝體驗

如果游戲的部分邏輯依賴于用戶是否參與了免安裝體驗,請調(diào)用isInstantApp()方法。如果當前正在運行的進程是免安裝體驗,此方法會返回true。

通過執(zhí)行此檢查,您可以確定應用是需要在有限的執(zhí)行環(huán)境中運行,還是可以利用平臺功能。

顯示安裝提示

如果您構建了Google Play免安裝試玩體驗,游戲應在某個時刻提示玩家在其設備上安裝完整版游戲。為此,請使用Google APIs for Android中的showInstallPrompt()方法。

如需進一步了解應如何以及何時提示玩家安裝游戲,請參閱支持Google Play免安裝體驗的游戲的用戶體驗最佳做法。

將數(shù)據(jù)轉移到安裝式體驗

如果玩家喜歡您的試玩體驗,他們可能會決定安裝完整版游戲。為了提供良好的用戶體驗,請務必將玩家的游戲進度從免安裝體驗轉移到完整版游戲上。

如果玩家使用的設備搭載的是Android 8.0(API級別26)或更高版本,并且您的游戲?qū)argetSandboxVersion指定為2,則玩家的游戲進度會自動轉移到完整版游戲上。否則,您必須手動轉移與玩家游戲進度相關的數(shù)據(jù)。為此,請使用以下某個API:

對于使用搭載Android 8.0(API級別26)或更高版本的設備的用戶,請使用Cookie API-應用示例

如果玩家可以在搭載Android 7.1(API級別25)及更低版本的設備上與您的體驗互動,請?zhí)砑訉torage API的支持-應用示例

立即登錄,閱讀全文
版權說明:
本文內(nèi)容來自于Google Developers,本站不擁有所有權,不承擔相關法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務商推薦
更多