diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.kt index 8daafa8abb..6a0a608587 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.kt @@ -6,7 +6,6 @@ import android.content.pm.PackageManager import android.net.Uri import android.os.Bundle import android.provider.Settings -import android.view.Gravity import android.view.View import android.view.ViewGroup import android.widget.FrameLayout @@ -26,19 +25,16 @@ import com.mogo.commons.module.status.MogoStatusManager import com.mogo.commons.mvp.MvpActivity import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo -import com.mogo.eagle.core.data.config.HdMapBuildConfig import com.mogo.eagle.core.data.deva.chain.ChainConstant import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.setting.IMoGoRequestActivityHandler import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager -import com.mogo.eagle.core.function.call.hmi.CallerHmiFloatViewManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.setting.CallerRequestActivityHandleManager import com.mogo.eagle.core.function.call.startup.CallerStartUpManager.initStageTwo import com.mogo.eagle.core.function.hmi.R -import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.function.main.modules.MogoModulesManager import com.mogo.eagle.core.function.main.windowview.FloatingViewHandler import com.mogo.eagle.core.utilcode.mogo.AppLaunchTimeUtils @@ -49,9 +45,6 @@ import com.mogo.eagle.core.utilcode.mogo.permissions.PermissionsDialogUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ProcessUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.map.listener.IMogoMapListener -import com.mogo.map.listener.MogoMapListenerHandler.Companion.mogoMapListenerHandler -import com.mogo.map.uicontroller.EnumMapUI import com.zhjt.mogo.adas.data.AdasConstants import com.zhjt.service.chain.ChainLog import kotlinx.android.synthetic.main.module_main_activity_main.module_main_id_cover_up @@ -73,7 +66,8 @@ open class MainActivity : MvpActivity(), MainView, private var isFirst = false private var mConnAdapter: ConnInfoAdapter? = null private val dataList: List = ArrayList() -// private var mLastStatus = AdasConstants.IpcConnectionStatus.CONNECTED + + // private var mLastStatus = AdasConstants.IpcConnectionStatus.CONNECTED private var mLastStatus = AdasConstants.IpcConnectionStatus.DISCONNECTED private var isFloatingLayerHidden = false @@ -326,6 +320,10 @@ open class MainActivity : MvpActivity(), MainView, override fun onDestroy() { super.onDestroy() + val properties = java.util.HashMap() + properties["app_destroy_time"] = System.currentTimeMillis() + MogoAnalyticUtils.track("app_lifecycle_destroy", properties) + CallerAutoPilotStatusListenerManager.removeListener(TAG) CallerRequestActivityHandleManager.removeListener(TAG) //mogoMapListenerHandler.unregisterHostMapListener(TAG) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index aaa5e660f9..6d29fa4878 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -20,6 +20,8 @@ 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 java.util.HashMap; + /** * 默认初始化一些基础服务配置 */ @@ -45,6 +47,15 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { initModules(); } + @Override + public void onTerminate() { + super.onTerminate(); + + HashMap properties = new HashMap<>(); + properties.put("app_destroy_time", System.currentTimeMillis()); + MogoAnalyticUtils.INSTANCE.track("app_lifecycle_destroy", properties); + } + /** * 初始化异常采集配置 */ @@ -56,6 +67,11 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { protected void initLogConfig() { // 初始化埋点 MogoAnalyticUtils.INSTANCE.init(this, DebugConfig.isDebug()); + + HashMap properties = new HashMap<>(); + properties.put("app_start_time", System.currentTimeMillis()); + MogoAnalyticUtils.INSTANCE.track("app_lifecycle_start", properties); + // 初始化DevaTools,开始链路记录 CallerDevaToolsManager.INSTANCE.init(); } diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt b/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt index d6218e7a82..b46ffe2e8e 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt @@ -8,8 +8,11 @@ import com.elegant.analytics.AnalyticsConfig import com.elegant.analytics.IAnalyticsParamsProvider import com.elegant.analytics.UploadMode import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.AppUtils +import org.json.JSONObject /** * 埋点&数据统计 管理 @@ -22,7 +25,8 @@ object MogoAnalyticUtils { // 1 - debug 近实时上报,积累一条埋点上报,或者积累3秒上报一次。 // 2 - 本地缓存,聚合上报,积累30条埋点上报,或者积累60秒上报一次。 AnalyticsConfig.getInstance(context).appKey = "0915430e5fdcbb553391f2a35cb8489f" - AnalyticsConfig.getInstance(context).uploadMode = if (isDebug) UploadMode.instant else UploadMode.cache + AnalyticsConfig.getInstance(context).uploadMode = + if (isDebug) UploadMode.instant else UploadMode.cache AnalyticsConfig.getInstance(context).setShouldLog(isDebug) // 设置参数提供者 AnalyticsConfig.getInstance(context).paramsProvider = object : IAnalyticsParamsProvider { @@ -49,6 +53,16 @@ object MogoAnalyticUtils { Analytics.getInstance().track(event, properties) } + /** + * 埋点 + * + * @param event 事件名称 + * @param properties json事件参数 + */ + fun track(event: String?, properties: JSONObject) { + Analytics.getInstance().track(event, properties) + } + /** * 静态的统计参数 @@ -58,7 +72,26 @@ object MogoAnalyticUtils { map["debug"] = if (isDebug) 1 else 0 map["sn"] = SharedPrefsMgr.getInstance().sn map["app_version"] = AppUtils.getAppVersionName() + map["app_version_code"] = AppUtils.getAppVersionCode() + map["app_identity_mode"] = FunctionBuildConfig.appIdentityMode + map["app_build_time"] = AppConfigInfo.appBuildTime + map["app_working_branch_hash"] = AppConfigInfo.workingBranchHash + map["app_working_branch_name"] = AppConfigInfo.workingBranchName + map["app_flavor"] = AppConfigInfo.flavor + map["app_net_mode"] = when (AppConfigInfo.netMode) { + 2 -> "测试环境" + 3 -> "生产环境" + 4 -> "演示环境" + else -> { + AppConfigInfo.netMode + } + } + map["app_support_business"] = FunctionBuildConfig.supportBusiness + + map["plate_number"] = AppConfigInfo.plateNumber + map["product_type"] = AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode).name + map["car_type"] = AppIdentityModeUtils.getCarType(FunctionBuildConfig.appIdentityMode).name return map }