Skip to content

Commit a9687d0

Browse files
committed
see 11/27 log
1 parent aae22b5 commit a9687d0

File tree

23 files changed

+228
-124
lines changed

23 files changed

+228
-124
lines changed

app/__bus__.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"CloseAdaptActivity#start": "void com.blankj.androidutilcode.feature.core.adaptScreen.CloseAdaptActivity.start(android.content.Context)"
3+
}

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ plugins {
22
id "com.android.application"
33
id 'kotlin-android'
44
id 'kotlin-android-extensions'
5-
// id "com.blankj.bus"
5+
id "com.blankj.bus"
66
}
77
// in config.gradle
88
configAndroidDomain project

app/src/main/java/com/blankj/androidutilcode/feature/core/CoreUtilActivity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.blankj.androidutilcode.R;
1010
import com.blankj.androidutilcode.base.BaseBackActivity;
1111
import com.blankj.androidutilcode.feature.core.activity.ActivityActivity;
12-
import com.blankj.androidutilcode.feature.core.adaptScreen.AdaptScreenActivity;
1312
import com.blankj.androidutilcode.feature.core.app.AppActivity;
1413
import com.blankj.androidutilcode.feature.core.bar.BarActivity;
1514
import com.blankj.androidutilcode.feature.core.clean.CleanActivity;
@@ -31,6 +30,7 @@
3130
import com.blankj.androidutilcode.feature.core.sp.SPActivity;
3231
import com.blankj.androidutilcode.feature.core.span.SpanActivity;
3332
import com.blankj.androidutilcode.feature.core.toast.ToastActivity;
33+
import com.blankj.utilcode.util.BusUtils;
3434
import com.blankj.utilcode.util.Utils;
3535

3636
/**
@@ -83,7 +83,8 @@ public void activityClick(View view) {
8383
}
8484

8585
public void adaptScreenClick(View view) {
86-
AdaptScreenActivity.start(this);
86+
BusUtils.post("AdaptScreenActivity#start", this);
87+
// AdaptScreenActivity.start(this);
8788
}
8889

8990
public void appClick(View view) {

app/src/main/java/com/blankj/androidutilcode/feature/core/adaptScreen/AdaptScreenActivity.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ import android.os.Bundle
66
import android.view.View
77
import com.blankj.androidutilcode.R
88
import com.blankj.androidutilcode.base.BaseBackActivity
9+
import com.blankj.utilcode.util.BusUtils
910
import kotlinx.android.synthetic.main.activity_adapt_screen.*
1011

1112
class AdaptScreenActivity : BaseBackActivity() {
1213

1314
companion object {
14-
@JvmStatic
15+
@BusUtils.Subscribe(name = "AdaptScreenActivity#start")
1516
fun start(context: Context) {
1617
val starter = Intent(context, AdaptScreenActivity::class.java)
1718
context.startActivity(starter)
@@ -27,7 +28,10 @@ class AdaptScreenActivity : BaseBackActivity() {
2728
override fun initView(savedInstanceState: Bundle?, contentView: View?) {
2829
adaptWidthBtn.setOnClickListener { WidthActivity.start(this) }
2930
adaptHeightBtn.setOnClickListener { HeightActivity.start(this) }
30-
closeAdaptBtn.setOnClickListener { CloseAdaptActivity.start(this) }
31+
closeAdaptBtn.setOnClickListener {
32+
BusUtils.post<Any>("CloseAdaptActivity#start", this)
33+
// CloseAdaptActivity.start(this)
34+
}
3135
}
3236

3337
override fun doBusiness() {}

app/src/main/java/com/blankj/androidutilcode/feature/core/adaptScreen/CloseAdaptActivity.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@ import android.support.v7.app.AppCompatActivity
88
import android.view.WindowManager
99
import com.blankj.androidutilcode.R
1010
import com.blankj.utilcode.util.AdaptScreenUtils
11+
import com.blankj.utilcode.util.BusUtils
1112

1213
class CloseAdaptActivity : AppCompatActivity() {
1314

14-
companion object {
15+
companion object Instance {
16+
@JvmStatic
17+
@BusUtils.Subscribe(name = "CloseAdaptActivity#start")
1518
fun start(context: Context) {
1619
val starter = Intent(context, CloseAdaptActivity::class.java)
1720
context.startActivity(starter)

bus-gradle-plugin/build.gradle

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,24 @@ dependencies {
2929
implementation dep.gradle
3030
implementation dep.javassist
3131
implementation dep.commons_io
32-
implementation dep.junit
3332
implementation gradleApi()
3433
implementation localGroovy()
34+
35+
testImplementation dep.junit
36+
}
37+
38+
sourceSets {
39+
main {
40+
groovy {
41+
srcDirs += 'src/main/java'
42+
}
43+
}
44+
45+
test {
46+
groovy {
47+
srcDirs += 'src/test/java'
48+
}
49+
}
3550
}
3651

3752
group = bus.group

bus-gradle-plugin/src/main/groovy/com/blankj/bus/BusInject.groovy renamed to bus-gradle-plugin/src/main/java/com/blankj/bus/BusInject.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.blankj.bus
22

3+
import com.blankj.util.JavassistUtils
34
import com.blankj.util.ZipUtils
45
import javassist.CtClass
56
import javassist.CtMethod
@@ -13,7 +14,7 @@ class BusInject {
1314
File decompressedJar = new File(decompressedJarPath)
1415
ZipUtils.unzipFile(busJar, decompressedJar)
1516

16-
CtClass busUtils = Config.mPool.get(Config.CLASS_BUS_UTILS)
17+
CtClass busUtils = JavassistUtils.getPool().get(Config.CLASS_BUS_UTILS)
1718
CtMethod callMethod = busUtils.getDeclaredMethod("post");
1819
callMethod.insertAfter(getInsertContent(bus));
1920
busUtils.writeFile(decompressedJarPath)

bus-gradle-plugin/src/main/groovy/com/blankj/bus/BusPlugin.groovy renamed to bus-gradle-plugin/src/main/java/com/blankj/bus/BusPlugin.groovy

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.blankj.bus
33
import com.android.build.gradle.AppExtension
44
import com.android.build.gradle.AppPlugin
55
import com.blankj.util.LogUtils
6-
import com.blankj.util.Utils
6+
77
import org.gradle.api.Plugin
88
import org.gradle.api.Project
99

@@ -12,15 +12,12 @@ class BusPlugin implements Plugin<Project> {
1212
@Override
1313
void apply(Project project) {
1414
if (project.plugins.hasPlugin(AppPlugin)) {
15-
Utils.init(project)
16-
15+
LogUtils.init(project)
1716
LogUtils.l('project(' + project.name + ') apply bus gradle plugin!')
1817

1918
project.extensions.create(Config.EXT_NAME, BusExtension)
20-
2119
def android = project.extensions.getByType(AppExtension)
22-
23-
android.registerTransform(new BusTransform())
20+
android.registerTransform(new BusTransform(project))
2421
project.afterEvaluate {
2522
def ext = project[Config.EXT_NAME] as BusExtension
2623
}

bus-gradle-plugin/src/main/groovy/com/blankj/bus/BusScan.groovy renamed to bus-gradle-plugin/src/main/java/com/blankj/bus/BusScan.groovy

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package com.blankj.bus
22

3+
import com.blankj.util.JavassistUtils
4+
import com.blankj.util.LogUtils
35
import com.blankj.util.ZipUtils
46
import com.blankj.utilcode.util.BusUtils
57
import groovy.io.FileType
68
import javassist.CtClass
79
import javassist.CtMethod
810
import org.apache.commons.io.FileUtils
911

12+
import java.lang.reflect.Modifier
13+
1014
class BusScan {
1115

1216
HashMap<String, String> busMap
@@ -20,9 +24,11 @@ class BusScan {
2024

2125
void scanJar(File jar) {
2226
File tmp = new File(jar.getParent(), "temp_" + jar.getName())
23-
ZipUtils.unzipFile(jar, tmp)
24-
scanDir(tmp)
25-
FileUtils.forceDelete(tmp)
27+
List<File> unzipFile = ZipUtils.unzipFile(jar, tmp)
28+
if (unzipFile != null && unzipFile.size() > 0) {
29+
scanDir(tmp)
30+
FileUtils.forceDelete(tmp)
31+
}
2632
}
2733

2834
void scanDir(File root) {
@@ -47,14 +53,18 @@ class BusScan {
4753
// delete .class
4854
className = className.substring(0, className.length() - 6)
4955

50-
CtClass ctClass = Config.mPool.get(className)
56+
CtClass ctClass = JavassistUtils.getPool().get(className)
5157

5258
CtMethod[] methods = ctClass.getDeclaredMethods();
5359
for (CtMethod method : methods) {
5460
if (method.hasAnnotation(BusUtils.Subscribe)) {
55-
String name = method.getAnnotation(BusUtils.Subscribe).name()
56-
String sign = method.getReturnType().getName() + ' ' + method.getLongName()
57-
busMap.put(name, sign)
61+
if (Modifier.isStatic(method.getModifiers())) {
62+
String name = method.getAnnotation(BusUtils.Subscribe).name()
63+
String sign = method.getReturnType().getName() + ' ' + method.getLongName()
64+
busMap.put(name, sign)
65+
} else {
66+
LogUtils.l(method.getLongName() + "is not static")
67+
}
5868
}
5969
}
6070
}

bus-gradle-plugin/src/main/groovy/com/blankj/bus/BusTransform.groovy renamed to bus-gradle-plugin/src/main/java/com/blankj/bus/BusTransform.groovy

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,21 @@ package com.blankj.bus
22

33
import com.android.build.api.transform.*
44
import com.android.build.gradle.internal.pipeline.TransformManager
5+
import com.blankj.util.JavassistUtils
56
import com.blankj.util.JsonUtils
67
import com.blankj.util.LogUtils
7-
import com.blankj.util.Utils
8+
89
import org.apache.commons.io.FileUtils
10+
import org.gradle.api.Project
911

1012
class BusTransform extends Transform {
1113

14+
Project mProject;
15+
16+
BusTransform(Project project) {
17+
mProject = project
18+
}
19+
1220
@Override
1321
String getName() {
1422
return "busTransform"
@@ -33,6 +41,7 @@ class BusTransform extends Transform {
3341
void transform(TransformInvocation transformInvocation)
3442
throws TransformException, InterruptedException, IOException {
3543
super.transform(transformInvocation)
44+
JavassistUtils.init(mProject)
3645
LogUtils.l(getName() + " started")
3746

3847
long stTime = System.currentTimeMillis();
@@ -44,13 +53,12 @@ class BusTransform extends Transform {
4453

4554
outputProvider.deleteAll()
4655

47-
Config.initClassPool()
4856
BusScan busScan = new BusScan()
4957

5058
inputs.each { TransformInput input ->
5159
input.directoryInputs.each { DirectoryInput dirInput ->// 遍历文件夹
5260
File dir = dirInput.file
53-
Config.mPool.appendClassPath(dir.absolutePath)
61+
JavassistUtils.getPool().appendClassPath(dir.absolutePath)
5462

5563
def dest = outputProvider.getContentLocation(
5664
dirInput.name,
@@ -67,7 +75,7 @@ class BusTransform extends Transform {
6775

6876
input.jarInputs.each { JarInput jarInput ->// 遍历 jar 文件
6977
File jar = jarInput.file
70-
Config.mPool.appendClassPath(jarInput.file.absolutePath)
78+
JavassistUtils.getPool().appendClassPath(jarInput.file.absolutePath)
7179

7280
def jarName = jarInput.name
7381
def dest = outputProvider.getContentLocation(
@@ -86,6 +94,7 @@ class BusTransform extends Transform {
8694
if (jarName.startsWith("com.blankj:utilcode:")
8795
|| jarName.contains("utilcode-lib")) {
8896
busScan.busJar = dest
97+
LogUtils.l("bus jar: " + jarName)
8998
return
9099
}
91100

@@ -95,14 +104,13 @@ class BusTransform extends Transform {
95104
}
96105

97106
if (busScan.busJar != null) {
98-
File jsonFile = new File(Utils.project.projectDir.getAbsolutePath(), "__bus__.json")
107+
File jsonFile = new File(mProject.projectDir.getAbsolutePath(), "__bus__.json")
99108
String busJson = JsonUtils.getFormatJson(busScan.busMap)
109+
LogUtils.l(jsonFile.toString() + ": " + busJson)
100110
FileUtils.write(jsonFile, busJson)
101-
LogUtils.l(busJson)
102111
BusInject.start(busScan.busMap, busScan.busJar)
103112
} else {
104-
LogUtils.l('u should <implementation "com.blankj:utilcode:1.30.+"> ' +
105-
'or <implementation "com.blankj:bus:1.0+">')
113+
LogUtils.l('u should <implementation "com.blankj:utilcode:1.22.+">')
106114
}
107115

108116
LogUtils.l(getName() + " finished: " + (System.currentTimeMillis() - stTime) + "ms")
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,17 @@
11
package com.blankj.bus
22

3-
import com.blankj.util.Utils
4-
import javassist.ClassPool
5-
63
class Config {
74

85
public static final String EXT_NAME = 'bus'
96

107
public static final List<String> EXCEPTS = [
118
'com.android.support:',
129
'com.android.support.constraint:',
13-
'android.arch.'
10+
'android.arch.',
11+
'com.blankj:'
1412
]
1513

1614
public static final String FILE_SEP = System.getProperty("file.separator")
1715

1816
public static final String CLASS_BUS_UTILS = 'com.blankj.utilcode.util.BusUtils'
19-
20-
public static ClassPool mPool
21-
22-
static void initClassPool() {
23-
mPool = new ClassPool(null)
24-
mPool.appendSystemPath()
25-
// 加入本地 android 包
26-
mPool.appendClassPath(Utils.getProject().android.bootClasspath[0].toString())
27-
}
2817
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.blankj.util
2+
3+
import javassist.ClassPool
4+
import org.gradle.api.Project;
5+
6+
/**
7+
* <pre>
8+
* author: blankj
9+
* blog : http://blankj.com
10+
* time : 2018/11/25
11+
* desc :
12+
* </pre>
13+
*/
14+
class JavassistUtils {
15+
16+
public static ClassPool sPool
17+
18+
static void init(Project project) {
19+
sPool = new ClassPool(null)
20+
sPool.appendSystemPath()
21+
// 加入本地 android 包
22+
sPool.appendClassPath(project.android.bootClasspath[0].toString())
23+
}
24+
25+
static ClassPool getPool() {
26+
return sPool
27+
}
28+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.blankj.util
2+
3+
import com.google.gson.Gson
4+
import com.google.gson.GsonBuilder
5+
6+
/**
7+
* <pre>
8+
* author: Blankj
9+
* blog : http://blankj.com
10+
* time : 2018/10/08
11+
* desc :
12+
* </pre>
13+
*/
14+
final class JsonUtils {
15+
16+
static String getFormatJson(Object object) {
17+
Gson gson = new GsonBuilder().setPrettyPrinting().create()
18+
return gson.toJson(object)
19+
}
20+
}

bus-gradle-plugin/src/main/java/com/blankj/util/JsonUtils.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)