[2.15.0] 整合基于ByteX开发的自研及三方插件

This commit is contained in:
renwj
2023-04-06 19:42:43 +08:00
parent a418616ae3
commit 695fd6188d
50 changed files with 184 additions and 347 deletions

View File

@@ -1,5 +1,4 @@
apply plugin: 'com.android.library'
apply plugin: 'com.alibaba.arouter'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

View File

@@ -1,5 +1,4 @@
apply plugin: 'com.android.library'
apply plugin: 'com.alibaba.arouter'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

View File

@@ -2,7 +2,6 @@ apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.alibaba.arouter'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -1,5 +1,4 @@
apply plugin: 'com.android.library'
apply plugin: 'com.alibaba.arouter'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

View File

@@ -1,5 +1,4 @@
apply plugin: 'com.android.library'
apply plugin: 'com.alibaba.arouter'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

View File

@@ -1,5 +1,4 @@
apply plugin: 'com.android.library'
apply plugin: 'com.alibaba.arouter'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

View File

@@ -4,123 +4,11 @@ import groovy.json.JsonSlurper
import java.text.SimpleDateFormat
apply plugin: 'com.android.application'
apply plugin: 'com.alibaba.arouter'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'android-aspectjx'
apply plugin: 'bugly'
def isReleaseBuild = isReleaseBuild()
//apply ByteX宿主
if (!isAndroidTestBuild()) {
apply plugin: 'bytex'
ByteX {
enable true
enableInDebug true
logLevel "DEBUG"
}
}
if (!isAndroidTestBuild()) {
apply plugin: 'bytex.notsticky.service'
}
if (!isAndroidTestBuild()) {
apply plugin: 'chain.log.hook'
hooklog {
enableTraceToServer false
enableLoggerToLocal true
}
apply plugin: 'biz.config.hook'
}
if (!isAndroidTestBuild()) {
apply plugin: 'apm-plugin'
}
if (!isAndroidTestBuild()) {
apply plugin: 'bytex.threadOpt'
thread_opt {
enable true
enableInDebug true
logLevel "DEBUG"
}
}
if (!isAndroidTestBuild()) {
apply plugin: 'LancetX'
LancetX {
enable true
enableInDebug true
weaveGroup {
anr_fix {
enable true
}
crash_fix {
enable true
}
memory_leak {
enable true
}
textview_opt {
enable true
}
}
}
}
//if (!isAndroidTestBuild()) {
// /**
// * 方便使用systrace工具在工程侧打点便于分析工程侧性能问题
// */
// apply plugin: 'bytex.systrace'
// systrace {
// /**
// * 交付时要关闭,会有性能损耗
// */
// enable false
// enableInDebug false
// /**
// * - 是否使用[Trace.beginAsyncSection(String, int)/Trace.endAsyncSection(String, int)]进行打点
// * - 默认使用[Trace.beginSection(String)/Trace.endSection()]进行打点
// */
// isTraceAsync false
// /**
// * - 是否在运行时只针对主线程打点,其它线程不打
// */
// isOnlyMainThread false
//
// /**
// * - 是否忽略对类的静态构造方法打点
// * - 默认不忽略
// */
// isIgnoreClinitMethod false
//
// /**
// * - 是否忽略对类中的简单方法打点
// * 简单方法定义:
// * - 空方法
// * - get/set 方法
// * - 单独的方法,方法体内没有调用其它方法
// * - 默认不忽略
// */
// isIgnoreSampleMethod false
//
// /**
// * - 针对特定类集合,配置打点白名单,在此集合中的类中的所有方法不打点
// * - 支持正则表达式
// */
// whiteListForClass = []
//
// /**
// * - 针对特定包名集合,配置打点白名单,所有类以此包名为前缀的类不打点
// * - 支持正则表达式
// */
// whiteListForPackage = []
// }
//}
apply from: rootProject.file('gradle/bytex/bytex.gradle')
bugly {
appId = 'ac71228f85' // 注册时分配的App ID
@@ -334,11 +222,6 @@ repositories {
}
}
aspectjx {
include "com.mogo.eagle.core.function.chat"
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation rootProject.ext.dependencies.androidxappcompat
@@ -379,37 +262,8 @@ dependencies {
androidTestImplementation rootProject.ext.dependencies.androidx_runner
androidTestImplementation rootProject.ext.dependencies.androidx_espresso_core
androidTestImplementation rootProject.ext.dependencies.localbroadcastmanager
// if (isAndroidTestBuild()) {
// implementation "com.mogo.thread.opt:lib:${THREAD_OPT_VERSION}"
// }
}
if (!isAndroidTestBuild()) {
ApmPlugin {
// 是否进行插桩
enable true
// 是否在Debug包插桩默认不插桩
enableInDebug true
// DEBUG("DEBUG"), INFO("INFO"), WARN("WARN"), ERROR("ERROR");
// INFO 级别Log会汇总所有被插桩处理的类供查看路径 app/build/ByteX/ApmPlugin
logLevel "DEBUG"
// 启动分析开关监控App启动耗时需要同时开启pageLoadSwitch
startSwitch = true
// 页面响应开关监控Activity的生命周期耗时
pageLoadSwitch = true
// 网络监控开关监控okhttp3的网络请求
okHttp3Switch = false
// 白名单下的包进行插桩,需要填写要插装类所在的包名,支持前缀配置
whiteList = [
"com.mogo"
]
// 黑名单包下类不进行插桩,可以配置包名和类名,没有可以填空
blackList = [
]
}
}
android.applicationVariants.all { variant ->
def buildTime = new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08:00"))
@@ -464,25 +318,6 @@ static def getBuildTime() {
return "\"${buildTime}\""
}
boolean isAndroidTestBuild() {
for (String s : gradle.startParameter.taskNames) {
if (s.contains("AndroidTest")) {
return true
}
}
return false
}
boolean isReleaseBuild() {
for (String s : gradle.startParameter.taskNames) {
if (s.contains("Release") | s.contains("release")) {
return true
}
}
return false
}
Object readFileToJson(env) {
try {
def businessType = project.hasProperty('business')

View File

@@ -2,7 +2,7 @@
apply from: "config.gradle"
apply from: "javadoc.gradle"
buildscript {
apply from: rootProject.file('gradle/ext.gradle')
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
@@ -22,20 +22,19 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.30'
classpath "com.alibaba:arouter-register:1.0.12-mogo"
classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'
classpath "com.android.tools.build:gradle:${gradle_version}"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}"
classpath "com.alibaba:arouter-register:${plugin_version}"
classpath 'com.tencent.bugly:symtabfileuploader:2.2.1'
classpath "com.bytedance.android.byteX:base-plugin:0.3.0"
classpath "com.mogo.cloud:hook:${HOOK_LOG_VERSION}"
classpath "com.mogo.cloud:bizconfig:${BIZCONFIG_VERSION}"
classpath 'com.volcengine:apm_insight_plugin:1.4.1'
classpath "com.mogo.thread.opt:plg:${THREAD_OPT_VERSION}"
classpath 'com.mogo.cloud:systrace:1.0.1'
classpath "com.bytedance.android.byteX:base-plugin:${plugin_version}"
classpath "com.mogo.cloud:hook:${plugin_version}"
classpath "com.mogo.cloud:bizconfig:${plugin_version}"
classpath 'com.volcengine:apm_insight_plugin:1.4.2'
classpath "com.mogo.thread.opt:plg:${plugin_version}"
classpath "com.mogo.cloud:systrace:${plugin_version}"
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
classpath 'com.mogo.sticky:service:1.0.8'
classpath 'io.github.knight-zxw:lancet-plugin:0.0.4.8_mogo'
classpath "com.mogo.sticky:service:${plugin_version}"
classpath "io.github.knight-zxw:lancet-plugin:${plugin_version}"
// classpath ("com.tencent.matrix:matrix-gradle-plugin:0.6.6") { changing = true }
}
@@ -133,3 +132,12 @@ subprojects.each {
}
}
}
boolean isAndroidTestBuild() {
for (String s : gradle.startParameter.taskNames) {
if (s.contains("AndroidTest")) {
return true
}
}
return false
}

View File

@@ -1,3 +1,4 @@
apply from: rootProject.file('gradle/ext.gradle')
ext {
time = ""
// kotlin_version = "1.4.31"
@@ -86,8 +87,6 @@ ext {
coroutinescore : "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2",
coroutinesandroid : "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.2",
aspectj : "org.aspectj:aspectjrt:1.8.9",
adasapi : "com.zhidao.autopilot.support:adas:1.0.6.15",
adasconfigapi : "com.zhidao.adasconfig:adasconfig:1.1.5.2",
@@ -112,10 +111,10 @@ ext {
circleimageview : "de.hdodenhof:circleimageview:3.0.1",
//plugin
mogochainbase : "com.mogo.cloud:service-chain:${SERVICE_CHAIN_VERSION}",
mogochainplugin : "com.mogo.cloud:hook:${HOOK_LOG_VERSION}",
mogoservicebiz : "com.mogo.cloud:service-biz:${SERVICE_BIZ_VERSION}",
mogobizconfig : "com.mogo.cloud:bizconfig:${BIZCONFIG_VERSION}",
mogochainbase : "com.mogo.cloud:service-chain:${plugin_version}",
mogochainplugin : "com.mogo.cloud:hook:${plugin_version}",
mogoservicebiz : "com.mogo.cloud:service-biz:${plugin_version}",
mogobizconfig : "com.mogo.cloud:bizconfig:${plugin_version}",
//========================= 旧版本架构 Maven 版本管理 =========================
// modules
@@ -213,7 +212,7 @@ ext {
//========================= autosize ======================
androidautoSize : 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1',
thread_opt : "com.mogo.thread.opt:lib:${THREAD_OPT_VERSION}"
thread_opt : "com.mogo.thread.opt:lib:${plugin_version}"
]
android = [
launcherApplicationId : "com.mogo.launcher",

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
@@ -53,7 +52,6 @@ dependencies {
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.arouter
implementation rootProject.ext.dependencies.rxandroid
compileOnly rootProject.ext.dependencies.aspectj
kapt rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.mogowebsocket
implementation rootProject.ext.dependencies.circleimageview

View File

@@ -1,74 +0,0 @@
package com.mogo.eagle.core.function.chat.facade.aop
import android.os.Looper
import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_CHAT
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.reflect.CodeSignature
import org.aspectj.lang.reflect.MethodSignature
open class BaseAspectj {
companion object {
@Volatile
private var enable: Boolean = DebugConfig.isDebug()
}
fun enterMethod(joinPoint: ProceedingJoinPoint) {
if (!enable) return
val signature = joinPoint.signature as CodeSignature
val cls = signature.declaringType
val methodName = signature.name
val parameterNames = signature.parameterNames
val parameterValues = joinPoint.args
val builder = StringBuilder("\u21E2 ")
builder.append(methodName).append('(')
parameterValues.forEachIndexed { index, _ ->
if (index > 0) {
builder.append(",")
}
builder.append(parameterNames[index]).append('=')
builder.append(parameterValues[index])
}
builder.append(')')
if (Looper.myLooper() != Looper.getMainLooper()) {
builder.append("[Thread:\"").append(Thread.currentThread().name).append("\"]")
}
CallerLogger.d(M_CHAT + asTag(cls), builder.toString())
}
fun exitMethod(joinPoint: ProceedingJoinPoint, result: Any?, lengthMill: Long) {
if (!enable) return
val signature = joinPoint.signature
val cls = signature.declaringType
val methodName = signature.name
val hasReturnType = signature is MethodSignature
&& signature.returnType != Void.TYPE
val builder = StringBuilder("\u21E0 ")
.append(methodName)
.append("[")
.append(lengthMill)
.append("ms]")
if (hasReturnType) {
builder.append(" = ")
builder.append(result.let {
result.toString()
})
}
CallerLogger.d(M_CHAT + asTag(cls), builder.toString())
}
private fun asTag(cls: Class<*>): String {
if (cls.isAnonymousClass) {
return asTag(cls.enclosingClass!!)
}
return cls.simpleName
}
}

View File

@@ -1,5 +0,0 @@
package com.mogo.eagle.core.function.chat.facade.aop
@Target(AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CONSTRUCTOR)
@kotlin.annotation.Retention(AnnotationRetention.RUNTIME)
annotation class DebugLog

View File

@@ -1,42 +0,0 @@
package com.mogo.eagle.core.function.chat.facade.aop
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.annotation.Around
import org.aspectj.lang.annotation.Aspect
import org.aspectj.lang.annotation.Pointcut
import java.util.concurrent.TimeUnit
@Aspect
class LogAspectj : BaseAspectj() {
@Pointcut("within(@com.mogo.eagle.core.function.chat.facade.aop.DebugLog *)")
fun withinAnnotatedClass() {
}
@Pointcut("execution(!synthetic * *(..))&& withinAnnotatedClass()")
fun methodInsideAnnotatedType() {
}
@Pointcut("execution(!synthetic *.new(..))&& withinAnnotatedClass()")
fun constructorInsideAnnotatedType() {
}
@Pointcut("execution(@com.mogo.eagle.core.function.chat.facade.aop.DebugLog * *(..))|| methodInsideAnnotatedType()")
fun method() {
}
@Pointcut("execution(@com.mogo.eagle.core.function.chat.facade.aop.DebugLog *.new(..))|| constructorInsideAnnotatedType()")
fun constructor() {
}
@Around("method() || constructor()")
fun logExecute(joinPoint: ProceedingJoinPoint) {
enterMethod(joinPoint)
val startNanos = System.nanoTime()
val result = joinPoint.proceed()
val stopNanos = System.nanoTime()
val lengthMill = TimeUnit.NANOSECONDS.toMillis(stopNanos - startNanos)
exitMethod(joinPoint, result, lengthMill)
}
}

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
id 'com.google.protobuf'
}

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -7,7 +7,6 @@ import org.gradle.api.invocation.*
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
id 'com.alibaba.arouter'
id 'kotlin-kapt'
}

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
id 'com.google.protobuf'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion

View File

@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'com.alibaba.arouter'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -56,11 +56,11 @@ bytex.forbidUseLenientMutationDuringGetArtifact=true
bytex.verifyProguardConfigurationChanged=false
bytex.ASM_API=ASM7
HOOK_LOG_VERSION=1.6.1
SERVICE_CHAIN_VERSION=1.1.0
#HOOK_LOG_VERSION=1.6.1
#SERVICE_CHAIN_VERSION=1.1.0
BIZCONFIG_VERSION=1.3.2
SERVICE_BIZ_VERSION=1.2.4
#BIZCONFIG_VERSION=1.3.2
#SERVICE_BIZ_VERSION=1.2.4
################ 外部依赖引用 ################
# loglib
LOGLIB_VERSION=1.5.24
@@ -144,8 +144,7 @@ ADAS_DATA_LIB_GROUP=com.zhjt.mogo.adas.data
ADAS_DATA_LIB_POM_ARTIFACT_ID=adas-data
ADAS_DATA_LIB_CHILD_VERSION=.0
# 线程优化版本
THREAD_OPT_VERSION=4.0.1
MOGO_PLUGIN_VERSION=1.0.0.31
# 是否支持patch升级
PATCH_UPGRADE_SUPPORT=true

16
gradle/bytex/bytex.gradle Normal file
View File

@@ -0,0 +1,16 @@
//apply ByteX宿主
if (!rootProject.isAndroidTestBuild()) {
apply plugin: 'bytex'
ByteX {
enable true
enableInDebug true
}
}
apply from: rootProject.file('gradle/bytex/bytex_config.gradle')
apply from: rootProject.file('gradle/bytex/bytex_router.gradle')
apply from: rootProject.file('gradle/bytex/bytex_log_chain.gradle')
apply from: rootProject.file('gradle/bytex/bytex_sticky_service.gradle')
apply from: rootProject.file('gradle/bytex/bytex_thread_opt.gradle')
apply from: rootProject.file('gradle/bytex/bytex_lancetx.gradle')
apply from: rootProject.file('gradle/bytex/bytex_apm.gradle')
apply from: rootProject.file('gradle/bytex/bytex_systrace.gradle')

View File

@@ -0,0 +1,26 @@
if (!rootProject.isAndroidTestBuild()) {
apply plugin: 'apm-plugin'
ApmPlugin {
// 是否进行插桩
enable true
// 是否在Debug包插桩默认不插桩
enableInDebug true
// DEBUG("DEBUG"), INFO("INFO"), WARN("WARN"), ERROR("ERROR");
// INFO 级别Log会汇总所有被插桩处理的类供查看路径 app/build/ByteX/ApmPlugin
logLevel "DEBUG"
// 启动分析开关监控App启动耗时需要同时开启pageLoadSwitch
startSwitch = true
// 页面响应开关监控Activity的生命周期耗时
pageLoadSwitch = true
// 网络监控开关监控okhttp3的网络请求
okHttp3Switch = false
// 白名单下的包进行插桩,需要填写要插装类所在的包名,支持前缀配置
whiteList = [
"com.mogo"
]
// 黑名单包下类不进行插桩,可以配置包名和类名,没有可以填空
blackList = [
]
}
}

View File

@@ -0,0 +1,4 @@
if (!rootProject.isAndroidTestBuild()) {
apply plugin: 'biz.config.hook'
}

View File

@@ -0,0 +1,22 @@
if (!rootProject.isAndroidTestBuild()) {
apply plugin: 'LancetX'
LancetX {
enable true
enableInDebug true
weaveGroup {
anr_fix {
enable true
}
crash_fix {
enable true
}
memory_leak {
enable true
}
textview_opt {
enable true
}
}
}
}

View File

@@ -0,0 +1,8 @@
if (!rootProject.isAndroidTestBuild()) {
apply plugin: 'chain.log.hook'
hooklog {
enableTraceToServer false
enableLoggerToLocal true
}
}

View File

@@ -0,0 +1,8 @@
if (!rootProject.isAndroidTestBuild()) {
apply plugin: 'bytex.arouter'
arouter {
enable true
enableInDebug true
}
}

View File

@@ -0,0 +1,3 @@
if (!rootProject.isAndroidTestBuild()) {
apply plugin: 'bytex.notsticky.service'
}

View File

@@ -0,0 +1,50 @@
//if (!isAndroidTestBuild()) {
// /**
// * 方便使用systrace工具在工程侧打点便于分析工程侧性能问题
// */
// apply plugin: 'bytex.systrace'
// systrace {
// /**
// * 交付时要关闭,会有性能损耗
// */
// enable false
// enableInDebug false
// /**
// * - 是否使用[Trace.beginAsyncSection(String, int)/Trace.endAsyncSection(String, int)]进行打点
// * - 默认使用[Trace.beginSection(String)/Trace.endSection()]进行打点
// */
// isTraceAsync false
// /**
// * - 是否在运行时只针对主线程打点,其它线程不打
// */
// isOnlyMainThread false
//
// /**
// * - 是否忽略对类的静态构造方法打点
// * - 默认不忽略
// */
// isIgnoreClinitMethod false
//
// /**
// * - 是否忽略对类中的简单方法打点
// * 简单方法定义:
// * - 空方法
// * - get/set 方法
// * - 单独的方法,方法体内没有调用其它方法
// * - 默认不忽略
// */
// isIgnoreSampleMethod false
//
// /**
// * - 针对特定类集合,配置打点白名单,在此集合中的类中的所有方法不打点
// * - 支持正则表达式
// */
// whiteListForClass = []
//
// /**
// * - 针对特定包名集合,配置打点白名单,所有类以此包名为前缀的类不打点
// * - 支持正则表达式
// */
// whiteListForPackage = []
// }
//}

View File

@@ -0,0 +1,9 @@
if (!rootProject.isAndroidTestBuild()) {
apply plugin: 'bytex.threadOpt'
thread_opt {
enable true
enableInDebug true
logLevel "DEBUG"
}
}

5
gradle/ext.gradle Normal file
View File

@@ -0,0 +1,5 @@
ext {
gradle_version = '3.5.3'
kotlin_version = '1.5.30'
plugin_version = '10.0.0_mogo'
}

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {

View File

@@ -3,7 +3,6 @@ plugins {
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
id 'com.alibaba.arouter'
}
android {