From 131eda8452bea914ffc595fd8b18eb2a49599eb9 Mon Sep 17 00:00:00 2001 From: xuweiyu Date: Sat, 25 Dec 2021 13:14:43 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=92=8C=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=B7=BB=E5=8A=A0=E9=9A=90=E7=A7=81=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/github/fast_startup/IStartup.kt | 5 +++ fast-startup/build.gradle | 4 +-- .../io/github/fast_startup/FastStartup.kt | 6 ++++ .../fast_startup/config/StartupConfig.kt | 33 +++++++++++++++++++ 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/fast-startup-api/src/main/java/io/github/fast_startup/IStartup.kt b/fast-startup-api/src/main/java/io/github/fast_startup/IStartup.kt index 57f894a..49f9e07 100644 --- a/fast-startup-api/src/main/java/io/github/fast_startup/IStartup.kt +++ b/fast-startup-api/src/main/java/io/github/fast_startup/IStartup.kt @@ -40,4 +40,9 @@ interface IStartup { *组件启动完成 */ fun onStartCompleted() {} + + /** + * 是否需要隐私同意之后才能执行 + */ + fun needPrivacyAgree(): Boolean = false } \ No newline at end of file diff --git a/fast-startup/build.gradle b/fast-startup/build.gradle index 9e670ba..9175c00 100644 --- a/fast-startup/build.gradle +++ b/fast-startup/build.gradle @@ -37,9 +37,9 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - //api project(path: ':fast-startup-api') + api project(path: ':fast-startup-api') //api "io.github.wizzxu:fast-startup-api:0.0.1-SNAPSHOT" - api "io.github.wizzxu:fast-startup-api:0.0.1" + //api "io.github.wizzxu:fast-startup-api:0.0.1" testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt b/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt index 6dd39e7..21a7634 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt @@ -44,6 +44,11 @@ object FastStartup { private var isInit = false + /** + * 是否已经同意隐私协议 + */ + private var isPrivacyAgree: Boolean? = null + /** * 注册UI线程Startup都执行完毕的监听 @@ -133,6 +138,7 @@ object FastStartup { config.startupCompleteListener?.let { registerStartupCompleteListener(it) } + this.isPrivacyAgree = config.isPrivacyAgree } SLog.i("FastStartup init succeed") return this diff --git a/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt b/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt index c22bad7..9ccfa87 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt @@ -18,6 +18,11 @@ class StartupConfig { var enableTimeStatistics: Boolean? = null var params: Any? = null + /** + * 是否已经同意隐私协议 + */ + var isPrivacyAgree: Boolean? = null + var startupCompleteListener: StartupCompleteListener? = null var uiStartupCompleteListener: UIStartupCompleteListener? = null var allStartupCompleteListener: AllStartupCompleteListener? = null @@ -47,6 +52,28 @@ class StartupConfig { this.allStartupCompleteListener = allStartupCompleteListener } + constructor( + application: Application?, + isDebug: Boolean?, + logLevel: Int?, + enableTimeStatistics: Boolean?, + params: Any?, + isPrivacyAgree: Boolean?, + startupCompleteListener: StartupCompleteListener?, + uiStartupCompleteListener: UIStartupCompleteListener?, + allStartupCompleteListener: AllStartupCompleteListener? + ) { + this.application = application + this.isDebug = isDebug + this.logLevel = logLevel + this.enableTimeStatistics = enableTimeStatistics + this.params = params + this.isPrivacyAgree = isPrivacyAgree + this.startupCompleteListener = startupCompleteListener + this.uiStartupCompleteListener = uiStartupCompleteListener + this.allStartupCompleteListener = allStartupCompleteListener + } + class Builder( @@ -57,6 +84,7 @@ class StartupConfig { private var mLogLevel: Int? = Int.MAX_VALUE private var mEnableTimeStatistics: Boolean? = false private var mParams: Any? = null + private var mIsPrivacyAgree: Boolean? = null private var mStartupCompleteListener: StartupCompleteListener? = null private var mUiStartupCompleteListener: UIStartupCompleteListener? = null @@ -82,6 +110,10 @@ class StartupConfig { mParams = params } + fun setIsPrivacyAgree(isPrivacyAgree: Boolean?) = apply { + mIsPrivacyAgree = isPrivacyAgree + } + fun setStartupCompleteListener(startupCompleteListener: StartupCompleteListener?) = apply { mStartupCompleteListener = startupCompleteListener } @@ -103,6 +135,7 @@ class StartupConfig { mLogLevel, mEnableTimeStatistics, mParams, + mIsPrivacyAgree, mStartupCompleteListener, mUiStartupCompleteListener, mAllStartupCompleteListener From 6f026716f1c7eac6f7832340c8e088ba8266de14 Mon Sep 17 00:00:00 2001 From: xuweiyu Date: Thu, 30 Dec 2021 20:51:34 +0800 Subject: [PATCH 2/6] =?UTF-8?q?1.=20=E5=A2=9E=E5=8A=A0=E9=9A=90=E7=A7=81?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=202.=20=E5=A2=9E=E5=8A=A0=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 8 +- .../github/fast_startup/startup/demo/App.kt | 3 + .../fast_startup/startup/demo/MainActivity.kt | 31 ++- .../startup/demo/testprivacy/TestPrivacy.kt | 127 ++++++++++++ app/src/main/res/layout/activity_main.xml | 6 +- fast-startup/build.gradle | 2 +- .../io/github/fast_startup/FastStartup.kt | 183 +++++++++++++----- .../fast_startup/config/StartupConfig.kt | 18 +- .../dispatcher/DefaultDispatcher.kt | 29 +-- .../exception/StartupExceptionMsg.kt | 3 + .../fast_startup/module/StartupInfoStore.kt | 64 ++++++ .../fast_startup/module/StartupSortStore.kt | 36 +--- .../fast_startup/run/StartupRunnable.kt | 4 +- .../io/github/fast_startup/sort/SortUtil.kt | 176 +++++++++++++---- .../utils/DependenciesListCheckUtil.kt | 36 +++- .../utils/DependenciesListPrintUtil.kt | 36 ++++ .../utils/StartupCostTimesUtil.kt | 7 + 17 files changed, 615 insertions(+), 154 deletions(-) create mode 100644 app/src/main/java/io/github/fast_startup/startup/demo/testprivacy/TestPrivacy.kt create mode 100644 fast-startup/src/main/java/io/github/fast_startup/module/StartupInfoStore.kt create mode 100644 fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListPrintUtil.kt diff --git a/app/build.gradle b/app/build.gradle index e4088ce..0120962 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,7 +9,7 @@ android { defaultConfig { applicationId "io.github.fast.startup.demo" - minSdk 16 + minSdk 21 targetSdk 30 versionCode 1 versionName "1.0" @@ -19,7 +19,7 @@ android { buildTypes { debug { - minifyEnabled true + minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } release { @@ -42,8 +42,8 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - //implementation project(path: ':fast-startup') - api "io.github.wizzxu:fast-startup:0.0.1" + implementation project(path: ':fast-startup') + //api "io.github.wizzxu:fast-startup:0.0.1" //implementation "io.github.wizzxu:fast-startup:0.0.1-SNAPSHOT" //implementation project(path: ':fast-startup-api') diff --git a/app/src/main/java/io/github/fast_startup/startup/demo/App.kt b/app/src/main/java/io/github/fast_startup/startup/demo/App.kt index a051e0a..ae1573a 100644 --- a/app/src/main/java/io/github/fast_startup/startup/demo/App.kt +++ b/app/src/main/java/io/github/fast_startup/startup/demo/App.kt @@ -8,6 +8,7 @@ import io.github.fast_startup.startup.demo.testgetresult.TestGetResult import io.github.fast_startup.startup.demo.testinterfaceimp.TestInterfaceImp import io.github.fast_startup.startup.demo.testmissing.TestMissing import io.github.fast_startup.startup.demo.testmultiadd.TestMultiAdd +import io.github.fast_startup.startup.demo.testprivacy.TestPrivacy import io.github.fast_startup.startup.demo.testwaitmainthread.TestWaitMainThread /** @@ -93,6 +94,8 @@ class App : Application() { TestTask.addTask(TestAop()) + TestTask.addTask(TestPrivacy()) + TestTask.startNext() SLog.e("StartupRunnable", "all is ok") diff --git a/app/src/main/java/io/github/fast_startup/startup/demo/MainActivity.kt b/app/src/main/java/io/github/fast_startup/startup/demo/MainActivity.kt index c7fe6da..364463a 100644 --- a/app/src/main/java/io/github/fast_startup/startup/demo/MainActivity.kt +++ b/app/src/main/java/io/github/fast_startup/startup/demo/MainActivity.kt @@ -1,16 +1,43 @@ package io.github.fast_startup.startup.demo import android.os.Bundle +import android.view.View import androidx.appcompat.app.AppCompatActivity +import io.github.fast_startup.FastStartup +import io.github.fast_startup.IStartup +import io.github.fast_startup.listener.AllStartupCompleteListener +import io.github.fast_startup.listener.StartupCompleteListener +import io.github.fast_startup.listener.UIStartupCompleteListener import io.github.fast_startup.log.SLog -import io.github.fast_startup.startup.demo.testaop.TestAop -import io.github.fast_startup.startup.demo.testinterfaceimp.TestInterfaceImp class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + } + + fun click(v: View){ + SLog.e("click") + FastStartup.setPrivacyAgree(true) + .registerAllStartupCompleteListener(object : + AllStartupCompleteListener { + override fun startupComplete() { + SLog.e("registerAllStartupCompleteListener") + //FastStartup.setPrivacyAgree(true) + //FastStartup.reStart() + } + }).registerUIStartupCompleteListener(object : UIStartupCompleteListener { + override fun startupComplete() { + SLog.e("registerUIStartupCompleteListener") + + } + }).registerStartupCompleteListener(object : StartupCompleteListener { + override fun startupComplete(startup: IStartup<*>) { + SLog.e("registerStartupCompleteListener:${startup.javaClass.simpleName}") + } + }) + FastStartup.reStart() } } diff --git a/app/src/main/java/io/github/fast_startup/startup/demo/testprivacy/TestPrivacy.kt b/app/src/main/java/io/github/fast_startup/startup/demo/testprivacy/TestPrivacy.kt new file mode 100644 index 0000000..597f964 --- /dev/null +++ b/app/src/main/java/io/github/fast_startup/startup/demo/testprivacy/TestPrivacy.kt @@ -0,0 +1,127 @@ +package io.github.fast_startup.startup.demo.testprivacy + +import android.content.Context +import android.util.Log +import io.github.fast_startup.FastStartup +import io.github.fast_startup.IStartup +import io.github.fast_startup.config.StartupConfig +import io.github.fast_startup.listener.AllStartupCompleteListener +import io.github.fast_startup.listener.StartupCompleteListener +import io.github.fast_startup.listener.UIStartupCompleteListener +import io.github.fast_startup.log.SLog +import io.github.fast_startup.startup.demo.TestBase + +/** + * Author: xuweiyu + * Date: 2021/12/29 + * Description: + */ +class TestPrivacy : TestBase { + override fun test() { + val startups = mutableListOf>() + startups.add(C()) + startups.add(A()) + startups.add(B()) + startups.add(D()) + startups.add(E()) + + FastStartup.free() + FastStartup.init( + StartupConfig.Builder().setIsDebug(true).setEnableTimeStatistics(true) + .setLogLevel(Log.DEBUG) + .setIsPrintDependencies(true) + .build() + ).registerAllStartupCompleteListener(object : AllStartupCompleteListener{ + override fun startupComplete() { + SLog.e("registerAllStartupCompleteListener") + //FastStartup.setPrivacyAgree(true) + //FastStartup.reStart() + } + }).registerUIStartupCompleteListener(object : UIStartupCompleteListener{ + override fun startupComplete() { + SLog.e("registerUIStartupCompleteListener") + + } + }).registerStartupCompleteListener(object : StartupCompleteListener{ + override fun startupComplete(startup: IStartup<*>) { + SLog.e("registerStartupCompleteListener:${startup.javaClass.simpleName}") + } + + }) + .start(startups) + } +} + +class A : IStartup { + override fun start(context: Context?, isDebug: Boolean?, any: Any?): String? { + SLog.e("A()") + return null + } + + override fun needPrivacyAgree(): Boolean { + return true + } +} + +class B : IStartup { + override fun start(context: Context?, isDebug: Boolean?, any: Any?): String? { + SLog.e("B()") + + return null + } + + override fun runOnUIThread(): Boolean { + return true + } + + override fun dependencies(): List>>? { + return listOf(A::class.java) + } +} + +class C : IStartup { + override fun start(context: Context?, isDebug: Boolean?, any: Any?): String? { + SLog.e("c()") + + return null + } + + override fun dependencies(): List>>? { + return listOf(A::class.java) + } + + override fun needPrivacyAgree(): Boolean { + return true + } +} + +class D : IStartup { + override fun start(context: Context?, isDebug: Boolean?, any: Any?): String? { + SLog.e("D()") + + return null + } + + override fun dependencies(): List>>? { + return null + } + override fun runOnUIThread(): Boolean { + return true + } +} + +class E : IStartup { + override fun start(context: Context?, isDebug: Boolean?, any: Any?): String? { + SLog.e("E()") + + return null + } + + override fun runOnUIThread(): Boolean { + return true + } + + override fun dependencies(): List>>? { + return listOf(D::class.java) + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4fc2444..cff14e0 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,8 +7,10 @@ tools:context=".MainActivity"> () + ArrayDeque() // 所有的startup执行完毕的回调 private var allStartupCompleteListeners = - mutableListOf() + ArrayDeque() // 每一个startup执行完毕的回调 private var startupCompleteListeners = - mutableListOf() + ArrayDeque() private var startupCostTimesUtils: StartupCostTimesUtil? = null - private var startupSortStore: StartupSortStore? = null + private var startupInfoStore: StartupInfoStore? = null private val aopStartups: MutableList> = mutableListOf() @@ -48,19 +49,28 @@ object FastStartup { * 是否已经同意隐私协议 */ private var isPrivacyAgree: Boolean? = null + get() = startupConfig?.isPrivacyAgree + /** + * 设置是否同意隐私 + */ + fun setPrivacyAgree(isPrivacyAgree: Boolean): FastStartup { + this.startupConfig?.isPrivacyAgree = isPrivacyAgree + return this + } /** * 注册UI线程Startup都执行完毕的监听 */ - fun registerUIStartupCompleteListener(uiStartupCompleteListener: UIStartupCompleteListener) { + fun registerUIStartupCompleteListener(uiStartupCompleteListener: UIStartupCompleteListener): FastStartup { uiStartupCompleteListeners.add(uiStartupCompleteListener) + return this } /** * 取消注册UI线程Startup都执行完毕的监听 */ - fun unregisterUIStartupCompleteListener(uiStartupCompleteListener: UIStartupCompleteListener) { + fun unregisterUIStartupCompleteListener(uiStartupCompleteListener: UIStartupCompleteListener): FastStartup { val it: MutableIterator = uiStartupCompleteListeners.iterator() while (it.hasNext()) { @@ -69,19 +79,21 @@ object FastStartup { it.remove() } } + return this } /** * 注册所有Startup都执行完毕的监听 */ - fun registerAllStartupCompleteListener(allStartupCompleteListener: AllStartupCompleteListener) { + fun registerAllStartupCompleteListener(allStartupCompleteListener: AllStartupCompleteListener): FastStartup { allStartupCompleteListeners.add(allStartupCompleteListener) + return this } /** * 取消注册所有Startup都执行完毕的监听 */ - fun unregisterAllStartupCompleteListener(allStartupCompleteListener: AllStartupCompleteListener) { + fun unregisterAllStartupCompleteListener(allStartupCompleteListener: AllStartupCompleteListener): FastStartup { val it: MutableIterator = allStartupCompleteListeners.iterator() while (it.hasNext()) { @@ -90,19 +102,22 @@ object FastStartup { it.remove() } } + + return this } /** * 注册Startup执行完毕的监听 */ - fun registerStartupCompleteListener(startupCompleteListener: StartupCompleteListener) { + fun registerStartupCompleteListener(startupCompleteListener: StartupCompleteListener): FastStartup { startupCompleteListeners.add(startupCompleteListener) + return this } /** * 取消注册每一个Startup执行完毕的监听 */ - fun unregisterStartupCompleteListener(startupCompleteListener: StartupCompleteListener) { + fun unregisterStartupCompleteListener(startupCompleteListener: StartupCompleteListener): FastStartup { val it: MutableIterator = startupCompleteListeners.iterator() while (it.hasNext()) { @@ -111,6 +126,7 @@ object FastStartup { it.remove() } } + return this } fun init( @@ -147,7 +163,7 @@ object FastStartup { /** * 开始启动startup */ - fun start(startupList: List>? = null) { + fun start(startupList: List>? = null): FastStartup { startupCostTimesUtils?.initStartTime() // 初始化检测 if (!isInit) { @@ -158,42 +174,115 @@ object FastStartup { throw StartupException(StartupExceptionMsg.NOT_RUN_IN_MAIN_THREAD) } initAopStartup() - SLog.i("aopStartups", aopStartups) - val startupSortStore = SortUtil.sort(aopStartups.also { - startupList?.let { startupList -> - it.addAll(startupList) - } - }, startupConfig?.isDebug) - startupSortStore.also { FastStartup.startupSortStore = it } - + SLog.i("aopStartups:$aopStartups") + startupList?.let { + aopStartups.addAll(startupList) + } - val startupDispatcher = DefaultDispatcher(startupConfig) - startupDispatcher.allStartupCompleteListener = object : AllStartupCompleteListener { - override fun startupComplete() { - allStartupCompleteListeners.forEach { - it.startupComplete() + startupInfoStore = SortUtil.getPrivacyCheckStartup(aopStartups, startupConfig) + startupInfoStore?.let { startupInfoStore -> + // 环检测 + DependenciesListCheckUtil.dependenciesListCheck( + startupList = aopStartups, + startupConfig = startupConfig, startupInfoStore = startupInfoStore + ) + // 运行隐私检测通过的startup + SortUtil.sort( + startupInfoStore.privacyCheckPassStartupList, + startupConfig, startupInfoStore + ).let { startupSortStore -> + val startupDispatcher = DefaultDispatcher(startupConfig, startupInfoStore) + startupDispatcher.allStartupCompleteListener = object : AllStartupCompleteListener { + override fun startupComplete() { + while (allStartupCompleteListeners.isNotEmpty()) { + allStartupCompleteListeners.removeFirstOrNull()?.startupComplete() + } + if (uiStartupCompleteListeners.isEmpty()) { + startupCompleteListeners.clear() + } + } + } + startupDispatcher.uiStartupCompleteListener = object : UIStartupCompleteListener { + override fun startupComplete() { + while (uiStartupCompleteListeners.isNotEmpty()) { + uiStartupCompleteListeners.removeFirstOrNull()?.startupComplete() + } + if (allStartupCompleteListeners.isEmpty()) { + startupCompleteListeners.clear() + } + } } - allStartupCompleteListeners.clear() - startupCompleteListeners.clear() + startupDispatcher.startupCompleteListener = object : StartupCompleteListener { + override fun startupComplete(startup: IStartup<*>) { + startupCompleteListeners.forEach { + it.startupComplete(startup) + } + } + } + startupDispatcher.start(startupSortStore, startupCostTimesUtils) } + } + return this + } + /** + * 重新执行需要隐私的Startup + */ + fun reStart() { + if (isPrivacyAgree != true || startupInfoStore?.privacyCheckFailStartupList?.size == 0) { + SLog.e("隐私未同意或者没有需要隐私权限的Startup") + return } - startupDispatcher.uiStartupCompleteListener = object : UIStartupCompleteListener { - override fun startupComplete() { - uiStartupCompleteListeners.forEach { - it.startupComplete() - } - uiStartupCompleteListeners.clear() - } + // 初始化检测 + if (!isInit) { + throw StartupException(StartupExceptionMsg.NOT_INIT) } - startupDispatcher.startupCompleteListener = object : StartupCompleteListener { - override fun startupComplete(startup: IStartup<*>) { - startupCompleteListeners.forEach { - it.startupComplete(startup) + // 主线程检测 + if (Looper.myLooper() != Looper.getMainLooper()) { + throw StartupException(StartupExceptionMsg.NOT_RUN_IN_MAIN_THREAD) + } + // 检测有没有先运行start()方法 + if (startupInfoStore == null) { + throw StartupException(StartupExceptionMsg.NOT_RUN_START) + } + startupCostTimesUtils?.initStartTime() + startupInfoStore?.let { startupInfoStore -> + // 运行隐私检测通过的startup + SortUtil.sort( + startupInfoStore.privacyCheckFailStartupList, + startupConfig, startupInfoStore + ).let { startupSortStore -> + val startupDispatcher = DefaultDispatcher(startupConfig, startupInfoStore) + startupDispatcher.allStartupCompleteListener = object : AllStartupCompleteListener { + override fun startupComplete() { + while (allStartupCompleteListeners.isNotEmpty()) { + allStartupCompleteListeners.removeFirstOrNull()?.startupComplete() + } + if (uiStartupCompleteListeners.isEmpty()) { + startupCompleteListeners.clear() + } + } + } + startupDispatcher.uiStartupCompleteListener = object : UIStartupCompleteListener { + override fun startupComplete() { + while (uiStartupCompleteListeners.isNotEmpty()) { + uiStartupCompleteListeners.removeFirstOrNull()?.startupComplete() + } + if (allStartupCompleteListeners.isEmpty()) { + startupCompleteListeners.clear() + } + } + } + startupDispatcher.startupCompleteListener = object : StartupCompleteListener { + override fun startupComplete(startup: IStartup<*>) { + startupCompleteListeners.forEach { + it.startupComplete(startup) + } + } } + startupDispatcher.start(startupSortStore, startupCostTimesUtils) } } - startupDispatcher.start(startupSortStore, startupCostTimesUtils) } /** @@ -201,14 +290,14 @@ object FastStartup { */ fun > getStartup(clazz: Class): T? { if (clazz.isInterface) { - val inter = startupSortStore?.startupInterfaceMap?.get(clazz) + val inter = startupInfoStore?.startupInterfaceMap?.get(clazz) if (inter != null) { - startupSortStore?.startupMap?.get(inter.getUniqueKey())?.let { + startupInfoStore?.startupMap?.get(inter.getUniqueKey())?.let { return it as T } } } - startupSortStore?.startupMap?.get(clazz.getUniqueKey())?.let { + startupInfoStore?.startupMap?.get(clazz.getUniqueKey())?.let { return it as T } return null @@ -219,12 +308,12 @@ object FastStartup { */ fun getStartupResult(clazz: Class>): Any? { if (clazz.isInterface) { - val inter = startupSortStore?.startupInterfaceMap?.get(clazz) + val inter = startupInfoStore?.startupInterfaceMap?.get(clazz) if (inter != null) { - return startupSortStore?.startupResultMap?.get(inter.getUniqueKey()) + return startupInfoStore?.startupResultMap?.get(inter.getUniqueKey()) } } - return startupSortStore?.startupResultMap?.get(clazz.getUniqueKey()) + return startupInfoStore?.startupResultMap?.get(clazz.getUniqueKey()) } /** @@ -241,8 +330,8 @@ object FastStartup { this.isInit = false this.startupCostTimesUtils = null this.startupConfig = null - this.startupSortStore?.free() - this.startupSortStore = null + this.startupInfoStore?.free() + this.startupInfoStore = null this.aopStartups.clear() this.allStartupCompleteListeners.clear() this.uiStartupCompleteListeners.clear() diff --git a/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt b/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt index 9ccfa87..6460a05 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt @@ -23,6 +23,11 @@ class StartupConfig { */ var isPrivacyAgree: Boolean? = null + /** + * 是否打印依赖关系 + */ + var isPrintDependencies: Boolean? = null + var startupCompleteListener: StartupCompleteListener? = null var uiStartupCompleteListener: UIStartupCompleteListener? = null var allStartupCompleteListener: AllStartupCompleteListener? = null @@ -59,6 +64,7 @@ class StartupConfig { enableTimeStatistics: Boolean?, params: Any?, isPrivacyAgree: Boolean?, + isPrintDependencies: Boolean?, startupCompleteListener: StartupCompleteListener?, uiStartupCompleteListener: UIStartupCompleteListener?, allStartupCompleteListener: AllStartupCompleteListener? @@ -69,22 +75,21 @@ class StartupConfig { this.enableTimeStatistics = enableTimeStatistics this.params = params this.isPrivacyAgree = isPrivacyAgree + this.isPrintDependencies = isPrintDependencies this.startupCompleteListener = startupCompleteListener this.uiStartupCompleteListener = uiStartupCompleteListener this.allStartupCompleteListener = allStartupCompleteListener } - class Builder( - - ) { - + class Builder { private var mApplication: Application? = null private var mIsDebug: Boolean? = false private var mLogLevel: Int? = Int.MAX_VALUE private var mEnableTimeStatistics: Boolean? = false private var mParams: Any? = null private var mIsPrivacyAgree: Boolean? = null + private var mIsPrintDependencies: Boolean? = null private var mStartupCompleteListener: StartupCompleteListener? = null private var mUiStartupCompleteListener: UIStartupCompleteListener? = null @@ -114,6 +119,10 @@ class StartupConfig { mIsPrivacyAgree = isPrivacyAgree } + fun setIsPrintDependencies(isPrintDependencies: Boolean?) = apply { + mIsPrintDependencies = isPrintDependencies + } + fun setStartupCompleteListener(startupCompleteListener: StartupCompleteListener?) = apply { mStartupCompleteListener = startupCompleteListener } @@ -136,6 +145,7 @@ class StartupConfig { mEnableTimeStatistics, mParams, mIsPrivacyAgree, + mIsPrintDependencies, mStartupCompleteListener, mUiStartupCompleteListener, mAllStartupCompleteListener diff --git a/fast-startup/src/main/java/io/github/fast_startup/dispatcher/DefaultDispatcher.kt b/fast-startup/src/main/java/io/github/fast_startup/dispatcher/DefaultDispatcher.kt index a4d09e8..61844c3 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/dispatcher/DefaultDispatcher.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/dispatcher/DefaultDispatcher.kt @@ -7,6 +7,7 @@ import io.github.fast_startup.extensions.getUniqueKey import io.github.fast_startup.listener.AllStartupCompleteListener import io.github.fast_startup.listener.StartupCompleteListener import io.github.fast_startup.listener.UIStartupCompleteListener +import io.github.fast_startup.module.StartupInfoStore import io.github.fast_startup.module.StartupSortStore import io.github.fast_startup.run.StartupRunnable import io.github.fast_startup.utils.StartupCostTimesUtil @@ -19,7 +20,10 @@ import java.util.concurrent.atomic.AtomicInteger * Email: wizz.xu@outlook.com * Description: */ -internal class DefaultDispatcher(private val startupConfig: StartupConfig?) : IDispatcher { +internal class DefaultDispatcher( + private val startupConfig: StartupConfig?, + private val startupInfoStore: StartupInfoStore +) : IDispatcher { private lateinit var startupSortStore: StartupSortStore @@ -50,7 +54,7 @@ internal class DefaultDispatcher(private val startupConfig: StartupConfig?) : ID this.startupCostTimesUtils = startupCostTimesUtils uiThreadTaskSize.addAndGet(startupSortStore.uiThreadTaskSize) - allTaskSize.addAndGet(startupSortStore.startupMap.size) + allTaskSize.addAndGet(startupSortStore.allTaskSize) needUIThreadWaitTaskSize.addAndGet(startupSortStore.needUIThreadWaitTaskSize) this.startupSortStore = startupSortStore @@ -64,8 +68,7 @@ internal class DefaultDispatcher(private val startupConfig: StartupConfig?) : ID while (startup != null) { ExecutorManager.instance.execute( StartupRunnable( - startup, startupConfig, - startupSortStore, this, + startup, startupConfig, startupSortStore, startupInfoStore, this, startupCostTimesUtils ) ) @@ -78,10 +81,7 @@ internal class DefaultDispatcher(private val startupConfig: StartupConfig?) : ID while (uiThreadTaskSize.get() > 0 || needUIThreadWaitTaskSize.get() > 0) { if (startup != null) { StartupRunnable( - startup, - startupConfig, - startupSortStore, - this, + startup, startupConfig, startupSortStore, startupInfoStore, this, startupCostTimesUtils ).run() } else { @@ -103,13 +103,17 @@ internal class DefaultDispatcher(private val startupConfig: StartupConfig?) : ID } startupCompleteListener?.startupComplete(completeStartup) + // 移除所有需要依赖该startup的 依赖关联 + startupInfoStore.allStartupDependenciesList.values.forEach { + it?.remove(uniqueKey) + } while (its.hasNext()) { val entry = its.next() entry.value.remove(uniqueKey) - if (entry.value.size == 0) { + if (entry.value.size == 0 || startupInfoStore.allStartupDependenciesList[entry.key].isNullOrEmpty()) { its.remove() - startupSortStore.startupMap[entry.key]?.let { startup -> + startupInfoStore.startupMap[entry.key]?.let { startup -> if (startup.runOnUIThread()) { startupSortStore.uiZeroDeque.offer(startup) } else { @@ -121,10 +125,12 @@ internal class DefaultDispatcher(private val startupConfig: StartupConfig?) : ID // 如果UI线程队列有任务,唤醒UI线程 if (startupSortStore.uiZeroDeque.isNotEmpty()) { countDownLatch?.countDown() + } else { + this.startupCostTimesUtils?.recordUIThreadStartupsEnd() } if (completeStartup.needUIThreadWait()) { - if (needUIThreadWaitTaskSize.decrementAndGet() <= 0){ + if (needUIThreadWaitTaskSize.decrementAndGet() < 1) { this.startupCostTimesUtils?.recordUIThreadStartupsEnd() countDownLatch?.countDown() } @@ -135,7 +141,6 @@ internal class DefaultDispatcher(private val startupConfig: StartupConfig?) : ID } else { startupCostTimesUtils?.recordAllStartupsEnd() allStartupCompleteListener?.startupComplete() - startupCostTimesUtils?.printAll() } } diff --git a/fast-startup/src/main/java/io/github/fast_startup/exception/StartupExceptionMsg.kt b/fast-startup/src/main/java/io/github/fast_startup/exception/StartupExceptionMsg.kt index 173065c..4b336bc 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/exception/StartupExceptionMsg.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/exception/StartupExceptionMsg.kt @@ -19,5 +19,8 @@ interface StartupExceptionMsg { // 没有初始化 const val NOT_INIT: String = "FastStartup has not init" + + // 没有先运行start方法 + const val NOT_RUN_START: String = "Please run start() before run reStart()!" } } \ No newline at end of file diff --git a/fast-startup/src/main/java/io/github/fast_startup/module/StartupInfoStore.kt b/fast-startup/src/main/java/io/github/fast_startup/module/StartupInfoStore.kt new file mode 100644 index 0000000..5f3a551 --- /dev/null +++ b/fast-startup/src/main/java/io/github/fast_startup/module/StartupInfoStore.kt @@ -0,0 +1,64 @@ +package io.github.fast_startup.module + +import io.github.fast_startup.IStartup +import java.util.concurrent.ConcurrentHashMap + +/** + * Author: xuweiyu + * Date: 2021/12/31 + * Email: wizz.xu@outlook.com + * Description: + */ +internal data class StartupInfoStore( + /** + * 保存所有startup start 返回的结果 + */ + val startupResultMap: ConcurrentHashMap = ConcurrentHashMap(), + + /** + * startup的集合 key为uniqueKey value为startup对象 + */ + val startupMap: HashMap>, + + /** + * 维护startup与其对外暴露的继承自Startup的接口 的 一一对应关系 + * interface IA : IStartup + * class A : IA {} + * class B : IStartup { + * override fun create(context: Context?, isDebug: Boolean?, any: Any?): String? { + * return null + * } + * + * override fun dependencies(): List>>? { + * return listOf(IA::class.java) + * } + * } + * key为IA::class.java + * value为A::class.java + */ + val startupInterfaceMap: MutableMap, Class>>, + + /** + * 保存隐私检查通过的Startup + */ + val privacyCheckPassStartupList: ArrayDeque>, + + /** + * 保存隐私检查未通过的Startup + */ + val privacyCheckFailStartupList: ArrayDeque>, + + /** + * 所有startup的依赖关系 + */ + val allStartupDependenciesList: MutableMap?> +) { + fun free() { + startupMap.clear() + startupInterfaceMap.clear() + startupResultMap.clear() + privacyCheckPassStartupList.clear() + privacyCheckFailStartupList.clear() + allStartupDependenciesList.clear() + } +} \ No newline at end of file diff --git a/fast-startup/src/main/java/io/github/fast_startup/module/StartupSortStore.kt b/fast-startup/src/main/java/io/github/fast_startup/module/StartupSortStore.kt index b889b7f..56d7c5e 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/module/StartupSortStore.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/module/StartupSortStore.kt @@ -18,30 +18,6 @@ internal data class StartupSortStore( // 入度为0工作在io线程的startup的队列 val ioZeroDeque: ConcurrentLinkedDeque>, - // startup的集合 key为uniqueKey value为startup对象 - val startupMap: ConcurrentHashMap>, - - /** - * 维护startup与其对外暴露的继承自Startup的接口 的 一一对应关系 - * interface IA : IStartup - * class A : IA {} - * class B : IStartup { - * override fun create(context: Context?, isDebug: Boolean?, any: Any?): String? { - * return null - * } - * - * override fun dependencies(): List>>? { - * return listOf(IA::class.java) - * } - * } - * key为IA::class.java - * value为A::class.java - */ - val startupInterfaceMap: MutableMap, Class>>, - - // 保存所有startup start 返回的结果 - val startupResultMap: ConcurrentHashMap, - // 维护入度不为0的startup的依赖表 // 当一个startup(A)完成后,其他依赖该startup(A)的依赖表需要删除该startup(A)并进行重新计算 val startupChildrenMap: ConcurrentHashMap>, @@ -50,12 +26,12 @@ internal data class StartupSortStore( var uiThreadTaskSize: Int, // 需要ui线程等待的startup的数量 - var needUIThreadWaitTaskSize: Int -){ - fun free(){ - startupMap.clear() - startupInterfaceMap.clear() - startupResultMap.clear() + var needUIThreadWaitTaskSize: Int, + + // 所有任务的数量 + var allTaskSize: Int, +) { + fun free() { startupChildrenMap.clear() } } \ No newline at end of file diff --git a/fast-startup/src/main/java/io/github/fast_startup/run/StartupRunnable.kt b/fast-startup/src/main/java/io/github/fast_startup/run/StartupRunnable.kt index 99765f8..af3d368 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/run/StartupRunnable.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/run/StartupRunnable.kt @@ -5,6 +5,7 @@ import io.github.fast_startup.config.StartupConfig import io.github.fast_startup.dispatcher.IDispatcher import io.github.fast_startup.extensions.getUniqueKey import io.github.fast_startup.log.SLog +import io.github.fast_startup.module.StartupInfoStore import io.github.fast_startup.module.StartupSortStore import io.github.fast_startup.utils.StartupCostTimesUtil @@ -17,6 +18,7 @@ import io.github.fast_startup.utils.StartupCostTimesUtil internal class StartupRunnable( private val startup: IStartup<*>, private val startupConfig: StartupConfig?, private val startupSortStore: StartupSortStore, + private val startupInfoStore: StartupInfoStore, private val dispatcher: IDispatcher, private val startupCostTimesUtils: StartupCostTimesUtil? = null ) : Runnable { @@ -26,7 +28,7 @@ internal class StartupRunnable( startupCostTimesUtils?.recordStart(startup) startup.start(startupConfig?.application, startupConfig?.isDebug, startupConfig?.params) ?.let { - startupSortStore.startupResultMap[startup.javaClass.getUniqueKey()] = it + startupInfoStore.startupResultMap[startup.javaClass.getUniqueKey()] = it } startupCostTimesUtils?.recordEnd(startup) SLog.d("结束执行:${startup.javaClass.getUniqueKey()} Thread:${Thread.currentThread().name}") diff --git a/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt b/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt index 0258643..6a47b38 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt @@ -1,14 +1,15 @@ package io.github.fast_startup.sort import io.github.fast_startup.IStartup +import io.github.fast_startup.config.StartupConfig import io.github.fast_startup.exception.StartupException import io.github.fast_startup.exception.StartupExceptionMsg -import io.github.fast_startup.executor.ExecutorManager import io.github.fast_startup.extensions.getUniqueKey +import io.github.fast_startup.module.StartupInfoStore import io.github.fast_startup.module.StartupSortStore -import io.github.fast_startup.utils.DependenciesListCheckUtil import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentLinkedDeque +import kotlin.collections.set /** * Author: xuweiyu @@ -21,9 +22,10 @@ internal object SortUtil { /** * 排序的方法 */ - fun sort(startupList: List>, isDebug: Boolean?): StartupSortStore { - // startup的集合 key为uniqueKey value为startup对象 - val startupMap: ConcurrentHashMap> = ConcurrentHashMap(startupList.size) + fun sort( + startupList: ArrayDeque>, startupConfig: StartupConfig?, + startupInfoStore: StartupInfoStore + ): StartupSortStore { // 工作在ui线程的startup的队列 val uiZeroDeque: ConcurrentLinkedDeque> = ConcurrentLinkedDeque() @@ -31,8 +33,6 @@ internal object SortUtil { // 工作在io线程的startup的队列 val ioZeroDeque: ConcurrentLinkedDeque> = ConcurrentLinkedDeque() - val startupInterfaceMap = mutableMapOf, Class>>() - // 维护入度不为0的startup的依赖表 // 当一个startup(A)完成后,其他依赖该startup(A)的依赖表需要删除该startup(A)并进行重新计算 val startupChildrenMap: ConcurrentHashMap> = @@ -44,6 +44,85 @@ internal object SortUtil { // 需要ui线程等待的startup的数量 var needUIThreadWaitTaskSize = 0 + // 所有任务的数量 + val allTaskSize = startupList.size + + // 初次计算运行的主线程和IO线程的入度为0的startup,分别存储在uiZeroDeque和ioZeroDeque + // 入度不为0的startup和他依赖的startup的依赖关系保存在startupChildrenMap中 + // 计算所有需要运行在主线程的startup的数量 和 需要主线程等待的startup的数量 + for (i in 1..allTaskSize) { + startupList.removeFirstOrNull()?.let { + val uniqueKey = it::class.java.getUniqueKey() + // 符合隐私检测 + if (!it.needPrivacyAgree() || it.needPrivacyAgree() == startupConfig?.isPrivacyAgree) { + // 计算统计入度, 入度为0则保存到0度列表 + // 入度不为0,存放到startupChildrenMap并保存需要依赖的startup + if (it.dependencies() + .isNullOrEmpty() || startupInfoStore.allStartupDependenciesList[uniqueKey].isNullOrEmpty() + ) { + if (it.runOnUIThread()) { + uiZeroDeque.offer(it) + } else { + ioZeroDeque.offer(it) + } + } else { + val dependency = mutableSetOf() + it.dependencies()?.forEach { dep -> + if (dep.isInterface) { + val depModule = startupInfoStore.startupInterfaceMap[dep] + if (depModule != null) { + dependency.add(depModule.getUniqueKey()) + } else { + throw StartupException("not fond ${dep.getUniqueKey()} implement") + } + } else { + dependency.add(dep.getUniqueKey()) + } + } + startupChildrenMap[uniqueKey] = dependency + } + + if (it.runOnUIThread()) { + uiThreadTaskSize++ + } + + if (it.needUIThreadWait()) { + needUIThreadWaitTaskSize++ + } + } + } + } + + + return StartupSortStore( + uiZeroDeque, ioZeroDeque, startupChildrenMap, uiThreadTaskSize, + needUIThreadWaitTaskSize, allTaskSize + ) + } + + /** + * 排序的方法 + */ + fun getPrivacyCheckStartup( + startupList: List>, + startupConfig: StartupConfig? + ): StartupInfoStore { + // startup的集合 key为uniqueKey value为startup对象 + val startupMap: HashMap> = HashMap(startupList.size) + + val privacyCheckPassStartupList = ArrayDeque>() + + val privacyCheckFailStartupList = ArrayDeque>() + + val startupInterfaceMap = mutableMapOf, Class>>() + + val allStartupDependenciesList: MutableMap?> = + mutableMapOf() + + // 维护入度不为0的startup的依赖表 + // 当一个startup(A)完成后,其他依赖该startup(A)的依赖表需要删除该startup(A)并进行重新计算 + val startupChildrenMap: MutableMap> = mutableMapOf() + // 构建startupInterfaceMap依赖关系表 startupList.forEach { startup -> startup::class.java.interfaces.forEach { @@ -52,62 +131,73 @@ internal object SortUtil { } } } - // 初次计算运行的主线程和IO线程的入度为0的startup,分别存储在uiZeroDeque和ioZeroDeque - // 入度不为0的startup和他依赖的startup的依赖关系保存在startupChildrenMap中 - // 计算所有需要运行在主线程的startup的数量 和 需要主线程等待的startup的数量 - startupList.forEach { + + val zeroDequeTmp = ArrayDeque() + startupList.forEach { it -> val uniqueKey = it::class.java.getUniqueKey() if (startupMap.containsKey(uniqueKey)) { throw StartupException("$uniqueKey ${StartupExceptionMsg.MULTI_ADD}") - } else { - // 保存所有startup - startupMap[uniqueKey] = it - // 计算统计入度, 入度为0则保存到0度列表 - // 入度不为0,存放到startupChildrenMap并保存需要依赖的startup + } + // 保存所有startup + startupMap[uniqueKey] = it + // 保存所有startup 依赖关系 + allStartupDependenciesList[uniqueKey] = it.dependencies()?.map { it1 -> + var ret = it1.getUniqueKey() + if (it1.isInterface) { + ret = startupInterfaceMap[it1]?.getUniqueKey()!! + } + ret + }?.toMutableList() + // 计算统计入度, 入度为0则保存到0度列表 + // 入度不为0,存放到startupChildrenMap并保存需要依赖的startup + // 隐私合规处理 + if (!it.needPrivacyAgree() || it.needPrivacyAgree() == startupConfig?.isPrivacyAgree) { if (it.dependencies().isNullOrEmpty()) { - if (it.runOnUIThread()) { - uiZeroDeque.offer(it) - } else { - ioZeroDeque.offer(it) - } + privacyCheckPassStartupList.add(it) + zeroDequeTmp.add(uniqueKey) } else { - val dependency = mutableSetOf() + val dependencyTmp = mutableSetOf() it.dependencies()?.forEach { dep -> if (dep.isInterface) { val depModule = startupInterfaceMap[dep] if (depModule != null) { - dependency.add(depModule.getUniqueKey()) - } else { - throw StartupException("not fond ${dep.getUniqueKey()} implement") + dependencyTmp.add(depModule.getUniqueKey()) } } else { - dependency.add(dep.getUniqueKey()) + dependencyTmp.add(dep.getUniqueKey()) } } - startupChildrenMap[uniqueKey] = dependency - } - - if (it.runOnUIThread()) { - uiThreadTaskSize++ + startupChildrenMap[uniqueKey] = dependencyTmp } + } else { + privacyCheckFailStartupList.add(it) + } + } - if (it.needUIThreadWait()) { - needUIThreadWaitTaskSize++ + while (!zeroDequeTmp.isEmpty()) { + zeroDequeTmp.removeFirstOrNull()?.let { uniqueKey -> + val it = startupChildrenMap.iterator() + while (it.hasNext()) { + val depList = it.next() + depList.value.remove(uniqueKey) + if (depList.value.size == 0) { + zeroDequeTmp.add(depList.key) + it.remove() + startupMap[depList.key]?.let { it1 -> privacyCheckPassStartupList.add(it1) } + } } } } - // 下面开始进行环检测和依赖丢失情况的检测 - if (isDebug == true) { - DependenciesListCheckUtil.dependenciesListCheck(startupList, startupInterfaceMap) - } else { - ExecutorManager.instance.execute { - DependenciesListCheckUtil.dependenciesListCheck(startupList, startupInterfaceMap) - } + // startupChildrenMap 里面剩余的是因为其依赖的startup未通过隐私检查 + startupChildrenMap.forEach { + startupMap[it.key]?.let { it1 -> privacyCheckFailStartupList.add(it1) } } - return StartupSortStore( - uiZeroDeque, ioZeroDeque, startupMap, startupInterfaceMap, ConcurrentHashMap(), - startupChildrenMap, uiThreadTaskSize, needUIThreadWaitTaskSize + return StartupInfoStore( + startupMap = startupMap, startupInterfaceMap = startupInterfaceMap, + privacyCheckPassStartupList = privacyCheckPassStartupList, + privacyCheckFailStartupList = privacyCheckFailStartupList, + allStartupDependenciesList = allStartupDependenciesList ) } } \ No newline at end of file diff --git a/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt b/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt index 83cb087..5d56c54 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt @@ -1,11 +1,13 @@ package io.github.fast_startup.utils import io.github.fast_startup.IStartup +import io.github.fast_startup.config.StartupConfig import io.github.fast_startup.exception.StartupException import io.github.fast_startup.exception.StartupExceptionMsg +import io.github.fast_startup.executor.ExecutorManager import io.github.fast_startup.extensions.getUniqueKey import io.github.fast_startup.log.SLog -import java.util.* +import io.github.fast_startup.module.StartupInfoStore /** * Author: xuweiyu @@ -13,13 +15,31 @@ import java.util.* * Email: wizz.xu@outlook.com * Description: */ -class DependenciesListCheckUtil { +internal class DependenciesListCheckUtil { companion object { @JvmStatic fun dependenciesListCheck( startupList: List>, - startupInterfaceMap: MutableMap, Class>>, + startupConfig: StartupConfig?, + startupInfoStore: StartupInfoStore, ) { + // 下面开始进行环检测和依赖丢失情况的检测 + if (startupConfig?.isDebug == true) { + val orderList = dependenciesListCheck(startupList, startupInfoStore.startupInterfaceMap) + DependenciesListPrintUtil.printDependenciesList(orderList, startupConfig, startupInfoStore) + } else { + ExecutorManager.instance.execute { + val orderList = dependenciesListCheck(startupList, startupInfoStore.startupInterfaceMap) + DependenciesListPrintUtil.printDependenciesList(orderList, startupConfig, startupInfoStore) + } + } + } + + @JvmStatic + private fun dependenciesListCheck( + startupList: List>, + startupInterfaceMap: MutableMap, Class>>, + ): ArrayDeque { val startupMap: HashMap> = HashMap(startupList.size) val startupChildrenMap: HashMap> = HashMap() @@ -31,7 +51,7 @@ class DependenciesListCheckUtil { // 计算统计入度, 入度为0则保存到0度列表 // 入度不为0,存放到startupChildrenMap并保存需要依赖的startup if (it.dependencies().isNullOrEmpty()) { - zeroDequeTmp.offer(uniqueKey) + zeroDequeTmp.add(uniqueKey) } else { val dependencyTmp = mutableSetOf() it.dependencies()?.forEach { dep -> @@ -52,7 +72,7 @@ class DependenciesListCheckUtil { val orderList = ArrayDeque() orderList.addAll(zeroDequeTmp) while (!zeroDequeTmp.isEmpty()) { - zeroDequeTmp.poll()?.let { uniqueKey -> + zeroDequeTmp.removeFirstOrNull()?.let { uniqueKey -> val it = startupChildrenMap.iterator() while (it.hasNext()) { val list = it.next() @@ -60,16 +80,16 @@ class DependenciesListCheckUtil { list.value.remove(uniqueKey) } if (list.value.size == 0) { - zeroDequeTmp.offer(list.key) + zeroDequeTmp.add(list.key) it.remove() - orderList.offer(list.key) + orderList.add(list.key) } } } } if (startupChildrenMap.size == 0) { - return + return orderList } // 有环或者依赖缺失 diff --git a/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListPrintUtil.kt b/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListPrintUtil.kt new file mode 100644 index 0000000..8b23b5a --- /dev/null +++ b/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListPrintUtil.kt @@ -0,0 +1,36 @@ +package io.github.fast_startup.utils + +import io.github.fast_startup.config.StartupConfig +import io.github.fast_startup.log.SLog +import io.github.fast_startup.module.StartupInfoStore + +/** + * Author: xuweiyu + * Date: 2021/12/13 + * Email: wizz.xu@outlook.com + * Description: 打印Startup依赖关系 + */ +internal class DependenciesListPrintUtil { + companion object { + @JvmStatic + fun printDependenciesList( + startupList: ArrayDeque, + startupConfig: StartupConfig?, + startupInfoStore: StartupInfoStore, + ) { + if (startupConfig?.isPrintDependencies == true) { + val sb = StringBuffer(" \n") + sb.append("|============================================================================\n") + sb.append("Startup 依赖关系 \n") + startupList.forEach { + sb.append("$it\n") + startupInfoStore.allStartupDependenciesList[it]?.forEach { it1 -> + sb.append("| \\--$it1\n") + } + } + sb.append("|============================================================================\n") + SLog.e(sb.toString()) + } + } + } +} \ No newline at end of file diff --git a/fast-startup/src/main/java/io/github/fast_startup/utils/StartupCostTimesUtil.kt b/fast-startup/src/main/java/io/github/fast_startup/utils/StartupCostTimesUtil.kt index b273236..40e1fa5 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/utils/StartupCostTimesUtil.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/utils/StartupCostTimesUtil.kt @@ -47,6 +47,7 @@ internal class StartupCostTimesUtil(private var isOpenStatistics: Boolean = fals name = startup::class.java.name, callOnMainThread = startup.runOnUIThread(), needUIThreadWait = startup.needUIThreadWait(), + needPrivacyAgree = startup.needPrivacyAgree(), startTime = System.nanoTime(), endTime = 0 ) @@ -83,6 +84,10 @@ internal class StartupCostTimesUtil(private var isOpenStatistics: Boolean = fals append("\n") append("| ----------------------- | -------------------------------------------------") append("\n") + append("| Need Privacy Agree | ${it.needPrivacyAgree}") + append("\n") + append("| ----------------------- | -------------------------------------------------") + append("\n") append("| Cost Times | ${(it.endTime - it.startTime) / ACCURACY} ms") append("\n") append("|============================================================================") @@ -94,6 +99,7 @@ internal class StartupCostTimesUtil(private var isOpenStatistics: Boolean = fals append("\n") append("|============================================================================") }) + costTimesMap.clear() } private fun checkOpenStatistics() = isOpenStatistics @@ -103,6 +109,7 @@ private data class CostTimesModel( val name: String, val callOnMainThread: Boolean, val needUIThreadWait: Boolean, + val needPrivacyAgree: Boolean, val startTime: Long, var endTime: Long = 0L ) \ No newline at end of file From 8c812dda860a5e7005f38229fa263320e0971150 Mon Sep 17 00:00:00 2001 From: xuweiyu Date: Thu, 30 Dec 2021 21:12:14 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 37 ++++++++++++++++++- .../fast_startup/startup/demo/MainActivity.kt | 5 +-- .../fast_startup/config/StartupConfig.kt | 27 ++++++++++++++ 3 files changed, 64 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7793e28..0b3c9f0 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,8 @@ 8. 支持组件完成回调,提供了三种回调,分别为每个组件初始化完成的回调、UI线程任务完成的回调、所有任务完成的回调 9. 支持组件初始化耗时统计 10. 支持依赖缺失检测和依赖循环依赖检测 +11. 支持隐私模式启动,自动根据组件依赖关系和是否需要隐私模式启动进行初始化处理,能够在隐私权限授予后再次调用自动执行剩余任务 +12. 支持组件依赖关系打印 ## 使用方式 ### 1. 基础配置 @@ -117,7 +119,7 @@ Log.d("TestGetResult", "${FastStartup.getStartupResult(IA::class.java)}") ![cost_time](https://github.com/WizzXu/FastStartup/blob/main/pic/cost_time.png?raw=true) -# FastStartup 高级用法 解藕、AOP +# FastStartup 高级用法 解藕、AOP、隐私模式 ## 1. 解藕 有的时候,我们组件是解藕的,对外提供接口,靠接口来进行依赖和调用,这种方式在FastStartup要怎么使用呢? @@ -216,7 +218,40 @@ FastStartup.init(StartupConfig(application = this, BuildConfig.DEBUG)).start()) ``` `start()`方法里面不需要传入任何内容,就可以自动注入组件啦 +## 3. 隐私模式启动 +#### 1. Startup创建的时候重写`needPrivacyAgree()` +``` +override fun needPrivacyAgree(): Boolean { + return true +} +``` +#### 2. 授予隐私权限之后再次调用 +``` +FastStartup.init(StartupConfig(application = this, BuildConfig.DEBUG)).start(listOf(A(), B())) +// 设置授予隐私权限并再次执行任务 +FastStartup.setPrivacyAgree(true).reStart() +``` +*注意:* 各种监听器在一次隐私权限未授予的任务执行完毕之后,会销毁。授予隐私权限后需要重新设置任务监听器 +``` +FastStartup.setPrivacyAgree(true) +.registerAllStartupCompleteListener(object : + AllStartupCompleteListener { + override fun startupComplete() { + SLog.e("registerAllStartupCompleteListener") + } +}).registerUIStartupCompleteListener(object : UIStartupCompleteListener { + override fun startupComplete() { + SLog.e("registerUIStartupCompleteListener") + + } +}).registerStartupCompleteListener(object : StartupCompleteListener { + override fun startupComplete(startup: IStartup<*>) { + SLog.e("registerStartupCompleteListener:${startup.javaClass.simpleName}") + } + +}).reStart() +``` ## 感谢 在开发的过程中也是参考了和借鉴了部分其他开源库,在此特感谢各位大佬。 diff --git a/app/src/main/java/io/github/fast_startup/startup/demo/MainActivity.kt b/app/src/main/java/io/github/fast_startup/startup/demo/MainActivity.kt index 364463a..4aba27c 100644 --- a/app/src/main/java/io/github/fast_startup/startup/demo/MainActivity.kt +++ b/app/src/main/java/io/github/fast_startup/startup/demo/MainActivity.kt @@ -23,8 +23,6 @@ class MainActivity : AppCompatActivity() { AllStartupCompleteListener { override fun startupComplete() { SLog.e("registerAllStartupCompleteListener") - //FastStartup.setPrivacyAgree(true) - //FastStartup.reStart() } }).registerUIStartupCompleteListener(object : UIStartupCompleteListener { override fun startupComplete() { @@ -36,8 +34,7 @@ class MainActivity : AppCompatActivity() { SLog.e("registerStartupCompleteListener:${startup.javaClass.simpleName}") } - }) - FastStartup.reStart() + }).reStart() } } diff --git a/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt b/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt index 6460a05..33c2645 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/config/StartupConfig.kt @@ -13,9 +13,25 @@ import io.github.fast_startup.listener.UIStartupCompleteListener */ class StartupConfig { var application: Application? = null + + /** + * 是否是debug模式 + */ var isDebug: Boolean? = null + + /** + * 日志级别,对标 Log.VERBOSE ~ Log.ASSERT + */ var logLevel: Int? = Int.MAX_VALUE + + /** + * 是否开启耗时统计 + */ var enableTimeStatistics: Boolean? = null + + /** + * 贯穿所有startup的附加参数,可以配置id之类的一些列参数 + */ var params: Any? = null /** @@ -28,8 +44,19 @@ class StartupConfig { */ var isPrintDependencies: Boolean? = null + /** + * 当有Startup任务执行完毕的回调 + */ var startupCompleteListener: StartupCompleteListener? = null + + /** + * UI任务执行完毕的回调 + */ var uiStartupCompleteListener: UIStartupCompleteListener? = null + + /** + * 所有任务执行完毕的回调 + */ var allStartupCompleteListener: AllStartupCompleteListener? = null constructor(application: Application?, isDebug: Boolean?) { From 23286734f39fcdedbf96b99687dd73014bcc744f Mon Sep 17 00:00:00 2001 From: xuweiyu Date: Fri, 31 Dec 2021 19:52:30 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=BA=95=E5=B1=82=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=92=8C=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/github/fast_startup/FastStartup.kt | 96 +++++------- .../dispatcher/DefaultDispatcher.kt | 16 +- .../fast_startup/module/StartupInfoStore.kt | 8 +- .../fast_startup/module/StartupSortStore.kt | 8 +- .../io/github/fast_startup/sort/SortUtil.kt | 144 ++++++++++-------- .../utils/DependenciesListCheckUtil.kt | 18 ++- 6 files changed, 144 insertions(+), 146 deletions(-) diff --git a/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt b/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt index 47f947a..e812bdc 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt @@ -164,7 +164,6 @@ object FastStartup { * 开始启动startup */ fun start(startupList: List>? = null): FastStartup { - startupCostTimesUtils?.initStartTime() // 初始化检测 if (!isInit) { throw StartupException(StartupExceptionMsg.NOT_INIT) @@ -173,6 +172,7 @@ object FastStartup { if (Looper.myLooper() != Looper.getMainLooper()) { throw StartupException(StartupExceptionMsg.NOT_RUN_IN_MAIN_THREAD) } + startupCostTimesUtils?.initStartTime() initAopStartup() SLog.i("aopStartups:$aopStartups") startupList?.let { @@ -186,41 +186,10 @@ object FastStartup { startupList = aopStartups, startupConfig = startupConfig, startupInfoStore = startupInfoStore ) + // 运行隐私检测通过的startup - SortUtil.sort( - startupInfoStore.privacyCheckPassStartupList, - startupConfig, startupInfoStore - ).let { startupSortStore -> - val startupDispatcher = DefaultDispatcher(startupConfig, startupInfoStore) - startupDispatcher.allStartupCompleteListener = object : AllStartupCompleteListener { - override fun startupComplete() { - while (allStartupCompleteListeners.isNotEmpty()) { - allStartupCompleteListeners.removeFirstOrNull()?.startupComplete() - } - if (uiStartupCompleteListeners.isEmpty()) { - startupCompleteListeners.clear() - } - } - } - startupDispatcher.uiStartupCompleteListener = object : UIStartupCompleteListener { - override fun startupComplete() { - while (uiStartupCompleteListeners.isNotEmpty()) { - uiStartupCompleteListeners.removeFirstOrNull()?.startupComplete() - } - if (allStartupCompleteListeners.isEmpty()) { - startupCompleteListeners.clear() - } - } - } - startupDispatcher.startupCompleteListener = object : StartupCompleteListener { - override fun startupComplete(startup: IStartup<*>) { - startupCompleteListeners.forEach { - it.startupComplete(startup) - } - } - } - startupDispatcher.start(startupSortStore, startupCostTimesUtils) - } + DefaultDispatcher(startupConfig, startupInfoStore).also { setListeners(it) } + .start(startupInfoStore.fistFilterStartupSortStore, startupCostTimesUtils) } return this } @@ -252,37 +221,40 @@ object FastStartup { startupInfoStore.privacyCheckFailStartupList, startupConfig, startupInfoStore ).let { startupSortStore -> - val startupDispatcher = DefaultDispatcher(startupConfig, startupInfoStore) - startupDispatcher.allStartupCompleteListener = object : AllStartupCompleteListener { - override fun startupComplete() { - while (allStartupCompleteListeners.isNotEmpty()) { - allStartupCompleteListeners.removeFirstOrNull()?.startupComplete() - } - if (uiStartupCompleteListeners.isEmpty()) { - startupCompleteListeners.clear() - } - } + DefaultDispatcher(startupConfig, startupInfoStore).also { setListeners(it) } + .start(startupSortStore, startupCostTimesUtils) + } + } + } + + private fun setListeners(startupDispatcher: DefaultDispatcher) { + object : AllStartupCompleteListener { + override fun startupComplete() { + while (allStartupCompleteListeners.isNotEmpty()) { + allStartupCompleteListeners.removeFirstOrNull()?.startupComplete() } - startupDispatcher.uiStartupCompleteListener = object : UIStartupCompleteListener { - override fun startupComplete() { - while (uiStartupCompleteListeners.isNotEmpty()) { - uiStartupCompleteListeners.removeFirstOrNull()?.startupComplete() - } - if (allStartupCompleteListeners.isEmpty()) { - startupCompleteListeners.clear() - } - } + if (uiStartupCompleteListeners.isEmpty()) { + startupCompleteListeners.clear() } - startupDispatcher.startupCompleteListener = object : StartupCompleteListener { - override fun startupComplete(startup: IStartup<*>) { - startupCompleteListeners.forEach { - it.startupComplete(startup) - } - } + } + }.also { startupDispatcher.allStartupCompleteListener = it } + object : UIStartupCompleteListener { + override fun startupComplete() { + while (uiStartupCompleteListeners.isNotEmpty()) { + uiStartupCompleteListeners.removeFirstOrNull()?.startupComplete() + } + if (allStartupCompleteListeners.isEmpty()) { + startupCompleteListeners.clear() } - startupDispatcher.start(startupSortStore, startupCostTimesUtils) } - } + }.also { startupDispatcher.uiStartupCompleteListener = it } + object : StartupCompleteListener { + override fun startupComplete(startup: IStartup<*>) { + startupCompleteListeners.forEach { + it.startupComplete(startup) + } + } + }.also { startupDispatcher.startupCompleteListener = it } } /** diff --git a/fast-startup/src/main/java/io/github/fast_startup/dispatcher/DefaultDispatcher.kt b/fast-startup/src/main/java/io/github/fast_startup/dispatcher/DefaultDispatcher.kt index 61844c3..aa6d19b 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/dispatcher/DefaultDispatcher.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/dispatcher/DefaultDispatcher.kt @@ -64,7 +64,7 @@ internal class DefaultDispatcher( } private fun dispatchOnIO() { - var startup = startupSortStore.ioZeroDeque.poll() + var startup = startupSortStore.ioZeroDeque.removeFirstOrNull() while (startup != null) { ExecutorManager.instance.execute( StartupRunnable( @@ -72,12 +72,12 @@ internal class DefaultDispatcher( startupCostTimesUtils ) ) - startup = startupSortStore.ioZeroDeque.poll() + startup = startupSortStore.ioZeroDeque.removeFirstOrNull() } } private fun dispatchOnMain() { - var startup: IStartup<*>? = startupSortStore.uiZeroDeque.poll() + var startup: IStartup<*>? = startupSortStore.uiZeroDeque.removeFirstOrNull() while (uiThreadTaskSize.get() > 0 || needUIThreadWaitTaskSize.get() > 0) { if (startup != null) { StartupRunnable( @@ -89,7 +89,7 @@ internal class DefaultDispatcher( countDownLatch?.await() } countDownLatch = null - startup = startupSortStore.uiZeroDeque.poll() + startup = startupSortStore.uiZeroDeque.removeFirstOrNull() } this.startupCostTimesUtils?.recordUIThreadStartupsEnd() } @@ -105,19 +105,19 @@ internal class DefaultDispatcher( startupCompleteListener?.startupComplete(completeStartup) // 移除所有需要依赖该startup的 依赖关联 startupInfoStore.allStartupDependenciesList.values.forEach { - it?.remove(uniqueKey) + it.remove(uniqueKey) } while (its.hasNext()) { val entry = its.next() entry.value.remove(uniqueKey) - if (entry.value.size == 0 || startupInfoStore.allStartupDependenciesList[entry.key].isNullOrEmpty()) { + if (entry.value.isEmpty()) { its.remove() startupInfoStore.startupMap[entry.key]?.let { startup -> if (startup.runOnUIThread()) { - startupSortStore.uiZeroDeque.offer(startup) + startupSortStore.uiZeroDeque.add(startup) } else { - startupSortStore.ioZeroDeque.offer(startup) + startupSortStore.ioZeroDeque.add(startup) } } } diff --git a/fast-startup/src/main/java/io/github/fast_startup/module/StartupInfoStore.kt b/fast-startup/src/main/java/io/github/fast_startup/module/StartupInfoStore.kt index 5f3a551..3c3edc1 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/module/StartupInfoStore.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/module/StartupInfoStore.kt @@ -18,7 +18,7 @@ internal data class StartupInfoStore( /** * startup的集合 key为uniqueKey value为startup对象 */ - val startupMap: HashMap>, + val startupMap: MutableMap>, /** * 维护startup与其对外暴露的继承自Startup的接口 的 一一对应关系 @@ -41,7 +41,7 @@ internal data class StartupInfoStore( /** * 保存隐私检查通过的Startup */ - val privacyCheckPassStartupList: ArrayDeque>, + val fistFilterStartupSortStore: StartupSortStore, /** * 保存隐私检查未通过的Startup @@ -51,13 +51,13 @@ internal data class StartupInfoStore( /** * 所有startup的依赖关系 */ - val allStartupDependenciesList: MutableMap?> + val allStartupDependenciesList: MutableMap> ) { fun free() { startupMap.clear() startupInterfaceMap.clear() startupResultMap.clear() - privacyCheckPassStartupList.clear() + fistFilterStartupSortStore.free() privacyCheckFailStartupList.clear() allStartupDependenciesList.clear() } diff --git a/fast-startup/src/main/java/io/github/fast_startup/module/StartupSortStore.kt b/fast-startup/src/main/java/io/github/fast_startup/module/StartupSortStore.kt index 56d7c5e..53b41ed 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/module/StartupSortStore.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/module/StartupSortStore.kt @@ -1,8 +1,6 @@ package io.github.fast_startup.module import io.github.fast_startup.IStartup -import java.util.concurrent.ConcurrentHashMap -import java.util.concurrent.ConcurrentLinkedDeque /** * Author: xuweiyu @@ -13,14 +11,14 @@ import java.util.concurrent.ConcurrentLinkedDeque internal data class StartupSortStore( // 入度为0工作在ui线程的startup的队列 - val uiZeroDeque: ConcurrentLinkedDeque>, + val uiZeroDeque: ArrayDeque>, // 入度为0工作在io线程的startup的队列 - val ioZeroDeque: ConcurrentLinkedDeque>, + val ioZeroDeque: ArrayDeque>, // 维护入度不为0的startup的依赖表 // 当一个startup(A)完成后,其他依赖该startup(A)的依赖表需要删除该startup(A)并进行重新计算 - val startupChildrenMap: ConcurrentHashMap>, + val startupChildrenMap: MutableMap>, // 工作在ui线程的startup的数量 var uiThreadTaskSize: Int, diff --git a/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt b/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt index 6a47b38..e4c10b8 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt @@ -7,8 +7,6 @@ import io.github.fast_startup.exception.StartupExceptionMsg import io.github.fast_startup.extensions.getUniqueKey import io.github.fast_startup.module.StartupInfoStore import io.github.fast_startup.module.StartupSortStore -import java.util.concurrent.ConcurrentHashMap -import java.util.concurrent.ConcurrentLinkedDeque import kotlin.collections.set /** @@ -27,16 +25,18 @@ internal object SortUtil { startupInfoStore: StartupInfoStore ): StartupSortStore { + // 所有任务的数量 + val allTaskSize = startupList.size + // 工作在ui线程的startup的队列 - val uiZeroDeque: ConcurrentLinkedDeque> = ConcurrentLinkedDeque() + val uiZeroDeque: ArrayDeque> = ArrayDeque(allTaskSize) // 工作在io线程的startup的队列 - val ioZeroDeque: ConcurrentLinkedDeque> = ConcurrentLinkedDeque() + val ioZeroDeque: ArrayDeque> = ArrayDeque(allTaskSize) // 维护入度不为0的startup的依赖表 // 当一个startup(A)完成后,其他依赖该startup(A)的依赖表需要删除该startup(A)并进行重新计算 - val startupChildrenMap: ConcurrentHashMap> = - ConcurrentHashMap() + val startupChildrenMap: MutableMap> = HashMap(allTaskSize) // 工作在ui线程的startup的数量 var uiThreadTaskSize = 0 @@ -44,42 +44,25 @@ internal object SortUtil { // 需要ui线程等待的startup的数量 var needUIThreadWaitTaskSize = 0 - // 所有任务的数量 - val allTaskSize = startupList.size - // 初次计算运行的主线程和IO线程的入度为0的startup,分别存储在uiZeroDeque和ioZeroDeque // 入度不为0的startup和他依赖的startup的依赖关系保存在startupChildrenMap中 // 计算所有需要运行在主线程的startup的数量 和 需要主线程等待的startup的数量 - for (i in 1..allTaskSize) { + for (i in 0 until allTaskSize) { startupList.removeFirstOrNull()?.let { val uniqueKey = it::class.java.getUniqueKey() // 符合隐私检测 if (!it.needPrivacyAgree() || it.needPrivacyAgree() == startupConfig?.isPrivacyAgree) { // 计算统计入度, 入度为0则保存到0度列表 // 入度不为0,存放到startupChildrenMap并保存需要依赖的startup - if (it.dependencies() - .isNullOrEmpty() || startupInfoStore.allStartupDependenciesList[uniqueKey].isNullOrEmpty() - ) { + val depList = startupInfoStore.allStartupDependenciesList[uniqueKey]!! + if (depList.isEmpty()) { if (it.runOnUIThread()) { - uiZeroDeque.offer(it) + uiZeroDeque.add(it) } else { - ioZeroDeque.offer(it) + ioZeroDeque.add(it) } } else { - val dependency = mutableSetOf() - it.dependencies()?.forEach { dep -> - if (dep.isInterface) { - val depModule = startupInfoStore.startupInterfaceMap[dep] - if (depModule != null) { - dependency.add(depModule.getUniqueKey()) - } else { - throw StartupException("not fond ${dep.getUniqueKey()} implement") - } - } else { - dependency.add(dep.getUniqueKey()) - } - } - startupChildrenMap[uniqueKey] = dependency + startupChildrenMap[uniqueKey] = depList } if (it.runOnUIThread()) { @@ -110,18 +93,29 @@ internal object SortUtil { // startup的集合 key为uniqueKey value为startup对象 val startupMap: HashMap> = HashMap(startupList.size) - val privacyCheckPassStartupList = ArrayDeque>() - val privacyCheckFailStartupList = ArrayDeque>() val startupInterfaceMap = mutableMapOf, Class>>() - val allStartupDependenciesList: MutableMap?> = - mutableMapOf() + // 工作在ui线程的startup的数量 + var uiThreadTaskSize = 0 + + // 需要ui线程等待的startup的数量 + var needUIThreadWaitTaskSize = 0 + + // 工作在ui线程的startup的队列 + val uiZeroDeque: ArrayDeque> = ArrayDeque(startupList.size) + + // 工作在io线程的startup的队列 + val ioZeroDeque: ArrayDeque> = ArrayDeque(startupList.size) // 维护入度不为0的startup的依赖表 // 当一个startup(A)完成后,其他依赖该startup(A)的依赖表需要删除该startup(A)并进行重新计算 - val startupChildrenMap: MutableMap> = mutableMapOf() + val startupChildrenMap: MutableMap> = mutableMapOf() + + val startupChildrenMapTmp: MutableMap> = mutableMapOf() + + val allStartupDependenciesList: MutableMap> = mutableMapOf() // 构建startupInterfaceMap依赖关系表 startupList.forEach { startup -> @@ -133,41 +127,47 @@ internal object SortUtil { } val zeroDequeTmp = ArrayDeque() - startupList.forEach { it -> + startupList.forEach { val uniqueKey = it::class.java.getUniqueKey() if (startupMap.containsKey(uniqueKey)) { throw StartupException("$uniqueKey ${StartupExceptionMsg.MULTI_ADD}") } // 保存所有startup startupMap[uniqueKey] = it - // 保存所有startup 依赖关系 - allStartupDependenciesList[uniqueKey] = it.dependencies()?.map { it1 -> - var ret = it1.getUniqueKey() - if (it1.isInterface) { - ret = startupInterfaceMap[it1]?.getUniqueKey()!! + // 保存所有 startup 依赖关系, 去除接口依赖,维护真正的依赖类 + val realDepList: MutableList = mutableListOf() + it.dependencies()?.forEach { dep -> + if (dep.isInterface) { + realDepList.add(startupInterfaceMap[dep]!!.getUniqueKey()) + } else { + realDepList.add(dep.getUniqueKey()) } - ret - }?.toMutableList() + } + allStartupDependenciesList[uniqueKey] = realDepList // 计算统计入度, 入度为0则保存到0度列表 // 入度不为0,存放到startupChildrenMap并保存需要依赖的startup + // startupChildrenMap中的startup可能依赖项没有通过隐私检查,需要后面过滤掉这部分内容 // 隐私合规处理 if (!it.needPrivacyAgree() || it.needPrivacyAgree() == startupConfig?.isPrivacyAgree) { if (it.dependencies().isNullOrEmpty()) { - privacyCheckPassStartupList.add(it) + if (it.runOnUIThread()) { + uiZeroDeque.add(it) + } else { + ioZeroDeque.add(it) + } zeroDequeTmp.add(uniqueKey) } else { - val dependencyTmp = mutableSetOf() - it.dependencies()?.forEach { dep -> - if (dep.isInterface) { - val depModule = startupInterfaceMap[dep] - if (depModule != null) { - dependencyTmp.add(depModule.getUniqueKey()) - } - } else { - dependencyTmp.add(dep.getUniqueKey()) - } - } - startupChildrenMap[uniqueKey] = dependencyTmp + // 方法体中需要计算,所以需要一个新的列表,不能修改原来的列表 + startupChildrenMapTmp[uniqueKey] = + allStartupDependenciesList[uniqueKey]!!.toMutableList() + } + + if (it.runOnUIThread()) { + uiThreadTaskSize++ + } + + if (it.needUIThreadWait()) { + needUIThreadWaitTaskSize++ } } else { privacyCheckFailStartupList.add(it) @@ -175,27 +175,45 @@ internal object SortUtil { } while (!zeroDequeTmp.isEmpty()) { - zeroDequeTmp.removeFirstOrNull()?.let { uniqueKey -> - val it = startupChildrenMap.iterator() + zeroDequeTmp.removeFirstOrNull()?.let { startup -> + val it = startupChildrenMapTmp.iterator() while (it.hasNext()) { val depList = it.next() - depList.value.remove(uniqueKey) - if (depList.value.size == 0) { + if (depList.value.also { it.remove(startup) }.isEmpty()) { zeroDequeTmp.add(depList.key) it.remove() - startupMap[depList.key]?.let { it1 -> privacyCheckPassStartupList.add(it1) } + // 该startup的依赖项为空,证明其依赖项都通过隐私过滤,所以能够参与到启动流程 + // startupChildrenMap中的list需要使用统一维护的列表对象 + startupChildrenMap[depList.key] = allStartupDependenciesList[depList.key]!! } } } } // startupChildrenMap 里面剩余的是因为其依赖的startup未通过隐私检查 - startupChildrenMap.forEach { - startupMap[it.key]?.let { it1 -> privacyCheckFailStartupList.add(it1) } + startupChildrenMapTmp.forEach { + startupMap[it.key]?.let { it1 -> + privacyCheckFailStartupList.add(it1) + if (it1.runOnUIThread()) { + uiThreadTaskSize-- + } + + if (it1.needUIThreadWait()) { + needUIThreadWaitTaskSize-- + } + } } + val startupSortStore = StartupSortStore( + uiZeroDeque = uiZeroDeque, + ioZeroDeque = ioZeroDeque, + startupChildrenMap = startupChildrenMap, + uiThreadTaskSize = uiThreadTaskSize, + needUIThreadWaitTaskSize = needUIThreadWaitTaskSize, + allTaskSize = uiZeroDeque.size + ioZeroDeque.size + startupChildrenMap.size + ) return StartupInfoStore( startupMap = startupMap, startupInterfaceMap = startupInterfaceMap, - privacyCheckPassStartupList = privacyCheckPassStartupList, + fistFilterStartupSortStore = startupSortStore, privacyCheckFailStartupList = privacyCheckFailStartupList, allStartupDependenciesList = allStartupDependenciesList ) diff --git a/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt b/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt index 5d56c54..f4e2608 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt @@ -25,12 +25,22 @@ internal class DependenciesListCheckUtil { ) { // 下面开始进行环检测和依赖丢失情况的检测 if (startupConfig?.isDebug == true) { - val orderList = dependenciesListCheck(startupList, startupInfoStore.startupInterfaceMap) - DependenciesListPrintUtil.printDependenciesList(orderList, startupConfig, startupInfoStore) + val orderList = + dependenciesListCheck(startupList, startupInfoStore.startupInterfaceMap) + DependenciesListPrintUtil.printDependenciesList( + orderList, + startupConfig, + startupInfoStore + ) } else { ExecutorManager.instance.execute { - val orderList = dependenciesListCheck(startupList, startupInfoStore.startupInterfaceMap) - DependenciesListPrintUtil.printDependenciesList(orderList, startupConfig, startupInfoStore) + val orderList = + dependenciesListCheck(startupList, startupInfoStore.startupInterfaceMap) + DependenciesListPrintUtil.printDependenciesList( + orderList, + startupConfig, + startupInfoStore + ) } } } From e642ac27b1d680bffd64119c046e520fa4dffa37 Mon Sep 17 00:00:00 2001 From: xuweiyu Date: Wed, 5 Jan 2022 17:17:32 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=9A=90=E7=A7=81?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGE_LOG.md | 16 +++++++++++++ README.md | 20 +++++++++++------ app/build.gradle | 4 ++-- .../github/fast_startup/startup/demo/App.kt | 18 +++++++-------- .../startup/demo/testprivacy/TestPrivacy.kt | 21 +++++++++--------- fast-startup-api/publish.gradle | 2 +- fast-startup/build.gradle | 4 ++-- fast-startup/publish.gradle | 2 +- .../io/github/fast_startup/FastStartup.kt | 5 ++++- .../io/github/fast_startup/sort/SortUtil.kt | 4 ++-- .../utils/DependenciesListCheckUtil.kt | 17 +++++++++----- pic/cost_time.png | Bin 163304 -> 139105 bytes pic/dep_list_pic.png | Bin 0 -> 109354 bytes 13 files changed, 73 insertions(+), 40 deletions(-) create mode 100644 CHANGE_LOG.md create mode 100644 pic/dep_list_pic.png diff --git a/CHANGE_LOG.md b/CHANGE_LOG.md new file mode 100644 index 0000000..97b8b64 --- /dev/null +++ b/CHANGE_LOG.md @@ -0,0 +1,16 @@ +# 更新记录 + +| 组件 | 最新版本 | +| --- | --- | +| io.github.wizzxu:fast-startup |0.0.2 | +| io.github.wizzxu:fast-startup-api |0.0.2 | +| io.github.wizzxu:fast-startup-transformer |0.0.1 | + +# fast-startup +### 0.0.2 +新增隐私初始化支持 +新增依赖关系打印 + +# fast-startup-api +### 0.0.2 +新增隐私初始化支持 \ No newline at end of file diff --git a/README.md b/README.md index 0b3c9f0..b48b996 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # FastStartup -`FastStartup`是一个组件启动框架,旨在帮助开发人员能够简单、高效地进行各种组件的初始化操作。 +`FastStartup`是一个组件启动框架,旨在帮助开发人员能够简单、高效地进行各种组件的初始化操作。 +[【更新记录】](https://github.com/WizzXu/FastStartup/blob/main/CHANGE_LOG.md) ## 特点 简单、高效、支持解藕。 @@ -25,7 +26,8 @@ 在项目工程目录下`build.gradle`中添加依赖 ``` dependencies { - implementation "io.github.wizzxu:fast-startup:0.0.1" + //请使用最新版本 + implementation "io.github.wizzxu:fast-startup:0.0.2" } ``` ### 2. 组件初始化 @@ -110,13 +112,16 @@ Log.d("TestGetResult", "${FastStartup.getStartupResult(IA::class.java)}") ## 依赖环检测和缺失检测 在FastStartup启动的时候会自动进行依赖环检测和缺失检测 如果依赖有环,会抛出异常并会打印如下信息 -![dep_pic_1](https://github.com/WizzXu/FastStartup/blob/main/pic/dep_pic_1.png?raw=true) +![dep_pic_1](https://raw.githubusercontent.com/WizzXu/FastStartup/main/pic/dep_pic_1.png) 如果依赖有缺失,会打印如下消息 -![dep_pic_2](https://github.com/WizzXu/FastStartup/blob/main/pic/dep_pic_2.png?raw=true) +![dep_pic_2](https://raw.githubusercontent.com/WizzXu/FastStartup/main/pic/dep_pic_2.png) ## 耗时统计 -![cost_time](https://github.com/WizzXu/FastStartup/blob/main/pic/cost_time.png?raw=true) +![cost_time](https://raw.githubusercontent.com/WizzXu/FastStartup/main/pic/cost_time.png) + +## 依赖关系打印 +![dep_list_pic](https://raw.githubusercontent.com/WizzXu/FastStartup/main/pic/dep_list_pic.png) # FastStartup 高级用法 解藕、AOP、隐私模式 @@ -126,7 +131,8 @@ Log.d("TestGetResult", "${FastStartup.getStartupResult(IA::class.java)}") #### 1. 组件工程添加`IStartup`组件依赖 ``` dependencies { - implementation "io.github.wizzxu:fast-startup-api:0.0.1" + //请使用最新版本 + implementation "io.github.wizzxu:fast-startup-api:0.0.2" } ``` 组件接口必须直接继承`IStartup` @@ -167,7 +173,7 @@ AOP方案的实现基于[Booster](https://github.com/didi/booster)实现 buildscript { ext.kotlin_version = "1.5.31" ext.booster_version = '4.0.0' - ext.fast_startup_transformer = '0.0.1' + ext.fast_startup_transformer = '0.0.1'//请使用最新版本 dependencies { // 添加booster插件 diff --git a/app/build.gradle b/app/build.gradle index 0120962..4cfba7b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,8 +42,8 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation project(path: ':fast-startup') - //api "io.github.wizzxu:fast-startup:0.0.1" + //implementation project(path: ':fast-startup') + api "io.github.wizzxu:fast-startup:0.0.2" //implementation "io.github.wizzxu:fast-startup:0.0.1-SNAPSHOT" //implementation project(path: ':fast-startup-api') diff --git a/app/src/main/java/io/github/fast_startup/startup/demo/App.kt b/app/src/main/java/io/github/fast_startup/startup/demo/App.kt index ae1573a..2311c4a 100644 --- a/app/src/main/java/io/github/fast_startup/startup/demo/App.kt +++ b/app/src/main/java/io/github/fast_startup/startup/demo/App.kt @@ -76,26 +76,26 @@ class App : Application() { ).start()*/ // 测试环 - TestTask.addTask(TestCircle()) + //TestTask.addTask(TestCircle()) // // //测试依缺失 - TestTask.addTask(TestMissing()) + //TestTask.addTask(TestMissing()) // // //测试依赖接口方式 - TestTask.addTask(TestInterfaceImp()) + //TestTask.addTask(TestInterfaceImp()) // // //测试多次添加 - TestTask.addTask(TestMultiAdd()) + //TestTask.addTask(TestMultiAdd()) - //测试主线程需要等待子线程完成 - TestTask.addTask(TestWaitMainThread()) - - TestTask.addTask(TestGetResult()) + //TestTask.addTask(TestGetResult()) - TestTask.addTask(TestAop()) + //TestTask.addTask(TestAop()) TestTask.addTask(TestPrivacy()) + //测试主线程需要等待子线程完成 + //TestTask.addTask(TestWaitMainThread()) + TestTask.startNext() SLog.e("StartupRunnable", "all is ok") diff --git a/app/src/main/java/io/github/fast_startup/startup/demo/testprivacy/TestPrivacy.kt b/app/src/main/java/io/github/fast_startup/startup/demo/testprivacy/TestPrivacy.kt index 597f964..327fed6 100644 --- a/app/src/main/java/io/github/fast_startup/startup/demo/testprivacy/TestPrivacy.kt +++ b/app/src/main/java/io/github/fast_startup/startup/demo/testprivacy/TestPrivacy.kt @@ -19,7 +19,7 @@ import io.github.fast_startup.startup.demo.TestBase class TestPrivacy : TestBase { override fun test() { val startups = mutableListOf>() - startups.add(C()) + //startups.add(C()) startups.add(A()) startups.add(B()) startups.add(D()) @@ -31,18 +31,18 @@ class TestPrivacy : TestBase { .setLogLevel(Log.DEBUG) .setIsPrintDependencies(true) .build() - ).registerAllStartupCompleteListener(object : AllStartupCompleteListener{ + ).registerAllStartupCompleteListener(object : AllStartupCompleteListener { override fun startupComplete() { SLog.e("registerAllStartupCompleteListener") //FastStartup.setPrivacyAgree(true) //FastStartup.reStart() } - }).registerUIStartupCompleteListener(object : UIStartupCompleteListener{ + }).registerUIStartupCompleteListener(object : UIStartupCompleteListener { override fun startupComplete() { SLog.e("registerUIStartupCompleteListener") } - }).registerStartupCompleteListener(object : StartupCompleteListener{ + }).registerStartupCompleteListener(object : StartupCompleteListener { override fun startupComplete(startup: IStartup<*>) { SLog.e("registerStartupCompleteListener:${startup.javaClass.simpleName}") } @@ -54,7 +54,7 @@ class TestPrivacy : TestBase { class A : IStartup { override fun start(context: Context?, isDebug: Boolean?, any: Any?): String? { - SLog.e("A()") + //SLog.e("A()") return null } @@ -65,7 +65,7 @@ class A : IStartup { class B : IStartup { override fun start(context: Context?, isDebug: Boolean?, any: Any?): String? { - SLog.e("B()") + //SLog.e("B()") return null } @@ -97,7 +97,7 @@ class C : IStartup { class D : IStartup { override fun start(context: Context?, isDebug: Boolean?, any: Any?): String? { - SLog.e("D()") + //SLog.e("D()") return null } @@ -105,20 +105,21 @@ class D : IStartup { override fun dependencies(): List>>? { return null } + override fun runOnUIThread(): Boolean { - return true + return false } } class E : IStartup { override fun start(context: Context?, isDebug: Boolean?, any: Any?): String? { - SLog.e("E()") + //SLog.e("E()") return null } override fun runOnUIThread(): Boolean { - return true + return false } override fun dependencies(): List>>? { diff --git a/fast-startup-api/publish.gradle b/fast-startup-api/publish.gradle index ee2cfa9..119490c 100644 --- a/fast-startup-api/publish.gradle +++ b/fast-startup-api/publish.gradle @@ -20,7 +20,7 @@ task androidSourcesJar(type: Jar) { ext { PUBLISH_GROUP_ID = 'io.github.wizzxu' PUBLISH_ARTIFACT_ID = 'fast-startup-api' - PUBLISH_VERSION = '0.0.1' + PUBLISH_VERSION = '0.0.2' } // leave them empty to allow compilation diff --git a/fast-startup/build.gradle b/fast-startup/build.gradle index 0c6c4d5..aaff974 100644 --- a/fast-startup/build.gradle +++ b/fast-startup/build.gradle @@ -37,9 +37,9 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - api project(path: ':fast-startup-api') + //api project(path: ':fast-startup-api') //api "io.github.wizzxu:fast-startup-api:0.0.1-SNAPSHOT" - //api "io.github.wizzxu:fast-startup-api:0.0.1" + api "io.github.wizzxu:fast-startup-api:0.0.2" testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/fast-startup/publish.gradle b/fast-startup/publish.gradle index 159c17c..bbe99a9 100644 --- a/fast-startup/publish.gradle +++ b/fast-startup/publish.gradle @@ -20,7 +20,7 @@ task androidSourcesJar(type: Jar) { ext { PUBLISH_GROUP_ID = 'io.github.wizzxu' PUBLISH_ARTIFACT_ID = 'fast-startup' - PUBLISH_VERSION = '0.0.1' + PUBLISH_VERSION = '0.0.2' } // leave them empty to allow compilation diff --git a/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt b/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt index e812bdc..1d8ff0f 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/FastStartup.kt @@ -199,7 +199,10 @@ object FastStartup { */ fun reStart() { if (isPrivacyAgree != true || startupInfoStore?.privacyCheckFailStartupList?.size == 0) { - SLog.e("隐私未同意或者没有需要隐私权限的Startup") + SLog.i( + "隐私同意状态:${isPrivacyAgree} \n " + + "需要隐私权限的Startup数量:${startupInfoStore?.privacyCheckFailStartupList?.size ?: 0}" + ) return } // 初始化检测 diff --git a/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt b/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt index e4c10b8..89eef5f 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/sort/SortUtil.kt @@ -130,7 +130,7 @@ internal object SortUtil { startupList.forEach { val uniqueKey = it::class.java.getUniqueKey() if (startupMap.containsKey(uniqueKey)) { - throw StartupException("$uniqueKey ${StartupExceptionMsg.MULTI_ADD}") + throw StartupException("[$uniqueKey] ${StartupExceptionMsg.MULTI_ADD}") } // 保存所有startup startupMap[uniqueKey] = it @@ -138,7 +138,7 @@ internal object SortUtil { val realDepList: MutableList = mutableListOf() it.dependencies()?.forEach { dep -> if (dep.isInterface) { - realDepList.add(startupInterfaceMap[dep]!!.getUniqueKey()) + startupInterfaceMap[dep]?.let { it1 -> realDepList.add(it1.getUniqueKey()) } } else { realDepList.add(dep.getUniqueKey()) } diff --git a/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt b/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt index f4e2608..060bb35 100644 --- a/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt +++ b/fast-startup/src/main/java/io/github/fast_startup/utils/DependenciesListCheckUtil.kt @@ -25,8 +25,7 @@ internal class DependenciesListCheckUtil { ) { // 下面开始进行环检测和依赖丢失情况的检测 if (startupConfig?.isDebug == true) { - val orderList = - dependenciesListCheck(startupList, startupInfoStore.startupInterfaceMap) + val orderList = dependenciesListCheck(startupList) DependenciesListPrintUtil.printDependenciesList( orderList, startupConfig, @@ -34,8 +33,7 @@ internal class DependenciesListCheckUtil { ) } else { ExecutorManager.instance.execute { - val orderList = - dependenciesListCheck(startupList, startupInfoStore.startupInterfaceMap) + val orderList = dependenciesListCheck(startupList) DependenciesListPrintUtil.printDependenciesList( orderList, startupConfig, @@ -48,10 +46,19 @@ internal class DependenciesListCheckUtil { @JvmStatic private fun dependenciesListCheck( startupList: List>, - startupInterfaceMap: MutableMap, Class>>, ): ArrayDeque { val startupMap: HashMap> = HashMap(startupList.size) val startupChildrenMap: HashMap> = HashMap() + val startupInterfaceMap = mutableMapOf, Class>>() + + // 构建startupInterfaceMap依赖关系表 + startupList.forEach { startup -> + startup::class.java.interfaces.forEach { + if (it.interfaces.contains(IStartup::class.java)) { + startupInterfaceMap[it] = startup.javaClass + } + } + } val zeroDequeTmp = ArrayDeque() startupList.forEach { diff --git a/pic/cost_time.png b/pic/cost_time.png index c4155fe6c0ccbf10b027a6bdc380218048eb6fd0..3f4b5fb2bb66ed6c230df5de4d361c80cbbd6fef 100644 GIT binary patch literal 139105 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%0DI5e6d$lVUCiZ7b~h~6)0<|^(ewtfB^q7_ zH=CvEsq>%76vETx%mph8)y7KpUXB#+Z$fv|7KN0fX5kz+g<8Duw12(*_ySMH)s~G# zUwxWk8K*i`R0YNeu`4(5v_ZcUqo6M5*NGgi%LTLFai@Uny;P!`T@&4m!jRQ9_uN-> z7~d46)$_>oRS8^&kMjX#IL*fXTIb{uqov+oG1MJr&^mgnt;JUyhaRo;tTw?7$i+8Z zINgSr+=Ic31eYTZYc#fYj>haGN&Gm9VCp&?hIZ4e99f&h0`5~+4GUBNt|+ukl>R3z z@|W;oRk?~D@D513(((M4!;#Ql{J}<$MDXA!=lbC28`Tl(Ww?P*RsQUAAKOCl9XC3914TJ9BXci?k*x|CUWGds87+7M; zn)Un?lon>}DHFUK;>M4Wq^j`Fy`{mj25{=rqf(@TPb=wtVO~K7G%>ojVeh@uqt(Mi z@(J2pn=u486H2B-)xQ2`8E%5NzpeHr#fn@cqE`oScpAh5ztmLP%VVuPr&BI2j81)# z_G^-J7z3XSN=zXT78Yg=*F^W|3?ii=9`XFekqUforbUF9l%}kq!d=305VPsMM2d4; zi5Q4akw203^)=g=`CTbYYp=@^k3hb5b!R^H9otQW2ZVuY5;W5!;NN(#%js|JpWIgO z%<_f6_-D8*G)GyQ4PQcA%r?gl@lQbWZ%#!jH6b`lOv?^r$n|isGnCis&cGY;Mq-9< z!+_^6O8mClKtA%f9=m*!bSpN!ziaJKgQlT&b&RHLs+W~9P9)G6Wie^zW7ZsDQLq9t|26h6ZS4Q;F;cBOTBxxC=v&tgC0w>rpZq_YKZ*wp^9 zQW298+`_CWx5uV_zfXaZs{D5-sK6k6H|juP!E>-I-QY8#EEkJ(TX`}MJme zYaefQf;9c6IEYg`YBA>TM>E+|+57}O-AD)B3-QgjfCv{|g{7Z+2?{X!m+XpaXZfhQ zbx}yLagn^?Jz`EZ6#<0ro&4F-qN(nJWM{9TNtUA%_m6aBaBIZKj`PEo}n zCmVZJ0R~|1J4k>#?XkEu9_FQ|EjNPeN2TvTE@!ORE_fcgn_PWMlQ7K5AcmT~veEWXkc*ro0{1nP5t z+}N*`Zw^$P#6|Az*b5tRD}Ux&n0+)Na6}n8Sc{@xp);Anl7gm4ajqGvOumhqgfAC{ zV^EI0R^YHiL{#VOoam}+k}yvZ*nPGVE$2P+guQ=)1F$Z1HdnV|67$$*1?jMJhp3Q> z4V5drGZvYTm?z z9<_rH06_^G8)qAL--?VMKK{{hT;ysqbd?({lqC;PR+ajr+rQHlNbme4XPs*Fa%n9{ zT_N`sh<6NjhwM*un%v3pe6b}lnazbKn~49!X57kLFY`g=bRC=D;gP~g)#=xd%p7ny|TEL40SRu4$3p z*L2>TQ=GigN2#r4OLupf?PPRH(8+QomZcarYK5MVmhuRIr7Y40;A0~l_18C`S0-Fc z9_+rONDhlBy8@;)Rg4`as&E3o(|@g|rTlY;Je-v+p3+X=u0DFE2;3$76+LU*64>tD z{LZg<@!}a{bP;}lr8CKIuzlO}Rpo0Q_rI*%*OP?X=x^mM-&5!=a2-IMNK&BBt*ikV z!TXC0`A>4}FJdklrZb+&q+|OB+}`kCtb64VlBRD?MSbV*w-s7mJr&jd84roRT)jo- zfaPiz&+mQna&rH|XwslJ#TyxZeyr4&r}yt`8Nm;Ho7Y!(>%af=;yi&oS|!ePMwugw zir_^N^zYRxK#xQRV7u);9}2i+Ib4)lmgf<;ebg7%KMpvDeVuVBH0|1@(CS44^e15Q zl5QZRRxgZjaZ*{0!(s^C-gm4Hl3Lt6Pu40&;V7L@=GWNt;^@t@ZDmL0IpKbu8k z{wW0euQcmU1_o^W>GJxI>pX?U^pkV0_t9)8l*h}rT~p*R<6dh~6W&tsX>n}OH=Vy1 zOY`3UHq1mFyqLAWnw{?s9e*y#2?yzr6+cm$%}BB>z}0S4R%)5FeMY z%W3%wl8N-4xST{xl;pC;uig)%s_HRbx3euQmI8iXT}?>3F%xu*rE`aHM?vK~b1s(w z@fj7WgI&^Z$NK;dTt=26g89))V&v7dhgrqEGc5+RYr*5~VlVu5KC2iu(wqvc1#7*- z%%ir4UKutrjF6Xn1czbf?|y0a6ghSQF0Z3H5WgYpdzg7Kh-3mwg!*+Ywjr~|>^gmg z#|`PKimUsEt6TUpAAv~-6YjVO`3dzXc1cK@CW9az( zO~dg|n0Z~s&P&gr!w*_Ap9I}KU}6Qn`0@Ky(K6j1CBg6WI7Fk(^PoTOrW8P4^y2g4{jv0n;3crff9vzg|548`N&|N( zCkR~s6HWgouxk8ANx*`|Bp^V5rxVfIy&fXWFPJc4F}^5moP_`PQ`(8=l9{JO$l_Aq z_KkQm&gZ8NbHd46l8!(@|3#5@;WA+5{7i_wVtgjai_YZ5XBg;#g}W0UAo)io_z7ra z(k2_ppbJA>TI&E=fZCtGo2B3Swrd>?j5&3Rdhtk^7biz$!l* zm}9PAn#zUCPwxP2E31b~aLI4Ez~?n{-{EHPoeQH%2uvttUML}!xwfB{jdiXzhFQx^geToS) z{%<^O3If)-`hAaB0aiSJWp~h0Y>>%%T1pJao0w^NBdCuuX$iHYQ6|F`65bOZ=j9Qw zytIXhf=(Qsx*O}+BM_AW7Ba=_GYGam$OvCgV(e&{+1HAS-QR+bP{*m3FfIXYlPe!mgf=xxsRN6)CFR=oxSC^-^EE zbpA3<<&G!(g3rT=DgHLnmi zYHA>y6^b2Y9ltGwbEJ2vA}PE{@?|vG%xd8K((b@58UfJ!l3>EkmaxQGhaGu1?WKD=ujxx7Z-A? z8zNre{s0x0Em!*wj{>lh?d@%Gzz9tbL~1)h>{^kSzS=+FZ+`4|n6O;8LWI zhh3oU=w_K<)&M6a0axm7e{q}^eCZ|JTVVt|&?eZ63k+ZMuQqV7MK$i}; zyRpvJG8(ossnk<$lO}?-$Hu!i8bp)ho4PFhI63bK6fQ`M2#G#yfqFMhkiI`!XhBhZ zuM`jV$Z^XI3!lf1N-18)&9=ytgE{f*aMce8j9Yo6Do+UsY$`IJ+?eKC4bTn{55TWH z?4-g3oL)D|W9vnOimJ_pi}IgWuOYL&G=f49yp~-fwZhzjk0cgk&5dvGBSoW4%84$D zT=6I83VT6Nr?Gw4C#`U-b?LJ+W`88{oyhxOd z6Q_aaFg6$NZWZrOi&-C0-^jLukN&;IQxKej+I;*s7MUWw`xGwXvX)~ zqjMID%+}pbS05vgL6kr0>y4^XtOkdz1EQa0CdH_r_{ZuV(QAG_PHZ-BdNAIPl?k( zkEHTp+4^AhfU^b2cr5it`c#}gS3OdZJ_0A;_l=f@laDu%{zy1==W!yXaDBahRm#fI zTq$zyi`cWnUX>bOo6;eJ6j#B1xF0mI^dB?+Zw91;p4&TqUaT{c*vw|ny`LnE*uIs+ z?4r0RwfY8T@yMfOY(dD~(*{IX%)pX{-2Uj5&}zzOFF_)y8n4*nT{q+p=S9|!`xOcu z)(9tdqoA$3iRs_|RbjN;!I$TVQ<*edv;Rr@RyUX-+kdWR`FdTxjYIF4M@L4$kZ1nb z7)SP|y3oSzGxmANc}dk=^@GI+l!}-^l@^DM8QTfeVJaVy^G95+WgM0DuZR<0Wu>nv zMMbfk!j-&BCuE~XCXVjU*XH3P#-V}gv(`eWL45`VaO1v4vN##uh$G{vFi-hEcU!Q?6-K|_uH;J%ww4i zb7R(cv+T`YA+By3m58u|(gYCZzV^uJ8?8-Eb4`_fh!}sAg?r{H^-kSxXj%IHh99zF z(q;d~k=NE@AIl|f{*7Pjw@hj<$;J&-V`ofeXvcF5wz)h^9j_jY>KAQE=kRNk$gCri z6~Wx`kOvV>AUaR{Y>rj*ZM)YBeL(= z)4xR*Wp^ZINA}2h$r#$YE3aq^Wd}cDS$#Urht0R@_;lMpEt5+*l@8k9ul}gTNzGzi z7{zo7R8KVt>ADz=!Jqn--6xgi0ZxOdu3byrc3-NNZ?KpeEC2Rz;J7Duj#g^e{&kI9 zNwQpaa&Db?WOoV6!YpjndAJH9*VQ2kFGg1yaDjV2K+f(3r$T43Df$c20@`e0!K;iT8i8 z_nuKrZd>2CA|Qg;kRpnpG?6M*I*2rB3K~iXL3)7DJA@)Oq)8`qks`hKuJiz*_a;?Z z=!6>H3-{jV-f+&?_w(WX@IK=`!!a0!T;y6=*IIMUHRo^sS976T3D&Wh@}N9MsUUYq$^TbeF5z?2>3cgb%G6hd5fV~Ug&kX zQV%BPglqB`n=bCJc!{m)vXi1%1;LdxleN1#??V??cMQlK5Y=B^ET#2@MK5TrP6a^n zWt+@xx&`;248&L>DrY643Dr3U^2b(Kqld&=v9dMe8OqH=w=S~u>)jtW{Bp|?Zsec^ zA`feBbn?yHUN`m=6ySLuEdFlAc%vq{L<&Qkd-Mm76>g5RK{{`?9Tpdx7J%zxzd$U; zM)Sq;_GE<|QJV@>#}9+9lM&5G(A~y@BOBa5xC`_mDTdZ9;7W8j+oKONVj1=eFNDU& zDYx#rDb0=s-fWwAW~A66TSSl~{_dy}JC7DQGqzu!Y>G3Nq+vZok&-LWII5tpD0@XJ zgrtqNQqLPad1E0?b-gB*U}1X^Ui*UPcAB{q}{0FF(Aw zQvkcuWpNlY-mMccMA!Cj*6^8&L zqK91cP-IPokbd>ySmVEWF|gp8gZu4e%;MI&9GK{}(Ch&UHh`~N@^#c=B-p#znxDf6 zGu#Tp-7QlFUqfb(D}M4%4r!5JKy@u;_ABjhIBq*O5Sln@31w~iGwT(TR)~237?)v0 zgZR;O(7jtoWN7-X!lXY)fyQ;@!33=+Xuxh;+7>dB6?hxn)?p7e)_G~>`b?9CRw}K* zG^;NMTLEmWygLeGzZ3_USz5Q7;b-ENH$R;NL}+H8z3A{GXhVI48MD#Ttj=<(`eCQgg?%p8 zBWax3YRMP!)<4b_=R$Xf58lQ?!G{C|f-;?)DJ%L{2`in72Y6_#&%?7`YfUpKjP-A4 z`CMcQhA*+L#zxWlS@k2)9IR-j6}|S8;e|U?Yah|S9QIf##7+3=9`0A+vf1>28C>LZ zFD0#bny~{0*>j`B@?&7KfpP(J!n?PtTWTFfQxV)3K=(Z*8u9i@C*tn#WeMve5*u5c z^9Vb{dh$WV_2m_)(qBHLn|qZiH{bjfo%u6>;?+#l=AlM~Onh+-pMrBOr0ZwBhU`3O zfr_>214YabHIS7&Y}60Is9X9=7Mk`WoI}h%aBZ*_=-fyqVemI)&D{I(j+vDPMbFG7 z?4fw4!jBBrKQbcJL(g4P!DJk}=Vo9oH~zr3X)GwIg5LOmYq20C;+F7y`uo0o`KC!2 zUsh)3xlaX3Oz|(O#dn13;G#k4y9M+P*+Q#@pvCU&6-ArI=lK`pA^o^K|IFjJv&M!k zKm?xQ`p3niox|Oace=9??NpBc0Kgx^g3GjJ@-J0@ZNM+PluPo}8WY$Pxr&o%I*#=3h zB=l*uwaXbK?+(qk@#5{>__%+x(^4(9F&j>LAGBn;X`a>D9~j*xo)+4()x;M8Q&>5s zrU?#&Vcl_gZFq1gm+^~p?Le8v--BLW|BA75yqq)!+;#V(zAS*C+&aIR7zNa<1l=fA z1>f8AmgAv*xzPW}yUK4Dasdl8;7-+PYeIL_V(lZ|f}Cfs2L;Eca&vi0+{GvU>CQ7PPz|3V-+Q?!B$$@?@KM0H2nT{NHt~G2We!V- z!19=wB_GMD<^i#*H6Vep;mcKHj_=OJ{UD;@g1qs|{$?~^Y2oKW@P!vAY*!ZtS#`v? zr0}~~Xy+r1_Y&Fo-@l0+5XFV1dKetIV^E}}>reuX|dSl#M zSf3ln_o94&xJbX;ZC)x5JI%0zwm$YYp6wo?fNmw2*4OvzmFS^Q{(ktN@5n15%(IGsnqZE0jq_hxUrFofG_x_ji=7C4C1xBGW-y!KSCgb% zEOr}ZoMpt2ycqHD6@yMNsjIpc0pHWkNx;7Q6!* z6Ae4-fCD$O$9*P}{5%rx=P}guwb1iL!-s1*QdKTSwo11Yb?G6)f`&yB-4U$uCOXk} z5z$ctza+4?^^V1c2dPUTgL^BnQC5LpXDeQyu7xV9^X*Zo%n6X`$4yavO|a9HD!77M zA>45onI|v2fVzM0nh^qn+#$R=aI<2&&LcmbdwYnQv$h8s1S^sdF_W4+AB|r|w3Txm9ySrVy7!vqnQVyN8{ak=Y`P~7?CP5vj&`E0SF!Wa ztfmxp)W?NJAtG52&nOR|IOgGOwbc1K*zpzMp&dE%oH;@GU%~k)0wOn+3cCg5R&|Vg z(SeE*2~);FsY0Py>9cP`4wMv$|c2^>gq1NTYcKsd$Jb ze~-S9MXc>e^t86d7=uR|I>)@QvU$$=Gq#ls=$8I3S#MJ^L0!zIbPL)2q&C5;Ws%Qn zUNwnu9~Uo9FkrLB?lbRexmTyyztDQdN;b5txFHq56_54tesm@}{yZ0NA=>2T za@q?k{5kxSnm3YX>c;i!YikK2T4T({eY_p;9Q{!3Y{@_cGjNit!?QNj#0?KhFg4Lo z|HSo3kHI}rJE!M5R5ZcUtY-58sk3`lJwj!b*_twZp8Ab1(|BfiF0@8ccHb(TB4XRU zPl-XseD=7#7$lzN>uN?fsY+UkNGO&ELlhON!c#}>zUq@YZGIoj1-8+gYadT)D<(?d z8`%YT2&0A%)cvg=7OTA8S8TbA4v#F11(q?AyoJQa-xg;(Vc=Q~F&VA{cUWqWRAI2H z)HW)x?1Ix>WrgpOSzvo14Y%~0+Xr9Krte;<@(#cuIXU2_@gaFZRh4{>>hT!Mcn*?h zuMZ#zb(LT(1QtA1i}81~F^pXn*?3z|&GRUQ^K0PPkr|r%*l)qYZer$RCTBDWRn((= zTsjQC9N%NpyS%xvn;TQLN`8!KqyMZ9R6>*_gzV+vG-lX4CTRDM_8g8dyvNH2Kb9%& zYR3LXtQjvI35kEf&YdTHp4De;?wrY(TNW{mEf6zn-?fuuS)NCn*#1*VU%Kayf#Bi8 z7&B>kN|v=`oCRrmX_i5^p)DMHen?zwamYN(L8?zn>yh|JUQzn^MWARbFuzB8Msv7Zo1E1O=OkLpWa9!jLKp{&BBwRbo#2DRJJmk{IWVu|w0gBgH3ldU!)+6P3&-j9vGw z!B4|g;%%Zr1Fv%&Csxf!mW8)hFEGpSmNWQt zJgsG|Rk>g#-npKkJW>JC+3+U`LfIHiYv}Ws(!6(!5@E_5{FMZpY!{M0Fm$lXk80A{e!y5U0pvnL%_^`a8P&ZWn_IsMu%M&sP4V{2q^)9kY(S9f zzS>_hDgTNYs3w?f&b3!I`V1zIB#sG+7OzJ>O~d>WeK4{$dyYjM?<9{AT^RN>)83Eb zCpn^QGqkw$(ey1grgunafdiSNg%Tu_gsW%xXIb8L=kI=^WM2wTsOU}#rbcw-;r_ef zWYaqGFNtcQm+`-+qm7pHcBWrP+FwLT0Fa@7e8cU`&IoWhI0yh$kci*=Hy+S=1>-$j z`oyyM(LsD;^q20GnBBLKWixc_fCT7XFglEYG> z?T=0+hYN0J{E2$#-a1JRb61zfP@ne7&*5FCu=+}Vor6L8AECf&%~b#qFdA+9^z_E? z^gK$S1KL4e4~TP}Sq)CTl)#*%vd3fS|8184eOV>|D2p^Y4zhP=Q+md4t42o~@o!@_KZ_Y1-^-wUhMs zY|in~h-2+R_nC!J>opL^5qd0cu(50ipk2@vr}Yvb}2FW*icfb{2$; zNbfB^=l`dnN*8#NFs66^a%aD@{$ps%cfEk4o*sFXz{B8f2GC?g!nJ>I0n_sS)LbQZ z%J&`mnyu~k2LpTnSogoMbpHWmd#4Qzj#UedpoEWCI=@DQOYfP7%MYCtX6fG!l#gkr zsk&$gh8pX|{S`gaa6X|zHnIhc&*D}RH}NU@+Zc!$Q!byHVt=1VzuyqN4g?j*jIR8n zX4=g-V2*#UFbe%g^taguxGILr_S!#nZ^GJ%B^c-XTK`Y&`u_z^7dkWZ;EsXhiDcS| zOQIJK2_f@={pINC8WIDRxwR4#^KX)AdlV;?44dZFBz5cmgzTNiPh^%DaQH9O1%Uql zW#Ilm^d$aYMFzcsf06s#fU~iOGzpl$`j|-7_y<$Zq5EeTR+r$!zaXyOjS)KQUpNEs zS*Yxx!3Pfh^GWwh@-*bTv?W-EcK%ZS^_u0Zow$fPrnY^5)>J%w0dQwGbBGO}ob!qy z9__7^8P|kx`e%GHoaha8)Bh$5RL!-(ZatV|_e2k*nD-Q&|A*wD&@F@pA09R2@Y`X=H zU!AzSjB5BPNC=2RKh;%`FPlGDkUV7JB<%N4S&cqq=ZX}&;Ai3P*8yx4+O3%ft@xTaCV~B$ zS>ZdR_>sGzzsL2>vrqjG@AmUkAXzT2tD#+rXW0|}SfHiuyQr7p%Z+)Ni=xJA>2+U= z_VsF#>kILsz^}fHtsVh)*EM(}@J#PUx{V9W{)VmQ6#x`~}-m8#q#_lch2e71^!> zUa?*jtKE5_Vk3phtyB7sX}&^k>U8A_S&orL!?({sMy+~YFWr_^%Id7?nF|B z*{`4L7DCAMW^0lAJSxw3*f2P|nEzh1CFB6A<;fd{Xd)sLE{Uz#Tp6yJztL1-MK%U7 zc?})&k=+~h&PVe<&zF6N`6RJV&Ijyn*_n}zlrrx)ONXn-D;N6>~&v+>#<+F&L*1#VK4R!#xt|VIBziEj&^1$6h%PBaRrL6M z-3CHm+QWHG9WLWrB?IvA5Z0ynaI>Y1l2s2uxTp2}-1JjLM7KffzUzTb+{grWf{ahX zp{Tf1NbN#oe)?bu$e1r-tFt-5Ed`sf9N)&~Wb{T>fVT*CPQJo^v)4Fe!cQc7?ArLK zt(=20;YFG1A_w0X)mIS@P^snE)`4!j^Ct1D9HbgmK#3^XfwAk98)>dk|C|OEw$_aw zX*RXJY**!o32y_?1=F=(JpN|MRigupaXMHiAWQL~VyA_2%Uz_*renT_uhwqdi^eOJ z$^qeU<;L7*!^|xQcV)r7r*xEf14{*%jYd9}tMo^-v|iD^P*w8l2`kn;4#kWS=$kDK?~+Wc#gp|=*g zbXD0FP}mw1znTQi$sr_1j(a7}aYl;NENRrPYR+T90*|)=IGVLO)ZO&xk&S8c2m;jk z<$DJj|JGd{$Iv^LZ!T}PGUX+p09Y%Dx=RJo)8q3bTZjD40EYviS~q(}5qXcm_AK=I zwHAXydFa-}h{M~%piB1|%MvnEWOejitN{KQ61bCT%K1L++(!W6~r65`5+(D zL_o{juqobl;HX&=^p_SuNon(bo@}S>(8Jw_OKz$NaqD9(6U8&T>$eX9oAy$f8N_9BVJF3K*oVMI)9dZBABn!jkocTVX;?1cZm z!jgt3t98=-TRj%VJ7y%5n=qXnb+Zg#dq#^A9Umon{w|ZM+@&b_372JtDvr5P#i*_o zVLmP{iw;fjdxqe-y>&uTJp(~Ra*b?C*1nZYa`6>~pmEcpxku4QsOPJdSxNwmY2wRL z!RS9^@)S%{mCo+sf*AXj)jc^pavz5n0>oYR31?wB}ncv?hA8^);DO(XTe^ zn$AKUMPC6AZs1Rt#w6Mvxv&SYtK9Vy1cN0QgYQn8d5iiCX)E4YwbM_%cwk>Sie3<% zN=nJM8Pc;y%(InqJ!o{CiP+{jeYht;jXE&$zQ=XPMq$pOTys3D(89HD` zk}CN*=c)q=ioK(lSzcJJX~8>2)llKj!?~kGlE6ve=Vhy4`C*hi_fWi_<|m8F{mq+X z;sX}=`s^RF$?P3Ah^=kRg zEri@k2tT$_!#O=)@i0Rb)%5LuW&<>-WF9JJ)H`u|4XfesYwDXc6{uYUE+ zE;E}Tm9c;RL=$ViME9zL1RcZq&DbM2srv}~$Bu95LDArT=76=Jj-9hsJ%Z$?cD5piEtGM?o<>qFK*A%_!3Z zHeI=oTv-JQ8Lna%QMMW6Z7kG^#LvFW&)=r}h4JE0xz-X|7m6MKIa&ICoC7rh5)OxqJGh322=$C)jtiu1{#y0d;Ovf%LO-&Hw)W*ETb{g zU@gjJeOx@l*a%W0f`-ne%~a5s_AB&)H)kMiz>%wRlY|SjNg24G`9bGT$vvx*G!IN% zPQja(7*(I5Qdpi=N>$SIp0=Bb`u&dv#YcG#UD!BpVZ+V^3e|{MZ7~6+u-FJBPOpZL zt;kP#|AO$h1-4%F;9jFQpV4}tok*T`3f3fd;1UILT8vA?(QVU>3TXqbuBz+VuyVfy zHERs933h=F*wz9{T^SauOQ9ZjTFo;VnOP5PS+)hY<`tUJ;s+u~8M*;HrgN6!^UPba zL=I7%t5&X6qHxOyQx_JjWx5+>0mt%uonC9L*cmSo1!x;}Z&Vet?zC0k_JEn68-MwN zKE*X%u?J)}8hQ(ku!^o`xbiF|tcSzQFPgMrvjUIj0N^DESs&0*Uwf2g_NIFqa*?-l z5&@$qgn%MobU%fMTbpp$Dtp;h9wC$6iOlg|u)6iB!Gy@{sct4xJ#FI-cDk`-$$(3& zRQVmI@;7pwANVRhPaU9koVUxelw2^c01G3WVR%r!;cS9#f&WCx(byvl}Vz=nwS)BmxDY5;&`w5V%k$KKjX$`|@O(U@%9XVM~D;#{8dt4Y_QTImR_LP}T zB@Xy4z5p zF4H_Ctu`dInv;)IsbZj}ex;%#WTgwF+gqr+pY5<6%7&;s@H8JiF?B7Sd!f2+=Z2Jvrn!&*QYJo~EMfkfxn)54b zy)Z-#Gldq}5ooM{A~igq(UO8kL<`HPJ+Veni6o6VFyvHLv$ zbvnsBY#+(f-&HnDJrk}2f0SEWCh1E*5MS1$_bpzVcpR8qX&U$^#VmQ3CH=rFd^xJ$ProN4{;O);t2&_H1rns&f6 zqcOrvY~bL_-EUsMoeyMpRqOVidYRG50+R&&L3T6mfak zaedi%D_aP-v%S1`z-`0(W{bA&_K0rltmUICV2I{0Dt2L=cPVyd8O^n1O9kl3ngfz6 z^Xw%XfEg)0ify5^j8XZ>f# zDda6P(jBiRW;IujPONlXRD^@8bUFm|*@q+(JXbc#eogQ_-m*4!yT?8s59?g|5qqE~ zE%ak?-12F~9FP8|S?;5}oOdtbFY-n^4Fa2zlOJX6O?gd*#B4Sj-s2JJf3s*ih>pnJ zM6JaPUG|#2pPO(XupBanBL#;Zp5n~B$bss8ScAIP>?K_-rR4$2L#B@g-51+@omDLe z3g0!7)41BYwu#WJyoMXvIg8M}NQGcy)ga79hYTUg#pRj@$;C7Befx{gNSk*7R&F>J zid_!fy_EF0v7M1DBKE!$Jf(jhk~z&7ra4V4DuyX;Ywb&3zxbX* zxun%tNMq0cKOMR`!>h6wqB-UL9AMu<)^HgJptdMi{UXKW<)nkCXUijYG|XkfA5;#tMk zK{;Vea56uGML5g>kD_Jz%jrQK&y4Wm#uS92mN+Kc#+7tQfK8D66 zJBKye?7Ybpm=?a6sL<3MQRev7Z(SDnS)S;fydT_DT>LNd@?)qf_-(~J63%m_5+EU+ zQZDU_Q)vJ8;qK+Z4Ps}QTiZATKfJL)Yxyx~lN((7<`0*}Q|+}HJ}9Qv577v_`-`!E z_v4Pm4lgz*s}49?^Y2MOi9x)*1xl9X0y=SgJbXn;J(UGt17_!s#Rwrdx%B)iU7BbvEf3tad9!CQliPN|k%xMy@&eS-&XN|=Py(r-qfO?+M_G`0)f}AFy$9CE zglV~#Pa7XPHXz{lT0U5XfdFU!O&!H2Q0xN>3*}ge$=A7KMmI;+ZWe;EQQM>*Dt3`t zo{+r_zEDCUTvMfnL0R@}Ov$iIJ>R$U4HurFcp%yI8p*mw3WxK)uA*|wDOP1s!3TYs z0ZSn;jpx-;UWLT=-(w)os=Gukklb*r|!y^F%I4olxB3T zg${XYSq|#E&Tv7y7Z9t-?(u%bXpmGDsCH)e6ZM|yh|HtC#|uhfeH(DnkGv)WaOHi@ zjO3sKwqKh-8E&_rp!nq0n{inh&~tW^iQEXJt!YWe&twKpaO`wcHW8V8Q}I4oRm4$? zojz8HRl}%1`caN@Pr^u9k*-Q3Mh2KP*pj4-*)lf^jV}V9Cg% z2Kt*DoQU7qw0d!i(}tNWGahLTW<*MKhmmH8mQ`gGOJ=7DczBn3M2cJ|k#OesZMQn^ z5O{r71=8t+4Seg!X7hxO6ED#3N-II~cmz)i@y1_tATkfC*bNf>E$Q|L9T-(e{?R#T zS$>~&9)3gLT$n`k#RFwK#B7%qKu7tH?M zU1*Ll^6+4A6Ae4ZOcB%hE+uZPVoq+az5bh`84YXSql$oT37?*Pi{}@f+9$Vw*#-C9 zi;q8#F2)puqk31Muygf=p4`(Gy-S0N4khOF!-y&Ns=Do=mL8njbHKLhO1-O+yPI3S zx0%^I)poGRcg=vH8ON%m{ssuC2a_z0&VNTzKR+mu?0M4_ZLusyhu~4ONxn1=t8Iz* z8{mT+%p5-&8<~Cl?#S(uaLpZCtH=1N#E}>atWrSpety}xs#_tLoT&ar+=3KW-YRO} z+p_>$6Js~0y_=togci-WoVIJJFcV}4(IF}81g=+m<~(dqbJU5#bgi|5}>;YcN3 zpQV;f@G$6ZDO9lEwU6Po5&K2H>glKB^ke1>$@$1?-jDD12Df*sa-=lp z*3n4WW}vB6ViU%lt9tRalqg1qB_+G7+}JVD7>~Zm#H<8R#;do>m;>NHv!g@l_gU{T z10boZmls7R8(Z|wHyV*X>x-5Mz2qV&?;XhWAUIv&v9a2`Ef|{0ylS20ni5^3o!Wyk z6Zzn#TROqB8o#&R{8@}*6oVgFQr@s>>1t+~8slj7VRXp#`CS@J$Z>{Oe$y3f3#C1- z6jBpV#Lt>Xb9BqVTI{!RHeBy*q4pvm8SS<0?13aldmU8fmoqMM`pQqi6c@AVTNO`yMeJ+Y}uF&}Mr_TX`EEv8xE9M_;4l>UE z;J7pgC&ddl9k?Z1j8*ZeSKvzL=C59@qRs&CY}6MzAg~_^xjTf{KKX&G7qVAnD|S#& zhm~-t;c^x(n2w5x)eQW=Bf6MG>=>8F@e>Fz8{aCf-k2}w-J8fOFXEY|M;?el_Ol$0 z=9BmuEC$>=xDR^lr0k;!+c{PS=~smd6~vrO0!J<0n5+Y(pmqErOAar7Wjc!e$VUG* z@n}IyvFjh-)J_Xoj0*ETIE-=kXnM1Ae&S17>#dz5vw-a@M`FkM#dl%@jwI?`B83RL zXfxfQ6@wy()ty2#9|n5SU*$}f=l)hisjNNrzfwUoGfz2~$oZ6Z#7R+aon}7+JD7tb zQ;2L%{!`A5T$Of}2}6#MJnFsC=y{2!W^U?+U`Yx`|Ey*NVQt*)+d&4?%ro77`s|Qe zzXtpF0kGb52>O+oSp?0#*_MVcb5)0eyphOf@o(8=%xfEogmT^f6QPSv6FuwS6@6Kl zkJ74>_&CkfRm+pAHO0E}B~_d;OIy&3LbE9r@V(C;ZUT|%n?S+ihD3hml@=gXxMgF}_GIx$|MB_o|qc@3@Hf5#UZ$2dk;Ke6?KPSZD-Rj4KcR{Db z`ZLL=Uk?_g>j@+iC|xoZvloZ4v#u&e(v2-`AGIIS^U!l2&pRjFr>Cb^KI~W+9Dh9D zTs}-l6Onlj7Lz8MA~SoS|3eO)=|-Jh2-j zJSRYWsNAG9t9lu@J6suhM{L^*uxBdK zVL^b6mgX^?E7764A^C$oWn0Aahp=Mrf1_Xk(K-gOH|%6Kc*Wp1Qc}#u<=p6Cxt<&E7nF}Qhf!tSmn~h=4slDf!=iv1Qfau5-n~DGNqE;aJ z{t`Lcs`HQHfds(Qd>Hwe{O?iUl&lsAFhYntv8&}q$~Gi`jC0>DVEZ0bA2XZq*VOJJx;sMfvBJcSOP?YM7> zz~&)LGkcl*pB~TiT;PWPan$~;WzUg768B+&_7Ll7!+WYx5(&Cq`)>wniSZ~0yE`9X z;p1PHvV5`*hU+fa^mKlyE%`zGC-p-ogr`mWG&QrCxJm(ZSC-F=X?gBS~uaN(sO9AsH*r2Xt4A*&X&7r@xagf zk^>PlMe4ZJgd+{;oY0S&2?N?ig?!mXX5c3gKvB|flWj9ijm2EdcqPW7#QII@4dq|7v?Jn!LdqRh^u*x zh+~uI`9rVp-Nawmru&JaAJeb>sq8YLls7y2h@mCYWB1?O=TCt@H3`pLeWL%jdm?jq zq7C@Bi(ZB<`A&$va~6Y)yeqS7zI}F*{CzMzmpQM+5O!VsVYJv|o_qem&^Bum_i;z8 zMm(p|6v^R@n@<2O#lyeU5!ZezCrS=bI=1&cA}^#}Lg`rU0w?7HZ6K-nOL_6k)qu|8 zcgsI@3;%vmqBit!hox=P%*EApbE$x>%~kE5^GJUu1J**2BTry}^zP@Sz%6F6-)rc} z{OV(_-Im-A6LdYxiAYf4ZvY47zP}UlzZ{es40zTLFY(+yZI5HPy4Dj!hqGBfz!*Ufxy|yhG9J#Qo!>+$Y+8OL8;ic4jbc~vt9n6L_*2Z za#gR4r*7x$d#9h;_Y>mtCo7rFe{@U!TD;$$2(~`>scXQ2`a#&eV6yLnG7)C&!2j+miM=?f`<+5;jzoH(IH@&i!*aSz3y8Cy*hi(KRgYI zm%!gk7tJ&a;7MO|QW`OJ#(e?}b$8M&Em0e|yneC6+14CVz+>a>kW*^uP)r17pLnPO z8DgU>v}fdAd-wCl##*nzlr0Oh*ie;D`BJ!tTpaXfS?O_Frlwdm>|JG1l`L4a5iDfU zXXCC8zv`8gX~PEG`2~fOv24kql3Iazwq+=vOD0WRd_?M;@k|~PCR($N`t|)usAFK| z*)~6a=`|}}#AaHoAqZ@lRCQ(bL$v#fB$Z7q6h@Y1G+CH)ZaUj9neH*ei){KP>k17M zh4jIQkeH!iWHS!iC_D3-MTKr*dF~3VXT2*tmVz%hRElmPhgzNCja*0Z@OIt9OMtie z?Wq?fZ%#0)@BpfxNi;|^Ekn|vf){m*{eBL#NK1^Tm$~HfRV@Xszsm3aXUYcvh-VHWDdHoL@#3{BE;leUnt1x)lgE*&9oybW^q1w^&&j48&{pbis}0PK77?VqnwC=@e(=i z=Z4gQsQLyQP1Aw{>t{Rc%tvjW&iOL)Y@T)vx&fL6w7qrsNf!D(^P12~wnarX(a$8@ z5R3D49b}_4z{em}nBP1k1k_kz56`sxte}oBJqv)D1bgp?V~>E7 zU`<-RMRF#b+j+*;V*5uQ3fn;-!+qn0#owLvEVSISmqrCpw`X*W8e$yXdWfCl9B8&{ zd*6zP%m%O*foL1!28y-z?YRzU{YX)svLp{{+~DRWpXbdcmmk0xbr(_S)W+GM1(uoy zo{rRNgPETS_z$%vlb8UlFo!Mu3m3cJ$Qj{W`AqC4WFR1DCRa;LMr+U;u{fJUR#}#O zrBhEM!3LQ7uPlc0jfo7%of<#Qcy@{dCs5+%jMcv8+ozEvkb~A*RxeUIW(GN$Vqx-Q za}5;zwS9+~qk>`#tLXKtRUTfaEshn{RfZn!CgTwm6Rv62uODXngXrTl_jTvBoTCHQ zLs`a3i`6Z7Npnb23)<-S( zVbnQ++mD>kqJnLxT=O|7q2_G>Y(;A0yj>`n5f zT&(tp98-8iPEJquhp3{ZFG=U5HiBhglrjT$mO)rp$y1#)nbB}{oeAR@b@hn#B`y!m z=pPm(v$-C8{nr%XeA~m^Z4a-GHBOieJYNMJ@PI+gZ{!-2v$G||`pd>6nk)H^r4b=02J^HV!H3eb{PiD8%z^f2zcNj@}cf z>6pvx=^DEo800Fj`gy`qRL6n0u_7(qPT|EA&RGsBz|m-=L+tbyY?2+|b4k8J^-wgT4VRnV;#}K)Z!044t0gpJm=$P zQ_xqpQQ~(NBFOlNw&3s=Hx*2elYdItv`auUlZPDn??!7J<$(m$Iuyy)TwiAt>)Hep zrdm*A0>i?1mh3Y?C|OWWAVE-D<;w8Ja(72ul3|RYcP3|t(4H?4x}vuVk5dcK=}HtX ze30dG=&BD+b$baO2^S`?J{cJpRfB_5BSXUQB*d`1VYqtjL0YYEkt>g}`JIBFmWz?n z>Wk;*9rjy0J^f5P7ozyU;YOUTwtPf0=9J;abkgxcYL5H1OrFm=;_ELyHdU}QKu zYebaBO8+Cy%HUfhKa^8B7#u_Rzgi}*_J(tXg(^C}i-S;-~`OOp6pfo-GgK$8|M>e$-_zyw&3SCPQPZlSgi8 z$3$>$Z!wiu2}^s+>#zWO>mt&*d!7<@1pM_nx>i@+V;!*Bv%^`Q0jYP6TVHvapN6!* zT>;j!z84+KjChRKAD4HT{!AQ0BdxpEiu|BZ1qm8 z3sU2Wf>@I?w;PDH?ZGt#*wB4FGcF)x)yGh~o)h&f8gcr3%V(Sb?%5q(AdUYJl+Z=I zulNhxkL>=~H~ejUKlbQ$4}7=|c}a7C%ChVwbb!v%WHm^@#4LqnB|l5$ctl*B)gv-4 z)Y9)tv)IZr|C>r)_QOI8U)Y-tjH;{p5vyMux=1;O#S^LrsevQ9CHO8`9cH9-8$nO) z`MkPGN>%2b)xe8SJY@s&(v4=x>!ehSj5H)LX#^mio4u}VW)b2G$_a~yi|JTEYLtq3 zog7`mw_L^Esz{&;A*ha3@pag{&~p0Th?m#JfIAft0e1=yHWEL3Cm>KzB?x|c&PxQp zZTB(f*m3Ehsoqlx3RS#kJ1)G}tUnQkS%6F0<4|^Cm!3n@Gi!$+_#4-pZ2Ile7K=?p zzOieuvREHxBy}4=PkBjRRwu#=rLEqhbe^6cYQOUIYz$uz)}M&!8|Gl<<3oYqL4}&& z+&d$KnP`Hsi{56p)ti~^?X;=)olPIBPJ zYaH9OY?%1CeVy}DvP|6Rj<+H{k zeB323@f=E2hZYr{J117-Gq$(@E`!9zUbEhsB>|0I{8q-bj5KSr9$y>H500KDz$PVT{HCS9fqSl*QR{xJ@E&D_v=5=JSa;F* zQFoM(AG3NdnFyF<<0{CjcsT~8|R<%ijR^=nO%Ja<>%*Z#`51`wCtms7lg;=9ml2F*Kv{;RPVw=_JI9} zm{;#+7qC&#KMxa5r7U!8eH9Dxl!tQcw#xa@#ib*1`U|#iTd=43o}O04#)4Bs~j5H zJi$=i4z(RApDx(OT7s*TIeITTeW096f;35+a*uVe!%=KogIkfKRx_WgqUyI+^rdWM zY+d#CjQL7hX!f0DE=V8nc`OyVR;IYLL)obFZU%K;^qRO$`z({br~VsZ)lP?Ub4sI= zRl24(#cJ1wPjlj~sY-XzqX$kYuikA`3}k7st7FZ#TcU5*2|61_FN-YJC(Wkx?(U9x zJd2{-`atXN-z>^5JM%6pV>+XF2{jdCXNpKGDVOkLPnvbD>etM936$j*DV?lzj|sXv zWcS~AUXp`$_9xE^h|=~Y#RuN)j-a-#{8 z)iWWASoa)}wYMVQ#zx!gH=@xwzBS9eZwQ?#FZ)(5EQFqeSVZ&GeLL*-EWYeCKHfAl z_r+Z^GP;M>^=)n;?nnkT|6QsgpYW0|1iCRI94>Rt%Z9{2jCNsNCQ$O2-$w5LVeh@8 zn(DgsQAGt25o{nJO%X&&1O%jmiqcU)Iz&Kv2^}dRAPOo7N(&uDdKGC>l3+nffY3ut zK$;MG2$(>^-F)Bsp6}J~ocEsJxZ~b&&lu+)2Fc!8d+)X9T63$tZG11kCxA*3*g{@n-i+N*yZnVZ+C6UQpWqoC38Tr0YRF9X}ha+*jTm7Yk#H6kd z2&ATYO?pmy%aM_?vb4~5p9=5f7wm?9+day79$$SUtHh2k)q_u?~bkJorsRYisf}u!4VJ z{%l+(zHiX#;1z|Myq<2G>}0*ba@ksOl(Au8d34Jc;Rig6^rQ!H%BgNiL6f72+I(%q zd-YrV*k$is^!*pJzjVvN!`>%>0)Uo@ru6@o&iKoTg*Sj*lBe%`gsL0M8HDbfk{ipj zQh5Ex32z$q)7L8-j;p_T4WPZt@B?-NN!nS8N^zb02Y zE&;g<%Z=Y+)L+kGJz5XU_5a({|Mu1X#{SWIRcIU0Bxz*qkKObg>(gUerzD#`6Oo5Va~z6 zbwwo)+DhruP;{JRcLeJ68OK$p4zMq3o9DG%jQ|>NzpK=T%t77-_gzts@k2LhggJOI|i&9Z!yKX{q2}(*@qjs*$n-;x%AtR`sc@6M!+uUf1{~F&=$QZ z%=w788RB+qIr#PV?HzW9S;IpN{h|Ng7{MR_B@>U7kGh{y@6N32y_!6IDmZjv@?bqp z1NPk~|2Z#2{x%R!N{M|ZPkbKFIA609=ZvpJUOR>1_}OAs2+A6~=q~twV0{1gLn+2! z5Psb3D9HqPZ;Rjgeg4z_{lmShk`MnFEf3jJAK8fLKP`!T|7yE|fqhO1_JyKo*5~k@ zU1)yZN|d@}d-)kD7yU%;HT_<%*m;Wn~IPWRzgF5};9Nz&_K21tTU z;2*=N@H_yZyiy=Ka{8BX1^hH;A9<;jr*8ePMNqPsr#e}ZKkOm4qaHCW3pJsBR)XgQ3#gt6|uz(wG)*R?|E zhmgU< zY;P;w2$U>d{1ovVv-MS-+X_fk&JCC1b@iR0xxsp4Q2_k;GNO51S7fGaS!r}p0oNDo zY8BB`QX8de5UYMN7yNb}kFE3T;1IE}mCLrYOx)gD?eYR?RhbSG;hIyolmhnZ=8P8x z%WF*@ZNBitek}|M_PyMH<;I@XTM}qfAthdItM0?9qrnRWU*00v0P4+^yue{Z5t6^Q z0oAF4c8uF(sBsyZzSxYyckFF*&5#iK(zgE357YebM`esObp*H`BKmARQNBnU9C)&8 z6GX-YG76AS5s%PKoqeR~nr=B%XS5#N5Iy!{BR*h~Gwvl+K0EAUsoSwYr+^oyhG`-@(P4_85}NuEdIKWC|+PVKeU zq|fRgLVX{XS);j!(t8RS;*XWVti^4zT4}~xRGkz;Ry!9dj>2xl4ORDPES1K3r`77b zJgIT)n9P@;pW7DXz0imzB<60?&*H;$m;pHQ^!A<9+5*rNH8AK#Imcqc&bK>KVhiL< z0Fg0|?F5qa?-^5M>5;=VW)T|sHFvyOg@r3dZ!9Q6iIn~cu6PIH!SLq8zM^#jwE+yZ z^2YlRu``B~C*0K~GWra*xBJOpMRut;8*AB68}ZD~M1Lzx{?D$0J0iKCvE7{in#(^6 zHj|*kTDgbGy{^>hYR8g_iU~pX>PBWp?+Hl&R*_^Yx1UF|Wi#8|-IMw`-X$9_lDMI`QhslWe!#qfJKmNce$xGCB1-i{YFLL*M9^NB#URIIAwah$U@+6Q(x`{n^u8KV;pWrvHmX|>6m`|ZH#H9fu2>bsH@+5U#SP<2>G8rE~;f;8_lb`xF?1MFlHmgkRI8#P^iLB zm1^Gp5340vDc}9P?sZ!Xa+vZ7w^3{x!b7r7e4~XSmE5uQHH(j|$6OY&v*El>2Re_- zr?`#|_wZrB^;)rgFhd6EupJ*LdiwQ3ktM9#8$b-H(OFT9vC+U5iv+W7<@6^2OA?6a zy03H0Cqu!ISgQ^>r4v01j=T(M8DHhDB<9t24pDLM=FyFxJ(1P^*AwS`y71;@XnzWe z`+~L8v5gRXG`P zay_-egV#uLJ7|MJY1DF)Ij`?Z&pZQ^ShWEo)qjdOQu~B?gI0EK8*YQl+7x+rV~)X$ z=iYT|juKnTz58hLhjUmikgIcoF2&N(UN>{sxb;{A%(nE^749N@s7Yf`_Ml@RxW{9; z`n7?mJC*=QE^S!dR7O2C17_Cx=Ey`Ysu$w*mNv_egX@Q%*IB1+nJz_Sy3V?nV98WP znZ0i{2=8h0IQ2R9hhydV;E3uJRG!uKj%?Mn4AUn$9g{;sbUKLCm0=7&LbA}z!CxB&N8L_ZZf zO_pzC{*?4xf3#O$rEeJW4t^7HHv(F;P~|GqUNYKXTh)ckK0p)xRR!?(x|;`kOC)i3e#i=o#Ymh;T{-Q*Bi&vw=kPcJ*&A-nLY-(99*%l2743^8C1CDFRr^OcT5`P%pPPH~BNURc`UdPw$$@*)Yri@e+L z*(TI@4rqZIVV#}vU?n(VrRJ8-who*ZS5fE7!y+wtK7a`U6WOBL50?u?Ly@A@ic2{s z2)JeHO|E24zL~U>bdd&Qr`q^@R|j27G7gt{*KlP#dp!qR8$U<8-a=#hbh zds_4^WmG5Pdez095??UH0%e779!wZC==oxu$H72I&T{w0Nz%7gVXMX$%*5wH%^k{Ny+dOk%#_<_dF!DrwYoCFc7EO4bdo zO|p;N1Rn3H9M1rO>EMK|HP2PZv1C97tM?LkbwQWqLaNS>O7!74niU3->2g{mvi?@vZr3l|dWt5!^$>*~Q+N>IFhJ%Dk@1A(mi5$d>t`9~E-o0R#Q zUi(g_9U8qA(h?sL(!?YzAY9wj*FT=L@vn8*+{ zZzTGvwLTjmgu^KCdLHlG^nHn}`NMul-`&RzNR&nJVJ!g!4XK(P^-ybdsi&?n8NlV$ zt8_owHaG)_V2=z*yUI8*Wmu046k>RkR?c=3`H8z5*3jqFOJyGK+jfUE_sT&Lgt*MO zjkKZ89j-?4nyu}rS0vl2H`_vbX%?OZnSrUaQyLw)UjmLk(P{RbvMHEfR3Bs_El?d(;_YO?s){-0%9BE#({6?3#yFsNE4r~Q zyB1ZZrwIn%M!unwaUKE6^BZ-hq`WTQ*}^hhsFK|IlHm0w(T-pprlyu7`|#SqC!X?J?zF7d$eu?iNRZ-y07o7uQaL9yEng5p6`?T*O} zl_!C)=zGZ8GuUk@nJC|3YyPPqW)u--+ACcETqVf{$%Ja6(OaHu&>z ztgq-kZ^2{M1*SK*Nmbi=Ch4PVHm3zlU;IpGu%CMw1u`dyexnIW-i={|uI1`~ znrXZkv9WS7x{*Y9SAn^wExNs8}Y>J+w*kf@BSjeHrAR!i9sijkQNtT)08vt$NS^UZp z&KlPpp8JGOx^tq<-8cX|*Y#0*G&tAV!genH@rDS6EX#(nNQ8083Gm9#BuB}C(+JFt zO&Y{}lEr4w)ZEl5d|Qi$*|W``z=mHx3uiKp5!!h zh;@Zo_KM=iyN*&0(@OH<$(b*#_m*CY`N#t<*_WIz;ROZFHX#dWUNEz6isK5e{s*we zz)l&4nbgjFXWUiD2jW-Rik5V4J(YQ{bEl4P1@t9E$t;Fw-!pr1Yx=%Hrsy|f23378 zybLOJrdB8V6KKl0prI)KR352vSxkuCwoux|exJu_GYQ`V8pykk?N6${DW%(c!_tQ8 zsk$_zWGQ+v=&^i3nPGRY#ttuOa`TY8`+CcHUh|QIJXPg}?BfxcWW{$3XHm*Gy0(j) zH9)&O>9N_Y-!{v71GsVNY~zwtFTI5z$dHFa#vzJSX@b_GyrBwSUgi~0TNw|#&wEUI z!J;I;k^gjv#KK|dgT%DQIQ#&Kfl97Rc&7=-719)>ot%Q)5tRk9Q;s+t;X9NF`eVHP z>(64{`#d~0Z}}o+R=b2=8C6qq?oaN692w`HxZ~O&RzcI>hhG2G+^}JOl_rbLJn)KR zT39-BN-^UF^xj3;MHB+#;@P2x?^`}D-i?Oa&Ypz4^n5{|paD4O(1TJQ>GQ+x>;1Q^ zIYKG}+iYsK$oaAD-g%@O5oW1@QjlARbg-qpKE9%29X_P%1}{|m!09w(X6{ZvJ^e?d zRC0*nnw(OoG(ovZx;0r&jdFHpcgJ-ZJAUE<$1xw|Qr{a~RD%wBKF>8mv0V0iHy zAw;

wMYjBkM2@DT+5-yDE6(iTEX_meAl&_Uom9tcYT|| zcrkk50_bcBT`y)UZ)gnJq1K|`eSo{~=d}Mug8D*q9-1s|Wm_Zkf5unUwn_lP0#kX|aL#zdO*q?X25N3Yy-T>BCp(; z-@6p0Jm|go!rZ-Ll%*sw;z!F%|MSD7hW`UEfGOGDS*7T6LOt75WQ73ztxr|LQ#vhy_{qQOwd^j_GDQ?lDjBRx^@G@Tl{s5 z&uv*8pvj3P?Xn;pbXVclj}))eV}^YIVW)>!3(WzfmIF?fRr5C?;2$h_W7MIWm=tA@;j| zL^~sN8(IQ}oggkIG(T7N(m(wOZSJ2ak2pAt)VX(jd0Ey4>20eX?-WG8RiQkR$G`mX zE*UQGUs-4i_`hSJc>kG&+Gn@dfqQ;kQ17eMt_?8H9K52TO}qt%*+U}*7kBHWxhM$B zVIyl^q134*?H~C%-rm|kqoLk6TH9>17wgrkH-C2)KlQ8>*ms%rPqV9=) zPSq0s(+Tnq7%KE{Fw{1PpvS@sKT1$txS)Oap}Qj{6uy;+;7>w4E(J{~cO2iWC{Jhw z$B|Z{`&1Kt7ST?ol?ss;=6gP!CTiRy|)ev-rx2zo87jD!R4ddwCs#a zYm*eOG5>0MoJKcdzuzm7SicV2fvQI-I&a4s6`QY6%U~wLJ@9kzo|E6hn8h0az*POe zVbND27TNk&7WunGTSH*^)~^yZxkw3#2BfCWv*-BG;gYPPia>PblT|q@t0jz6h0Y6( zFPZu;7fD@#lM+`Ei6qcL)@^iqxax& z==qNgFJbX4u!mxwv0MVR0V2#u2LKWNd)yNo}z=xmX~_Bai}r}#nu zZ@b_3XAF+@ETugEC0R4D8ergbvnH8(ZiS@HN~xz5wvi|0hA^GGS98a zYv$r({;%}Ik@M*IDQLVi;957q?$l7LN#NOyknda%0T8@otoNfFNWXGp>pLus5{eq2JyD^2z`m%wGgx*?2hM)UE`^C+a^>~2LG(b> zv^UAl^^LZrS5q+$);DGs%SbiTx_fE;lf|f8`3EKmylK4TnYQ{*-VtHL?*w7}8C>$a zG!(Tb9hPI%rPh(Ow9G!69VUN9>cv&=rO7olv?w=ESFt{IZDNQt>iVt;4G5?oKECqExV>vAcQt zwh4iWyk%j6G+1Bwl2rYfhM&#IzE{J>O|i40%)TDyK2E)H3k@LWb}>a(>{otkQ!}D* zvvn3UH*w9wyl1H3qABPSzE-M|p{lG1XvPRE(q?OHi z#(D82`67S6^5;8VuP~FxDeJA(0IZRRBfZqo!RQYTZ|+rr?>6)d5bpMo_gu2V$W#9~ z#9CqWZI#TcF<^Ux(W?Q&m0{#gJY8H0KN!wBSXJ>nlu4Vw=~&ajMAa|Es|A%8cbY}0 zD}i_h7d8U_>##PsXJz9YX}?N3XJZN1Q7+hUi)fd59y{xhjV8&P2bcKSjB>&jrKEq; zMYNY&p&s*fJnZdFBRN$^GSL!A&)}`PVA1)l;|bZVVZ$o`n&I)9Ce2)NuF61!a86>y zOb*h-z-h@>WbPQ{zr6?sP!cte=1%K+WQ zLu`R+Z-!BG!T^<_>*NLU>Cx+bg_f^msfPht{0;tI5o3K^9sHvSPw}8bSng3D9qG~& z;}H!ats;)hP=BIH#vrmjWacT*i08Cr^<9c?$tf3prU!fjp)^s`ri4N}cH1YJCB2|! zgUcHO?)A&tsmi#upEttmT_@D-CtO@Waz>v59q^~6r<5U3n_}@{H4Qe}8muI+6*E;` z4&;rbu6c{+06Q;~bL*KVQUCLzcYpelYejSC==p@F&#_cJ&Sl>AlOoM`3l=Ji3nXSX zO+g5BpYlG@e|^09nE#4z3-5lI}>hD_{wBP@laZ{rNf=&;ZFwt z;$8LE5a{#oH7$%!=Uy_o3@kW&GII>#J!tQ_$gv=>3_FS6WmeJMFv(j3?_WP(T4^c? zof62)?{d|*cgPMbJ!)$`S4m#g0GZU*e}=f(T4Ya?(#hNld6>eONGKlMB~Zo>Hk+9I z=wm~WS@DC*{4BzvCL+RFl9pi`qNduU%PI0vxl=yiuwIy{_A^cURy&#PD+OQpXE5dX z*s+q5y@K)3*B_qV0R?}K~G>MHT!Z>|Q62&up6;88I-1^mr^^THFnF`)#d};H`m0}}W ztQxAg3Bq)p_InU++<Xn&+sUen_fJ-Q1^?}i_QLqKusMS zOt~P!7fN2Qdmo)_7U5v$rDRHjddZ`cUCy7PSCsI~!Gg_q#!SZeLPh_k1s(HBd^VbQ zGyD7Hd9Kwfe{_IV*lDG6id*D;SO}jx#0l3*v*QRW9E_4f2;9!d^5*N%0XWg!bk;M3Q&p1n(1uPYso>E=7hA$gMeftedI7809Mv3O7Q1 zzr5d5ngCK}+d(HQ7$6uGUqTTpV#>hsz_yx0Yi~^aLL(^%pFO2hedZ~d$`Zogz=1MN zaOO&!M?3ibfp_z|raNfTqkaDnmXK;7Zsz#UF<^~U(4+R5cX+zfm{%N0!o;NE!^SbM z-n@B0rH)Wm+}p0mU1}%nsQ6gAB-MyIvV%7vP%X*6G#%=@^KSeNYX<%Y$ui|c@bI2S z#?fL@0qO`Lz#?&!M~XscJL-ek40Syx`Ea^F4bgz>c+lB&&?`Pl9z!_Vp&u09L%qxs zw;i6rb4}*qMTg(PfrgXN(ME|fE|&5r@mmoZlj$ma7U`}D!ApGgdJch4;q~ULa8~lFmcWgs9hURH@-l{JU%p zg&cl%eVxb(X)W{`^N+27>ZHVr?)!ucwS=ga3E7+Zfg6z3d+GZheMC+B=w0F35ZbeB zr>^igX8-~q$FlWZzb?(^30imy#Kdn2dapw|EYzz`Q%cwJUfgBA+dLh|GZhT`b*`v? zf!TYMa=SP3I)~--1-~EO^^6Kts&TX%?Wth5L)Fu5Uy5(1#8y=zjlLF#Mz|t}U6pyIjVftM}Dl5qXHlbH0C`5m#p} z-lMly74{{*c4C!e*Re2&puJTW={`Z9NlsRJF%Y%dOFSFLT*?$T{)cYK$;_~`uo&Di~9N)a;7$nI^*1<96oHO*#Xy1V-?r<~D1=ae?~ewWQF`T7o`0E9pGaHCdjOEN6X z5zS{+R8aK=hbC8nR3f8K+d(0|SAa5P>#Hplk4#}M#;2!Yy1ni+Mav?5PHwYb=S0+r zDqup3YV^s}H;@zYDj`-m(Ckvt43^HB*y1M-GP57b-9|Fi;~iC>-=YRmJEtIniR3m< z2f^2WhKT5*r$G-Ee;@}xdjlhH(7Fd$)ljXAe}ROj-ECbp)waf!;(DZ;#M z&Aff#?!^J9G|g!KA;q~cN^OZu&l^s|@)b**g-{KP4Pr&u`Y~srK4}Ouk!$dyN5@yu zav%_zgj%EY1oXFu z?mJ#xRthG0{IPzXlZNiFEQj237Sv!|S}%L3ziFtZ$A?lIOowZA4eur=@_$R5S#`s& zLq=pEA^Q66$DU_~hg$o!xU`eKVprJC!(6yclc<~~sH%<43h>M|!QSI2bd>t|D@|3%ZzL&f<@?XqmQ)wy z1`{S0t2RAn2s9L_c-0A6iNs5JOU7!GgzXcO3} zF?xa_4Qq5x8yOU?U|(Nlq>4wlqrCbQk6YIR76X|8J$UL`Fy z)~aDWVTlvRTJ@Lt0GTYkS8OugWaBpnr8bgv-dtD%%qXbbOS=nYn5+oW=9st3_`7NX zsLg>V3i8ElCsZE{h+zXKNp1iT!4t+c>mq*@7JYMc*LFfolH zTLt+`-jol0d+D1~HueIsgVysSvvcOt@a6aBzC3g_|RpT zHFNdehYroo5w7t_i?MH9KKs{8JwRBN&~b8 zi4`-RElR){-ot{avxK73g8M?YP7*G$Zh7(X#b^q za9yGf@nFP%oHfjzr*G4B5_w}0F;4q4rjjxz7?I;Nt>dt6t*2i^PTWm{f~u>1ypWc5 z(CFA(nU?vuJ!#l3K08mwOSe+FfFyR`=B?e1N!RQMI5t04zx@6E{cLH80PcWyNr&va zf#;}vBJ@5YawR0!;0VeTVrdSaiX!NO=(O^RHl`)7O3yi53?9cg=Ng(XNex`xiwt45 zhEimr395Puvl6M&nH3H2CNt+fQ<3amaC?Cg#@R)dKyuz=Y9o2?d318}9%Ss^!CmfU z_|ms2ZgNe&i#O^BG+$_V?I)X>k`Xd@Bs|vT$6Kau2o0m#rScWk2uoJ^#qQ0T3H z^er_J)ly9QymYWM3>tnJ*V|0wZTXWtuksLWOcmKF{W}?S@qTh)R(W7G$o$0x@B2UE zTtAyatB}XYl(1yJ>M$*P5=MOEN68<44vgDN2ehvHtEZp>Npq3{!`q@&oHmP(=~3Bj z0x~aiH*#@;G7u}ak7pU=}BYy%kdKXWp9!zA5(9C&<6F(Wt5ncjLD$Ljbup#im4OB5Xn$J<`@3Q z$C5M_W0A2_2KAE7_gp4#Q#3ZcR|>HaO|CH?^e#nN>-wwNwqXOicEjr_^G)O&V^&qY zJ}Z3xY{h2=lFz`IJiCc*sb)BKV6D;Yar`Afsau(YvJcIv!YH`R?TFpq}5=` zO)43tu_KPC+FGnAr+a-9uPV3C5s&`BLN$`4qX6hueh)mG^-hOD4)b%wPVzxpN6e%FK34YOUiYVl{GUvJym%I zQ(x&<$69Y%V)Am;v<@Z{Xt1jBVvf1SUozCtdkkWtwy4!`98ljBVe_xfpfv;()i(LoVlyD zvARa^@R;!wigZ$~vuwMMqFggwMNx|T(|+1a%mfBbOa=E=)*Wg^XSpB&uq@+{kx|^4WL;2`es8GgHL$h}qgLC|h0wOKO30xC6hvfRamEu4(J|?{4p2Z=0 zZ#PUg?(aCSflpoOb9w2M$6*NJv*c8O6DMxHf3ZA76}A4{Roo0aw~>7nn)r(GAZSft z24dcRoNvFhp-4C58rjl31ux!i52FI5sM$*MhKI)2NUU}X-jQv~T>9l^#4-pHVh7aq{HkzijsW$>4X` zQ(ufdK-%KWmM)O@Q()?3&&m5)Q}g&-V0BZ`p;1TbJbKH*WlMX05*m(5z_Qv<&u9e` zbv^W=x^h;lxGA2ae%GM18^kqM9QEq$8dn8jGuhBZ&S=#AI114L*gx37?_duRywM2H zQQ@fEmkzzAOru0u{||d_8C6x+Hf)O^0wPF>fP{2+Zc@5Ix|>Z%NOvm;2uN?FrP*{! zcb9a7ba(f+(97HFx}WEJ?&tg7zwaN$8iO&`+H0=4=9=?7k9nMax4~2l6igmx&R&I= z$d_E1c|N{dus~=rGw!8{p(xm6-Q6u2TJo*$ZW%@unbh6D=J1X=B zv~|n2<3_u>^wlJ7A=)&tdELdUqJDNT@75}gizi2Tfi!byJLn_9@*b9DjkZWStY?hy zYcgi+m2_N56hoC1lzULQT2uQ21vY?3Xz??4eTYrX+gjyFH*|Rr)$+K>r2z7XH5xQs z%)E((T}sr3c9@?iZ>t_Oo!(T4b~+Vu*5|6g>u>96Qh9}9_PJa4`@KSdoJuw+L6*(y zCKuJnLG$~4d{-_gf$Uife@5nzXBEsz9j8iIcRG5hDDz~tbT3}&Ec5%xJ!|B*EWK&i z9Tpx~^Q1Of1;K-W1eQrM@c{9p?^N5&!8QpH|0ZhZu1xmaFJ&_9j?(HY-}CPznsReb zRaCNmYks9!I2@mUKyX7E^=QYGWO`+H&hhG1hX?-@9;zO|Df2Q0XHuXc>6nGZ_N3F* z>B6lPOZ!S0HTM!6I3$`jywwlh6JwI%_&EzOdL6hDE~*woGM32y^jO1vyI`dEoBE$h z_s&3pU3_a!W=!;tQa>oPP2Y?57E?L+_Cf{(amF;)Dvk*o+@3^{%Df8L!G(4Lh3|Qg zB2C4%-K8vF*m690brzK4oduuQohb9-L4z9->?rtU>!M!cq1c*c#GwurS`UVJj0 zKAlcS_A0l04Bw=$Lg7=kG&yf+t)Oc<8TTW1LNO`2VIn2VfwXhugv1NjljJ3q^=M#$ z{1>>4&Z|W8`W{@St%^DXz~vDDT-H}U?%2O!BOl-dz-1r7wcasHbFHfi@=MQ7>1z@v zO9lQdb7c(3edYTJ9spdv04J6@O-GSGYK32ZwlEQF5NagoHuT9J=pS3x2(})^%q*U~ zxqCOaIvR@!dL5Qmw^WqK_Go0#JS964&oYkXs#pWtIT5!?C{UF>Y>>c%AaWse`o>Wq z(&p6u1$l27HMp*4RO0lV5r6dQjpr8}_JhL6>|_Hz&9e*TWNbDOlccrZMsa5eqO9U# z8&^6L2E(QzEsSRYK#e1f`TEPXHT!PVfDQxp0V17&DTi;-aVJ3 z^)WUT@G8m{9@QHgf2LOFO}3}_X0_EnJBqf6AAS{PPPoIcj`R9ht>1Sb39##kW~Xi* z$EuOp%HXN=%NroP)RNCuX;JMp=zVV0)c749nYN0#?m33SvG;oyIBEPS1G1q9-Mttu zlpA@_k7dj14axS6qo>>xv5vi@SbPRq&Y0W_Xl|9BL_0Ir=+Vc6(lpN zsXQ`HH>9Tn108NrORVzi#6DZa)Y2+`q!C0J;{i%G>S5l^LH$M>_dC~zeO0_Gq9squu%ua{KyNJhGot{N{q^*{g0mHACNF6eWE;6YUHog6VZ ztWh^MPo86ipV3SvDm6#^+4NaXdcfIVP_XwifM9Crh5^cz$LKGtC#k+kD|l~>rg)1j zwZ>pJYrK2N;fI)jINdYe%pkARTHzjAonj1ig#-U&ns*Vj9uX>|=}PZf6>F6fun3MD zkl~ZLA++MH_Ygdk-jD`rx5rCdx;s{&{kV$J=A!S;T6>QF?7)(Q##d!;CQADmMB}fi z$U6z5WrxX?w%Si{;(D%dR(s}(x;fb)6GV64Ylk)-wbp>&d-wWYhh{<|#XlZhUe0h8 zDOx+ARNG|7N+#lTk@5Xo{cfU2!~{(hj5nL&prnzTQLt_E3#Z?+9v^_#<`XdfO!`Ck z2mSdo7gTA{z~e@EE;2g=rN-WmRwzU|y=@W)8J0CmiK{k%-+&X&)913-&{ldydYE$? zJi(jw4{nRy#}KI;@$)*%U3Lv!DMstW?^$%%{VW=-fbg~Td!c>o=Fl?Z_y{hzbyO<5 zL-TH?54y1?@YSQ^(`VmobGcUbU0@M=Z67XvI_*f@{x)!E0Y3Z}+$l~(@6)nyRs4zv zO@aQB+udfD06)Zy_jessfr@(&twpjCwoY5}_MSH1AR!9%Pu{JpcUqEPWi|ZJPo9UV z#{a#r!nRG|lKH(HF${XA>q9xzlbn*;&%>uM1-^Zkho7w;(0Xl<_pceVz|>n$Mqb@u zL~eG~%SOjW8j@b3oy({H>$Y1dJ`Yb!aLTk$9Kf#N{ME33NB92A@gCx`D

6>CcJh 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%0Dux6SS4zan?nHEF!T6iXW@MB&6dw6Mvl7C> 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 literal 0 HcmV?d00001 From 8467ba856e19a657221e62489c84a8e448e87534 Mon Sep 17 00:00:00 2001 From: xuweiyu Date: Fri, 7 Jan 2022 10:56:48 +0800 Subject: [PATCH 6/6] =?UTF-8?q?1.=E6=8A=BD=E5=8F=96=E5=B7=A5=E7=A8=8B?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E6=A8=A1=E5=BC=8F=202.minSdkVersion=E9=99=8D?= =?UTF-8?q?=E7=BA=A7=E5=88=B016?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGE_LOG.md | 8 +++- app/build.gradle | 35 +---------------- .../github/fast_startup/startup/demo/App.kt | 14 +++---- build-common.gradle | 38 +++++++++++++++++++ build.gradle | 32 ++++++++++------ fast-startup-api/build.gradle | 26 +------------ fast-startup-api/publish.gradle | 2 +- fast-startup/build.gradle | 28 +------------- fast-startup/publish.gradle | 2 +- gradle.properties | 5 ++- 10 files changed, 83 insertions(+), 107 deletions(-) create mode 100644 build-common.gradle diff --git a/CHANGE_LOG.md b/CHANGE_LOG.md index 97b8b64..6eac5b0 100644 --- a/CHANGE_LOG.md +++ b/CHANGE_LOG.md @@ -2,15 +2,19 @@ | 组件 | 最新版本 | | --- | --- | -| io.github.wizzxu:fast-startup |0.0.2 | -| io.github.wizzxu:fast-startup-api |0.0.2 | +| io.github.wizzxu:fast-startup |0.0.5 | +| io.github.wizzxu:fast-startup-api |0.0.5 | | io.github.wizzxu:fast-startup-transformer |0.0.1 | # fast-startup +### 0.0.5 +降级minSdkVersion至16 ### 0.0.2 新增隐私初始化支持 新增依赖关系打印 # fast-startup-api +### 0.0.5 +无内容变化 ### 0.0.2 新增隐私初始化支持 \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 4cfba7b..7ab6da0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,36 +3,11 @@ plugins { id 'kotlin-android' //id 'com.didiglobal.booster' } +apply from: '../build-common.gradle' android { - compileSdk 30 - defaultConfig { applicationId "io.github.fast.startup.demo" - minSdk 21 - targetSdk 30 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - debug { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = '1.8' } } @@ -42,12 +17,6 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - //implementation project(path: ':fast-startup') - api "io.github.wizzxu:fast-startup:0.0.2" - //implementation "io.github.wizzxu:fast-startup:0.0.1-SNAPSHOT" - //implementation project(path: ':fast-startup-api') - testImplementation 'junit:junit:4.+' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + implementation "io.github.wizzxu:fast-startup:${rootProject.ext.fast_startup}" } \ No newline at end of file diff --git a/app/src/main/java/io/github/fast_startup/startup/demo/App.kt b/app/src/main/java/io/github/fast_startup/startup/demo/App.kt index 2311c4a..183fe85 100644 --- a/app/src/main/java/io/github/fast_startup/startup/demo/App.kt +++ b/app/src/main/java/io/github/fast_startup/startup/demo/App.kt @@ -76,18 +76,18 @@ class App : Application() { ).start()*/ // 测试环 - //TestTask.addTask(TestCircle()) + TestTask.addTask(TestCircle()) // // //测试依缺失 - //TestTask.addTask(TestMissing()) -// -// //测试依赖接口方式 - //TestTask.addTask(TestInterfaceImp()) + TestTask.addTask(TestMissing()) + + //测试依赖接口方式 + TestTask.addTask(TestInterfaceImp()) // // //测试多次添加 - //TestTask.addTask(TestMultiAdd()) + TestTask.addTask(TestMultiAdd()) - //TestTask.addTask(TestGetResult()) + TestTask.addTask(TestGetResult()) //TestTask.addTask(TestAop()) diff --git a/build-common.gradle b/build-common.gradle new file mode 100644 index 0000000..f8300f3 --- /dev/null +++ b/build-common.gradle @@ -0,0 +1,38 @@ +android { + compileSdkVersion 30 + buildToolsVersion "30.0.3" + + defaultConfig { + minSdkVersion 16 + targetSdkVersion 30 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles "consumer-rules.pro" + } + + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 996a622..ba4a3d2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,9 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = "1.5.31" - ext.booster_version = '4.0.0' - ext.dokka_version = '1.5.30' - ext.fast_startup_transformer = '0.0.1' + ext { + kotlin_version = "1.5.31" + booster_version = '4.0.0' + dokka_version = '1.5.30' + + fast_startup = '0.0.5' + fast_startup_api = '0.0.5' + fast_startup_transformer = '0.0.1' + } configurations.all { resolutionStrategy { @@ -12,9 +17,8 @@ buildscript { } } repositories { - maven { - url "https://s01.oss.sonatype.org/content/repositories/snapshots/" - } + maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots" } + maven { url "https://s01.oss.sonatype.org/content/repositories/releases/" } google() mavenCentral() } @@ -30,19 +34,25 @@ buildscript { } allprojects { - configurations.all { resolutionStrategy { cacheChangingModulesFor 1, 'minutes' cacheDynamicVersionsFor 1, 'minutes' } } + if ("true" == rootProject.isDebugModule) { + configurations.all { + resolutionStrategy.dependencySubstitution { + substitute module("io.github.wizzxu:fast-startup-api") using project(":fast-startup-api") + substitute module("io.github.wizzxu:fast-startup") using project(":fast-startup") + } + } + } repositories { google() mavenCentral() - maven { - url "https://s01.oss.sonatype.org/content/repositories/snapshots/" - } + maven { url "https://s01.oss.sonatype.org/content/repositories/iogithubwizzxu-1018/" } + maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" } jcenter() // Warning: this repository is going to shut down soon } } diff --git a/fast-startup-api/build.gradle b/fast-startup-api/build.gradle index b963ff6..96bb6bb 100644 --- a/fast-startup-api/build.gradle +++ b/fast-startup-api/build.gradle @@ -4,37 +4,13 @@ plugins { } apply from: 'publish.gradle' +apply from: '../build-common.gradle' android { - compileSdkVersion 30 - buildToolsVersion "30.0.3" - - defaultConfig { - minSdkVersion 16 - targetSdkVersion 30 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles "consumer-rules.pro" - } - buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = '1.8' - } -} - -dependencies { - - //implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } \ No newline at end of file diff --git a/fast-startup-api/publish.gradle b/fast-startup-api/publish.gradle index 119490c..2ee7df4 100644 --- a/fast-startup-api/publish.gradle +++ b/fast-startup-api/publish.gradle @@ -20,7 +20,7 @@ task androidSourcesJar(type: Jar) { ext { PUBLISH_GROUP_ID = 'io.github.wizzxu' PUBLISH_ARTIFACT_ID = 'fast-startup-api' - PUBLISH_VERSION = '0.0.2' + PUBLISH_VERSION = '0.0.5' } // leave them empty to allow compilation diff --git a/fast-startup/build.gradle b/fast-startup/build.gradle index aaff974..cb7fb8e 100644 --- a/fast-startup/build.gradle +++ b/fast-startup/build.gradle @@ -4,43 +4,19 @@ plugins { } apply from: 'publish.gradle' - +apply from: '../build-common.gradle' android { - compileSdkVersion 30 - buildToolsVersion "30.0.3" - - defaultConfig { - minSdkVersion 21 - targetSdkVersion 30 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles "consumer-rules.pro" - } - buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = '1.8' - } } - dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" //api project(path: ':fast-startup-api') //api "io.github.wizzxu:fast-startup-api:0.0.1-SNAPSHOT" - api "io.github.wizzxu:fast-startup-api:0.0.2" - testImplementation 'junit:junit:4.+' - androidTestImplementation 'androidx.test.ext:junit:1.1.3' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + api "io.github.wizzxu:fast-startup-api:${rootProject.ext.fast_startup_api}" } \ No newline at end of file diff --git a/fast-startup/publish.gradle b/fast-startup/publish.gradle index bbe99a9..d36875e 100644 --- a/fast-startup/publish.gradle +++ b/fast-startup/publish.gradle @@ -20,7 +20,7 @@ task androidSourcesJar(type: Jar) { ext { PUBLISH_GROUP_ID = 'io.github.wizzxu' PUBLISH_ARTIFACT_ID = 'fast-startup' - PUBLISH_VERSION = '0.0.2' + PUBLISH_VERSION = '0.0.5' } // leave them empty to allow compilation diff --git a/gradle.properties b/gradle.properties index 98bed16..444b816 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,4 +18,7 @@ android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true # Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official \ No newline at end of file +kotlin.code.style=official + +# 是否是调试模式 +isDebugModule=false \ No newline at end of file

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 aS@W|1e~q|D8-pPMe#-J1_X}hnz4$LxgAnBa literal 163304 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≥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 C(w;@Set~9XEgB&`hMm^E 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 JLIcP9{{Tr90iFN= diff --git a/pic/dep_list_pic.png b/pic/dep_list_pic.png new file mode 100644 index 0000000000000000000000000000000000000000..732b46c9bbcf6cb3ba5c5175fd4b01c4cc5760b9 GIT binary patch literal 109354 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