From 41fe5887c12e9de2daa876f7794ee16720be8f1d Mon Sep 17 00:00:00 2001 From: renwj Date: Fri, 27 Oct 2023 18:00:29 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[6.1.2][=E7=BA=BF=E7=A8=8B=E4=BC=98?= =?UTF-8?q?=E5=8C=96]=20=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=94=B9=E5=88=9D=E5=A7=8B=E5=8C=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/matrixTrace/blackMethodList.txt | 3 +- build.gradle | 2 +- config.gradle | 4 +- .../mogo-core-function-hmi/build.gradle | 2 + .../function/main/MainMoGoApplication.java | 6 +- .../main/threadopt/ThreadOptInitializer.java | 47 ++++++++++++++++ .../mogo-core-function-startup/build.gradle | 1 - .../function/startup/MogoStartUpProvider.kt | 2 - .../function/startup/stageone/APMStartup.kt | 2 +- .../startup/stageone/ThreadOptStartup.kt | 56 ------------------- gradle.properties | 4 +- 11 files changed, 58 insertions(+), 71 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/threadopt/ThreadOptInitializer.java delete mode 100644 core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt diff --git a/app/matrixTrace/blackMethodList.txt b/app/matrixTrace/blackMethodList.txt index b1cfcf574c..502b68e02b 100644 --- a/app/matrixTrace/blackMethodList.txt +++ b/app/matrixTrace/blackMethodList.txt @@ -1,5 +1,6 @@ [package] --keeppackage com/mogo/thread/ext/ +-keeppackage com/mogo/thread/opt/core/ +-keeppackage com/mogo/eagle/core/function/main/threadopt/ -keeppackage com/mogo/launcher -keeppackage com/rousetime/android_startup/ -keeppackage com/mogo/systrace/ diff --git a/build.gradle b/build.gradle index 190f5f0714..6dbf88f007 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ buildscript { classpath "com.mogo.cloud:hook:${service_chain_version}" classpath "com.mogo.cloud:bizconfig:${plugin_version}" classpath 'com.volcengine:apm_insight_plugin:1.4.2' - classpath "com.mogo.thread.opt:plg:10.2.1_mogo" + classpath "com.mogo.thread.opt:plg:10.10.0" classpath "com.mogo.cloud:systrace:${plugin_version}" classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' classpath "com.mogo.sticky:service:${plugin_version}" diff --git a/config.gradle b/config.gradle index 108f48c3d8..03c9fb64de 100644 --- a/config.gradle +++ b/config.gradle @@ -215,7 +215,7 @@ ext { //========================= autosize ====================== androidautoSize : 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1', - thread_opt : "com.mogo.thread.opt:lib:10.2.1_mogo", + thread_opt : "com.mogo.thread.opt:lib:10.10.0", weak_network : "com.mogo.weak:network:1.0.1", btrace : "com.bytedance.btrace:rhea-core:2.0.0", @@ -240,6 +240,6 @@ ext { ] } -boolean isM1Chip() { +static boolean isM1Chip() { return System.getProperty("os.name").contains("Mac") && System.getProperty("os.arch") == "aarch64" } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/build.gradle b/core/function-impl/mogo-core-function-hmi/build.gradle index 238cd8709e..6df031e493 100644 --- a/core/function-impl/mogo-core-function-hmi/build.gradle +++ b/core/function-impl/mogo-core-function-hmi/build.gradle @@ -75,6 +75,8 @@ dependencies { implementation rootProject.ext.dependencies.koomjava implementation rootProject.ext.dependencies.koomnative implementation rootProject.ext.dependencies.koomxhook + + implementation rootProject.ext.dependencies.thread_opt api project(':test:crashreport-apmbyte') compileOnly project(':core:function-impl:mogo-core-function-datacenter') implementation project(':foudations:mogo-commons') diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 8912c45ec6..5c98f74e04 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -5,7 +5,6 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_MAI import android.content.Context; import com.bytedance.boost_multidex.BoostMultiDex; -import com.mogo.cloud.socket.SocketBuildConfig; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.module.MogoModule; @@ -15,14 +14,12 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.constants.MogoServicePaths; import com.mogo.eagle.core.function.api.chat.biz.ChatConsts; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; import com.mogo.eagle.core.function.call.startup.CallerStartUpManager; +import com.mogo.eagle.core.function.main.threadopt.ThreadOptInitializer; 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.lang.reflect.Field; - /** * 默认初始化一些基础服务配置 */ @@ -80,6 +77,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); + ThreadOptInitializer.init(); /*如果是主进程**/ // if (ProcessUtils.isMainProcess(this)) { AppLaunchTimeUtils.beginTimeCalculate(AppLaunchTimeUtils.COLD_START); 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 new file mode 100644 index 0000000000..65aa172428 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/threadopt/ThreadOptInitializer.java @@ -0,0 +1,47 @@ +package com.mogo.eagle.core.function.main.threadopt; + + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.mogo.thread.opt.core.ThreadManager; +import com.mogo.thread.opt.core.annotation.Keep; +import com.mogo.thread.opt.core.config.ThreadConfig; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + + +@Keep +public class ThreadOptInitializer { + + + private static final ThreadConfig.TaskExecuteListener listener = new ThreadConfig.TaskExecuteListener() { + @Override + public boolean isEnabled() { + return true; + } + + @Override + public void onExecutorBefore(@NonNull ThreadConfig.TaskType taskType, @Nullable Object task, @Nullable String desc) { + + } + + @Override + public void onExecutorAfter(@NonNull ThreadConfig.TaskType taskType, @Nullable Object task, @Nullable String desc) { + + } + + @Override + public void onExecutorStateChanged(@NonNull ThreadPoolExecutor threadPoolExecutor, int core, int max, int active, long completed) { + + } + }; + + + public static void init() { + ThreadConfig.Builder builder = new ThreadConfig.Builder(); + builder.minKeepAliveTime(1, TimeUnit.SECONDS); + builder.maxKeepAliveTime(10, TimeUnit.SECONDS); + builder.listener(listener); + ThreadManager.INSTANCE.init(builder); + } +} diff --git a/core/function-impl/mogo-core-function-startup/build.gradle b/core/function-impl/mogo-core-function-startup/build.gradle index 9ac8c3caf2..e70626291f 100644 --- a/core/function-impl/mogo-core-function-startup/build.gradle +++ b/core/function-impl/mogo-core-function-startup/build.gradle @@ -47,7 +47,6 @@ dependencies { kapt rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.android_start_up - implementation rootProject.ext.dependencies.thread_opt implementation project(':core:mogo-core-function-call') implementation project(":test:crashreport") diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt index 29acccff70..88d0736fcc 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt @@ -7,7 +7,6 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.startup.IStartUpProvider import com.mogo.eagle.core.function.startup.stageone.APMStartup import com.mogo.eagle.core.function.startup.stageone.HttpDnsStartUp -import com.mogo.eagle.core.function.startup.stageone.ThreadOptStartup import com.mogo.eagle.core.function.startup.stagetwo.* import com.rousetime.android_startup.StartupListener import com.rousetime.android_startup.StartupManager @@ -54,7 +53,6 @@ class MogoStartUpProvider : IStartUpProvider { StartupManager.Builder() .addStartup(HttpDnsStartUp()) .addStartup(APMStartup()) - .addStartup(ThreadOptStartup()) .setConfig(config) .build(it) .start() diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/APMStartup.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/APMStartup.kt index be1cf35858..a8d46eb498 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/APMStartup.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/APMStartup.kt @@ -21,6 +21,6 @@ class APMStartup : AndroidStartup() { } override fun dependenciesByName(): List { - return listOf("com.mogo.eagle.core.function.startup.stageone.ThreadOptStartup") + return emptyList() } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt deleted file mode 100644 index 3e6e293b92..0000000000 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt +++ /dev/null @@ -1,56 +0,0 @@ -package com.mogo.eagle.core.function.startup.stageone - -import android.content.* -import android.os.Process -import android.os.Trace -import android.util.* -import com.mogo.thread.ext.core.* -import com.mogo.thread.ext.core.config.* -import com.mogo.thread.ext.core.config.priority.* -import com.mogo.thread.ext.core.trace.* -import com.rousetime.android_startup.* -import java.io.* -import java.text.* -import java.util.* -import java.util.concurrent.TimeUnit.SECONDS - -class ThreadOptStartup: AndroidStartup() { - - override fun create(context: Context): Boolean { - ThreadManager - .init(ThreadConfig.Builder() - .maxKeepAliveTime(10, SECONDS) - .minKeepAliveTime(5, SECONDS) - .priorityConfig(PriorityConfig.Builder() - .checkInterval(1, SECONDS) - .setPriority("GLThread\\s+\\d+", Process.THREAD_PRIORITY_BACKGROUND) - .setPriority("Dispatch-\\w+", Process.THREAD_PRIORITY_BACKGROUND) - .build()) - .traceConfig(TraceConfig.Builder() - .enabled(false) - .trace(object : ITrace { - override fun enter(section: String) { - //Trace.beginSection(section) - //Log.d("TTTTTT", "enter->$section" ) - } - override fun exit() { - //Trace.endSection() - } - }) - .build()) - /*.dump(DumpConfig.Builder() - .dumpLogFilePath(File(context.getExternalFilesDir(null), "thread_dump_log_${ SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.ROOT).format(Date()) }.txt").absolutePath) - .dumpPeriod(5, SECONDS) - .threadRunThreshold(10, SECONDS) - .build())*/) - return true - } - - override fun callCreateOnMainThread(): Boolean { - return true - } - - override fun waitOnMainThread(): Boolean { - return true - } -} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 5b0d7d4cf1..1b04d6a455 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.daemon=true org.gradle.configureondemand=true org.gradle.parallel=true -org.gradle.jvmargs=-Xmx4096m +org.gradle.jvmargs=-Xmx6144m #开启gradle缓存 org.gradle.caching=true android.enableBuildCache=true @@ -143,8 +143,6 @@ ADAS_DATA_LIB_CHILD_VERSION=.4 # 是否支持patch升级 PATCH_UPGRADE_SUPPORT=true -# 线程优化版本 -THREAD_OPT_VERSION=4.0.1 # matrix版本 MATRIX_VERSION=2.0.8 From 412482b54de0def98dbc162fd486e2041cdb17b5 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 27 Oct 2023 18:13:38 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[6.1.2]=20=E4=BF=AE=E5=A4=8D=E5=9B=A0?= =?UTF-8?q?=E5=88=87=E4=B8=BB=E7=BA=BF=E7=A8=8B=E5=BC=80=E5=90=AF=E9=AB=98?= =?UTF-8?q?=E5=BE=B7anr=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/TaxiBeingServerdOrdersFragment.java | 19 +++++--------- .../taxi/ui/task/TaxiCurrentTaskFragment.kt | 26 +++++++++---------- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java index 36c6e5f812..0fcc863c72 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java @@ -343,20 +343,15 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment } private void startNaviToStation(boolean isVoicePlay, double stationLat, double stationLng) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - AmapNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi(); + AmapNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi(); + double mCurLatitude = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLatitude(); + double mCurLongitude =CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLongitude(); - double mCurLatitude = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLatitude(); - double mCurLongitude =CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLongitude(); + CallerLogger.d(M_TAXI + TAG, "currentLatLng=" + mCurLatitude + " " +mCurLongitude); - CallerLogger.d(M_TAXI + TAG, "currentLatLng=" + mCurLatitude + " " +mCurLongitude); - NaviLatLng startNaviLatLng = new NaviLatLng(mCurLatitude, mCurLongitude); - NaviLatLng endNaviLatLng = new NaviLatLng(stationLat, stationLng); - AmapNaviToDestinationModel.getInstance(getContext()).initAMapNavi(startNaviLatLng, endNaviLatLng); - } - }); + NaviLatLng startNaviLatLng = new NaviLatLng(mCurLatitude, mCurLongitude); + NaviLatLng endNaviLatLng = new NaviLatLng(stationLat, stationLng); + AmapNaviToDestinationModel.getInstance(getContext()).initAMapNavi(startNaviLatLng, endNaviLatLng); AmapNaviToDestinationModel.getInstance(getContext()).setVoiceIsMute(isVoicePlay); AmapNaviToDestinationModel.getInstance(getContext()).setTaxiNaviChangedCallback(this); } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt index 509e766fdd..836708bd6b 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt @@ -599,20 +599,18 @@ class TaxiCurrentTaskFragment : BaseFragment(), } private fun startNaviToStation(isVoicePlay: Boolean, stationLat: Double, stationLng: Double) { - UiThreadHandler.post{ - AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi() - val mCurLatitude = getChassisLocationGCJ02().latitude - val mCurLongitude = getChassisLocationGCJ02().longitude - d( - TAG, - "currentLatLng=$mCurLatitude $mCurLongitude" - ) - val startNaviLatLng = NaviLatLng(mCurLatitude, mCurLongitude) - val endNaviLatLng = NaviLatLng(stationLat, stationLng) - AmapNaviToDestinationModel.getInstance(context).initAMapNavi(startNaviLatLng, endNaviLatLng) - AmapNaviToDestinationModel.getInstance(context).setVoiceIsMute(isVoicePlay) - AmapNaviToDestinationModel.getInstance(context).setTaxiNaviChangedCallback(this) - } + AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi() + val mCurLatitude = getChassisLocationGCJ02().latitude + val mCurLongitude = getChassisLocationGCJ02().longitude + d( + TAG, + "currentLatLng=$mCurLatitude $mCurLongitude" + ) + val startNaviLatLng = NaviLatLng(mCurLatitude, mCurLongitude) + val endNaviLatLng = NaviLatLng(stationLat, stationLng) + AmapNaviToDestinationModel.getInstance(context).initAMapNavi(startNaviLatLng, endNaviLatLng) + AmapNaviToDestinationModel.getInstance(context).setVoiceIsMute(isVoicePlay) + AmapNaviToDestinationModel.getInstance(context).setTaxiNaviChangedCallback(this) } /** From 142d7d1bdabdd20fe041b9ad9cedc199500b50fb Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 30 Oct 2023 10:47:26 +0800 Subject: [PATCH 3/3] =?UTF-8?q?Revert=20"[6.1.2][=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E4=BC=98=E5=8C=96]=20=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC?= =?UTF-8?q?=EF=BC=8C=E6=9B=B4=E6=94=B9=E5=88=9D=E5=A7=8B=E5=8C=96=E6=96=B9?= =?UTF-8?q?=E5=BC=8F"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 41fe5887c12e9de2daa876f7794ee16720be8f1d. --- app/matrixTrace/blackMethodList.txt | 3 +- build.gradle | 2 +- config.gradle | 4 +- .../mogo-core-function-hmi/build.gradle | 2 - .../function/main/MainMoGoApplication.java | 6 +- .../main/threadopt/ThreadOptInitializer.java | 47 ---------------- .../mogo-core-function-startup/build.gradle | 1 + .../function/startup/MogoStartUpProvider.kt | 2 + .../function/startup/stageone/APMStartup.kt | 2 +- .../startup/stageone/ThreadOptStartup.kt | 56 +++++++++++++++++++ gradle.properties | 4 +- 11 files changed, 71 insertions(+), 58 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/threadopt/ThreadOptInitializer.java create mode 100644 core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt diff --git a/app/matrixTrace/blackMethodList.txt b/app/matrixTrace/blackMethodList.txt index 502b68e02b..b1cfcf574c 100644 --- a/app/matrixTrace/blackMethodList.txt +++ b/app/matrixTrace/blackMethodList.txt @@ -1,6 +1,5 @@ [package] --keeppackage com/mogo/thread/opt/core/ --keeppackage com/mogo/eagle/core/function/main/threadopt/ +-keeppackage com/mogo/thread/ext/ -keeppackage com/mogo/launcher -keeppackage com/rousetime/android_startup/ -keeppackage com/mogo/systrace/ diff --git a/build.gradle b/build.gradle index 6dbf88f007..190f5f0714 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ buildscript { classpath "com.mogo.cloud:hook:${service_chain_version}" classpath "com.mogo.cloud:bizconfig:${plugin_version}" classpath 'com.volcengine:apm_insight_plugin:1.4.2' - classpath "com.mogo.thread.opt:plg:10.10.0" + classpath "com.mogo.thread.opt:plg:10.2.1_mogo" classpath "com.mogo.cloud:systrace:${plugin_version}" classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' classpath "com.mogo.sticky:service:${plugin_version}" diff --git a/config.gradle b/config.gradle index 03c9fb64de..108f48c3d8 100644 --- a/config.gradle +++ b/config.gradle @@ -215,7 +215,7 @@ ext { //========================= autosize ====================== androidautoSize : 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1', - thread_opt : "com.mogo.thread.opt:lib:10.10.0", + thread_opt : "com.mogo.thread.opt:lib:10.2.1_mogo", weak_network : "com.mogo.weak:network:1.0.1", btrace : "com.bytedance.btrace:rhea-core:2.0.0", @@ -240,6 +240,6 @@ ext { ] } -static boolean isM1Chip() { +boolean isM1Chip() { return System.getProperty("os.name").contains("Mac") && System.getProperty("os.arch") == "aarch64" } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/build.gradle b/core/function-impl/mogo-core-function-hmi/build.gradle index 6df031e493..238cd8709e 100644 --- a/core/function-impl/mogo-core-function-hmi/build.gradle +++ b/core/function-impl/mogo-core-function-hmi/build.gradle @@ -75,8 +75,6 @@ dependencies { implementation rootProject.ext.dependencies.koomjava implementation rootProject.ext.dependencies.koomnative implementation rootProject.ext.dependencies.koomxhook - - implementation rootProject.ext.dependencies.thread_opt api project(':test:crashreport-apmbyte') compileOnly project(':core:function-impl:mogo-core-function-datacenter') implementation project(':foudations:mogo-commons') diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 5c98f74e04..8912c45ec6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -5,6 +5,7 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_MAI import android.content.Context; import com.bytedance.boost_multidex.BoostMultiDex; +import com.mogo.cloud.socket.SocketBuildConfig; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.module.MogoModule; @@ -14,12 +15,14 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.constants.MogoServicePaths; import com.mogo.eagle.core.function.api.chat.biz.ChatConsts; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; import com.mogo.eagle.core.function.call.startup.CallerStartUpManager; -import com.mogo.eagle.core.function.main.threadopt.ThreadOptInitializer; 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.lang.reflect.Field; + /** * 默认初始化一些基础服务配置 */ @@ -77,7 +80,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); - ThreadOptInitializer.init(); /*如果是主进程**/ // if (ProcessUtils.isMainProcess(this)) { AppLaunchTimeUtils.beginTimeCalculate(AppLaunchTimeUtils.COLD_START); 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 deleted file mode 100644 index 65aa172428..0000000000 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/threadopt/ThreadOptInitializer.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.mogo.eagle.core.function.main.threadopt; - - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import com.mogo.thread.opt.core.ThreadManager; -import com.mogo.thread.opt.core.annotation.Keep; -import com.mogo.thread.opt.core.config.ThreadConfig; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - - -@Keep -public class ThreadOptInitializer { - - - private static final ThreadConfig.TaskExecuteListener listener = new ThreadConfig.TaskExecuteListener() { - @Override - public boolean isEnabled() { - return true; - } - - @Override - public void onExecutorBefore(@NonNull ThreadConfig.TaskType taskType, @Nullable Object task, @Nullable String desc) { - - } - - @Override - public void onExecutorAfter(@NonNull ThreadConfig.TaskType taskType, @Nullable Object task, @Nullable String desc) { - - } - - @Override - public void onExecutorStateChanged(@NonNull ThreadPoolExecutor threadPoolExecutor, int core, int max, int active, long completed) { - - } - }; - - - public static void init() { - ThreadConfig.Builder builder = new ThreadConfig.Builder(); - builder.minKeepAliveTime(1, TimeUnit.SECONDS); - builder.maxKeepAliveTime(10, TimeUnit.SECONDS); - builder.listener(listener); - ThreadManager.INSTANCE.init(builder); - } -} diff --git a/core/function-impl/mogo-core-function-startup/build.gradle b/core/function-impl/mogo-core-function-startup/build.gradle index e70626291f..9ac8c3caf2 100644 --- a/core/function-impl/mogo-core-function-startup/build.gradle +++ b/core/function-impl/mogo-core-function-startup/build.gradle @@ -47,6 +47,7 @@ dependencies { kapt rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.android_start_up + implementation rootProject.ext.dependencies.thread_opt implementation project(':core:mogo-core-function-call') implementation project(":test:crashreport") diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt index 88d0736fcc..29acccff70 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt @@ -7,6 +7,7 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.startup.IStartUpProvider import com.mogo.eagle.core.function.startup.stageone.APMStartup import com.mogo.eagle.core.function.startup.stageone.HttpDnsStartUp +import com.mogo.eagle.core.function.startup.stageone.ThreadOptStartup import com.mogo.eagle.core.function.startup.stagetwo.* import com.rousetime.android_startup.StartupListener import com.rousetime.android_startup.StartupManager @@ -53,6 +54,7 @@ class MogoStartUpProvider : IStartUpProvider { StartupManager.Builder() .addStartup(HttpDnsStartUp()) .addStartup(APMStartup()) + .addStartup(ThreadOptStartup()) .setConfig(config) .build(it) .start() diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/APMStartup.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/APMStartup.kt index a8d46eb498..be1cf35858 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/APMStartup.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/APMStartup.kt @@ -21,6 +21,6 @@ class APMStartup : AndroidStartup() { } override fun dependenciesByName(): List { - return emptyList() + return listOf("com.mogo.eagle.core.function.startup.stageone.ThreadOptStartup") } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt new file mode 100644 index 0000000000..3e6e293b92 --- /dev/null +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt @@ -0,0 +1,56 @@ +package com.mogo.eagle.core.function.startup.stageone + +import android.content.* +import android.os.Process +import android.os.Trace +import android.util.* +import com.mogo.thread.ext.core.* +import com.mogo.thread.ext.core.config.* +import com.mogo.thread.ext.core.config.priority.* +import com.mogo.thread.ext.core.trace.* +import com.rousetime.android_startup.* +import java.io.* +import java.text.* +import java.util.* +import java.util.concurrent.TimeUnit.SECONDS + +class ThreadOptStartup: AndroidStartup() { + + override fun create(context: Context): Boolean { + ThreadManager + .init(ThreadConfig.Builder() + .maxKeepAliveTime(10, SECONDS) + .minKeepAliveTime(5, SECONDS) + .priorityConfig(PriorityConfig.Builder() + .checkInterval(1, SECONDS) + .setPriority("GLThread\\s+\\d+", Process.THREAD_PRIORITY_BACKGROUND) + .setPriority("Dispatch-\\w+", Process.THREAD_PRIORITY_BACKGROUND) + .build()) + .traceConfig(TraceConfig.Builder() + .enabled(false) + .trace(object : ITrace { + override fun enter(section: String) { + //Trace.beginSection(section) + //Log.d("TTTTTT", "enter->$section" ) + } + override fun exit() { + //Trace.endSection() + } + }) + .build()) + /*.dump(DumpConfig.Builder() + .dumpLogFilePath(File(context.getExternalFilesDir(null), "thread_dump_log_${ SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.ROOT).format(Date()) }.txt").absolutePath) + .dumpPeriod(5, SECONDS) + .threadRunThreshold(10, SECONDS) + .build())*/) + return true + } + + override fun callCreateOnMainThread(): Boolean { + return true + } + + override fun waitOnMainThread(): Boolean { + return true + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 1b04d6a455..5b0d7d4cf1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.daemon=true org.gradle.configureondemand=true org.gradle.parallel=true -org.gradle.jvmargs=-Xmx6144m +org.gradle.jvmargs=-Xmx4096m #开启gradle缓存 org.gradle.caching=true android.enableBuildCache=true @@ -143,6 +143,8 @@ ADAS_DATA_LIB_CHILD_VERSION=.4 # 是否支持patch升级 PATCH_UPGRADE_SUPPORT=true +# 线程优化版本 +THREAD_OPT_VERSION=4.0.1 # matrix版本 MATRIX_VERSION=2.0.8