Android實戰之Cocos遊戲容器搭建
一、前言
現在市面上很多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容器搭建內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Android開發案例手冊Application跳出dialog
- Android廣播實現App開機自啟動
- Android permission denied原因歸納和解決辦法
- Android開發之permission動態權限獲取詳解
- Android入門教程之組件Activity的生命周期詳解