This commit is contained in:
zhongchao
2022-02-21 20:25:59 +08:00
parent 55efaaed89
commit 5bc5c25228
14 changed files with 121 additions and 39 deletions

View File

@@ -10,6 +10,7 @@ import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE;
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA;
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_LINK_ADAS;
import static com.mogo.eagle.core.data.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA;
import android.util.Log;
@@ -71,6 +72,7 @@ public class MoGoAdasListenerImpl implements OnAdasListener {
private final String TAG = "OnAdasListenerAdapter";
@ChainLog(linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA,
paramIndexes = {0},
@@ -84,6 +86,7 @@ public class MoGoAdasListenerImpl implements OnAdasListener {
}
@ChainLog(linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE,
paramIndexes = {0},
@@ -168,6 +171,7 @@ public class MoGoAdasListenerImpl implements OnAdasListener {
}
@ChainLog(linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS,
paramIndexes = {0},
@@ -205,6 +209,7 @@ public class MoGoAdasListenerImpl implements OnAdasListener {
}
@ChainLog(linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE,
paramIndexes = {0},
@@ -228,6 +233,7 @@ public class MoGoAdasListenerImpl implements OnAdasListener {
}
@ChainLog(linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE,
paramIndexes = {0},
@@ -277,6 +283,7 @@ public class MoGoAdasListenerImpl implements OnAdasListener {
}
@ChainLog(linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN,
paramIndexes = {0},
@@ -290,6 +297,7 @@ public class MoGoAdasListenerImpl implements OnAdasListener {
}
@ChainLog(linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD,
paramIndexes = {0},
@@ -329,6 +337,7 @@ public class MoGoAdasListenerImpl implements OnAdasListener {
}
@ChainLog(linkCode = CHAIN_LINK_ADAS,
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA,
endpoint = TracingConstants.Endpoint.PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN,
paramIndexes = {0},

View File

@@ -48,6 +48,7 @@ dependencies {
implementation rootProject.ext.dependencies.arouter
kapt rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.mogologlib
implementation rootProject.ext.dependencies.mogochainbase
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
implementation rootProject.ext.dependencies.mogoserviceapi

View File

@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zhjt.mogo_core_function_devatools">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
</manifest>

View File

@@ -1,19 +1,35 @@
package com.zhjt.mogo_core_function_devatools
import android.annotation.SuppressLint
import android.content.Context
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_LOG_ADAS_INIT
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_LOG_ADAS_MSG
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
import com.mogo.eagle.core.data.chain.ChainConstant.Companion.CHAIN_LINK_LOG_WEB_SOCKET_DATA
import com.mogo.eagle.core.data.chain.ChainLogParam
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.mogo.eagle.core.utilcode.util.Utils
import com.zhidao.loglib.fw.FileWriteManager
import com.zhidao.loglib.fw.FwBuild
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchManager
import com.zhjt.service.chain.core.ChainTraceStarter
@Route(path = MogoServicePaths.PATH_DEVA_TOOLS)
class DevaToolsProvider : IDevaToolsProvider {
private val traceInfoCache = hashMapOf<Int, ChainLogParam>()
private val fwBuildMap: MutableMap<Int, FwBuild> = HashMap()
override val functionName: String
get() = "DevaToolsProvider"
override fun init(context: Context) {
MogoLogCatchManager.init(context)
initTrace(context)
}
override fun startLogCatch() {
@@ -24,6 +40,38 @@ class DevaToolsProvider : IDevaToolsProvider {
MogoLogCatchManager.stopCatchLog()
}
private fun initTrace(context: Context) {
// 初始化Trace抓取服务
val pkgName = Utils.getApp().packageName
ChainTraceStarter.start(pkgName, DeviceUtils.getMacAddress())
// Trace过程中进行日志抓取对日志进行配置
fwBuildMap[CHAIN_LINK_LOG_CONNECT_STATUS] =
FwBuild(true, pkgName + CHAIN_LINK_LOG_ADAS_INIT, 5_000)
fwBuildMap[CHAIN_LINK_LOG_WEB_SOCKET_DATA] =
FwBuild(false, pkgName + CHAIN_LINK_LOG_ADAS_MSG, 500)
traceInfoCache[CHAIN_LINK_LOG_CONNECT_STATUS] = ChainLogParam(true,"IPC连接状态")
traceInfoCache[CHAIN_LINK_LOG_WEB_SOCKET_DATA] = ChainLogParam(false,"IPC长链数据")
FileWriteManager.getInstance()
.init(context, MoGoAiCloudClientConfig.getInstance().sn, pkgName, fwBuildMap)
}
override fun getTraceInfo(): HashMap<Int, ChainLogParam> {
return traceInfoCache
}
@SuppressLint("NewApi")
override fun refreshTraceInfo(map: HashMap<Int, ChainLogParam>) {
map.forEach { (type, param) ->
val fwBuild = this.fwBuildMap[type]
fwBuild?.let {
it.isRecord = param.record
}
}
FileWriteManager.getInstance().operateChainMap(fwBuildMap)
}
override fun onDestroy() {
MogoLogCatchManager.onDestroy()
}

View File

@@ -13,7 +13,6 @@ import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.module.common.MogoApisHandler
import com.mogo.service.cloud.socket.IMogoOnMessageListener
import com.zhidao.loglib.bean.RemoteLogPushContent
@@ -25,7 +24,6 @@ import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companio
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.LOG_PUSH_TYPE
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.START_CATCH_LOG
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchConst.Companion.STOP_CATCH_LOG
import java.io.File
@SuppressLint("StaticFieldLeak")
object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handler.Callback,
@@ -108,8 +106,9 @@ object MogoLogCatchManager : IMogoOnMessageListener<RemoteLogPushContent>, Handl
openLoggerLevel()
logInfoManager = LogInfoManagerFactory.createPushLogInfoManager(
mContext,
MoGoAiCloudClientConfig.getInstance().sn + File.separator + TimeUtils.formatYMD(System.currentTimeMillis()),
content, this
MoGoAiCloudClientConfig.getInstance().sn,
content,
this
)
logInfoManager?.start()
logInfoManager?.registerLogOutListener { lineLog ->

View File

@@ -61,7 +61,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
return;
}
start = System.currentTimeMillis();
ChainTraceStarter.start("com.mogo.launcher.f", DeviceUtils.getMacAddress());
// Crash 日志收集
initCrashConfig();
initLogConfig();
@@ -302,7 +301,8 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
private void initModules() {
Logger.d(TAG, "initModules");
//mogo deva tools
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_DEVA_TOOLS, "IMoGoDevaToolsProvider"));
// 初始化 bugly 升级
MogoModulePaths.addBaseModule(new MogoModule(UpgradeReportConstants.PATH, UpgradeReportConstants.NAME));
// 初始化 apm 日志采集
@@ -312,9 +312,8 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
MogoModulePaths.addBaseModule(new MogoModule(MapApiPath.PATH, "CustomMapApiBuilder"));
MogoModulePaths.addBaseModule(new MogoModule(ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY));
// MogoModulePaths.addBaseModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.MODULE_NAME));
//mogo deva tools
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_DEVA_TOOLS, "IMoGoDevaToolsProvider"));
// MogoModulePaths.addBaseModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.MODULE_NAME));
// 域控制器模块(新)
MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AUTO_PILOT, "IMoGoAutoPilotProvider"));
// OBU 模块