Files
MoGoEagleEye/app/src/main/java/com/mogo/launcher/MogoApplication.java
donghongyu d342784146 [Add]
DebugView增加分支名称和HASH信息,方便跟踪问题

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
2022-01-10 14:28:18 +08:00

180 lines
7.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.app.AppConfigInfo;
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
* <p>
* 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<? extends String, ? extends String> getUserData(CrashType type) {
HashMap<String, String> 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));
// 初始化构建APP的时候的分支及提交HASH用于辅助定位问题
AppConfigInfo.INSTANCE.setWorkingBranchName(BuildConfig.WORKING_BRANCH_NAME);
AppConfigInfo.INSTANCE.setWorkingBranchHash(BuildConfig.WORKING_BRANCH_HASH);
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;
}
}