Skip to content

Commit cb425b7

Browse files
committed
Release 2.0.6
1 parent 5b18d12 commit cb425b7

File tree

3 files changed

+37
-18
lines changed

3 files changed

+37
-18
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 = '2.0.5'
2+
pluginVersion = '2.0.6'
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/SensorsAnalyticsExtension.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ class SensorsAnalyticsExtension {
44
boolean debug = false
55
boolean disableJar = false
66
HashSet<String> exclude = []
7+
HashSet<String> include = []
78
}
89

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

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import java.util.zip.ZipEntry
2727
class SensorsAnalyticsTransform extends Transform {
2828
private static Project project
2929
private static HashSet<String> exclude = ['com.sensorsdata.analytics.android.sdk', 'android.support']
30+
private static HashSet<String> include = []
31+
protected static boolean disableJar
3032

3133
SensorsAnalyticsTransform(Project project) {
3234
this.project = project
@@ -79,9 +81,15 @@ class SensorsAnalyticsTransform extends Transform {
7981
outputProvider.deleteAll()
8082
}
8183

82-
HashSet<String> inputPackages = project.sensorsAnalytics.exclude
83-
if (inputPackages != null) {
84-
exclude.addAll(inputPackages)
84+
disableJar = project.sensorsAnalytics.disableJar
85+
HashSet<String> excludePackages = project.sensorsAnalytics.exclude
86+
if (excludePackages != null) {
87+
exclude.addAll(excludePackages)
88+
}
89+
90+
HashSet<String> includePackages = project.sensorsAnalytics.include
91+
if (includePackages != null) {
92+
include.addAll(includePackages)
8593
}
8694

8795
/**
@@ -106,9 +114,9 @@ class SensorsAnalyticsTransform extends Transform {
106114
File dest = outputProvider.getContentLocation(destName + "_" + hexName, jarInput.contentTypes, jarInput.scopes, Format.JAR)
107115

108116
def modifiedJar = null
109-
if (!project.sensorsAnalytics.disableJar) {
117+
//if (!project.sensorsAnalytics.disableJar) {
110118
modifiedJar = modifyJarFile(jarInput.file, context.getTemporaryDir())
111-
}
119+
//}
112120
if (modifiedJar == null) {
113121
modifiedJar = jarInput.file
114122
}
@@ -160,25 +168,36 @@ class SensorsAnalyticsTransform extends Transform {
160168
return true
161169
}
162170

163-
private static boolean isShouldModify(String className) {
164-
Iterator<String> iterator = exclude.iterator()
165-
while (iterator.hasNext()) {
166-
String packageName = iterator.next()
167-
if (className.startsWith(packageName)) {
168-
return false
171+
private static boolean isShouldModifyClass(String className) {
172+
if (!disableJar) {
173+
Iterator<String> iterator = exclude.iterator()
174+
while (iterator.hasNext()) {
175+
String packageName = iterator.next()
176+
if (className.startsWith(packageName)) {
177+
return false
178+
}
179+
}
180+
return true
181+
} else {
182+
Iterator<String> iterator = include.iterator()
183+
while (iterator.hasNext()) {
184+
String packageName = iterator.next()
185+
if (className.startsWith(packageName)) {
186+
return true
187+
}
169188
}
189+
return false
170190
}
171-
return true
172191
}
173192

174193
/**
175194
* 修改 jar 文件中对应字节码
176195
*/
177196
private static File modifyJarFile(File jarFile, File tempDir) {
178197
if (jarFile) {
179-
if (isShouldModifyJar(jarFile.getName())) {
198+
//if (isShouldModifyJar(jarFile.getName())) {
180199
return modifyJar(jarFile, tempDir, true)
181-
}
200+
//}
182201

183202
}
184203
return null
@@ -216,7 +235,7 @@ class SensorsAnalyticsTransform extends Transform {
216235
byte[] sourceClassBytes = IOUtils.toByteArray(inputStream)
217236
if (entryName.endsWith(".class")) {
218237
className = entryName.replace("/", ".").replace(".class", "")
219-
if (isShouldModify(className)) {
238+
if (isShouldModifyClass(className)) {
220239
modifiedClassBytes = modifyClasses(className, sourceClassBytes)
221240
}
222241
}
@@ -256,7 +275,6 @@ class SensorsAnalyticsTransform extends Transform {
256275
return classWriter.toByteArray()
257276
}
258277

259-
260278
/**
261279
* 目录文件中修改对应字节码
262280
*/
@@ -265,7 +283,7 @@ class SensorsAnalyticsTransform extends Transform {
265283
FileOutputStream outputStream = null
266284
try {
267285
String className = path2ClassName(classFile.absolutePath.replace(dir.absolutePath + File.separator, ""))
268-
if (isShouldModify(className)) {
286+
if (isShouldModifyClass(className)) {
269287
byte[] sourceClassBytes = IOUtils.toByteArray(new FileInputStream(classFile))
270288
byte[] modifiedClassBytes = modifyClasses(className, sourceClassBytes)
271289
if (modifiedClassBytes) {

0 commit comments

Comments
 (0)