Skip to content

Commit 6961b03

Browse files
committed
Release 3.1.7
1 parent 32ddbf9 commit 6961b03

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
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.1.6'
2+
pluginVersion = '3.1.7'
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/SensorsAnalyticsClassVisitor.groovy

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
190190

191191
//访问权限是public并且非静态
192192
boolean pubAndNoStaticAccess
193+
ArrayList<Integer> localIds
193194

194195
@Override
195196
void visitEnd() {
@@ -242,6 +243,16 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
242243
variableID = newLocal(Type.getObjectType("java/lang/Integer"))
243244
methodVisitor.visitVarInsn(ILOAD, 1)
244245
methodVisitor.visitVarInsn(ISTORE, variableID)
246+
} else if (nameDesc == 'onViewCreated(Landroid/view/View;Landroid/os/Bundle;)V' && pubAndNoStaticAccess) {
247+
localIds = new ArrayList<>()
248+
int localId = newLocal(Type.getObjectType("java/lang/Integer"))
249+
methodVisitor.visitVarInsn(ALOAD, 1)
250+
methodVisitor.visitVarInsn(ASTORE, localId)
251+
localIds.add(localId)
252+
localId = newLocal(Type.getObjectType("java/lang/Integer"))
253+
methodVisitor.visitVarInsn(ALOAD, 2)
254+
methodVisitor.visitVarInsn(ASTORE, localId)
255+
localIds.add(localId)
245256
}
246257
}
247258

@@ -324,10 +335,17 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
324335
methodVisitor.visitVarInsn(ALOAD, 0)
325336
methodVisitor.visitVarInsn(ILOAD, variableID)
326337
methodVisitor.visitMethodInsn(Opcodes.INVOKESTATIC, SensorsAnalyticsHookConfig.SENSORS_ANALYTICS_API, sensorsAnalyticsMethodCell.agentName, sensorsAnalyticsMethodCell.agentDesc, false)
338+
} else if (localIds != null){
339+
methodVisitor.visitVarInsn(ALOAD, 0)
340+
for (localId in localIds) {
341+
methodVisitor.visitVarInsn(ALOAD, localId)
342+
}
343+
methodVisitor.visitMethodInsn(Opcodes.INVOKESTATIC, SensorsAnalyticsHookConfig.SENSORS_ANALYTICS_API, sensorsAnalyticsMethodCell.agentName, sensorsAnalyticsMethodCell.agentDesc, false)
327344
} else {
328345
visitMethodWithLoadedParams(methodVisitor, Opcodes.INVOKESTATIC, SensorsAnalyticsHookConfig.SENSORS_ANALYTICS_API, sensorsAnalyticsMethodCell.agentName, sensorsAnalyticsMethodCell.agentDesc, sensorsAnalyticsMethodCell.paramsStart, sensorsAnalyticsMethodCell.paramsCount, sensorsAnalyticsMethodCell.opcodes)
329346
}
330347
isHasTracked = true
348+
return
331349
}
332350
}
333351

0 commit comments

Comments
 (0)