首頁 > 軟體

Android實戰之Cocos遊戲容器搭建

2022-06-29 14:03:24

一、前言

現在市面上很多app有遊戲中心功能,最早的有微信小遊戲和QQ小遊戲,再後來像bilibili、喜馬拉雅、愛奇藝、比心等等應用中也加入了遊戲中心模組。本篇文章將介紹如何上手搭建cocos creater遊戲容器,先來看看效果:

二、準備工作

  • 安裝最新版本CocosDashboard
  • 在Dashborad下載最新版本編輯器

在Android Studio安裝NDK,我這裡安裝的是21.1.6352462,目前為止比較穩定

在CocosDashboard新建HelloWorld專案並開啟執行,我這裡用的3.1.1版本

開啟CocosCreator選單欄偏好設定,在外部程式欄中設定Android NDK和Android SDK路徑

三、構建cocos遊戲.so檔案

在CocosCreator選單欄選擇專案-構建釋出,選擇釋出平臺:安卓,點選構建,等大概幾分鐘

  • 成功後,用Android Studio開啟資料夾裡生成的proj專案,並執行該專案到手機上,這裡遊戲資源載入的是proj同級目錄assets,後續,我們會將assets壓縮包zip存放在我們伺服器,達到使用者下載解壓後載入啟動遊戲的目的。
  • 為了後續遊戲容器能載入本地filePath下的遊戲資源,需要修改JniCocosActivity.cpp裡的Java_com_cocos_lib_CocosActivity_onCreateNative方法

  • ./gradlew assembleRelease打release包, 將instantapp-release.apk字尾改成zip,解壓後獲取lib下arm64-v8a/armeabi-v7a下的libcocos.so(構建版本設定那裡可以勾選不同架構)

四、製作自己的遊戲容器

  • 建立module,包名為com.cocos.lib(為了和.so檔案裡保持一致,不然無法呼叫c方法)
  • module的清單檔案加
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  • 將/Applications/CocosCreator/Creator/3.1.1/CocosCreator.app/Contents/Resources/resources/3d/engine-native/cocos/platform/android/java/libs拷貝到module/libs下
  • module下build.gradle新增
implementation fileTree(include: ['*.jar'], dir: 'libs')
  • 將.so檔案放在module/src/main/jniLibs/下
  • 將/Applications/CocosCreator/Creator/3.1.1/CocosCreator.app/Contents/Resources/resources/3d/engine-native/cocos/platform/android/java/src/com/cocos/lib下的java檔案複製到module/src/main/java/com.cocos.lib下
  • 修改檔案CocosActivity.java,因為遊戲頁面官方推薦用多程序來做,所以這裡退出遊戲,即將遊戲程序kill
// 加一個filePath引數
private native void onCreateNative(Activity activity, AssetManager assetManager, String obbPath, int sdkVersion, String filePath);
// 外部傳入遊戲資源路徑
protected String filePath() {
    return "";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    onCreateNative(this, getAssets(), getAbsolutePath(getObbDir()), Build.VERSION.SDK_INT, filePath());
}
@Override
public void onBackPressed() {
    super.onBackPressed();
    System.exit(0);
}

五、總結

自此,我們遊戲容器製作完畢,我也將該篇的遊戲容器module傳到了jitpack,可以直接使用:

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
}
dependencies {
	   implementation 'com.github.qq326646683:cocos-creator-android:1.0.0'
}

六、如何使用

  • 檔案讀寫、網路許可權
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
  • 下載遊戲zip並解壓
  • 繼承CocosActivity,並將解壓後的路徑賦值給filePath
class CocosGameActivity: CocosActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
    override fun filePath() = intent.getStringExtra("path")
}

清單檔案:

 <application>
        <meta-data
            android:name="android.app.lib_name"
            android:value="cocos" />
        <activity android:name=".CocosGameActivity" android:process=":cocos"/

到此這篇關於Android實戰之Cocos遊戲容器搭建的文章就介紹到這了,更多相關AndroidCocos容器搭建內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com