From 571d401ce7c73b4826d1fda9bbe617fab664240f Mon Sep 17 00:00:00 2001 From: donghongyu Date: Mon, 21 Mar 2022 19:10:09 +0800 Subject: [PATCH] =?UTF-8?q?[Change]=20=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E8=B0=83=E7=94=A8AnalyticsManager.track?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../com/mogo/launcher/MogoApplication.java | 9 ++- .../function/main/MainMoGoApplication.java | 10 ++- .../fragment/MessageHistoryFragment.java | 11 ---- core/mogo-core-function-call/build.gradle | 5 +- .../call/analytics/AnalyticsManager.kt | 61 +++++++++++++++++++ foudations/mogo-commons/build.gradle | 6 +- .../com/mogo/commons/AbsMogoApplication.java | 8 +-- .../service/analytics/IMogoAnalytics.java | 2 + 8 files changed, 88 insertions(+), 24 deletions(-) create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/analytics/AnalyticsManager.kt diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 5f46c6850c..2302ddf666 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -7,6 +7,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.config.HdMapBuildConfig; import com.mogo.eagle.core.data.config.HmiBuildConfig; import com.mogo.eagle.core.data.constants.MoGoConfig; +import com.mogo.eagle.core.function.call.analytics.AnalyticsManager; import com.mogo.eagle.core.function.main.MainMoGoApplication; import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; @@ -32,6 +33,12 @@ public class MogoApplication extends MainMoGoApplication { crashSystem.setDebug(BuildConfig.DEBUG); } + @Override + protected void initAnalyticsConfig() { + // 初始化埋点 + AnalyticsManager.INSTANCE.init(this, DebugConfig.isDebug()); + } + @Override protected void initLogConfig() { super.initLogConfig(); @@ -107,7 +114,7 @@ public class MogoApplication extends MainMoGoApplication { HmiBuildConfig.isShowTurnLightView = false; } - if (DebugConfig.getProductFlavor().equals("fPadLenovoOchTaxiPassenger")){ + if (DebugConfig.getProductFlavor().equals("fPadLenovoOchTaxiPassenger")) { //是否显示 限速UI HmiBuildConfig.isShowLimitingVelocityView = false; //是否显示 红绿等 diff --git a/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 9db1ecd5a1..b37554d062 100644 --- a/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-main/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -21,11 +21,11 @@ import com.mogo.eagle.core.data.constants.MoGoConfig; import com.mogo.eagle.core.data.constants.MogoServicePaths; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.chat.biz.ChatConsts; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.notice.PushUIConstants; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.AppLaunchTimeUtils; +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.ProcessUtils; import com.mogo.map.MapApiPath; @@ -92,6 +92,11 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { */ protected abstract void initCrashConfig(); + /** + * 初始化异常采集配置 + */ + protected abstract void initAnalyticsConfig(); + /** * 初始化日志 */ @@ -117,6 +122,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { @Override protected void asyncInitImpl() { super.asyncInitImpl(); + initAnalyticsConfig(); } @Override @@ -214,7 +220,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { Double.parseDouble(latitude), Double.parseDouble(longitude)); } catch (NumberFormatException e) { - // e.printStackTrace(); + // e.printStackTrace(); httpDnsSimpleLocation = new HttpDnsSimpleLocation("010", 1, 1); } //CallerLogger.INSTANCE.d(M_MAIN + TAG, "使用缓存GPS信息:" + httpDnsSimpleLocation); diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/fragment/MessageHistoryFragment.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/fragment/MessageHistoryFragment.java index 8d166c37e1..2055f76e42 100644 --- a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/fragment/MessageHistoryFragment.java +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/fragment/MessageHistoryFragment.java @@ -8,9 +8,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.analytics.AnalyticsUtils; import com.mogo.commons.mvp.MvpFragment; -import com.mogo.eagle.core.function.notice.Config; import com.mogo.eagle.core.function.notice.R; import com.mogo.eagle.core.function.notice.adapter.PushMessageAdapter; import com.mogo.eagle.core.function.notice.model.PushBean; @@ -25,9 +23,6 @@ import com.mogo.module.common.view.OnPreventFastClickListener; import org.jetbrains.annotations.NotNull; -import java.util.HashMap; -import java.util.Map; - /** * @author congtaowang * @since 2020/9/1 @@ -66,7 +61,6 @@ public class MessageHistoryFragment extends MvpFragment< MessageHistoryView, Mes mEmptyPlaceHolder = findViewById( R.id.module_push_id_not_data ); mClose = findViewById( R.id.module_push_id_close ); - AnalyticsUtils.track( Config.NEWS_HISTORY_OPEN, null ); mClose.setOnClickListener( new OnPreventFastClickListener() { @Override public void onClickImpl( View v ) { @@ -76,7 +70,6 @@ public class MessageHistoryFragment extends MvpFragment< MessageHistoryView, Mes mClear.setOnClickListener( new OnPreventFastClickListener() { @Override public void onClickImpl( View v ) { - AnalyticsUtils.track( Config.NEWS_HISTORY_ALL_CLEAR, null ); if ( !mClearing ) { mClearing = true; AnimatorUtilsKt.startClearAnimator( @@ -97,12 +90,8 @@ public class MessageHistoryFragment extends MvpFragment< MessageHistoryView, Mes } mViewModel.delete( bean ); if ( action ) { - Map< String, Object > prop = new HashMap<>(); - prop.put( "title", bean.getTitle() ); - AnalyticsUtils.track( Config.NEWS_HISTORY_ONE_CLICK, prop ); exitSelf(); } else { - AnalyticsUtils.track( Config.NEWS_HISTORY_ONE_CLEAR, null ); mAdapter.removeItem( bean ); if ( mAdapter.getItemCount() == 0 ) { mEmptyPlaceHolder.setVisibility( View.VISIBLE ); diff --git a/core/mogo-core-function-call/build.gradle b/core/mogo-core-function-call/build.gradle index 517cf23278..4e2b923a44 100644 --- a/core/mogo-core-function-call/build.gradle +++ b/core/mogo-core-function-call/build.gradle @@ -43,10 +43,13 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation rootProject.ext.dependencies.kotlinstdlibjdk7 - implementation rootProject.ext.dependencies.arouter + implementation rootProject.ext.dependencies.arouter kapt rootProject.ext.dependencies.aroutercompiler + // MoGo 数据埋点工具 + implementation rootProject.ext.dependencies.analytics + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_utils diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/analytics/AnalyticsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/analytics/AnalyticsManager.kt new file mode 100644 index 0000000000..d27b2bcf36 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/analytics/AnalyticsManager.kt @@ -0,0 +1,61 @@ +package com.mogo.eagle.core.function.call.analytics + +import android.content.Context +import androidx.annotation.Keep +import androidx.collection.ArrayMap +import com.elegant.analytics.Analytics +import com.elegant.analytics.AnalyticsConfig +import com.elegant.analytics.IAnalyticsParamsProvider +import com.elegant.analytics.UploadMode +import com.mogo.cloud.passport.MoGoAiCloudClientConfig + +/** + * 埋点&数据统计 管理 + * @author donghongyu + */ +object AnalyticsManager { + + @Keep + fun init(context: Context?, isDebug: Boolean) { + // 1 - debug 近实时上报,积累一条埋点上报,或者积累3秒上报一次。 + // 2 - 本地缓存,聚合上报,积累30条埋点上报,或者积累60秒上报一次。 + AnalyticsConfig.getInstance(context).appKey = "6bbe7e0e1ecd8e2f8dc336e1678a2791" + AnalyticsConfig.getInstance(context).uploadMode = if (isDebug) UploadMode.instant else UploadMode.cache + AnalyticsConfig.getInstance(context).setShouldLog(isDebug) + // 设置参数提供者 + AnalyticsConfig.getInstance(context).paramsProvider = object : IAnalyticsParamsProvider { + // 静态参数 + override fun staticParams(): Map { + return getAnalyticsCustomParams(isDebug) + } + + //动态参数 + override fun dynamicParams(): Map? { + return null + } + } + Analytics.getInstance().start(context) + } + + /** + * 埋点 + * + * @param event 事件名称 + * @param properties 事件参数 + */ + fun track(event: String?, properties: Map?) { + Analytics.getInstance().track(event, properties) + } + + + /** + * 静态的统计参数 + */ + fun getAnalyticsCustomParams(isDebug: Boolean): Map { + val map: MutableMap = ArrayMap() + map["debug"] = if (isDebug) 1 else 0 + map["sn"] = MoGoAiCloudClientConfig.getInstance().sn + + return map + } +} \ No newline at end of file diff --git a/foudations/mogo-commons/build.gradle b/foudations/mogo-commons/build.gradle index 537229cf0f..249bbd25ac 100644 --- a/foudations/mogo-commons/build.gradle +++ b/foudations/mogo-commons/build.gradle @@ -36,12 +36,12 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - api rootProject.ext.dependencies.androidxappcompat - api rootProject.ext.dependencies.analytics + implementation rootProject.ext.dependencies.androidxappcompat + implementation rootProject.ext.dependencies.analytics implementation rootProject.ext.dependencies.arouter annotationProcessor rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.rxjava - api rootProject.ext.dependencies.mogoaicloudrealtime + implementation rootProject.ext.dependencies.mogoaicloudrealtime implementation rootProject.ext.dependencies.amapnavi3dmap if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java index 168023c156..5dfedc4161 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java @@ -15,7 +15,6 @@ import android.widget.TextView; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.aicloud.services.httpdns.IMogoHttpDns; import com.mogo.aicloud.services.httpdns.MogoHttpDnsHandler; -import com.mogo.commons.analytics.AnalyticsUtils; import com.mogo.commons.crash.FinalizeCrashFixer; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.device.Devices; @@ -149,15 +148,12 @@ public abstract class AbsMogoApplication extends Application { */ protected void asyncInit() { ThreadPoolService.execute(() -> { - - //初始化网络配置 - NetConfigUtils.init(); - // 初始化埋点 - AnalyticsUtils.init(sApp); if (DebugConfig.getCarMachineType() == CAR_MACHINE_TYPE_SELF_INNOVATE) { Devices.init(getApp()); Devices.checkBindState(); } + //初始化网络配置 + NetConfigUtils.init(); asyncInitImpl(); }); } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java b/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java index e8fe14fe8b..7d8f64ef00 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java @@ -20,7 +20,9 @@ public interface IMogoAnalytics extends IProvider { * * @param event 事件名称 * @param properties 埋点参数 + * @see AnalyticsManager */ @Keep + @Deprecated void track( String event, Map< String, Object > properties ); }