安卓(Android) link

Ren’Py支持運行安卓操作系統的設備,比如智慧型手機和平板電腦。由於這些設備並不100%支持Ren’Py的所有函數,在那些設備運行的包會做最小化修改。

與Ren’Py引擎分開下載的RAPT程序——Ren’Py安卓打包工具,可以創建安卓的測試版和正式版打包文件。

語言要求 link

部分Ren’Py在安卓平台使用的庫需要通過GNU Lesser/Library General Public License的認證。創作者會需要遵守Ren’Py生成版的認證規則。我們相信下列包含在app描述裡的語言能夠滿足需求,不過最好能找個律師確認一遍。(譯者註:建議把中英文都寫上。)

This program contains free software licensed under a number of licenses, including the GNU Lesser General Public License. A complete list of software is available at https://www.renpy.org/l/license/.

這個程序包括一些證書下的自由軟體認證,包括GNU Lesser General Public License。完整的軟體列表參見 https://www.renpy.org/l/license/.

用戶指南 link

在安卓上啟動一個Ren’Py遊戲時,會執行下列按鍵綁定:

Home
返回到安卓home界面,Ren’Py遊戲進程掛起。作為掛起過程的一部分,Ren’Py會自動存檔。如果需要的話,用戶回到遊戲時還可以自動讀檔。
Menu
喚起一個遊戲內菜單,並返回遊戲。
Back
回滾。
Volume Up, Volume Down
控制安卓的媒體音量。

平台差異 link

在Ren’Py支持的,基於觸控螢幕的安卓平台和基於滑鼠的平台之間還是有很多重要的差異。幾個重要的安卓軟硬體差別在於:

  • 觸控螢幕被看作是有一個滑鼠的設備。只不過,只有在用戶點擊螢幕時才會產生滑鼠事件消息。
  • 播放影片只支持全螢幕模式,並且只能使用安卓設備支持的媒體格式。請參閱 這個頁面 查看所有支持的影片格式列表。
  • 文本輸入模組(比如 renpy.input() )將受到輸入法的限制,不能完全正常工作(西方語言應該可以,其他語言可能存在問題)。

除此之外,還有一些由於人為因素導致的差異。

  • 由於安卓智慧型手機可能比電腦顯示器小,需要增大字體。
  • 由於觸控輸入不如滑鼠輸入精確,所以基於觸控螢幕的按鈕需要比基於滑鼠的按鈕更大。

為了幫助創作者適應這些差異,Ren’Py會給予設備螢幕尺寸和性能,針對安卓自動選擇界面變化。詳見 界面變種

測試和模擬 link

處於測試需求,Ren’Py支持三種安卓模擬模式。這些都通過啟動器的安卓界面接入。

Phone
這個模式模擬一台安卓手機。觸控模式通過滑鼠實現,但是不過僅在滑鼠左鍵按下的情況下有效。Esc鍵映射為menu按鍵,PageUp鍵映射為back按鍵。
Tablet
這個模式模擬一台安卓平板。觸控模式通過滑鼠實現,但是不過僅在滑鼠左鍵按下的情況下有效。Esc鍵映射為menu按鍵,PageUp鍵映射為back按鍵。
Television / OUYA

這個模式模擬一台基於電視的安卓設備,比如OUYA主機。按鍵映射為遠程或控制器輸入,方向鍵提供了導航功能。select鍵是回車,Esc鍵是菜單,PageUp鍵是back。

這個模式會在“電視機盲區”區域顯示一個輪廓。所有“電視機盲區”區域的畫面在所有電視上都不能顯示。

這些模擬器可以用於快速測試項目,當然最好能在真實的硬體上做測試。模擬器不處理那些人為因素導致的事件,比如用戶的“胖手指”。

生成安卓應用程式 link

Ren’Py包含一些工具能幫助創作者以包(package)為中心進行安卓遊戲開發。在這個過程中,創作者會使用一台電腦生成一個安卓的包(package)並上傳到創作者自己的設備上。創作者可以像其他安卓應用程式一樣運行這個遊戲。如果運行無誤,就可以把這個包上傳到Google Play等app商店了。

生成一個安卓應用程式包含4個步驟:

  1. 下載和安裝Java Development Kit和安卓USB驅動(下載連結在後面)。
  2. 使用啟動器(launcher)安裝安卓SDK並創建金鑰(key)。
  3. 使用啟動器進行安卓生成配置。
  4. 使用啟動器生成安卓應用程式。

一旦你完成了這些步驟,就能得到一個可以運行的安卓包。當你修改了某個遊戲的配置或者完整配置一個新遊戲時,只需要執行步驟3;如果你要重新生成一個包,通常只需要執行步驟4。

步驟1:安裝依賴組件 link

在你生成包(package)之前,總共有3種東西需要手工下載和安裝

Java Development Kit. Java開發工具包(Java Development Kit (JDK)) 包含一些RAPT需要的工具。 RAPT需要使用這些工具,包括用於生成金鑰(key)和簽名包的工具。JDK的下載網址為:

需要下載的是版本為8的JDK。

請注意,關注開發者的JDK與關注用戶的JRE是不同的。而創作者需要JDK創建安卓包。

安卓設備 創作者在開發時需要對設備進行配置。首先需要啟用設備的開發者模式,並且為電腦配備安卓開發環境。如何設置電腦的說明可以查看下面的連接:

也可以使用app的x86_64版本鏡像,在安卓模擬器上運行程序(注意,模擬器不支持x86版本的鏡像)。關於配置模擬器的內容超出了此文件的範圍。

步驟2:配置安卓SDK和開發環境 link

下一步是配置安卓SDK和你開發環境的部分。這步包括:

  • 檢查JDK是否正確安裝。
  • 安裝安卓SDK。
  • 使用安卓SDK安裝合適的開發工具包。
  • 創建一個簽名金鑰,使用這個金鑰給包簽名。簽名後的包就可以發布在應用市場上了。(android.keystore:這個文件生成在RAPT目錄下。)

這步需要接入網路。

執行這個步驟時,選擇Ren’Py啟動器中安卓界面的“安裝SDK並創建金鑰”。

RAPT會即時報告它正在做的工作。它還會將各類許可的警告訊息,並詢問你是否需要生成一個金鑰。

Warning

RAPT生成的金鑰使用一個標準密碼創建。你應該使用金鑰工具生成自己的簽名金鑰。

至少,你應該將android.keystore文件保存在一個安全的地方。你還應該將保存這個金鑰的備份,因為沒有這個金鑰的話,你就不能上傳生成的應用程式。

如果你不想每次都下載SDK,可以創建一個名為“sdk.txt”的文本文件,文件裡寫上已安裝SDK的所在路徑。

步驟3:配置遊戲 link

生成一個包(package)之前,你必須向Ren’Py提供一些關於遊戲安卓版本的訊息。在Ren’Py啟動器的安卓界面,選擇“配置”。

如果你需要修改這些訊息——例如,你做了一個遊戲的新版本——你可以重新運行配置命令。之前你配置的選項已經被記住了。

步驟4:生成應用包並安裝 link

最後,你可以生成應用包並安裝了。將你的安卓設備連接到你的電腦,然後在Ren’Py啟動器的安卓界面選擇“生成應用包並安裝”。(首次安裝時,你的安卓設備可能會詢問你是否允許你的電腦向安卓設備安裝應用。)

如果你需要將遊戲的apk文件手工移植到安卓設備上的話,在Ren’Py啟動器的安卓界面選擇“生成應用包”。然後進入RAPT目錄下的bin目錄,將選取合適的文件複製到安卓設備上。之後找到安卓的文件管理應用找到對應的apk文件,打開文件執行安裝。

Ren’Py中有兩種模式供創作者選用,debug模式和release模式。Debug模式對測試很有用,並且可以很方便地使用Android Studio工具查看設備的日誌和文件。Release模式用於生成最終上傳到各應用商店的app版本。

如果要在debug模式和release模式之間切換,需要卸載app。

圖示和presplash圖片 link

圖示 link

Ren’Py使用遊戲基目錄中的兩個文件生成app圖示。

android-icon_foreground.png
圖示的前景層。這應該是一個帶透明度的432×432像素圖片。
android-icon_background.png
圖示的背景層。這應該是一個完全不透明的432×432像素圖片。

安卓的自適應圖示機制是這樣工作的,將兩個圖示放在至少132×132像素的區域中並中央對齊,然後將前景層蓋在背景層上。 有可能在這個區域之外的圖像也會顯示,但也可能會被遮擋住。最好在安全區域之外還預留一些出血位(bleeding)。 當拖拽圖示時,兩個圖層可能會保持相對位置有一點移動。

關於自適應圖示的更多訊息,請查看:

注意那裡的1dp實際上對應螢幕上4個實際像素。

當生成應用程式時,Ren’Py會將這些文件轉換為不同設備的適用尺寸,並為那些支持自適應圖示的設備生成靜態圖示。

預啟動畫面 link

預啟動畫面(presplash)是在Ren’Py完全載入之前顯示的畫面,比主啟動界面(splashscreen)更早顯示。 在安卓設備上,預啟動畫面特別重要,尤其是Ren’Py首次運行時需要較長時間解包運行使用的支持文件。

android-presplash.jpg
當app載入時使用的圖像。這個圖片應該使用單色的邊界(border)。邊界會擴展並填充整個螢幕的剩餘空間。

Google Play擴展APK link

當設備支持Google Play時,Ren’Py可選擇支持擴展APK的使用。擴展APK允許Google Play突破遊戲不能大於50MB的限制。詳見:

關於擴展APK工作機制的訊息。 迄今為止,只支持主擴展APK,文件限制為2GB。創建擴展APK時,所有的遊戲文件都會放在這個APK包中。Ren’Py會顯式使用這些文件。

要將遊戲配置為使用擴展APK,你需要設置兩個變數:

build.google_play_key = “…” link

這是與你的應用關聯的Google Play證書,這個證書在Google Play開發者終端上與你應用關聯的“”Monetization Setup”標籤內可以找到。(確保在金鑰中刪除了所有的空格和換行。)

一個常見的key長這樣:

define build.google_play_key = "MIIBIjANBgkqhkiG9w0BAQEFA…HGTQIDAQAB"

三個點的占位符“…”可能表示一長串字母和數字。

build.google_play_salt = ( … ) link

這是一個20byte的元組,每個byte都是一個介於-128和127之間的整數。這個元組用於加密來自Google Play的訊息。

一個合法(但不安全)的元組值如下:

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)

當在設備上安裝了APK包之後,RAPT會在設備上放置擴展APK。擴展APK會是在RAPT目錄的bin子目錄下的一個.obb文件。

在通常操作中,用戶安裝應用程式時,Google Play會在設備上自動放置擴展APK。