From 8c951e1fd0245339b73bdaa118a302a4e2c24625 Mon Sep 17 00:00:00 2001 From: dengshiwei Date: Fri, 10 Nov 2023 11:11:53 +0800 Subject: [PATCH] Release 4.0.1 --- build.gradle | 2 +- gradle.properties | 1 - .../android/plugin/common/VersionConstant.kt | 2 +- .../plugin/configs/SAConfigHookHelper.kt | 5 +++-- .../analytics/android/plugin/utils/SAUtils.kt | 2 +- .../viewclick/SensorsAutoTrackMethodVisitor.kt | 18 ++++++++---------- 6 files changed, 14 insertions(+), 16 deletions(-) diff --git a/build.gradle b/build.gradle index ea24d1f..687f4b9 100644 --- a/build.gradle +++ b/build.gradle @@ -11,5 +11,5 @@ plugins { ext { agpVersion = '7.3.1' //used for compile - pluginVersion = '4.0.0-beta' //plugin version + pluginVersion = '4.0.1' //plugin version } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index b21f7a8..ef08528 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,7 +21,6 @@ kotlin.code.style=official # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true - #sensorsAnalytics.isHookOnMethodEnter=true #sensorsAnalytics.isAndroidTv=true #sensorsAnalytics.asmVersion=ASM7 \ No newline at end of file diff --git a/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/common/VersionConstant.kt b/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/common/VersionConstant.kt index 4049c9b..8d6c37e 100644 --- a/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/common/VersionConstant.kt +++ b/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/common/VersionConstant.kt @@ -2,7 +2,7 @@ package com.sensorsdata.analytics.android.plugin.common object VersionConstant { //Plugin Version - const val VERSION = "4.0.0-beta" + const val VERSION = "4.0.1" // MIN SDK Version const val MIN_SDK_VERSION = "6.6.9" } \ No newline at end of file diff --git a/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/configs/SAConfigHookHelper.kt b/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/configs/SAConfigHookHelper.kt index 879884a..b4834e5 100644 --- a/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/configs/SAConfigHookHelper.kt +++ b/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/configs/SAConfigHookHelper.kt @@ -5,13 +5,14 @@ import com.sensorsdata.analytics.android.plugin.extension.SAExtension import com.sensorsdata.analytics.android.plugin.visitor.SensorsAnalyticsMethodCell import org.objectweb.asm.ClassVisitor import java.util.* +import java.util.concurrent.CopyOnWriteArrayList class SAConfigHookHelper() { // 当前 class 文件对应的控制项,单个 class 文件共用 - private var sClassInConfigCells = ArrayList() + private var sClassInConfigCells = CopyOnWriteArrayList() // 扫描当前类命中的控制项 - private val mHookMethodCells = ArrayList() + private val mHookMethodCells = CopyOnWriteArrayList() fun initConfigCellInClass(className: String) { sClassInConfigCells.clear() diff --git a/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/utils/SAUtils.kt b/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/utils/SAUtils.kt index 76dade5..e03fe79 100644 --- a/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/utils/SAUtils.kt +++ b/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/utils/SAUtils.kt @@ -30,7 +30,7 @@ object SAUtils { val maxLength = Math.max(v1Array.size, v2Array.size); var str1: String? var str2: String? - for (index in 0..maxLength) { + for (index in 0 until maxLength) { if (v1Array.size > index) { str1 = v1Array[index] } else { diff --git a/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/viewclick/SensorsAutoTrackMethodVisitor.kt b/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/viewclick/SensorsAutoTrackMethodVisitor.kt index 4dffb28..6ee1a75 100644 --- a/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/viewclick/SensorsAutoTrackMethodVisitor.kt +++ b/sa-gradle-plugin/src/main/kotlin/com/sensorsdata/analytics/android/plugin/viewclick/SensorsAutoTrackMethodVisitor.kt @@ -139,12 +139,10 @@ class SensorsAutoTrackMethodVisitor( val sensorsAnalyticsMethodCell: SensorsAnalyticsMethodCell? = SensorsFragmentHookConfig.FRAGMENT_METHODS[nameDesc] localIds = ArrayList() - val types = Type.getArgumentTypes( - desc - ) - for (i in 1 until sensorsAnalyticsMethodCell!!.paramsCount) { - val localId = newLocal(types[i - 1]) - mMethodVisitor.visitVarInsn(sensorsAnalyticsMethodCell.opcodes.get(i), i) + val types = Type.getArgumentTypes(sensorsAnalyticsMethodCell?.agentDesc) + for (i in 0 until sensorsAnalyticsMethodCell!!.paramsCount) { + val localId = newLocal(types[i]) + mMethodVisitor.visitVarInsn(sensorsAnalyticsMethodCell.opcodes[i], i) mMethodVisitor.visitVarInsn( SAUtils.convertOpcodes( sensorsAnalyticsMethodCell.opcodes.get(i) @@ -337,11 +335,11 @@ class SensorsAutoTrackMethodVisitor( SensorsFragmentHookConfig.FRAGMENT_METHODS[nameDesc] if (sensorsAnalyticsMethodCell != null) { visitedFragMethods.add(nameDesc) - mMethodVisitor.visitVarInsn(ALOAD, 0) - for (i in 1 until sensorsAnalyticsMethodCell.paramsCount) { +// mMethodVisitor.visitVarInsn(ALOAD, 0) + for (i in 0 until sensorsAnalyticsMethodCell.paramsCount) { mMethodVisitor.visitVarInsn( - sensorsAnalyticsMethodCell.opcodes.get(i), - localIds!![i - 1] + sensorsAnalyticsMethodCell.opcodes[i], + localIds!![i] ) } mMethodVisitor.visitMethodInsn(