Skip to content

Commit 2989bbc

Browse files
committed
Release 3.0.3
1 parent 0a2e3d5 commit 2989bbc

File tree

7 files changed

+106
-136
lines changed

7 files changed

+106
-136
lines changed

aop/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.0.2'
2+
pluginVersion = '3.0.3'
33
Properties properties = new Properties()
44
if (project.file('local.properties').exists()) {
55
properties.load(project.file('local.properties').newDataInputStream())

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

Lines changed: 87 additions & 97 deletions
Large diffs are not rendered by default.

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,6 @@ class SensorsAnalyticsHookConfig {
1010
static HashMap<String, SensorsAnalyticsMethodCell> sInterfaceMethods = new HashMap<>()
1111

1212
static {
13-
sInterfaceMethods.put('onClick(Landroid/view/View;)V', new SensorsAnalyticsMethodCell(
14-
'onClick',
15-
'(Landroid/view/View;)V',
16-
'android/view/View$OnClickListener',
17-
'trackViewOnClick',
18-
'(Landroid/view/View;)V',
19-
1, 1,
20-
[Opcodes.ALOAD]))
2113
sInterfaceMethods.put('onCheckedChanged(Landroid/widget/CompoundButton;Z)V', new SensorsAnalyticsMethodCell(
2214
'onCheckedChanged',
2315
'(Landroid/widget/CompoundButton;Z)V',
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.sensorsdata.analytics.android.plugin;
2+
3+
import org.objectweb.asm.MethodVisitor;
4+
import org.objectweb.asm.commons.JSRInlinerAdapter;
5+
6+
public class SensorsAnalyticsJSRAdapter extends JSRInlinerAdapter {
7+
protected SensorsAnalyticsJSRAdapter(int api, MethodVisitor mv, int access, String name, String desc, String signature, String[] exceptions) {
8+
super(api, mv, access, name, desc, signature, exceptions);
9+
}
10+
}

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

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import java.util.zip.ZipEntry
2828

2929
class SensorsAnalyticsTransform extends Transform {
3030
private SensorsAnalyticsTransformHelper transformHelper
31-
public static final String VERSION = "3.0.2"
31+
public static final String VERSION = "3.0.3"
3232
public static final String MIN_SDK_VERSION = "3.0.0"
3333
private WaitableExecutor waitableExecutor
3434

@@ -59,11 +59,7 @@ class SensorsAnalyticsTransform extends Transform {
5959
return !transformHelper.disableSensorsAnalyticsIncremental
6060
}
6161

62-
@Override
63-
boolean isCacheable() {
64-
return !transformHelper.disableSensorsAnalyticsIncremental
65-
}
66-
/**
62+
/**
6763
* 打印提示信息
6864
*/
6965
private static void printCopyRight() {
@@ -302,7 +298,7 @@ class SensorsAnalyticsTransform extends Transform {
302298
className = entryName.replace("/", ".").replace(".class", "")
303299
ClassNameAnalytics classNameAnalytics = transformHelper.analytics(className)
304300
if (classNameAnalytics.isShouldModify) {
305-
modifiedClassBytes = modifyClasses(sourceClassBytes,classNameAnalytics)
301+
modifiedClassBytes = modifyClass(sourceClassBytes,classNameAnalytics)
306302
}
307303
}
308304
if (modifiedClassBytes == null) {
@@ -318,32 +314,18 @@ class SensorsAnalyticsTransform extends Transform {
318314
return outputJar
319315
}
320316

321-
private byte[] modifyClasses(byte[] srcByteCode,ClassNameAnalytics classNameAnalytics) {
322-
try {
323-
return modifyClass(srcByteCode,classNameAnalytics)
324-
} catch (UnsupportedOperationException e) {
325-
throw e
326-
} catch (Exception ex) {
327-
ex.printStackTrace()
328-
if (transformHelper.extension.debug) {
329-
throw new Error()
330-
}
331-
return srcByteCode
332-
}
333-
}
334317
/**
335318
* 真正修改类中方法字节码
336319
*/
337-
private byte[] modifyClass(byte[] srcClass,ClassNameAnalytics classNameAnalytics) throws IOException {
320+
private byte[] modifyClass(byte[] srcClass, ClassNameAnalytics classNameAnalytics) {
338321
try {
339322
ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS)
340-
ClassVisitor classVisitor = new SensorsAnalyticsClassVisitor(classWriter,classNameAnalytics,transformHelper)
323+
ClassVisitor classVisitor = new SensorsAnalyticsClassVisitor(classWriter, classNameAnalytics, transformHelper)
341324
ClassReader cr = new ClassReader(srcClass)
342325
cr.accept(classVisitor, ClassReader.EXPAND_FRAMES)
343326
return classWriter.toByteArray()
344-
} catch (UnsupportedOperationException e) {
345-
throw e
346327
} catch(Exception ex) {
328+
println("$classNameAnalytics.className 类执行 modifyClass 方法出现异常")
347329
ex.printStackTrace()
348330
if (transformHelper.extension.debug) {
349331
throw new Error()
@@ -363,7 +345,7 @@ class SensorsAnalyticsTransform extends Transform {
363345
ClassNameAnalytics classNameAnalytics = transformHelper.analytics(className)
364346
if (classNameAnalytics.isShouldModify) {
365347
byte[] sourceClassBytes = IOUtils.toByteArray(new FileInputStream(classFile))
366-
byte[] modifiedClassBytes = modifyClasses(sourceClassBytes,classNameAnalytics)
348+
byte[] modifiedClassBytes = modifyClass(sourceClassBytes, classNameAnalytics)
367349
if (modifiedClassBytes) {
368350
modified = new File(tempDir, className.replace('.', '') + '.class')
369351
if (modified.exists()) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class SensorsAnalyticsTransformHelper {
1010

1111
boolean disableSensorsAnalyticsIncremental
1212

13-
HashSet<String> exclude = ['com.sensorsdata.analytics.android.sdk', 'android.support', 'androidx','com.qiyukf','com.amap.api','com.autonavi']
13+
HashSet<String> exclude = ['com.sensorsdata.analytics.android.sdk', 'android.support', 'androidx','com.qiyukf']
1414
HashSet<String> include = ['butterknife.internal.DebouncingOnClickListener',
1515
'com.jakewharton.rxbinding.view.ViewClickOnSubscribe',
1616
'com.facebook.react.uimanager.NativeViewHierarchyManager']

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ class SensorsAnalyticsUtil implements Opcodes {
4949
return targetMenuMethodDesc.contains(nameDesc)
5050
}
5151

52-
static boolean isTargetFragmentClass(String className) {
53-
return targetFragmentClass.contains(className)
54-
}
55-
5652
static boolean isInstanceOfFragment(String superName) {
5753
return targetFragmentClass.contains(superName)
5854
}

0 commit comments

Comments
 (0)