• TalkingDataGame SDK在android Lua上的使用


    千呼万唤使出来...终于开始更新lua版本的内容了,之前一直有这方面的计划,由于公司业务比较多,一直比较忙~见谅..

    费话不多说,直接上内容..

    整体来讲,先是先建议看一下之前关于cocos2dx上的使用,基本都是相通的。

    一、修改lua的库,要想能在lua中调用talkingdata的内容,必须要把talkingdata的方法全部注册到lua中。

    二、修改main方法,添加java对象的调用。

    三、在初始化SDK。

    =============咱们一步一步的来,主要就是这个配置路径比较麻烦==============

    一、注册方法和类到lua库中:

      先说下通常的方法,通常是需要自己来创建一个pkg的文件,然后通修改Cocos2d.pkg,把自己的pkg添加到Cocos2d.pkg中,如图:

    然后调用tolua++方法,把所有Cocos2d.pkg中注册的方法生成到一个LuaCocos2d.cpp类中,这个地方可以配置LuaCocos2d.cpp输出路径。

    咱们这里跳过这一步,直接修改LuaCocos2d.cpp方法也是可以的。要注意到修改哪个LuaCocos2d.cpp文件才是正确的?

    通过命令 ./create_project.py -project TDDemo -package com.talkingdata.lua -language lua生成一个lua的android工程,打开Android.mk文件

    这说明了lua的运行环境是由cocos_lua_static这个模块来完成的,路径也已经指出。

    打开/cocos2d-x-2.2.2/scripting/lua/cocos2dx_support/LuaCocos2d.cpp文件是一个6W+行的代码,不用理这么多,反正都注册的内容,咱们只要

    找到在哪注册就好了,打开LuaCocos2d.cpp文件, 添加头文件使用#include "TalkingDataGA-Lua.h" (TalkingData会提供TalkingDataGA-Lua.cpp和TalkingDataGA-Lua.h这两个文件来辅助lua上的实现)搜索tolua_reg_types方法(从名字上也可以看出来这是一个注册的方法)找到最后一行。

    添加tolua_reg_tdga_types (tolua_S);如图:

    然后再搜索tolua_Cocos2d_open方法,到结尾添加tolua_tdga_open (tolua_S);

    然后保存~~~~

    别嫌麻烦,还剩下两步哦:

    1 把TalkingDataGA-Lua.cpp和TalkingDataGA-Lua.h复制到cocos2dx_support目录下,如图:

    2 修改 lua 这个模块的make文件。

    做如下修改

    这样,注册方法到lua库的工作已经打完收工~(如果哪位大神有简单的方式,一定要告诉我啊~QQ:542894008)

    要想跑起来收集数据,还需要点修改,上面只是完成了方法的注册,还需要初始化的一些步骤:

    一、设置TalkingData的编译路径,修改工程下面的build_native.sh文件

    这两处是配置,在编译时候的寻找module的路径

    二、修改main.cpp文件,添加TDJniHelper的方法

    三、在Java的主类里添加初始化方法

    最后 别忘记在添加权限:

        <uses-permissionandroid:name="android.permission.INTERNET"/>

        <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

        <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>

        <uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>

        <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>

        <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

        <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    再来看来在Lua里使用~~~

    以上内容只是初稿,日后还会再仔细整理

  • 相关阅读:
    2020春Contest
    HDU Count the string (KMP)
    P1757 通天之分组背包
    L1-050 倒数第N个字符串
    3月份目标
    Division UVa725
    数三角
    luogu P2051 [AHOI2009]中国象棋 dp 状态压缩+容斥
    Codeforces Round #654 (Div. 2) E
    Codeforces Round #654 (Div. 2) D
  • 原文地址:https://www.cnblogs.com/vernon/p/3601151.html
Copyright © 2020-2023  润新知