快速集成指南

来自AnySDK 文档
跳转至: 导航搜索
客户端技术Java接口文档,详细说明接入AnySDK所需要的资料和开发。通过本文的介绍可以了解客户端接入的整个流程。在接入之前请认真阅读本文档,以减少接入过程中遇到的问题。

获取接入所需资源

AnySDK接入需要获取资源包括:AnySDK_Framework(Java)开发包、AnySDK相关参数。

请在请在AnySDK客户端的“安妮市场”里,选择Java(Android)框架进行下载
注:获取AnySDK相关参数,需要打开打包工具,在游戏管理界面获取AnySDK的AppKey、AppSecret、PrivateKey。

接入流程

AnySDK_Framework(Java)开发包

目录结构如下:
Java目录结构.jpg
资源包括 libs 目录下的 SDK 主架包 libPluginProtocolForJava_fat.jar、框架So文件(armeabi、armeabi-v7a、arm64-v8a、x86,把游戏不支持的架构目录删除)、res 目录下的各类资源。在工程开发前首先将工程库导入游戏工程中。注:游戏工程API最小支持10
Java导入工程1.jpg

配置AndroidManifest.xml添加框架需要的权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

客户端接入代码

一、在主Activity的onCreate方法中对AnySDK进行初始化。

String appKey = "AEE563E8-C007-DC32-5535-0518D941D6C2";
String appSecret = "b9fada2f86e3f73948f52d9673366610";
String privateKey = "0EE38DB7E37D13EBC50E329483167860";
String oauthLoginServer = "http://oauth.anysdk.com/api/OauthLoginDemo/Login.php";
AnySDK.getInstance().init(this, appKey, appSecret, privateKey, oauthLoginServer);

注:

1、appKey、appSecret、privateKey这三个参数是在打包工具客户端创建游戏之后生成的游戏唯一参数,可以在打包工具游戏管理界面查看到
2、而oauthLoginServer参数是游戏服务提供的用来做登陆验证转发的接口地址,在此处配置的接口地址仅用于sim sdk测试模式下(即直接运行母包时)做登录时框架请求的地址,而在正式打出渠道包的时候会被替换成相应渠道在打包工具中配置的地址参数。

二、重写Activity生命周期相关方法,代码如下:

import android.content.Intent;
import android.os.Bundle;
import android.content.res.Configuration;

import com.anysdk.framework.PluginWrapper;
@Override
protected void onDestroy() {
    PluginWrapper.onDestroy();
    super.onDestroy();
}

@Override
protected void onPause() {
    PluginWrapper.onPause();
    super.onPause();
}

@Override
protected void onResume() {
    PluginWrapper.onResume();
    super.onResume();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    PluginWrapper.onActivityResult(requestCode, resultCode, data);
    super.onActivityResult(requestCode, resultCode, data);
}

@Override
protected void onNewIntent(Intent intent) {
    PluginWrapper.onNewIntent(intent);
    super.onNewIntent(intent);
}

@Override
protected void onStop() {
    PluginWrapper.onStop();
    super.onStop();
}

@Override
protected void onRestart() {
    PluginWrapper.onRestart();
    super.onRestart();
 }

@Override
public void onBackPressed() {
	PluginWrapper.onBackPressed();
	super.onBackPressed();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
	PluginWrapper.onConfigurationChanged(newConfig);
	super.onConfigurationChanged(newConfig);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
	PluginWrapper.onRestoreInstanceState(savedInstanceState);
	super.onRestoreInstanceState(savedInstanceState);
}

@Override
protected void onSaveInstanceState(Bundle outState) {
	PluginWrapper.onSaveInstanceState(outState);
	super.onSaveInstanceState(outState);
}

@Override
protected void onStart() {
	PluginWrapper.onStart();
	super.onStart();
}

三、框架资源释放 需要开发者在onDestroy()方法释放AnySDK资源

@Override
protected void onDestroy() {
    AnySDK.getInstance().release();
    super.onDestroy();
};

四、代码混淆 如果要混淆 java 代码,请不要混淆联编的 jar 包中的类。可以添加以下类到 proguard 配置,排除在混淆之外:

-keep class com.anysdk.framework.** {*;}
-keep class com.anysdk.Util.SdkHttpListener {*;}