Jelajahi Sumber

[FC]:接入UmengSDK和数数SDK

fengcong 5 tahun lalu
induk
melakukan
6b54b72372
15 mengubah file dengan 288 tambahan dan 6 penghapusan
  1. TEMPAT SAMPAH
      build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/caches/build_file_checksums.ser
  2. 6 0
      build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules/app/EasyEliminate.iml
  3. 0 2
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build_cocos2djs_armeabi-v7a.stdout.txt
  4. 9 3
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build.gradle
  5. TEMPAT SAMPAH
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/thinkingdata/ThinkingSDK.aar
  6. TEMPAT SAMPAH
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-apm-armeabi-v1.3.1.aar
  7. TEMPAT SAMPAH
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-asms-armeabi-v1.2.3.aar
  8. TEMPAT SAMPAH
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-common-9.4.0.jar
  9. TEMPAT SAMPAH
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-game-9.2.0+G.jar
  10. TEMPAT SAMPAH
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/utdid4all-1.5.2.1-proguard.jar
  11. 13 1
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/proguard-rules.pro
  12. TEMPAT SAMPAH
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/release/EasyEliminate-release.apk
  13. 87 0
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/thinkingdata/TDSDKMgr.java
  14. 32 0
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/umeng/MyApplication.java
  15. 141 0
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/umeng/UMSDKMgr.java

TEMPAT SAMPAH
build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/caches/build_file_checksums.ser


+ 6 - 0
build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules/app/EasyEliminate.iml

@@ -268,6 +268,9 @@
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" scope="TEST" name="Gradle: com.android.support:multidex-instrumentation:1.0.2@aar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/topon/libs/gson-2.8.4.jar" level="project" />
+    <orderEntry type="library" name="Gradle: ./app/libs/umeng/umeng-common-9.4.0.jar" level="project" />
+    <orderEntry type="library" name="Gradle: ./app/libs/umeng/umeng-game-9.2.0+G.jar" level="project" />
+    <orderEntry type="library" name="Gradle: ./app/libs/umeng/utdid4all-1.5.2.1-proguard.jar" level="project" />
     <orderEntry type="library" name="Gradle: ./../../../../../../../Develop/CocosDashboard_1.0.9/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/com.android.vending.expansion.zipfile.jar" level="project" />
     <orderEntry type="library" name="Gradle: ./../../../../../../../Develop/CocosDashboard_1.0.9/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okhttp-3.12.7.jar" level="project" />
     <orderEntry type="library" name="Gradle: ./../../../../../../../Develop/CocosDashboard_1.0.9/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okio-1.15.0.jar" level="project" />
@@ -295,6 +298,9 @@
     <orderEntry type="library" name="Gradle: ./app/libs/topon/libs/tramini_sdk.aar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/topon/libs/windAd-2.25.2.aar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/oaid/oaid_sdk_1.0.25.aar" level="project" />
+    <orderEntry type="library" name="Gradle: ./app/libs/thinkingdata/ThinkingSDK.aar" level="project" />
+    <orderEntry type="library" name="Gradle: ./app/libs/umeng/umeng-apm-armeabi-v1.3.1.aar" level="project" />
+    <orderEntry type="library" name="Gradle: ./app/libs/umeng/umeng-asms-armeabi-v1.2.3.aar" level="project" />
     <orderEntry type="library" name="Gradle: com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.4@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:design:28.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" />

+ 0 - 2
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build_cocos2djs_armeabi-v7a.stdout.txt

@@ -1,4 +1,2 @@
 Android NDK: WARNING: Unsupported source file extensions in D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/Android.mk for module cocos2dx_static    
 Android NDK:   ../external/sources/edtaa3func/edtaa3func.h renderer/memop/RecyclePool.hpp    
-[armeabi-v7a] Compile++ arm  : cocos2djs <= AppDelegate.cpp
-[armeabi-v7a] SharedLibrary  : libcocos2djs.so

+ 9 - 3
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build.gradle

@@ -159,16 +159,22 @@ dependencies {
     implementation fileTree(dir: "${System.getenv("COCOSCREATOR_HOME")}/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs", include: ['*.jar'])
     implementation project(':libcocos2dx')
 
-    //微信SDK(登录、分享等)
+    //微信SDK(自动集成)
     api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
 
-    //聚合SDK
+    //聚合SDK(手动导入SDK包)
     api 'com.android.support:appcompat-v7:28.0.0' //Gradle中要补充Support v7插件的引入,否则会集成失败
     api fileTree(include: ['*.jar','*.aar'], dir: 'libs/topon')
     api fileTree(include: ['*.jar','*.aar'], dir: 'libs/topon/libs')
     api 'com.android.support:design:28.0.0'//从v5.6.2版本开始,如果有聚合快手的v2.7.2及以上版本需要添加此依赖
     implementation 'com.android.support:multidex:1.0.3' //应对接入后发布报single dex相关错误,defaultConfig中需同步设置multiDexEnabled true
 
-    //OaidSDK
+    //OaidSDK(手动导入SDK包)
     api fileTree(include: ['*.jar','*.aar'], dir: 'libs/oaid')
+
+    //数数SDK(手动导入SDK包)
+    api fileTree(include: ['*.jar','*.aar'], dir: 'libs/thinkingdata')
+
+    //友盟SDK(手动导入SDK包)
+    api fileTree(include: ['*.jar','*.aar'], dir: 'libs/umeng')
 }

TEMPAT SAMPAH
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/thinkingdata/ThinkingSDK.aar


TEMPAT SAMPAH
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-apm-armeabi-v1.3.1.aar


TEMPAT SAMPAH
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-asms-armeabi-v1.2.3.aar


TEMPAT SAMPAH
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-common-9.4.0.jar


TEMPAT SAMPAH
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-game-9.2.0+G.jar


TEMPAT SAMPAH
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/utdid4all-1.5.2.1-proguard.jar


+ 13 - 1
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/proguard-rules.pro

@@ -114,4 +114,16 @@
 -keep class com.style.widget.** {*;}
 -keep class com.component.** {*;}
 -keep class com.baidu.ad.magic.flute.** {*;}
--keep class com.baidu.mobstat.forbes.** {*;}
+-keep class com.baidu.mobstat.forbes.** {*;}
+
+#Umneg友盟相关混淆
+-keep class com.umeng.** {*;}
+
+-keepclassmembers class * {
+   public <init> (org.json.JSONObject);
+}
+
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}

TEMPAT SAMPAH
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/release/EasyEliminate-release.apk


+ 87 - 0
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/thinkingdata/TDSDKMgr.java

@@ -0,0 +1,87 @@
+package org.cocos2dx.javascript.thirdSdk.thinkingdata;
+
+import android.util.Log;
+
+import org.cocos2dx.javascript.AppActivity;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+import cn.thinkingdata.android.TDConfig;
+import cn.thinkingdata.android.ThinkingAnalyticsSDK;
+
+public class TDSDKMgr {
+
+    /** 单例模式 */
+    private static TDSDKMgr mInstace = null;
+
+    public static TDSDKMgr getInstance() {
+        if (null == mInstace) {
+            mInstace = new TDSDKMgr();
+        }
+        return mInstace;
+    }
+
+    private final String TA_APP_ID = "ee451573e55144548a0f128467c7f0f7";
+    private final String TA_SERVER_URL = "https://taapi.mokagm.com/";
+    private ThinkingAnalyticsSDK TDInstance = null;
+
+    public AppActivity appActivity = null;
+
+    public void initSdk(AppActivity appActivity) {
+        this.appActivity = appActivity;
+
+        // 获取 TDConfig 实例
+        TDConfig config = TDConfig.getInstance(this.appActivity, TA_APP_ID, TA_SERVER_URL);
+        // 初始化 SDK
+        this.TDInstance = ThinkingAnalyticsSDK.sharedInstance(config);
+    }
+
+    public void setTAEvent(String eventID, String des) {
+        if (this.TDInstance == null) {
+            return;
+        }
+        try {
+            JSONObject properties = new JSONObject();
+            properties.put("eventID", eventID);
+            properties.put("des", des);
+            TDInstance.track(eventID, properties);
+            Log.d("setTAEvent   ", "setTAEvent: " + eventID);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /** -- 数数相关 --*/
+    public void setTAEventRegister(){
+        try {
+            JSONObject properties = new JSONObject();
+            properties.put("register","register");
+            TDInstance.track("register",properties);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            String cTime = curTime();
+            JSONObject properties = new JSONObject();
+            properties.put("RegTime", cTime);
+            properties.put("role_create_time", cTime);
+            TDInstance.user_setOnce(properties);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private String curTime(){
+        String pattern = "yyyy-MM-dd HH:mm:ss.SSS";
+        SimpleDateFormat sDateFormat = new SimpleDateFormat(pattern, Locale.CHINA);
+        String timeString = sDateFormat.format(new Date());
+
+        Log.d("TAEvent", "setTAEventUser: "+timeString);
+        return timeString;
+    }
+}

+ 32 - 0
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/umeng/MyApplication.java

@@ -0,0 +1,32 @@
+package org.cocos2dx.javascript.thirdSdk.umeng;
+
+import android.app.Application;
+import android.util.Log;
+
+import com.umeng.commonsdk.UMConfigure;
+
+public class MyApplication extends Application {
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        // 在此处调用基础组件包提供的初始化函数 相应信息可在应用管理 -> 应用信息 中找到 http://message.umeng.com/list/apps
+        // 参数一:当前上下文context;
+        // 参数二:应用申请的Appkey(需替换);
+        // 参数三:渠道名称;
+        // 参数四:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机;
+        // 参数五:Push推送业务的secret 填充Umeng Message Secret对应信息(需替换)
+
+        Log.d("友盟SDK初始化","onCreate");
+
+        UMSDKMgr.getInstance().myApplication = this;
+
+        //设置友盟SDK加密
+        UMConfigure.setEncryptEnabled(true);
+        // 打开统计SDK调试模式
+//        UMConfigure.setLogEnabled(true);
+
+        UMSDKMgr.getInstance()._UMPREInit();
+
+        UMSDKMgr.getInstance()._UMSDKStartAuto();
+    }
+}

+ 141 - 0
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/umeng/UMSDKMgr.java

@@ -0,0 +1,141 @@
+package org.cocos2dx.javascript.thirdSdk.umeng;
+
+import android.app.Activity;
+import android.app.Application;
+import android.content.Context;
+import android.util.Log;
+
+import com.aries.qsllx.mz.BuildConfig;
+import com.umeng.analytics.MobclickAgent;
+import com.umeng.commonsdk.UMConfigure;
+
+import java.security.PublicKey;
+import java.util.HashMap;
+import java.util.Map;
+
+public class UMSDKMgr {
+
+    /** 单例模式*/
+    private static UMSDKMgr mInstace = null;
+
+    public static UMSDKMgr getInstance() {
+        if (null == mInstace) {
+            mInstace = new UMSDKMgr();
+        }
+        return mInstace;
+    }
+
+    public Application myApplication = null;
+
+    /**
+     * appkey和channel参数必须和后续调用的UMConfigure.init初始化函数appkey、channel参数值一致。
+     */
+    public void _UMPREInit() {
+        UMConfigure.preInit(myApplication, BuildConfig.UM_AID, BuildConfig.UM_CHANNEL);
+    }
+
+    public void _UMSDKInit() {
+        if (this.myApplication == null) {
+            Log.e("UMSDKMgr", "appActivity  is  null !!!!");
+            return;
+        }
+
+        UMConfigure.init(myApplication,
+                BuildConfig.UM_AID, BuildConfig.UM_CHANNEL, UMConfigure.DEVICE_TYPE_PHONE, BuildConfig.UM_SECRET);
+    }
+
+    public void _UMSDKLogin(String v) {
+        MobclickAgent.onProfileSignIn(v);
+    }
+
+    public void _UMSDKLogout() {
+        MobclickAgent.onProfileSignOff();
+    }
+
+    //开启自动统计日活,新增
+    public void _UMSDKStartAuto() {
+        MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
+    }
+
+    //开启手动统计,需要在Activity的onResume/onPause函数中手动调用
+    // MobclickAgent.onResume/MobclickAgent.onPause函数,
+    // 保证正确统计应用使用时长、启动、活跃等基础指标
+    public void _UMSDKStartManual() {
+        MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.MANUAL);
+    }
+
+    /**
+     * 统计OnResume
+     */
+    public void _UMOnResume(Context context) {
+        MobclickAgent.onResume(context);
+    }
+
+    /**
+     * 统计OnPasue
+     */
+    public void _UMOnPause(Context context) {
+        MobclickAgent.onPause(context);
+    }
+
+    //支持在子进程中统计自定义事件,默认关闭
+    public void _UMSDKProcessEvent() {
+        UMConfigure.setProcessEvent(true);
+    }
+
+    /*
+        event id长度不能超过128个字节,key不能超过128个字节,value不能超过256个字节
+        id、ts、du、token、device_name、device_model 、device_brand、country、city、channel、province、
+        appkey、app_version、access、launch、pre_app_version、terminate、no_first_pay、
+        is_newpayer、first_pay_at、first_pay_level、first_pay_source、
+        first_pay_user_level、first_pay_versio是保留字段,不能作为event id 及key的名称;
+        如需要统计支付金额、使用时长等数值型的连续变量,请使用计算事件
+        (不允许通过key-value结构来统计类似搜索关键词,网页链接等随机生成的字符串信息)
+    */
+
+    //普通事件
+    public void _UMSDKEventId(Context context, String eventID) {
+        MobclickAgent.onEvent(context, eventID);
+    }
+
+    //友盟事件
+    public void _UMSDKEvent(Context context, String eventID, String des)
+    {
+        Log.d("_UMSDKEvent", "eventId"+eventID+" " + "des" + des );
+        Map<String, String> data = new HashMap<String,String>();
+        data.put("eventID", eventID);
+        data.put("des", des);
+        MobclickAgent.onEvent(context, eventID, data);
+    }
+
+    //带标签的事件
+    public void _UMSDKEventLabel(Context context, String eventID, String label) {
+        Log.d("_UMSDKEventLabel", "aaaaaaaaaa  ");
+        MobclickAgent.onEvent(context, eventID, label);
+    }
+
+    /*
+       统计点击行为各属性被触发的事件
+       HashMap<String,String> map = new HashMap<String,String>();
+       map.put("type","book");
+       map.put("quantity","3");
+       UMSDKHelper.getInstance()._UMSDKEventMap(context,"xxx",map);
+    */
+    public void _UMSDKEventMap(Context context, String eventID, Map<String, String> map) {
+        MobclickAgent.onEvent(context, eventID, map);
+    }
+
+    /*
+       统计点击行为各属性被触发的事件.带参数类型:String,Integer,Long,Short,Float,Double
+       Map<String, Object> music = new HashMap<String, Object>();
+       music.put("music_type", "popular");//自定义属性:音乐类型,值:流行
+       music.put("singer", "JJ"); //歌手:(林俊杰)JJ
+       music.put("song_name","A_Thousand_Years_Later"); //歌名:一千年以后
+       UMSDKHelper.getInstance()._UMSDKEventMap(context,"xxx",music);
+    */
+    public void _UMSDKEventObject(Context context, String eventID, Map<String, Object> map) {
+        MobclickAgent.onEventObject(context, eventID, map);
+    }
+}
+
+