diff --git a/app/build.gradle b/app/build.gradle index 676517d308..30387f9df4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -352,7 +352,7 @@ dependencies { implementation "com.github.PhilJay:MPAndroidChart:${chart}" implementation project(':libraries:LGLibrary') -// implementation project(':libraries:MTA') + implementation project(':libraries:MTA') implementation project(':libraries:QQShare') // implementation project(':libraries:TalkingData') // implementation project(':libraries:UmengPush') diff --git a/app/src/main/java/com/gh/common/util/DataUtils.java b/app/src/main/java/com/gh/common/util/DataUtils.java index 919c2d155a..7178e6014e 100644 --- a/app/src/main/java/com/gh/common/util/DataUtils.java +++ b/app/src/main/java/com/gh/common/util/DataUtils.java @@ -7,6 +7,7 @@ import android.os.Build; import android.preference.PreferenceManager; import android.text.TextUtils; +import com.gh.common.constant.Config; import com.gh.common.constant.Constants; import com.gh.common.exposure.meta.MetaUtil; import com.gh.gamecenter.BuildConfig; @@ -15,9 +16,15 @@ import com.gh.gid.GidHelper; import com.halo.assistant.HaloApp; import com.lightgame.config.CommonDebug; import com.lightgame.utils.Utils; +import com.tencent.stat.MtaSDkException; +import com.tencent.stat.StatConfig; +import com.tencent.stat.StatCrashReporter; +import com.tencent.stat.StatReportStrategy; +import com.tencent.stat.StatService; import java.util.HashMap; import java.util.Map; +import java.util.Properties; import io.sentry.android.core.SentryAndroid; import io.sentry.core.Sentry; @@ -83,42 +90,42 @@ public class DataUtils { // } //MTA -// try { -// /** -// * -// * 不要启用!!!!全部由{@link com.gh.base.AppUncaughtHandler}处理 -// */ -// StatConfig.setAutoExceptionCaught(false); -// -// StatCrashReporter crashReporter = StatCrashReporter.getStatCrashReporter(context); -// crashReporter.setJavaCrashHandlerStatus(false); -//// crashReporter.setEnableInstantReporting(true); -// -// StatConfig.setDebugEnable(false); -// -// // 设置数据上报策略 -// // 测试渠道的时候即时上传,方便查看日志 -// if (Config.DEFAULT_CHANNEL.equals(HaloApp.getInstance().getChannel())) { -// StatConfig.setStatSendStrategy(StatReportStrategy.INSTANT); -// } else { -// StatConfig.setStatSendStrategy(StatReportStrategy.PERIOD); -// StatConfig.setSendPeriodMinutes(5); -// } -// -// // 设置启用Tlink -// StatConfig.setTLinkStatus(true); -// -// StatConfig.init(context); -// StatConfig.setInstallChannel(channel); -// StatConfig.setAntoActivityLifecycleStat(true); -// StatConfig.setAppVersion(PackageUtils.getVersionName()); -// -// // 开启收集服务 -// StatService.startStatService(context, Config.MTA_APPKEY, com.tencent.stat.common.StatConstants.VERSION); -// StatService.registerActivityLifecycleCallbacks(context); -// } catch (MtaSDkException e) { -// e.printStackTrace(); -// } + try { + /** + * + * 不要启用!!!!全部由{@link com.gh.base.AppUncaughtHandler}处理 + */ + StatConfig.setAutoExceptionCaught(false); + + StatCrashReporter crashReporter = StatCrashReporter.getStatCrashReporter(context); + crashReporter.setJavaCrashHandlerStatus(false); +// crashReporter.setEnableInstantReporting(true); + + StatConfig.setDebugEnable(false); + + // 设置数据上报策略 + // 测试渠道的时候即时上传,方便查看日志 + if (Config.DEFAULT_CHANNEL.equals(HaloApp.getInstance().getChannel())) { + StatConfig.setStatSendStrategy(StatReportStrategy.INSTANT); + } else { + StatConfig.setStatSendStrategy(StatReportStrategy.PERIOD); + StatConfig.setSendPeriodMinutes(5); + } + + // 设置启用Tlink + StatConfig.setTLinkStatus(true); + + StatConfig.init(context); + StatConfig.setInstallChannel(channel); + StatConfig.setAntoActivityLifecycleStat(true); + StatConfig.setAppVersion(PackageUtils.getVersionName()); + + // 开启收集服务 + StatService.startStatService(context, Config.MTA_APPKEY, com.tencent.stat.common.StatConstants.VERSION); + StatService.registerActivityLifecycleCallbacks(context); + } catch (MtaSDkException e) { + e.printStackTrace(); + } // init bugly // try { @@ -173,17 +180,17 @@ public class DataUtils { } public static void onEvent(Context var0, String var1, String var2) { -// Properties prop = new Properties(); -// prop.setProperty(var1, var2); -// StatService.trackCustomKVEvent(var0, var1, prop); + Properties prop = new Properties(); + prop.setProperty(var1, var2); + StatService.trackCustomKVEvent(var0, var1, prop); } public static void onPause(Activity var0) { -// StatService.onPause(var0); + StatService.onPause(var0); } public static void onResume(Activity var0) { -// StatService.onResume(var0); + StatService.onResume(var0); } // 游戏启动 @@ -195,30 +202,30 @@ public class DataUtils { } public static void onEvent(Context var0, String var1, String var2, Map var3) { -// Properties prop = new Properties(); -// prop.setProperty("label", var2); -// for (String key : var3.keySet()) { -// prop.setProperty(key, var3.get(key) + ""); -// } -// StatService.trackCustomKVEvent(var0, var1, prop); + Properties prop = new Properties(); + prop.setProperty("label", var2); + for (String key : var3.keySet()) { + prop.setProperty(key, var3.get(key) + ""); + } + StatService.trackCustomKVEvent(var0, var1, prop); } public static void trackTimeEvent(Context context, String eventId, int costTime, String... kv) { -// -// Properties prop = new Properties(); -// for (int i = 0; i < kv.length; i++) { -// if (i % 2 != 0 || i != 0) { -// String key = kv[i - 1]; -// String value = kv[i]; -// if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { -// prop.setProperty(key, value); -// } -// } -// } -// -// if (prop.size() == 0) return; -// -// StatService.trackCustomKVTimeIntervalEvent(context, costTime, eventId, prop); + + Properties prop = new Properties(); + for (int i = 0; i < kv.length; i++) { + if (i % 2 != 0 || i != 0) { + String key = kv[i - 1]; + String value = kv[i]; + if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { + prop.setProperty(key, value); + } + } + } + + if (prop.size() == 0) return; + + StatService.trackCustomKVTimeIntervalEvent(context, costTime, eventId, prop); } // 游戏下载 diff --git a/app/src/main/java/com/gh/common/util/MtaHelper.kt b/app/src/main/java/com/gh/common/util/MtaHelper.kt index dc1a2533aa..2bd37b063c 100644 --- a/app/src/main/java/com/gh/common/util/MtaHelper.kt +++ b/app/src/main/java/com/gh/common/util/MtaHelper.kt @@ -1,52 +1,61 @@ package com.gh.common.util +import android.os.Build +import android.text.TextUtils +import com.gh.common.exposure.meta.MetaUtil +import com.gh.gamecenter.BuildConfig +import com.halo.assistant.HaloApp +import com.lightgame.utils.Utils +import com.tencent.stat.StatService +import java.util.* + object MtaHelper { @JvmStatic fun onEvent(eventId: String, vararg kv: String?) { -// val prop = Properties() -// -// if (kv.size == 1) { -// prop.setProperty(kv[0], kv[0]) -// StatService.trackCustomKVEvent(HaloApp.getInstance().application, eventId, prop) -// Utils.log("MTA", "$eventId + [${kv.joinToString(" , ")}]") -// return -// } -// -// for (i in kv.indices) { -// if (i % 2 != 0) { -// val key = kv[i - 1] -// val value = kv[i] -// if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { -// prop.setProperty(key, value) -// } -// } -// } -// -// Utils.log("MTA", "$eventId + [${kv.joinToString(" , ")}]") -// StatService.trackCustomKVEvent(HaloApp.getInstance().application, eventId, prop) + val prop = Properties() + + if (kv.size == 1) { + prop.setProperty(kv[0], kv[0]) + StatService.trackCustomKVEvent(HaloApp.getInstance().application, eventId, prop) + Utils.log("MTA", "$eventId + [${kv.joinToString(" , ")}]") + return + } + + for (i in kv.indices) { + if (i % 2 != 0) { + val key = kv[i - 1] + val value = kv[i] + if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { + prop.setProperty(key, value) + } + } + } + + Utils.log("MTA", "$eventId + [${kv.joinToString(" , ")}]") + StatService.trackCustomKVEvent(HaloApp.getInstance().application, eventId, prop) } @JvmStatic fun onEventWithTime(eventId: String, time: Int, vararg kv: String?) { -// val prop = Properties() -// for (i in kv.indices) { -// if (i % 2 != 0 || i != 0) { -// val key = kv[i - 1] -// val value = kv[i] -// if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { -// prop.setProperty(key, value) -// } -// } -// } -// -// if (prop.size == 0 && kv.size == 1) { -// prop.setProperty(kv[0], kv[0]) -// } -// -// if (prop.size == 0) return -// Utils.log("MTA", "$eventId + [${kv.joinToString(" , ")}] + last $time seconds") -// StatService.trackCustomKVTimeIntervalEvent(HaloApp.getInstance().application, time, eventId, prop) + val prop = Properties() + for (i in kv.indices) { + if (i % 2 != 0 || i != 0) { + val key = kv[i - 1] + val value = kv[i] + if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { + prop.setProperty(key, value) + } + } + } + + if (prop.size == 0 && kv.size == 1) { + prop.setProperty(kv[0], kv[0]) + } + + if (prop.size == 0) return + Utils.log("MTA", "$eventId + [${kv.joinToString(" , ")}] + last $time seconds") + StatService.trackCustomKVTimeIntervalEvent(HaloApp.getInstance().application, time, eventId, prop) } /** @@ -54,29 +63,29 @@ object MtaHelper { */ @JvmStatic fun onEventWithBasicDeviceInfo(eventId: String, vararg kv: String) { -// val prop = Properties() -// for (i in kv.indices) { -// if (i % 2 != 0) { -// val key = kv[i - 1] -// val value = kv[i] -// if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { -// prop.setProperty(key, value) -// } -// } -// } -// -// prop.setProperty("光环版本", BuildConfig.VERSION_NAME) -// prop.setProperty("网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().application)) -// prop.setProperty("IMEI", MetaUtil.getIMEI()) -// prop.setProperty("机型", Build.MODEL) -// prop.setProperty("厂商", Build.MANUFACTURER) -// prop.setProperty("Android版本", Build.VERSION.RELEASE) -// if (!TextUtils.isEmpty(HaloApp.getInstance().gid)) { -// prop.setProperty("GID", HaloApp.getInstance().gid) -// } -// -// Utils.log("MTA", "$eventId + [${kv.joinToString(" , ")}]") -// StatService.trackCustomKVEvent(HaloApp.getInstance().application, eventId, prop) + val prop = Properties() + for (i in kv.indices) { + if (i % 2 != 0) { + val key = kv[i - 1] + val value = kv[i] + if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) { + prop.setProperty(key, value) + } + } + } + + prop.setProperty("光环版本", BuildConfig.VERSION_NAME) + prop.setProperty("网络状态", DeviceUtils.getNetwork(HaloApp.getInstance().application)) + prop.setProperty("IMEI", MetaUtil.getIMEI()) + prop.setProperty("机型", Build.MODEL) + prop.setProperty("厂商", Build.MANUFACTURER) + prop.setProperty("Android版本", Build.VERSION.RELEASE) + if (!TextUtils.isEmpty(HaloApp.getInstance().gid)) { + prop.setProperty("GID", HaloApp.getInstance().gid) + } + + Utils.log("MTA", "$eventId + [${kv.joinToString(" , ")}]") + StatService.trackCustomKVEvent(HaloApp.getInstance().application, eventId, prop) } } \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 1b339eb9e9..25b9bf0710 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,7 +1,7 @@ include ':app' //include ':libraries:im' include ':libraries:LGLibrary' -//include ':libraries:MTA' +include ':libraries:MTA' include ':libraries:QQShare' //include ':libraries:TalkingData' //include ':libraries:UmengPush'