|
|
# 准备工作
|
|
|
## 开发环境
|
|
|
1. Android Studio
|
|
|
1. JDK
|
|
|
1. NDK (当前版本 n20)
|
|
|
1. Android SDK (当前版本 28)
|
|
|
1. 部分依赖下载需要科学上网:https://blog.boileryao.com/2019/01/config-android-studio-proxy/
|
|
|
1. Visual Studio (打包工具都是 C# project)
|
|
|
1. SVN
|
|
|
- svn: https://svn.apowo.com/svn/GSDK/trunk
|
|
|
|
|
|
## 基本原理
|
|
|
GSDK Android 端采用拆包后二次打包的方式进行 GSDK 集成。主体步骤为:
|
|
|
1. 各游戏使用游戏引擎提供的方式打出游戏本体 apk 包
|
|
|
1. GSDK 解压 apk 包、GSDK渠道集成包,再加上游戏对该渠道的配置文件,整合三方面资源打成一个新的 apk 包
|
|
|
|
|
|
## 代码库结构
|
|
|
以下说明仅针对核心组件
|
|
|
- `Bin`, `Bin_dev` : 打包工具集。工具集的源代码在 `Source` 下
|
|
|
- `ChannelConfigTemplate`: 渠道配置模板。
|
|
|
- `GameEngineSupport`, `GameEngineSupport_iOS`: 对于不同引擎的通用支持(在近期的升级中因为工程文件管理问题,Android版本已经并入 SDKLibs
|
|
|
- `SDKComps`, `SDKComps_iOS`: 渠道集成包,每个包一个 zip 文件。
|
|
|
- `SDKLibs`, `SDKLibs_iOS`: 渠道集成包源代码。开发人员使用 Bin_Dev 工具将源代码打包放入 SDKComps 下并上传。CI 中只使用 SDKComps 下的 zip 文件而非 SDKLibs 的源代码工程
|
|
|
- `Tools`, `Tools_dev`: 打包过程中使用到的部分工具
|
|
|
|
|
|
## 开发说明
|
|
|
|
|
|
### Android Studio 项目
|
|
|
1. 使用 Android Studio 打开 SDKLibs 目录
|
|
|
- 确保 IDE 使用 Android 项目视图
|
|
|

|
|
|
1. Gradle Scripts -> setting.gradle 中列出了所有项目中包含的子项目,开发人员可以视情况包含或者移除子项目
|
|
|
|
|
|
#### 子项目说明
|
|
|
+ 底层项:
|
|
|
- `ApowoAndroidBaseLib`: 基础 utils
|
|
|
- `GSDKCore`
|
|
|
- `GSDKCoreWithShareSDK`: 与 `GSDKCore` 的唯一区别是集成了 `ShareSDK`. [详情](#sharesdk)
|
|
|
- `UnitySupport:GSDKUnityAndLib`: Unity 引擎集成
|
|
|
- `GSDKQuick2AndLib`: Cocos 引擎集成
|
|
|
+ 各个渠道项目
|
|
|
+ Demo 项目
|
|
|
- testapp
|
|
|
|
|
|
### 以 TestApp 为例说明接入细节
|
|
|
TestApp 可以认为是某个游戏项目,在 TestApp 的代码中进行 GSDK 的调用以及触发,用于测试接入是否成功。
|
|
|
|
|
|
#### `GameApplication`
|
|
|
- `GameApplication` 的 `onCreate()` 中需要调用 `GSDKManager.createInstance(this).onAndroidAppCreate(this)`
|
|
|
#### `MainActivity`
|
|
|
- 在 `onCreate()` 中调用 `GSDKManager.init()` 进行 GSDK 的初始化
|
|
|
- 调用 `GSDKManager.startLoginWithGUI()` 拉起 SDK 登录界面
|
|
|
- 调用 `GSDKManager.startPayWithGUI()` 拉起支付页面
|
|
|
#### `Manifest.xml`
|
|
|
除了作为一个 app 的配置之外, manifest 中需要添加 GSDK 集成的配置,主要是以下两类
|
|
|
- GSDK 配置
|
|
|
- `<meta-data android:name="GSDK_GameID" android:value="5" />` GSDK 管理后台分配的 GameID
|
|
|
- 渠道配置
|
|
|
|
|
|
|
|
|
## MISC
|
|
|
### ShareSDK
|
|
|
ShareSDK 是 Mob 的一个组件 (http://www.mob.com/) 用于进行社会化分享。ShareSDK 被置入 GSDKCore 是历史的设计失误,是因为初始设计中分享功能是一个通用设计,但是在实际接入中发现有以下问题:
|
|
|
1. 分享功能要求绑定 apk 包名以及应用名,渠道包需要各自开通分享权限以及管理。
|
|
|
- 但是部分渠道包也提供了 ShareSDK 集成,实现机制待考
|
|
|
- 咨询了网易游戏发现他们只有官方包是分享功能的,渠道包该功能关闭
|
|
|
1. 部分渠道也集成了 ShareSDK,会造成资源冲突。
|
|
|
|
|
|
所以目前只有 apowo 和 4399 渠道 SDK 是使用 `GSDKCoreWithShareSDK` 的,其它渠道 SDK 均使用 `GSDKCore` |
|
|
\ No newline at end of file |