码迷,mamicode.com
首页 > Web开发 > 详细

Cocos2d-JS 项目接入 触控广告平台(基于anysdk)

时间:2015-01-19 20:41:57      阅读:1163      评论:0      收藏:0      [点我收藏+]

标签:

本文以Cocos2d-JS项目作为示例,讲解如何集成AnySDK-JS。

1、如何创建项目我就省略了,直接进入主题。

    首先,我需要下载anysdk框架包,下载地址:http://www.anysdk.com/downloads

    选择AnySDK Framework for JS下载。

    将下载下来的AnySDK_Framework_JS.zip文件解压,目录如下:

技术分享

其中framework目录下,有三个版本的stl库。根据当前项目使用的stl库选取相应的stl库。(一般为:gnustl_static)

以Cocos2d-x框架为例,开发者可以在工程目录下jni/application.mk文件第一行找到stl库类型设置
   如果此处设置的是 APP_STL := gnustl_static,则表示当前工程以gnu静态库的方式引入使用stl标准库,此时应选择集成protocols_gnustl_static这个文件夹中的框架资源。
   反之,则应选择集成 protocols_stlport_static文件夹中的框架资源。

 2 、获取anysdk-jsb绑定文件

 src下面则是一个anysdkConst.js文件,该文件是对应C++里面定义的枚举变量。(使用的时候,需要添加到project.json里面)

"jsList" : [
    "src/resource.js",
    "src/anysdkConst.js",
    "src/app.js"
]

 因为我们是使用Cocos2d-JS 3.x创建的项目,所有我们选择3.x的目录。

3、 配置AnySDK Framework到项目中

3.1、拷贝anysdk framework stl库到protocols文件夹

首先,查看anysdkTest项目的frameworks/runtime-src/proj.android/jni/application.mk文件第一行找到stl库类型设置。 如下图:

技术分享

然后,进入anysdkTest项目的frameworks/runtime-src/proj.android目录,新建protocols文件夹。根据上面查看到的stl类型,选取AnySDK_Framework_JS/framework/protocols_gnustl_static库,然后将该目录下的android和include文件夹拷贝到protocols目录。

3.2、 将AnySDK_Framework_JS/framework/protocols_gnustl_static目录下的res文件,拷贝到proj.android/res目录下,注意选择合并,避免文件覆盖

3.3、将AnySDK_Framework_JS/3.x目录下的文件拷贝到proj.android/Classes目录下

3.4、编辑proj.android/jni/Android.mk文件

  在LOCAL_SRC_FILES新增 两个文件: autoanysdkbindings.cpp 和 manualanysdkbindings.cpp,例:

LOCAL_SRC_FILES := ../../Classes/protobuf-lite/google/protobuf/io/coded_stream.cc  
...
 
../../Classes/autoanysdkbindings.cpp ../../Classes/manualanysdkbindings.cpp javascript/Runtime_android.cpp javascript/main.cpp

 在LOCAL_C_INCLUDES 新增目录:protocols/android 和 protocols/include,例:

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes/runtime $(LOCAL_PATH)/../../Classes/protobuf-lite $(LOCAL_PATH)/../protocols/android $(LOCAL_PATH)/../protocols/include $(LOCAL_PATH)/../../Classes

 新增 static lib, 例:

LOCAL_WHOLE_STATIC_LIBRARIES += PluginProtocolStatic

 新增 modules, 例:

$(call import-module,protocols/android)

 3.5、增加ADK_MODULE_PATH:

     3.x, 修改 build-cfg.json文件(也就是加上: "" ):

   "ndk_module_path" :[
   "../../js-bindings",
   "../../js-bindings/external",
   "../../js-bindings/cocos2d-x",
   "../../js-bindings/cocos2d-x/cocos",
   "../../js-bindings/cocos2d-x/external",
   ""
],

3.6、在proj.android目录下新建libs文件夹,然后将AnySDK_Framework_JS/framework/protocols_gnustl_static/android目录下的libPluginProtocol.jar拷贝到该目录下。

3.7、

添加设置javaVM代码

编辑proj.android/jni/javascript/main.cpp文件。如图:

技术分享

3.8、配置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" />

 3.9、在JAVA层初始化AnySDK Framework框架

首先找到游戏工程的主Activity,以Cocos2d-x引擎游戏为例,主Activity即是继承了cocos2dxActivity的Activity。 并在主Activity的onCreate()方法中新增如下代码来初始化AnySDK Framework:修改proj.android/src/org/cocos2dx/javascript/AppActivity.java文件。

import com.anysdk.framework.PluginWrapper;
 
public class MainActivity extends Activity{
  protected void onCreate(Bundle savedState)
      {
          super.onCreate(savedState);
          PluginWrapper.init(this); // for plugins
      }

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

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
PluginWrapper.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onResume() {
super.onResume();
PluginWrapper.onResume();
}
@Override
public void onPause(){
PluginWrapper.onPause();
super.onPause();
}
@Override
protected void onNewIntent(Intent intent) {
PluginWrapper.onNewIntent(intent);
super.onNewIntent(intent);
}

 

Cocos2d-JS 项目接入 触控广告平台(基于anysdk)

标签:

原文地址:http://www.cnblogs.com/recock/p/4234478.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!