Skip to content

Commit 7f247e7

Browse files
committed
see 07/23 log
1 parent 71fc2ce commit 7f247e7

File tree

4 files changed

+7
-8
lines changed

4 files changed

+7
-8
lines changed

buildSrc/src/main/groovy/Config.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class Config {
2525
// appConfig 配置的是可以跑 app 的模块,git 提交务必只包含 launcher
2626
static appConfig = ['launcher']
2727
// pkgConfig 配置的是要依赖的功能包,为空则依赖全部,git 提交务必为空
28-
static pkgConfig = ['utilcode']
28+
static pkgConfig = []
2929

3030
static depConfig = [
3131
plugin : [

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/language/LanguageActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class LanguageActivity : CommonTitleActivity() {
5454
when (view.id) {
5555
R.id.languageApp -> ToastUtils.showLong(R.string.language)
5656
R.id.languageActivity -> ToastUtils.showLong(getString(R.string.language))
57-
R.id.applySimpleChineseLanguage -> LanguageUtils.applyLanguage(Locale.SIMPLIFIED_CHINESE, "com.blankj.launcher.pkg.MainActivity")
57+
R.id.applySimpleChineseLanguage -> LanguageUtils.applyLanguage(Locale.SIMPLIFIED_CHINESE, "com.blankj.main.pkg.MainActivity")
5858
R.id.applyAmericanLanguage -> LanguageUtils.applyLanguage(Locale.US, "")
5959
R.id.applySystemLanguage -> LanguageUtils.applySystemLanguage("")
6060
}

plugin/api-gradle-plugin/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ MainResult result = ApiUtils.getApi(MainApi.class)
176176
要想工具用得舒服,规范肯定要遵守的,所谓无规矩不成方圆,不然五花八门的问题肯定一堆堆,这里推荐如下规范:
177177

178178
* `impl``api` 应该都是 `public` 的,而且 `impl` 中应该只存在一个无参的 `public` 构造函数(默认不写即可)。
179-
* `api` 中修改接口不要在老的接口上动手脚,更不要删除老的接口,而应该建立新的接口后,通知业务方来调用新的接口,还是上面的跳转 `main` 的例子,由于我们前期接口设计有问题,需要新增一个 `UserInfo` 的参数,具体如下所示:
179+
* `api` 中接口的修改我们遵循类似于官方 Android SDK 的升级,大部分情况是新接口的出现需要兼容老接口,如果老接口并不影响功能的正常使用,也就无需通知业务方更新为新接口,新的接口一般都是新的业务方来调用;除非老的接口存有问题或漏洞,我们明确需要删除它,那在删除它的同时,我们还需要把业务中调用老接口的地方统一替换为新的接口,类似于我们升级 Android SDK 的时候,某些 `api` 明确被官方删除了,那我们就需要强行替换为新的接口。还是上面的跳转 `main` 的例子,由于新的业务在跳转的时候需新增一个 `UserInfo` 的参数,具体如下所示:
180180
```java
181181
// old
182182
public abstract class MainApi extends ApiUtils.BaseApi {
@@ -185,7 +185,6 @@ public abstract class MainApi extends ApiUtils.BaseApi {
185185

186186
// good
187187
public abstract class MainApi extends ApiUtils.BaseApi {
188-
@Deprecated
189188
public abstract MainResult startMainActivity(Context context, MainParam param);
190189

191190
public abstract MainResult startMainActivity(Context context, MainParam param, UserInfo info);

plugin/bus-gradle-plugin/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
## 比 EventBus 更高效的事件总线(BusUtils)
1+
# 比 EventBus 更高效的事件总线(BusUtils)
22

33
## 背景
44

55
设计这个 `BusUtils` 其实是在做 [ApiUtils](https://github.com/Blankj/AndroidUtilCode/tree/master/plugin/api-gradle-plugin) 时顺手做的,因为两者实现方式基本一致,设计前我也没想着要和 greenrobot 的 `EventBus` 一较高低,但设计完总需要一个对比,所以就拿业界最优秀的事件总线 `EventBus` 比较一下吧,然后就发现我这区区 300 行不到的 `BusUtils` 性能比 `EventBus` 要高出好多,当然,这一切的前提都是在 `BusUtils` 是切实可用并且有效的,它也是一款线程安全的事件总线,这些我都在单测中有做过实际测试的,不吹不擂,后面我们拿数据说话,有小伙伴不相信的话也可以通过下载我的源码来比较即可,单测地址:[BusUtilsVsEventBusTest](https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/test/java/com/blankj/utilcode/util/BusUtilsVsEventBusTest.java),Android 测试地址:[BusCompareActivity](https://github.com/Blankj/AndroidUtilCode/blob/master/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusCompareActivity.kt),`BusUtils` 在 **[AucFrame](https://github.com/Blankj/AucFrameTemplate)** 中的作用就是模块内传值,其扮演的角色如下所示:
66

7-
![BusUtilsPlayer](https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/communication.png)
7+
![BusUtilsRole](https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/communication.png)
88

99
下面介绍其使用:
1010

@@ -314,7 +314,7 @@ private void comparePostTemplate(String name, int subscribeNum, int postTimes) {
314314
}
315315
```
316316

317-
### 向 100 个订阅者发送 * 10000 次,共执行 10 次取平均值
317+
### 向 100 个订阅者发送 * 100000 次,共执行 10 次取平均值
318318

319319
```java
320320
/**
@@ -390,7 +390,7 @@ public void compareUnregister10000Times() {
390390

391391
为了方便观察,我们生成一份图表来比较两者之间的性能:
392392

393-
![BusUtilsVsEventBusChart](https://github.com/Blankj/AndroidUtilCode/blob/master/art/busutil_vs_eventbus.png)
393+
![BusUtilsVsEventBusChart](https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/busutil_vs_eventbus.png)
394394

395395
图表中分别对四个函数在 MacOS 和 OnePlus6 中的表现进行统计,每个函数中从左向右分别是 「MacOS 的 BusUtils」、「MacOS 的 EventBus」、「OnePlus6 的 BusUtils」、「OnePlus6 的 EventBus」,可以发现,BusUtils 在注册和注销上基本比 `EventBus` 要快上好几倍,BusUtils 在向少量订阅者发送多次事件比 `EventBus` 也快上好多,在向多个订阅者发送多次事件也比 `EventBus` 快上些许。
396396

0 commit comments

Comments
 (0)