Skip to content

Commit

Permalink
Release 3.4.8
Browse files Browse the repository at this point in the history
  • Loading branch information
weiqiangliu committed Apr 2, 2022
1 parent 871c0fa commit f1fc80e
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 10 deletions.
2 changes: 1 addition & 1 deletion plugin/ext.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
project.ext {
pluginVersion = '3.4.7'
pluginVersion = '3.4.8'
Properties properties = new Properties()
if (project.file('local.properties').exists()) {
properties.load(project.file('local.properties').newDataInputStream())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@
package com.sensorsdata.analytics.android.plugin

class ClassNameAnalytics {

private static final String PACKAGE_START = "com.sensorsdata.analytics"
private static final String KEY_KEYBOARD = "KeyboardViewUtil"
public String className
boolean isShouldModify = false
boolean isSensorsDataAPI = false
boolean isSensorsDataUtils = false
boolean isOAIDHelper = false
boolean isSALog = false
boolean isKeyboardViewUtil = false
def methodCells = new ArrayList<SensorsAnalyticsMethodCell>()
boolean isAppWebViewInterface = false

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

boolean isSDKFile() {
return isSALog || isSensorsDataAPI || isSensorsDataUtils || isAppWebViewInterface || isOAIDHelper
return isSALog || isSensorsDataAPI || isSensorsDataUtils || isAppWebViewInterface || isOAIDHelper || isKeyboardViewUtil
}

boolean isLeanback() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,9 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
if (classNameAnalytics.isSensorsDataAPI && "ANDROID_PLUGIN_VERSION" == fieldName && opcode == PUTSTATIC) {
methodVisitor.visitLdcInsn(SensorsAnalyticsTransform.VERSION)
}
if (classNameAnalytics.isKeyboardViewUtil && !transformHelper.extension.disableTrackKeyboard && "isSensorsCheckKeyboard" == fieldName && opcode == PUTSTATIC) {
methodVisitor.visitInsn(ICONST_0);
}
super.visitFieldInsn(opcode, owner, fieldName, fieldDesc)
}

Expand Down Expand Up @@ -829,7 +832,7 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
}
} else if (classNameAnalytics.isAppWebViewInterface && s == "Landroid/webkit/JavascriptInterface;") {
shouldAddUCJS = transformHelper.extension.addUCJavaScriptInterface
shouldAddXWalkJS = transformHelper.extension.addXWalkJavaScriptInterface
shouldAddXWalkJS = transformHelper.extension.addXWalkJavaScriptInterface
}

return super.visitAnnotation(s, b)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ class SensorsAnalyticsExtension {
public boolean lambdaParamOptimize = false
public boolean disableTrackPush = false
public boolean disableCheckSDK = false
public boolean disableTrackKeyboard = true
public ArrayList<String> exclude = []
public ArrayList<String> include = []

Expand Down Expand Up @@ -73,6 +74,7 @@ class SensorsAnalyticsExtension {
"\tlambdaParamOptimize=" + lambdaParamOptimize + "\n" +
"\tlambdaEnabled=" + lambdaEnabled + "\n" +
"\tdisableCheckSDK=" + disableCheckSDK + "\n" +
"\tdisableHookKeyboard=" + disableTrackKeyboard + "\n" +
"\texclude=[" + excludeBuilder.toString() + "]" + "\n" +
"\tinclude=[" + includeBuilder.toString() + "]" + "\n" +
"\tsdk {\n" + sdk + "\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ import java.util.jar.JarOutputStream

class SensorsAnalyticsTransform extends Transform {
private SensorsAnalyticsTransformHelper transformHelper
public static final String VERSION = "3.4.7"
public static final String VERSION = "3.4.8"
public static final String MIN_SDK_VERSION = "5.4.3"
private WaitableExecutor waitableExecutor
private URLClassLoader urlClassLoader
Expand Down Expand Up @@ -190,7 +190,7 @@ class SensorsAnalyticsTransform extends Transform {
if (!transformHelper.extension.disableCheckSDK) {
throw new IllegalStateException("未检测到神策 Android SDK,请参考如下文档检查集成步骤是否正确:\n" +
"https://manual.sensorsdata.cn/sa/latest/tech_sdk_client_android_basic-32506144.html\n" +
"如需关闭此提示,请添加插件配置: disableCheckSdk=true")
"如需关闭此提示,请添加插件配置: disableCheckSDK=true")
} else {
Logger.warn("Can not load find SensorsData SDK jar's path.")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class SensorsAnalyticsTransformHelper {
boolean disableSensorsAnalyticsMultiThread
boolean disableSensorsAnalyticsIncremental
boolean isHookOnMethodEnter
HashSet<String> ignoreClass = new HashSet<>(['keyboard'])
HashSet<String> exclude = new HashSet<>(['com.sensorsdata.analytics.android.sdk',
'android.support',
'androidx',
Expand Down Expand Up @@ -73,9 +74,10 @@ class SensorsAnalyticsTransformHelper {
}

File androidJar() throws FileNotFoundException {
File jar = new File(getSdkJarDir(), "android.jar")
String path = getSdkJarDir()
File jar = new File(path, "android.jar")
if (!jar.exists()) {
throw new FileNotFoundException("Android jar not found!")
throw new FileNotFoundException("Android jar not found!\r\n 请确定路径 " + path + " 下是否存在 android.jar 文件")
}
return jar
}
Expand Down Expand Up @@ -123,7 +125,8 @@ class SensorsAnalyticsTransformHelper {
}
}
if (classNameAnalytics.methodCells.size() > 0 || classNameAnalytics.isSensorsDataAPI
|| (classNameAnalytics.isAppWebViewInterface && (extension.addUCJavaScriptInterface || extension.addXWalkJavaScriptInterface))) {
|| (classNameAnalytics.isAppWebViewInterface && (extension.addUCJavaScriptInterface || extension.addXWalkJavaScriptInterface))
|| classNameAnalytics.isKeyboardViewUtil) {
classNameAnalytics.isShouldModify = true
}
} else if (!classNameAnalytics.isAndroidGenerated()) {
Expand All @@ -149,6 +152,14 @@ class SensorsAnalyticsTransformHelper {
break
}
}
if (classNameAnalytics.isShouldModify && extension.disableTrackKeyboard) {
for (String ignore : ignoreClass) {
if (className.toLowerCase().contains(ignore)) {
classNameAnalytics.isShouldModify = false
break
}
}
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ class SensorsAnalyticsUtil {
for (className in SensorsAnalyticsTransformHelper.special) {
specialClass.add(className.replace('.', '/'))
}

}

static boolean isPublic(int access) {
Expand Down

0 comments on commit f1fc80e

Please sign in to comment.