cocos2d_x之AnySDK接入流程
进入官网根据相关文档下载好AnySDK Framework
AnySDK介绍: 它并不是一款sdk,而是一个第三方平台,可以帮助你更快的接入其他sdk,比如QQ,微信登录,分享等。
此文档旨在帮助自己理清接入sdk的开发流程,让自己有一个大的方面的了解,因此只是写了大部分的目录,实际操作再去查看官方文档。
http://docs.anysdk.com/integration/client-cpp/quick-integration/
整个接入过程中,都要写全路径。极其容易写错,因此要特别注意。
把AnySDK导入cocos2d_x引擎中,步骤如下
1:选择AnySDK Framework文档并导入到工程目录
(1):查看游戏项目使用 STL 库的版本
开发者可以在工程目录下 jni/Application.mk 文件第一行找到 STL 库类型设置,如果此处设置的是 APP_STL := gnustl_static,则表示当前工程以 GNU 静态库的方式引入使用 STL 标准库,此时应选择集成 protocols_gnustl_static 这个文件夹中的框架资源。反之,则选择相应的集成 protocols_stlport_static、protocols_c++_static 文件夹中的框架资源。
(2):在 Android 工程目录下面新建 protocols 目录,然后将上一步选择的对应版本框架目录下的 include 文件夹和 Android 文件夹拷贝到 protocols 下面
(3):将框架目录下的 res 文件夹中的所有资源文件拷贝到 Android 项目对应的文件中。
2:修改Android.mk文件配置Framework编译选项
这一步是修改游戏工程中C++代码的ndk编译配置文件Android.mk,将AnySDK提供的Framework库链接到游戏工程的库中。
(1).将 protocols 目录添加到 NDK_MODULE_PATH 环境变量中
(2).添加 AnySDK Framework 静态库声明
(3).添加库路径声明代码
3:导入框架自带的jar包并勾选export选项 --- 使用eclipse操作
4:配置 AndroidManifest.xml 添加框架需要的权限
5:初始化 AnySDK Framework
(1)初始化 JavaVM
首先,要在游戏工程加载 jni 的时候为 AnySDK framework 设置 JavaVM 引用。
先找到 JNI_OnLoad 函数,此函数是 jni 被加载时会首先被调用的函数。 以 Cocos2d-x 2.x 版本引擎为例,JNI_OnLoad 函数定义在 jni 目录下的 hellocpp/main.cpp 中
3.x版本:
#include "../../../proj.android/protocols/android/PluginJniHelper.h" 需要写全路径
using namespace anysdk::framework;
JavaVM* vm;
env->GetJavaVM(&vm);
PluginJniHelper::setJavaVM(vm);
2.x版本:
(2)在JAVA层初始化AnySDK Framework框架
(3)在 C++ 层初始化AnySDK Framework 框架
在C++层调用任何AnySDK Framework函数之前都需要调用init函数进行框架初始化,推荐在Java层初始化完成之后通知C++层初始化框架
在AppDelegate.cpp中加入如下代码:
#include "../proj.android/protocols/include/AgentManager.h"
using namespace anysdk::framework;#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
std::string appKey = ""; "EC0BF947-8319-961E-10BB-BC9F3B9F964D";
std::string appSecret = ""; "5206485e6eb057be05fae504e4a4fc16";
std::string privateKey = ""; "21585140EC6B4DAE9067586B7C4E1B69";
std::string oauthLoginServer = "http://oauth.anysdk.com/api/OauthLoginDemo/Login.php";AgentManager::getInstance()->init(appKey, appSecret, privateKey, oauthLoginServer);
AgentManager::getInstance()->loadAllPlugins();//注释掉会崩溃
注:由于部分 SDK 在初始化时涉及到 SDK 闪屏的操作强烈建议在 onCreate 就调用 loadAllPlugins 接口(新框架在 Java 层也提供了该接口)
#endif
在主的activity中写入如下代码:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);PluginWrapper.init(this);
PluginWrapper.setGLSurfaceView(Cocos2dxGLSurfaceView.getInstance());
PluginWrapper.loadAllPlugins();}
(4)加载及卸载SDK插件
到此为止AnySDK就全部接入完成了,接下来只需要在游戏中调用相关的SDK即可,比如需要使用分享SDK,就在要点击的那个分享按钮上,加上相关分享代码,。
http://docs-old.anysdk.com/ShareSystem
#include "../proj.android\protocols\include\ProtocolShare.h" 类要继承ProtoColShare
using namespace anysdk::framework;#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROIDauto _pShare1 = AgentManager::getInstance()->getSharePlugin();_pShare1->setResultListener(this);ProtocolShare* _pShare = AgentManager::getInstance()->getSharePlugin();if (!_pShare) return;std::map<std::string, std::string> info;// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用info["title"] = "ShareSDK是一个神奇的SDK";// titleUrl是标题的网络链接,仅在人人网和QQ空间使用info["titleUrl"] = "http://sharesdk.cn";// site是分享此内容的网站名称,仅在QQ空间使用info["site"] = "ShareSDK";// siteUrl是分享此内容的网站地址,仅在QQ空间使用info["siteUrl"] = "http://sharesdk.cn";// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数,iOS下直接传文件名//info["imagePath"] = "123.png"; //该图片文件需要拖入Xcode工程中info["imagePath"] = "/sdcard/test.png";// imageUrl是图片的网络路径,新浪微博,人人网,QQ空间支持此字段info["imageUrl"] = "http://www.baidu.com/img/bdlogo.png?tn=63090008_1_hao_pg";// url仅在微信(包括好友和朋友圈)中使用info["url"] = "http://sharesdk.cn";// text是分享文本,所有平台都需要这个字段info["text"] = "ShareSDK支持如微信、新浪微博、腾讯微博等社交平台";// comment是我对这条分享的评论,仅在人人网和QQ空间使用info["comment"] = "无";//微信SDK分享需要使用到的参数info["mediaType"] = "1"; //分享类型: 0-文字 1-图片 2-网址 info["shareTo"] = "2"; //分享到:0-聊天 1-朋友圈 2-收藏 _pShare->share(info);
#endif
void WelcomeScene::onShareResult(ShareResultCode ret, const char* msg)
{log("onShareResult %d", ret);switch (ret){case kShareSuccess://分享成功回调log("onShareResult success");//Director::getInstance()->end();break;case kShareFail://分享失败回调log("onShareResult fail");break;case kShareCancel://分享取消回调log("onShareResult cancel");break;case kShareNetworkError://分享网络出错回调log("onShareResult error");break;default:break;}
}
AnySDK上的操作:(打包的时候,sdk的配置可以随便写 --- 只针对分享类sdk)
http://docs.anysdk.com/rapid-experience/debug-user/
母包测试和账号获取
http://docs.anysdk.com/tool-using/package-tool/
客户端使用手册
----------------------------------------------------
SDK管理界面:渠道跟SDK是没有必然联系的。比方说你要在百度游戏这个渠道上进行上架,但是你使用的可能是360的SDK。
当然此处只是为了能更灵活的配置,正常来说百度游戏死活也不会同意你这么做。但你还是可能会使用shareDK,友盟等第三方辅助
SDK,这时便可通过本界面的勾选来配置需要使用的SDK来提升游戏的质量。
在确定了渠道以及使用的SDK之后,我们就要开始对SDK进行参数配置。
cocos2d_x之AnySDK接入流程相关推荐
- NR 5G UE初始接入流程
5G UE初始接入流程 流程图 流程说明 1. UE向gNB-DU发送RRC连接请求消息. 2. gNB-DU包括RRC消息,并且如果UE被允许,则在F1AP INITIAL UL RRC MESSA ...
- 顺丰快递商家寄件发货接口API类型和接入流程方案【快递100接口Demo】
顺丰快递对于商家和个人的隐私保护较为严格,对于操作频次高的用户会进行多次验证码确认信息和服务安全.如果需要大量地邮寄顺丰快递以及查询顺丰的快递物流轨迹信息,必须对接顺丰官方的寄件和查询API接口.企业 ...
- APP、网站等注册、登录、改密等发送验证码短信的接入流程---创蓝253云通讯
1.登录 https://zz.253.com/site/login.html 2.获取接口API账号,密码:选择任意产品>激活>企业认证(上传公司营业执照) 3.申请签名(以公司简称或缩 ...
- ESP8266天猫精灵接入流程
Blinker天猫精灵接入流程 设备上线 设置接入的设备类型 设置接入设备的auth Key 设置SSID/PSWD 或者选择 ESPTOUCH等配网方式 下载代码等待设备接入上线成功 authKey ...
- 以美颜sdk为例,详解sdk接入流程
Sdk,是可用于开发面向特定平台的软件应用程序的工具包.举个例子,如果你想组装一个模型车或飞机.在构建这个模型时,需要一整套物品去组装.sdk相当于组装它们所需的工具,包括装配说明等.在这信息化时代, ...
- v5行为验证使用介绍(三)- 程序接入流程
目录 v5行为验证使用介绍(一)- 试探攻击的威胁 v5行为验证使用介绍(二)- 应用管理 v5行为验证使用介绍(三)- 程序接入流程 v5行为验证使用介绍(四)- Verify5Client.jav ...
- 五分钟了解机智云自助接入流程
机智云平台是致力于物联网.智能硬件云服务的开放平台.机智云专注于提供智能云服务及物联网的软硬件一体化解决方案,帮助传统硬件厂商产品升级,快速实现硬件智能化. 要实现硬件的智能化,除了硬件本身外,还需要 ...
- 深入理解CDC原理与Debezium数据接入流程和原理
深入理解CDC原理与Debezium数据接入流程和原理 一.什么是WAL 二.什么是CDC 三.理解CDC客户端 四.Debezium数据接入原理 1.postgresql数据库对CDC的支持 2.p ...
- YS动态口令系统接入流程
动态口令是保护用户账户的一种常见有效手段,即用户进行敏感操作(比如登录)时,需要用户提供此动态生成的口令做二次身份验证,假设用户的口令被盗,如果没有动态口令,也无法进行登录或进行敏感操作,保护了用户的 ...
- 百度地图安卓版详细接入流程解读(获取密钥详解)
百度地图安卓版详细接入流程解读 一.接入Android地图SDK 1.1 功能介绍: 1.2 接入百度地图前的准备 1.1.1 访问官网,并下载开发包 1.1.2 获取开发密钥 1.1.3 项目环境搭 ...
最新文章
- 【Nutch2.2.1基础教程之2.2】集成Nutch/Hbase/Solr构建搜索引擎之二:内容分析
- Android 四大组件 —— 活动(活动的隐式跳转)
- kotlin 小数位数_Kotlin程序生成4位数OTP
- FPGA开发全攻略——ISE基本操作
- thinkphp3.2独立分组的建立
- html移动端即时翻译插件,React框架实现移动页面翻译是一种什么体验?
- Linux chmod命令 修改文件权限被禁止(not permitted)的解决办法
- Andorid检测支付宝客户端是否安装
- halcon物体周边毛刺检测
- 在Spyder 中安装第三方包
- 一度智信电商开网店怎么样?
- golang游戏服务器项目,基于Golang的游戏服务器框架cellnet开发日记(一)
- labview:一个采集数据的小程序
- ambari_HDP之mapreduce参数调优
- Latex导入pgf图片
- JavaEE1(4/23)
- QQ邮箱获取邮件客户端授权码
- Django开发个人博客网站——1、开发环境
- R语言箱线图添加显著性--不同水平实现方法
- 零基础学习CSS(10)——属性选择器