From d587c809def28b144250aa4187528ad0a837282a Mon Sep 17 00:00:00 2001 From: renwj Date: Fri, 1 Dec 2023 18:03:50 +0800 Subject: [PATCH] =?UTF-8?q?[6.2.0][=E6=8A=80=E6=9C=AF=E4=BC=98=E5=8C=96]?= =?UTF-8?q?=20=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/matrixTrace/blackMethodList.txt | 1 + .../lancet/jank/spi/HookInvokerImpl.java | 10 ++-- .../mogo/launcher/startup/ConfigStartUp.kt | 7 +-- .../mogo-core-function-devatools/build.gradle | 2 - .../block/MoGoBlockProviderImpl.kt | 9 ++- .../main/threadopt/ThreadOptInitializer.java | 4 +- .../core/data/config/FunctionBuildConfig.kt | 9 --- .../eagle/core/data/config/JunkConfig.java | 6 ++ core/mogo-core-utils/build.gradle | 2 + .../eagle/core/utilcode/util/VLogUtils.kt | 58 +++++++++++++++++++ 10 files changed, 82 insertions(+), 26 deletions(-) create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/JunkConfig.java create mode 100644 core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/VLogUtils.kt diff --git a/app/matrixTrace/blackMethodList.txt b/app/matrixTrace/blackMethodList.txt index 1aeba2171b..5c5fce5043 100644 --- a/app/matrixTrace/blackMethodList.txt +++ b/app/matrixTrace/blackMethodList.txt @@ -7,6 +7,7 @@ -keeppackage com/mogo/eagle/core/lancetx/generated/ -keeppackage com/mogo/eagle/core/handler/ -keeppackage com/mogo/launcher/lancet/jank/ +-keeppackage com.mogo.eagle.core.data.config.JunkConfig -keeppackage com/rousetime/android_startup/ -keeppackage com/mogo/systrace/ -keeppackage com/bytedance/boost_multidex/ diff --git a/app/src/debug/java/com/mogo/launcher/lancet/jank/spi/HookInvokerImpl.java b/app/src/debug/java/com/mogo/launcher/lancet/jank/spi/HookInvokerImpl.java index fd8142f40b..e5168e7b76 100644 --- a/app/src/debug/java/com/mogo/launcher/lancet/jank/spi/HookInvokerImpl.java +++ b/app/src/debug/java/com/mogo/launcher/lancet/jank/spi/HookInvokerImpl.java @@ -2,16 +2,15 @@ package com.mogo.launcher.lancet.jank.spi; import android.app.Activity; import android.os.Looper; import android.os.SystemClock; -import com.apm.insight.log.VLog; import com.google.auto.service.AutoService; import com.mogo.core.lancetx.compiler.lib.generator.Type; import com.mogo.core.lancetx.compiler.lib.hook.IHookInvoker; -import com.mogo.eagle.core.data.deva.chain.ChainConstant; import com.mogo.eagle.core.function.api.devatools.block.IMoGoBlockProvider; import com.mogo.eagle.core.function.api.devatools.perf.IMoGoCpuUsageProvider; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; import com.mogo.eagle.core.function.main.ARouterUtils; -import com.zhjt.service.chain.ChainLog; +import com.mogo.eagle.core.utilcode.util.VLogUtils; + import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Lock; @@ -168,7 +167,10 @@ public class HookInvokerImpl implements IHookInvoker { builder.setLength(builder.length() - 1); } - VLog.w("HookHandler", "Junk Detected:" + builder); + String s = builder.toString(); + + + VLogUtils.w("HookHandler", "Junk Detected:" + builder, 4096); // linkedLog(type, builder.toString()); if (flag) { extra.setLength(0); diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt index ad1856531d..989cdb92e2 100644 --- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt @@ -7,13 +7,12 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HdMapBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.app.UrlConfig +import com.mogo.eagle.core.data.config.JunkConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.launcher.BuildConfig import com.mogo.launcher.R -import com.mogo.test.crashreport.CrashReportConstants import com.shuyu.gsyvideoplayer.player.IjkPlayerManager -import com.zhidaoauto.map.sdk.open.HDTypes import com.zhidaoauto.map.sdk.open.MapAutoApi import com.zhidaoauto.map.sdk.open.MapParams import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager @@ -71,8 +70,8 @@ object ConfigStartUp { // 是否开启secure校验 FunctionBuildConfig.isSecure = BuildConfig.secure - // 是否开启卡顿检测 - FunctionBuildConfig.isSupportJunkDetect = BuildConfig.IS_SUPPORT_JUNK_DETECT + //是否开启卡顿检测 + JunkConfig.isSupportJunkDetect = BuildConfig.IS_SUPPORT_JUNK_DETECT } private fun initDebugConfig() { diff --git a/core/function-impl/mogo-core-function-devatools/build.gradle b/core/function-impl/mogo-core-function-devatools/build.gradle index ece83923bd..dd29601f0e 100644 --- a/core/function-impl/mogo-core-function-devatools/build.gradle +++ b/core/function-impl/mogo-core-function-devatools/build.gradle @@ -102,8 +102,6 @@ dependencies { implementation project(':core:mogo-core-utils') implementation project(':core:mogo-core-function-call') implementation project(':core:mogo-core-res') - - compileOnly rootProject.ext.dependencies.apm_insight } apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/block/MoGoBlockProviderImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/block/MoGoBlockProviderImpl.kt index 0531d0698c..1d78014846 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/block/MoGoBlockProviderImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/block/MoGoBlockProviderImpl.kt @@ -4,7 +4,6 @@ import android.content.* import android.util.* import android.view.* import androidx.metrics.performance.* -import com.apm.insight.log.VLog import com.mogo.eagle.core.block.runtime.* import com.mogo.eagle.core.block.runtime.config.* import com.mogo.eagle.core.block.runtime.config.recorder.* @@ -14,6 +13,7 @@ import com.mogo.eagle.core.block.runtime.report.* import com.mogo.eagle.core.function.api.devatools.block.* import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.eagle.core.utilcode.util.VLogUtils import java.util.concurrent.TimeUnit.SECONDS internal class MoGoBlockProviderImpl: IMoGoBlockProvider, IBlockListener { @@ -30,10 +30,10 @@ internal class MoGoBlockProviderImpl: IMoGoBlockProvider, IBlockListener { override fun init(ctx: Context) { BlockDetector.init(BlockMetrics.Builder() .context(ctx) - .multiplier(2.0f) + .multiplier(1.2f) .isDebug(false) .period(5, SECONDS) - .junkRateThreshold(0.6f) + .junkRateThreshold(0.2f) .recorder(null, 500, 500) .build()) hasInit = true @@ -71,11 +71,10 @@ internal class MoGoBlockProviderImpl: IMoGoBlockProvider, IBlockListener { } val msg = GsonUtils.toJson(map) try { - VLog.w(TAG, msg) + VLogUtils.w(TAG, msg) } catch (t: Throwable) { Log.e(TAG, "onDumped error", t) } -// linkedLog.record(msg) } }) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/threadopt/ThreadOptInitializer.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/threadopt/ThreadOptInitializer.java index ee4902eaef..a504e934dd 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/threadopt/ThreadOptInitializer.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/threadopt/ThreadOptInitializer.java @@ -6,7 +6,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.os.HandlerCompat; -import com.mogo.eagle.core.data.config.FunctionBuildConfig; +import com.mogo.eagle.core.data.config.JunkConfig; import com.mogo.eagle.core.function.api.devatools.perf.IMoGoCpuUsageProvider; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; import com.mogo.eagle.core.function.main.ARouterUtils; @@ -29,7 +29,7 @@ public class ThreadOptInitializer { @Override public boolean isEnabled() { - return FunctionBuildConfig.isSupportJunkDetect; + return JunkConfig.isSupportJunkDetect; } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index 641597b4df..4c10ce8927 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -328,13 +328,4 @@ object FunctionBuildConfig { @Volatile @JvmField var isFaultSlowDown = true - - - /** - * 是否支持卡顿检测 - */ - @Volatile - @JvmField - var isSupportJunkDetect = false - } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/JunkConfig.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/JunkConfig.java new file mode 100644 index 0000000000..fec01d5f84 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/JunkConfig.java @@ -0,0 +1,6 @@ +package com.mogo.eagle.core.data.config; + +public class JunkConfig { + + public static volatile boolean isSupportJunkDetect = false; +} diff --git a/core/mogo-core-utils/build.gradle b/core/mogo-core-utils/build.gradle index d8941ad776..599edaa095 100644 --- a/core/mogo-core-utils/build.gradle +++ b/core/mogo-core-utils/build.gradle @@ -66,6 +66,8 @@ dependencies { implementation rootProject.ext.dependencies.material implementation rootProject.ext.dependencies.guava + compileOnly rootProject.ext.dependencies.apm_insight + implementation rootProject.ext.dependencies.gson implementation rootProject.ext.dependencies.glideanno implementation rootProject.ext.dependencies.glideokhttp3 diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/VLogUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/VLogUtils.kt new file mode 100644 index 0000000000..76db51ac95 --- /dev/null +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/VLogUtils.kt @@ -0,0 +1,58 @@ +package com.mogo.eagle.core.utilcode.util + +import android.util.Log +import com.apm.insight.log.VLog + +class VLogUtils { + + companion object { + + @JvmStatic + fun d(tag: String, msg: String, max: Int = 4096) { + handleMsg(msg, max).forEach { + VLog.d(tag, it) + } + } + + @JvmStatic + fun v(tag: String, msg: String, max: Int = 4096) { + handleMsg(msg, max).forEach { + VLog.v(tag, it) + } + } + + @JvmStatic + fun w(tag: String, msg: String, max: Int = 4096) { + handleMsg(msg, max).forEach { + VLog.w(tag, it) + } + } + + @JvmStatic + fun e(tag: String, msg: String, max: Int = 4096) { + handleMsg(msg, max).forEach { + VLog.e(tag, it) + } + } + + private fun handleMsg(msg: String, max: Int = 4096): List { + val result = ArrayList() + try { + var left = msg.length + var begin = 0 + while (left > max) { + val part = msg.substring(begin, begin + max) + result += part + begin += max + left -= max + } + if (left > 0) { + result += msg.substring(begin, begin + left) + } + } catch (t: Throwable) { + Log.e(TAG, "error", t) + } + return result + } + } +} \ No newline at end of file