接入前,请确保已下载最新版本SuperSDK4.0+Demo(Java版)。
将基础模块下载下来的所有aar包复制到游戏项目的libs目录下,如果没有请新建。然后在build.gradle内写入下列代码:
bcore-release.aar 基础库,必须导入,以下库均依赖此库,内含统计sdk,和工具基础库utils.jar
supersdk-release.aar supersdk对外库,内含平台模块(platform),及对外接口
supersdk-mubao-release.aar supersdk母包,模拟渠道运行环境,供测试使用,打渠道包时可以删除
复制代码:
repositories {
flatDir{dirs'libs'}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name:'bcore-release', ext:'aar')
compile(name:'supersdk-mubao-release', ext:'aar')
compile(name:'supersdk-release', ext:'aar')
}
写入完毕,然后请点击编辑界面右上角的同步,即‘Sync Now’按键。把本次修改同步到游戏项目中
添加 android:name=“com.supersdk.openapi.SuperSdkApplication” 至application节点。
<application
android:allowBackup="true"
android:label="SuperSDKDemo"
// 添加下面这个值即可
android:name="com.supersdk.openapi.SuperSdkApplication" >
......
</application >
##添加母包配置文件##
从打包工具下载母包配置,并添加(替换)到assets目录下,如下图所示
接口描述:初始化supersdk及各个模块
接口调用:游戏必须在activity的onCreate方法中同步调用,调用时游戏必须暂停,收到平台模块(platform)模块的成功回调即可认为成功,游戏可恢复运行
SuperSDK.init(MainActivity.this, mSuperSDKListener);
接口回调:
private OnSuperSDKListener mSuperSDKListener = new OnSuperSDKListener() {
@Override
public void onSuperSDK(String moduleName, String funcName, String result) {
//调用接口异步监听结果。
Log.d(TAG, "moduleName:" + moduleName + "\nfuncName:" + funcName + "\nresult:" + result);
//判断这是平台模块("platform")内的方法,并且方法为初始化("init")
if(BCoreConst.platform.MODULE_NAME.equals(moduleName) && BCoreConst.platform.FUNC_INIT.equals(funcName)) {
//初始化回调,建议调用独立的初始化处理方法
init(result);
}else {
Log.d("supersdk", "其他模块方法的监听结果");
}
}
};
//这个方法处理初始化结果
privite void init(String result) {
JSONObject json = JsonUtils.parseObject(result);
int code = json.getIntValue("code");
if(code == BCoreCode.SUCCESS) {
//初始化成功,游戏恢复,游戏继续运行
Log.d("supersdk", "初始化成功");
} else {
//初始化失败,游戏必须重启,或弹框提示玩家重启
String msg = json.getString("msg");
Log.d("supersdk", "初始化失败,请重启游戏:"+code+", "+msg);
}
}
日志打印:
moduleName:platform
funcName:init
result:{"code":1,"msg":"没有更新接口"}
接口描述:生命周期接口务必在游戏主activity的对应方法中同步调用
@Override
protected void onStart() {
super.onStart();
SuperSDK.lifecycle.onStart();
}
protected void onResume() {
super.onResume();
SuperSDK.lifecycle.onResume();
};
@Override
protected void onPause() {
super.onPause();
SuperSDK.lifecycle.onPause();
}
@Override
protected void onStop() {
super.onStop();
SuperSDK.lifecycle.onStop();
}
@Override
protected void onRestart() {
super.onRestart();
SuperSDK.lifecycle.onRestart();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
SuperSDK.lifecycle.onNewIntent(intent);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
SuperSDK.lifecycle.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
SuperSDK.lifecycle.onSaveInstanceState(outState);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
SuperSDK.lifecycle.onConfigurationChanged(newConfig);
}
@Override
protected void onDestroy() {
super.onDestroy();
SuperSDK.lifecycle.onDestroy();
}
invoke方法中,为了让游戏开发者不用记住难记各种字符串常量值,如模块名称、方法名称等各种。supersdk提供了一个常量类,专门记录各种模块名,各个方法名常量值。
如下表所示:
字符串常量 | 实际字符串 | 描述 |
---|---|---|
平台模块常量 | ||
BCoreConst.platform.MODULE_NAME | platform | 模块名称,每个模块常量名固定 |
BCoreConst.platform.FUNC_LOGIN | login | 登录 |
BCoreConst.platform.FUNC_HAS_LOGOUT | hasLogout | 渠道是否有注销接口 |
BCoreConst.platform.FUNC_LOGOUT | logout | 注销 |
BCoreConst.platform.FUNC_PAY | pay | 支付 |
BCoreConst.platform.FUNC_EXIT | exit | 退出游戏 |
BCoreConst.platform.FUNC_ENTER_GAME | enterGame | 进入游戏 |
BCoreConst.platform.FUNC_CREATE_ROLE | createRole | 创建角色 |
BCoreConst.platform.FUNC_LEVEL_UP | levelUp | 角色升级 |
BCoreConst.platform.FUNC_HAS_FORUM | hasForum | 判断是否有论坛 |
BCoreConst.platform.FUNC_OPEN_FORUM | openForum | 打开论坛 |
BCoreConst.platform.FUNC_HAS_USER_CENTER | hasUserCenter | 判断是否有用户中心 |
BCoreConst.platform.FUNC_OPEN_USER_CENTER | openUserCenter | 打开用户中心 |
BCoreConst.platform.FUNC_HAS_CUSOMER_SERVICE | hasCustomerService | 判断是否有客服 |
BCoreConst.platform.FUNC_OPEN_CUSOMER_SERVICE | openCustomerService | 打开客服 |
BCoreConst.platform.FUNC_OPEN_LOGIN_PAGE | openLoginPage | 进入登录页面 |
BCoreConst.platform.FUNC_OPEN_HOME_PAGE | openHomePage | 进入游戏首页 |
BCoreConst.platform.FUNC_HAS_GUEST | hasGuest | 用户是否为游客 |
BCoreConst.platform.FUNC_GUEST_UPGRADE | guestUpgrade | 游客升级 |
BCoreConst.platform.FUNC_OTHER_FUNCTION | otherFunction | 扩展接口other |
BCoreConst.platform.FUNC_REPORT | report | supersdk添加自定义埋点 |
统计模块常量 | ||
BCoreConst.stats.MODULE_NAME | stats | 模块名称 |
BCoreConst.stats.FUNC_REPORT | report | 统计上报 |
BCoreConst.stats.FUNC_GET_DEVICE_INFO | getDeviceInfo | 获取上报所需的设备信息 |
工具模块常量 | ||
BCoreConst.tools.MODULE_NAME | tools | 模块名称 |
BCoreConst.tools.FUNC_GET_DEVICE_ID | getDeviceId | 获取设备ID |
BCoreConst.tools.FUNC_GET_COLLECTION_DATA | getCollectionData | 采集设备信息 |
BCoreConst.tools.FUNC_GET_IPINFO | getClientIPInfo | 获取客户端IP信息,如ip地区 |
BCoreConst.tools.FUNC_GET_LANGUAGE | getLanguage | 获取本地系统语言 |
BCoreConst.tools.FUNC_GET_COUNTRY | getCountry | 获取本地国家地区 |
BCoreConst.tools.FUNC_COPY_TOCLIPBOARD | copyToClipboard | 复制文字到剪切板 |
BCoreConst.tools.FUNC_ALERT | alert | 弹窗 |
BCoreConst.tools.FUNC_GET_PACKAGE_NAME | getPackageName | 获取应用包名 |
BCoreConst.tools.FUNC_GET_VERSION_NAME | getVersionName | 获取AndroidManifest下versionName |
BCoreConst.tools.FUNC_GET_VERSION_CODE | getVersionCode | 获取AndroidManifest下versionCode |
BCoreConst.tools.FUNC_GET_META_DATA | getMetaData | 获取AndroidManifest下meta-data的value值 |
BCoreConst.tools.FUNC_SET_SCREEN_LIGHT | setScreenLight | 调节屏幕亮度 |
BCoreConst.tools.FUNC_SAVE_DATA | saveData | 保存数据 |
BCoreConst.tools.FUNC_GET_DATA | getData | 获取保存的数据 |
配置模块常量 | ||
BCoreConst.config.MODULE_NAME | config | 模块名称 |
BCoreConst.config.FUNC_GET_VALUE | getValue | 获取配置信息,如yz_game_id、extend、extend2等 |
广告模块常量 | ||
BCoreConst.advert.MODULE_NAME | advert | 模块名称 |
BCoreConst.advert.FUNC_TRACK | track | 激活广告 |
游族模块常量 | ||
BCoreConst.advert.MODULE_NAME | youzu | 模块名称 |
BCoreConst.advert.FUNC_GET_VALUE | getValue | 获取配置,如opid、opgameid |