Skip to content

Commit f1c8d16

Browse files
author
weiqiangliu
committed
Release 3.5.0
1 parent b07d0c9 commit f1c8d16

28 files changed

+1269
-986
lines changed

plugin/ext.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
project.ext {
2-
pluginVersion = '3.4.9'
2+
pluginVersion = '3.5.0'
33
Properties properties = new Properties()
44
if (project.file('local.properties').exists()) {
55
properties.load(project.file('local.properties').newDataInputStream())

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/ClassNameAnalytics.groovy

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,30 @@
1616
*/
1717
package com.sensorsdata.analytics.android.plugin
1818

19+
import com.sensorsdata.analytics.android.plugin.core.HookConstant
1920
import com.sensorsdata.analytics.android.plugin.version.SensorsDataSDKVersionHelper
2021

2122
class ClassNameAnalytics {
2223
private static final String PACKAGE_START = "com.sensorsdata.analytics"
2324
private static final String KEY_KEYBOARD = "KeyboardViewUtil"
2425
public String className
2526
boolean isShouldModify = false
26-
boolean isSensorsDataAPI = false
27-
boolean isSensorsDataUtils = false
28-
boolean isOAIDHelper = false
29-
boolean isSensorsDataVersion = false
30-
boolean isSALog = false
31-
boolean isKeyboardViewUtil = false
32-
def methodCells = new ArrayList<SensorsAnalyticsMethodCell>()
33-
boolean isAppWebViewInterface = false
27+
public boolean isSensorsDataAPI = false
28+
public boolean isSensorsDataUtils = false
29+
public boolean isOAIDHelper = false
30+
public boolean isSensorsDataVersion = false
31+
public boolean isSALog = false
32+
public boolean isKeyboardViewUtil = false
33+
public boolean isAppWebViewInterface = false
3434

3535
ClassNameAnalytics(String className) {
3636
this.className = className
37-
isSensorsDataAPI = (className == 'com.sensorsdata.analytics.android.sdk.SensorsDataAPI')
38-
isSensorsDataUtils = (className == 'com.sensorsdata.analytics.android.sdk.util.SensorsDataUtils')
39-
isOAIDHelper = (className == 'com.sensorsdata.analytics.android.sdk.advert.utils.OaidHelper')
40-
isSALog = (className == 'com.sensorsdata.analytics.android.sdk.SALog')
41-
isAppWebViewInterface = ((className == 'com.sensorsdata.analytics.android.sdk.AppWebViewInterface')
42-
|| (className == 'com.sensorsdata.analytics.android.sdk.visual.WebViewVisualInterface'))
37+
isSensorsDataAPI = (className == HookConstant.SENSORS_DATA_API)
38+
isSensorsDataUtils = (className == HookConstant.SENSORS_DATA_UTILS)
39+
isOAIDHelper = (className == HookConstant.OAID_HELPER)
40+
isSALog = (className == HookConstant.SA_LOG)
41+
isAppWebViewInterface = ((className == HookConstant.APP_JS_INTERFACE)
42+
|| (className == HookConstant.VISUAL_JS_INTERFACE))
4343
isKeyboardViewUtil = (className.startsWith(PACKAGE_START) && className.endsWith(KEY_KEYBOARD))
4444
isSensorsDataVersion = className.endsWith(SensorsDataSDKVersionHelper.VERSION_KEY_SENSORDATA_VERSION_CONFIG)
4545
}

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/SensorsAnalyticsClassVisitor.groovy

Lines changed: 37 additions & 722 deletions
Large diffs are not rendered by default.

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/SensorsAnalyticsExtension.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package com.sensorsdata.analytics.android.plugin
1818

19+
import com.sensorsdata.analytics.android.plugin.configs.SensorsAnalyticsSDKExtension
1920
import org.gradle.api.Action
2021
import org.gradle.internal.reflect.Instantiator
2122

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/SensorsAnalyticsHookConfig.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616
*/
1717
package com.sensorsdata.analytics.android.plugin
1818

19+
import com.sensorsdata.analytics.android.plugin.viewclick.SensorsAnalyticsMethodCell
1920
import org.objectweb.asm.Opcodes
2021

2122
class SensorsAnalyticsHookConfig {
22-
public static final String SENSORS_ANALYTICS_API = "com/sensorsdata/analytics/android/sdk/SensorsDataAutoTrackHelper"
23+
public static final String SENSORS_ANALYTICS_API = "com/sensorsdata/analytics/android/autotrack/aop/SensorsDataAutoTrackHelper"
2324
public final static HashMap<String, SensorsAnalyticsMethodCell> INTERFACE_METHODS = new HashMap<>()
2425
public final static HashMap<String, SensorsAnalyticsMethodCell> CLASS_METHODS = new HashMap<>()
2526

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/SensorsAnalyticsPlugin.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package com.sensorsdata.analytics.android.plugin
1919
import com.android.build.gradle.AppExtension
2020
import com.android.build.gradle.BaseExtension
2121
import com.android.build.gradle.LibraryExtension
22+
import com.sensorsdata.analytics.android.plugin.utils.Logger
2223
import com.sensorsdata.analytics.android.plugin.utils.VersionUtils
2324
import org.gradle.api.Plugin
2425
import org.gradle.api.Project

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/SensorsAnalyticsSDKHookConfig.groovy

Lines changed: 0 additions & 185 deletions
This file was deleted.

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/SensorsAnalyticsTransform.groovy

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import com.android.build.api.transform.TransformInvocation
2929
import com.android.build.api.transform.TransformOutputProvider
3030
import com.android.build.gradle.internal.pipeline.TransformManager
3131
import com.android.ide.common.internal.WaitableExecutor
32+
import com.sensorsdata.analytics.android.plugin.utils.Logger
33+
import com.sensorsdata.analytics.android.plugin.utils.ModuleUtils
3234
import com.sensorsdata.analytics.android.plugin.utils.VersionUtils
3335
import com.sensorsdata.analytics.android.plugin.version.SensorsDataSDKVersionHelper
3436
import groovy.io.FileType
@@ -49,8 +51,8 @@ import java.util.jar.JarOutputStream
4951

5052
class SensorsAnalyticsTransform extends Transform {
5153
private SensorsAnalyticsTransformHelper transformHelper
52-
public static final String VERSION = "3.4.9"
53-
public static final String MIN_SDK_VERSION = "5.4.3"
54+
public static final String VERSION = "3.5.0"
55+
public static final String MIN_SDK_VERSION = "6.5.0"
5456
private WaitableExecutor waitableExecutor
5557
private URLClassLoader urlClassLoader
5658
// “com.sensorsdata.analytics.android.sdk.SensorsDataAPI” 类所在路径
@@ -185,6 +187,7 @@ class SensorsAnalyticsTransform extends Transform {
185187
if(!isProjectLibrary) {
186188
checkSensorsSDK()
187189
}
190+
ModuleUtils.checkModuleStatus(urlClassLoader)
188191
}
189192

190193
private void checkSensorsSDK() {

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/SensorsAnalyticsTransformHelper.groovy

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,16 @@
1717
package com.sensorsdata.analytics.android.plugin
1818

1919
import com.android.build.gradle.BaseExtension
20+
import com.sensorsdata.analytics.android.plugin.configs.SAConfigHookHelper
2021

2122
class SensorsAnalyticsTransformHelper {
22-
2323
SensorsAnalyticsExtension extension
2424
BaseExtension android
25-
RN_STATE rnState = RN_STATE.NOT_FOUND
26-
String rnVersion = ""
27-
SensorsAnalyticsSDKHookConfig sensorsAnalyticsHookConfig
25+
public RN_STATE rnState = RN_STATE.NOT_FOUND
26+
public String rnVersion = ""
2827
boolean disableSensorsAnalyticsMultiThread
2928
boolean disableSensorsAnalyticsIncremental
30-
boolean isHookOnMethodEnter
29+
public boolean isHookOnMethodEnter
3130
HashSet<String> ignoreClass = new HashSet<>(['keyboard'])
3231
HashSet<String> exclude = new HashSet<>(['com.sensorsdata.analytics.android.sdk',
3332
'android.support',
@@ -97,34 +96,14 @@ class SensorsAnalyticsTransformHelper {
9796
if (includePackages != null) {
9897
include.addAll(includePackages)
9998
}
100-
createSensorsAnalyticsHookConfig()
101-
}
102-
103-
private void createSensorsAnalyticsHookConfig() {
104-
sensorsAnalyticsHookConfig = new SensorsAnalyticsSDKHookConfig()
105-
List<MetaProperty> metaProperties = SensorsAnalyticsSDKExtension.getMetaClass().properties
106-
for (it in metaProperties) {
107-
if (it.name == 'class') {
108-
continue
109-
}
110-
if (extension.sdk."${it.name}") {
111-
sensorsAnalyticsHookConfig."${it.name}"(it.name)
112-
}
113-
}
99+
SAConfigHookHelper.initSDKConfigCells(extension.sdk)
114100
}
115101

116102
ClassNameAnalytics analytics(String className) {
117103
ClassNameAnalytics classNameAnalytics = new ClassNameAnalytics(className)
118104
if (classNameAnalytics.isSDKFile()) {
119-
def cellHashMap = sensorsAnalyticsHookConfig.methodCells
120-
cellHashMap.each {
121-
key, value ->
122-
def methodCellList = value.get(className.replace('.', '/'))
123-
if (methodCellList != null) {
124-
classNameAnalytics.methodCells.addAll(methodCellList)
125-
}
126-
}
127-
if (classNameAnalytics.methodCells.size() > 0 || classNameAnalytics.isSensorsDataAPI
105+
SAConfigHookHelper.initConfigCellInClass(className)
106+
if (SAConfigHookHelper.sClassInConfigCells.size() > 0 || classNameAnalytics.isSensorsDataAPI
128107
|| (classNameAnalytics.isAppWebViewInterface && (extension.addUCJavaScriptInterface || extension.addXWalkJavaScriptInterface))
129108
|| classNameAnalytics.isKeyboardViewUtil || classNameAnalytics.isSensorsDataVersion) {
130109
classNameAnalytics.isShouldModify = true

0 commit comments

Comments
 (0)