Skip to content

Commit f1fc80e

Browse files
author
weiqiangliu
committed
Release 3.4.8
1 parent 871c0fa commit f1fc80e

File tree

7 files changed

+28
-10
lines changed

7 files changed

+28
-10
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.7'
2+
pluginVersion = '3.4.8'
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: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@
1717
package com.sensorsdata.analytics.android.plugin
1818

1919
class ClassNameAnalytics {
20-
20+
private static final String PACKAGE_START = "com.sensorsdata.analytics"
21+
private static final String KEY_KEYBOARD = "KeyboardViewUtil"
2122
public String className
2223
boolean isShouldModify = false
2324
boolean isSensorsDataAPI = false
2425
boolean isSensorsDataUtils = false
2526
boolean isOAIDHelper = false
2627
boolean isSALog = false
28+
boolean isKeyboardViewUtil = false
2729
def methodCells = new ArrayList<SensorsAnalyticsMethodCell>()
2830
boolean isAppWebViewInterface = false
2931

@@ -35,10 +37,11 @@ class ClassNameAnalytics {
3537
isSALog = (className == 'com.sensorsdata.analytics.android.sdk.SALog')
3638
isAppWebViewInterface = ((className == 'com.sensorsdata.analytics.android.sdk.AppWebViewInterface')
3739
|| (className == 'com.sensorsdata.analytics.android.sdk.visual.WebViewVisualInterface'))
40+
isKeyboardViewUtil = (className.startsWith(PACKAGE_START) && className.endsWith(KEY_KEYBOARD))
3841
}
3942

4043
boolean isSDKFile() {
41-
return isSALog || isSensorsDataAPI || isSensorsDataUtils || isAppWebViewInterface || isOAIDHelper
44+
return isSALog || isSensorsDataAPI || isSensorsDataUtils || isAppWebViewInterface || isOAIDHelper || isKeyboardViewUtil
4245
}
4346

4447
boolean isLeanback() {

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,9 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
475475
if (classNameAnalytics.isSensorsDataAPI && "ANDROID_PLUGIN_VERSION" == fieldName && opcode == PUTSTATIC) {
476476
methodVisitor.visitLdcInsn(SensorsAnalyticsTransform.VERSION)
477477
}
478+
if (classNameAnalytics.isKeyboardViewUtil && !transformHelper.extension.disableTrackKeyboard && "isSensorsCheckKeyboard" == fieldName && opcode == PUTSTATIC) {
479+
methodVisitor.visitInsn(ICONST_0);
480+
}
478481
super.visitFieldInsn(opcode, owner, fieldName, fieldDesc)
479482
}
480483

@@ -829,7 +832,7 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
829832
}
830833
} else if (classNameAnalytics.isAppWebViewInterface && s == "Landroid/webkit/JavascriptInterface;") {
831834
shouldAddUCJS = transformHelper.extension.addUCJavaScriptInterface
832-
shouldAddXWalkJS = transformHelper.extension.addXWalkJavaScriptInterface
835+
shouldAddXWalkJS = transformHelper.extension.addXWalkJavaScriptInterface
833836
}
834837

835838
return super.visitAnnotation(s, b)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class SensorsAnalyticsExtension {
3131
public boolean lambdaParamOptimize = false
3232
public boolean disableTrackPush = false
3333
public boolean disableCheckSDK = false
34+
public boolean disableTrackKeyboard = true
3435
public ArrayList<String> exclude = []
3536
public ArrayList<String> include = []
3637

@@ -73,6 +74,7 @@ class SensorsAnalyticsExtension {
7374
"\tlambdaParamOptimize=" + lambdaParamOptimize + "\n" +
7475
"\tlambdaEnabled=" + lambdaEnabled + "\n" +
7576
"\tdisableCheckSDK=" + disableCheckSDK + "\n" +
77+
"\tdisableHookKeyboard=" + disableTrackKeyboard + "\n" +
7678
"\texclude=[" + excludeBuilder.toString() + "]" + "\n" +
7779
"\tinclude=[" + includeBuilder.toString() + "]" + "\n" +
7880
"\tsdk {\n" + sdk + "\n" +

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ import java.util.jar.JarOutputStream
4848

4949
class SensorsAnalyticsTransform extends Transform {
5050
private SensorsAnalyticsTransformHelper transformHelper
51-
public static final String VERSION = "3.4.7"
51+
public static final String VERSION = "3.4.8"
5252
public static final String MIN_SDK_VERSION = "5.4.3"
5353
private WaitableExecutor waitableExecutor
5454
private URLClassLoader urlClassLoader
@@ -190,7 +190,7 @@ class SensorsAnalyticsTransform extends Transform {
190190
if (!transformHelper.extension.disableCheckSDK) {
191191
throw new IllegalStateException("未检测到神策 Android SDK,请参考如下文档检查集成步骤是否正确:\n" +
192192
"https://manual.sensorsdata.cn/sa/latest/tech_sdk_client_android_basic-32506144.html\n" +
193-
"如需关闭此提示,请添加插件配置: disableCheckSdk=true")
193+
"如需关闭此提示,请添加插件配置: disableCheckSDK=true")
194194
} else {
195195
Logger.warn("Can not load find SensorsData SDK jar's path.")
196196
}

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class SensorsAnalyticsTransformHelper {
2828
boolean disableSensorsAnalyticsMultiThread
2929
boolean disableSensorsAnalyticsIncremental
3030
boolean isHookOnMethodEnter
31+
HashSet<String> ignoreClass = new HashSet<>(['keyboard'])
3132
HashSet<String> exclude = new HashSet<>(['com.sensorsdata.analytics.android.sdk',
3233
'android.support',
3334
'androidx',
@@ -73,9 +74,10 @@ class SensorsAnalyticsTransformHelper {
7374
}
7475

7576
File androidJar() throws FileNotFoundException {
76-
File jar = new File(getSdkJarDir(), "android.jar")
77+
String path = getSdkJarDir()
78+
File jar = new File(path, "android.jar")
7779
if (!jar.exists()) {
78-
throw new FileNotFoundException("Android jar not found!")
80+
throw new FileNotFoundException("Android jar not found!\r\n 请确定路径 " + path + " 下是否存在 android.jar 文件")
7981
}
8082
return jar
8183
}
@@ -123,7 +125,8 @@ class SensorsAnalyticsTransformHelper {
123125
}
124126
}
125127
if (classNameAnalytics.methodCells.size() > 0 || classNameAnalytics.isSensorsDataAPI
126-
|| (classNameAnalytics.isAppWebViewInterface && (extension.addUCJavaScriptInterface || extension.addXWalkJavaScriptInterface))) {
128+
|| (classNameAnalytics.isAppWebViewInterface && (extension.addUCJavaScriptInterface || extension.addXWalkJavaScriptInterface))
129+
|| classNameAnalytics.isKeyboardViewUtil) {
127130
classNameAnalytics.isShouldModify = true
128131
}
129132
} else if (!classNameAnalytics.isAndroidGenerated()) {
@@ -149,6 +152,14 @@ class SensorsAnalyticsTransformHelper {
149152
break
150153
}
151154
}
155+
if (classNameAnalytics.isShouldModify && extension.disableTrackKeyboard) {
156+
for (String ignore : ignoreClass) {
157+
if (className.toLowerCase().contains(ignore)) {
158+
classNameAnalytics.isShouldModify = false
159+
break
160+
}
161+
}
162+
}
152163
}
153164
}
154165
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ class SensorsAnalyticsUtil {
6868
for (className in SensorsAnalyticsTransformHelper.special) {
6969
specialClass.add(className.replace('.', '/'))
7070
}
71-
7271
}
7372

7473
static boolean isPublic(int access) {

0 commit comments

Comments
 (0)