1、增加应用启动统计埋点
2、埋点数据据增加常规参数
This commit is contained in:
donghongyu-pc
2024-09-03 15:58:06 +08:00
parent 3ee659a7be
commit 8b421771ed
3 changed files with 56 additions and 9 deletions

View File

@@ -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?, MainPresenter?>(), MainView,
private var isFirst = false
private var mConnAdapter: ConnInfoAdapter? = null
private val dataList: List<AutopilotStatusInfo> = 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?, MainPresenter?>(), MainView,
override fun onDestroy() {
super.onDestroy()
val properties = java.util.HashMap<String, Any>()
properties["app_destroy_time"] = System.currentTimeMillis()
MogoAnalyticUtils.track("app_lifecycle_destroy", properties)
CallerAutoPilotStatusListenerManager.removeListener(TAG)
CallerRequestActivityHandleManager.removeListener(TAG)
//mogoMapListenerHandler.unregisterHostMapListener(TAG)

View File

@@ -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<String, Object> 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<String, Object> properties = new HashMap<>();
properties.put("app_start_time", System.currentTimeMillis());
MogoAnalyticUtils.INSTANCE.track("app_lifecycle_start", properties);
// 初始化DevaTools,开始链路记录
CallerDevaToolsManager.INSTANCE.init();
}

View File

@@ -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
}