Gradle在cocos2d-x(2.x)遊戲中整合

samael發表於2016-05-30

需求

上個遊戲專案結束, 開始接手一些接SDK的雜活. 發現了一些問題:

  • 接入或者替換新的SDK, 程式都把相同的工程白包複製一份再進行相應的接入, 再對著複製出來的專案進行相應程式碼的修改. 或者新開一個分支進行相應SDK的整合, 這樣就會導致遊戲程式碼管理十分混亂

  • 與之前接入SDK的程式溝通發現, SDK接入的需求比我想象的要複雜一些 (比如, 支付在X渠道, 對於20元以下的支付使用短代支付, 對於20元以上的使用支付寶支付)

整理

經過整理現在先做出一個簡單的實現方案

  • 把之前專案的工程從Eclipse遷入到AndroidStudio中

  • 整合對應的SDK並把對應的build.gradle遷入對應的SDK中

整理之後基本的SDK結構如下:

struct

基本APP相當於白包, 如果使用App中的buildi.gradle, build出來的App包不會加入任何SDK的APK

Libraries裡是對不同渠道需求用的打包配置(最簡單的比如icon需求), 包含各自的asset lib res等等.

遊戲原始碼和共用的資源讀取的是APP的, 特殊的在資源對程式碼對應的資料夾中, 他們之間在也可以相互包含.如:接入cmcc的同時還可以再整合廣告的SDK.

Libraries中的檔案如果APP與的檔案同名, 會優先使用Libraries中的檔案, 這樣可以保證使每個SDK的特殊需求得以實現.

後續工作

  1. 整合指令碼批量出包, 把APK按規則重新命名之後, 放入同一資料夾中.

  2. 統一外圍程式碼介面

相關參考

Gradle整合修改AndroidManifest.xml打多個包實踐 原文地址

相關文章