package com.mogo.launcher; import com.apm.insight.AttachUserData; import com.apm.insight.CrashType; import com.apm.insight.MonitorCrash; import com.apm.insight.log.VLog; import com.auto.zhidao.logsdk.CrashSystem; import com.bytedance.apm.insight.ApmInsight; import com.bytedance.apm.insight.ApmInsightInitConfig; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.function.main.MainMoGoApplication; import com.mogo.module.v2x.utils.ObuConfig; import com.mogo.test.crashreport.CrashReportConstants; import com.mogo.utils.AppUtils; import com.mogo.utils.CommonUtils; import com.mogo.utils.logger.LogLevel; import com.mogo.utils.logger.Logger; import com.mogo.utils.storage.SharedPrefsMgr; import java.util.HashMap; import java.util.Map; /** * @author congtaowang * @since 2019-12-18 *

* Launcher application */ public class MogoApplication extends MainMoGoApplication { private static final String BYTEAMP_APPID = "302368"; @Override protected void initCrashConfig() { CrashSystem crashSystem = CrashSystem.getInstance(this); crashSystem.init(); initCrash(); initApmInsight(); //设置debug模式,日志不上传 crashSystem.setDebug(BuildConfig.DEBUG); } @Override protected void initLogConfig() { super.initLogConfig(); Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF); } private void initCrash() { MonitorCrash crash = MonitorCrash.init(this, BYTEAMP_APPID, CommonUtils.getVersionCode(this), CommonUtils.getVersionName(this)) .setCustomDataCallback(new AttachUserData() { @Override public Map getUserData(CrashType type) { HashMap map = new HashMap<>(); // map.put("app_custom", "app_value"); //SN map.put("serial", MoGoAiCloudClientConfig.getInstance().getSn()); //地图版本 String mapSDKVersion = AppUtils.getCustomMapSDKVersion(getApplicationContext()); map.put("MAP_SDK_VERSION", mapSDKVersion); return map; } }); crash.config().setChannel("eagle"); // crash.config().setDeviceId("did");//可选,可以设置自定义did,不设置会使用内部默认的 // crash.setReportUrl("www.xxx.com"); // 私有化部署:私有化部署才配置上报地址 // crash.addTags("key", "value"); // 自定义筛选tag, 按需添加、可多次覆盖 } /** * ApmInsight性能监控初始化 */ private void initApmInsight() { ApmInsightInitConfig.Builder builder = ApmInsightInitConfig.builder(); //设置分配的appid builder.aid(BYTEAMP_APPID); //是否开启卡顿功能 builder.blockDetect(true); //是否开启严重卡顿功能 builder.seriousBlockDetect(true); //是否开启流畅性和丢帧 builder.fpsMonitor(true); //控制是否打开WebVeiw监控 builder.enableWebViewMonitor(true); //控制是否打开内存监控 builder.memoryMonitor(true); //控制是否打开电量监控 builder.batteryMonitor(true); //是否打印日志,注:线上release版本要配置为false builder.debugMode(true); //支持用户自定义user_id把平台数据和自己用户关联起来,可以不配置 // builder.userId("user_id"); //私有化部署:配置数据上报的域名 (私有化部署才需要配置,内部有默认域名),测试支持设置http://www.xxx.com 默认是https协议 // builder.defaultReportDomain("www.xxx.com"); //设置渠道。1.3.16版本增加接口 builder.channel("local"); //打开自定义日志回捞能力,1.4.1版本新增接口 builder.enableLogRecovery(true); //设置数据和Rangers Applog数据打通,设备标识did必填。1.3.16版本增加接口 // builder.setDynamicParams(new IDynamicParams() { // @Override // public String getUserUniqueID() { // //可选。依赖AppLog可以通过AppLog.getUserUniqueID()获取,否则可以返回null。 // return null; // } // // @Override // public String getAbSdkVersion() { // //可选。如果依赖AppLog可以通过AppLog.getAbSdkVersion()获取,否则可以返回null。 // return null; // } // // @Override // public String getSsid() { // //可选。依赖AppLog可以通过AppLog.getSsid()获取,否则可以返回null。 // return null; // } // // @Override // public String getDid() { // //1.4.0版本及以上,可选,其他版本必填。设备的唯一标识,如果依赖AppLog可以通过 AppLog.getDid() 获取,也可以自己生成。 // return AppLog.getDid(); // } // }); ApmInsight.getInstance().init(this, builder.build()); //初始化自定日志,配置自定义日志最大占用磁盘,内部一般配置20,代表最大20M磁盘占用。1.4.1版本开始存在这个api VLog.init(this, 20); } @Override protected void initCloudClientConfig() { // todo 使用旧Socket链路 true = 旧链路,false = 新链路 //clientConfig.setUseOriginSocket(true); } @Override protected void initBuildConfig() { DebugConfig.setNetMode(BuildConfig.NET_ENV); DebugConfig.setDebug(BuildConfig.DEBUG); DebugConfig.setLaunchLocationService(BuildConfig.LAUNCH_LOCATION_SERVICE); DebugConfig.setUseCustomNavi(BuildConfig.USE_CUSTOM_NAVI); DebugConfig.setLauncher(BuildConfig.IS_LAUNCHER); DebugConfig.setActiveAIAssistFlag(BuildConfig.AI_ASSIST_ACTIVE_STAUTS); DebugConfig.setUseMockObuData(false); DebugConfig.setCarMachineType(BuildConfig.CAR_MACHINE_TYPE); DebugConfig.setProductFlavor(BuildConfig.FLAVOR_product); DebugConfig.setSocketAppId(BuildConfig.SOCKET_APP_ID); DebugConfig.setScheduleCalculateNotHomeCompanyDistanceForPush(BuildConfig.IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH); DebugConfig.setMapBased(BuildConfig.IS_MAP_BASED); DebugConfig.setNeedHideAdasWhenShare(BuildConfig.IS_NEED_HIDE_ADAS_WHEN_SHARE); DebugConfig.setNeedUploadCoordinatesInTime(BuildConfig.IS_NEED_UPLOAD_COORDINATES_IN_TIME); DebugConfig.setObuType(SharedPrefsMgr.getInstance(this).getInt("OBU_TYPE", DebugConfig.OBU_TYPE_CIDI)); ObuConfig.useObuLocation = false; // 使用与渠道配置一样的gps提供者提供的数据,app/productFlavors/fPadLenovo.gradle GPS_PROVIDER 0-Android系统,1-工控机,2-OBU FunctionBuildConfig.gpsProvider = BuildConfig.GPS_PROVIDER; // 配置BuglyAppID CrashReportConstants.buglyAppID = "ac71228f85"; /* // TODO 这里是演示代码使用,控制HMI展示元素 HmiBuildConfig.isShowSpeedView = false; HmiBuildConfig.isShowAutopilotStatusView = false; HmiBuildConfig.isShowPerspectiveSwitchView = false; HmiBuildConfig.isShowCheckStatusView = false;*/ // TODO 这里指定自车模型 R.raw.xiaobache--小巴车,R.raw.chuzuche--出租车 //HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche; } }