Gradle在cocos2d-x(2.x)遊戲中整合
需求
上個遊戲專案結束, 開始接手一些接SDK的雜活. 發現了一些問題:
接入或者替換新的SDK, 程式都把相同的工程白包複製一份再進行相應的接入, 再對著複製出來的專案進行相應程式碼的修改. 或者新開一個分支進行相應SDK的整合, 這樣就會導致遊戲程式碼管理十分混亂
與之前接入SDK的程式溝通發現, SDK接入的需求比我想象的要複雜一些 (比如, 支付在X渠道, 對於20元以下的支付使用短代支付, 對於20元以上的使用支付寶支付)
整理
經過整理現在先做出一個簡單的實現方案
把之前專案的工程從Eclipse遷入到AndroidStudio中
整合對應的SDK並把對應的build.gradle遷入對應的SDK中
整理之後基本的SDK結構如下:
基本APP相當於白包, 如果使用App中的buildi.gradle, build出來的App包不會加入任何SDK的APK
Libraries裡是對不同渠道需求用的打包配置(最簡單的比如icon需求), 包含各自的asset lib res等等.
遊戲原始碼和共用的資源讀取的是APP的, 特殊的在資源對程式碼對應的資料夾中, 他們之間在也可以相互包含.如:接入cmcc的同時還可以再整合廣告的SDK.
Libraries中的檔案如果APP與的檔案同名, 會優先使用Libraries中的檔案, 這樣可以保證使每個SDK的特殊需求得以實現.
後續工作
整合指令碼批量出包, 把APK按規則重新命名之後, 放入同一資料夾中.
統一外圍程式碼介面
相關參考
相關文章
- 在gradle中構建java專案GradleJava
- 在 DjangoStarter 中整合 TailwindCSSDjangoAICSS
- 【Cocos2d-x】整合wxSqlite3到Cocos2d-xSQLite
- Mac下Xcode(4.3.3)搭建Cocos2d-X(2.X)環境MacXCode
- Spring Boot 2.X 如何快速整合jpa?Spring Boot
- cocos2d-x遊戲引擎遊戲引擎
- Android SMSSDK非Gradle整合教程AndroidGradle
- 使用Gradle執行整合測試Gradle
- WebSphere在Myeclipse中的整合WebEclipse
- xlwings:在Excel中整合PythonExcelPython
- 移植一個cocos2d-x遊戲遊戲
- java~springboot~gradle裡的docker整合JavaSpring BootGradleDocker
- Gradle與Gatling指令碼整合Gradle指令碼
- SpringBoot 2.X 整合 RocketMQ遇到的問題2Spring BootMQ
- springboot 2.x 整合 shiro 許可權框架Spring Boot框架
- 切換髮射使用TileMap製作遊戲,在cocos2d-x中使用(三)遊戲
- 在 .NET Core 5 中整合 Create React appReactAPP
- 在Android原生專案中整合FlutterAndroidFlutter
- 在Android App中整合Google登入AndroidAPPGo
- 像 npm 一樣在 Andriod 專案中引入 Gradle 依賴NPMGradle
- 專案實戰之gradle在實際專案中的使用Gradle
- 詳解在Android中整合高德定位功能Android
- Ccover在hudson持續整合中的應用
- Cocos2D-X for XNA遊戲開發指南遊戲開發
- cocos2d-x手機遊戲開發——序遊戲開發
- Spring Boot 2.x 圖文教程 | 整合郵件傳送功能Spring Boot
- Gradle For Android(四)Gradle 編譯中神祕的混淆GradleAndroid編譯
- 在Laravel中整合騰訊雲 移動(APP)推送(TPNS)LaravelAPP
- OpenCV在Android中的整合與簡單使用OpenCVAndroid
- gradle中的增量構建Gradle
- cocos2d-x遊戲中音樂音效的處理遊戲
- 在IDEA裡gradle配置和使用IdeaGradle
- 遊戲中的經濟:淺談貨幣在遊戲中的價值遊戲
- Redis在遊戲業務中的使用Redis遊戲
- 食物在電子遊戲中的妙用遊戲
- 在iOS-Swift專案中整合CppJieba分詞iOSSwiftJieba分詞
- 持續化整合工具 Jenkins 在 Ubuntu 中安裝JenkinsUbuntu
- 在spring,mybatis整合配置中走的彎路(1)SpringMyBatis