Skip to content

Commit 578f96b

Browse files
committed
接入DoraemonKit进行性能监控
1 parent 264e7a9 commit 578f96b

File tree

10 files changed

+59
-39
lines changed

10 files changed

+59
-39
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,10 +168,10 @@ dependencies {
168168
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
169169
implementation 'com.lxj:xpopup:1.8.10-x'
170170
implementation 'com.github.chrisbanes:PhotoView:2.3.0@aar'
171+
implementation 'io.github.idisfkj:android-startup:1.0.7'
171172

172173
//bugly捕获异常
173174
implementation 'com.tencent.bugly:crashreport:3.3.92'
174-
implementation project(path: ':LaunchStarter')
175175

176176
//aspectj
177177
implementation 'org.aspectj:aspectjrt:1.9.5'//需要使用aspectJ能力的模块

app/src/main/java/com/fmt/github/App.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.fmt.github
33
import android.app.Application
44
import android.content.ContextWrapper
55
import com.fmt.github.tasks.*
6-
import com.fmt.launch.starter.TaskDispatcher
6+
import com.rousetime.android_startup.StartupManager
77

88
lateinit var mApplication: Application
99

@@ -14,14 +14,15 @@ class App : Application() {
1414
mApplication = this
1515

1616
//启动器进行异步初始化
17-
TaskDispatcher.init(this)
18-
TaskDispatcher.createInstance()
19-
.addTask(InitBuGlyTask())
20-
.addTask(InitKoInTask())
21-
.addTask(InitDoKitTask())
22-
.addTask(InitImageLoaderTask())
23-
.addTask(InitSmartRefreshLayoutTask())
17+
StartupManager.Builder()
18+
.addStartup(InitBuGlyTask())
19+
.addStartup(InitKoInTask())
20+
.addStartup(InitDoKitTask())
21+
.addStartup(InitImageLoaderTask())
22+
.addStartup(InitSmartRefreshLayoutTask())
23+
.build(this)
2424
.start()
25+
.await()
2526
}
2627
}
2728

app/src/main/java/com/fmt/github/WelcomeActivity.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import com.fmt.github.user.activity.LoginActivity
1111
import com.fmt.github.user.dao.UserDao
1212
import com.jaredrummler.android.widget.AnimatedSvgView
1313
import kotlinx.android.synthetic.main.activity_welcome.*
14-
import kotlinx.coroutines.delay
1514
import kotlinx.coroutines.launch
1615
import org.koin.android.ext.android.inject
1716

@@ -50,7 +49,6 @@ class WelcomeActivity : BaseDataBindActivity<ActivityWelcomeBinding>() {
5049

5150
private fun checkIsLogin() {
5251
lifecycleScope.launch {
53-
delay(500)//挂起,但不会阻塞,后续通过resumeWith恢复执行
5452
val userList = mUserDao.getAll()
5553
(userList.isEmpty()).yes {
5654
startActivity<LoginActivity>()
Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package com.fmt.github.tasks
22

3+
import android.content.Context
34
import com.fmt.github.config.Configs
4-
import com.fmt.launch.starter.task.MainTask
5-
import com.fmt.launch.starter.task.Task
5+
import com.rousetime.android_startup.AndroidStartup
66
import com.tencent.bugly.crashreport.CrashReport
77

8-
class InitBuGlyTask : MainTask() {//Bugly官方建议,初始化放在主线程
8+
class InitBuGlyTask : AndroidStartup<Unit>() {//Bugly官方建议,初始化放在主线程
99

10-
override fun run() {
11-
CrashReport.initCrashReport(mContext, Configs.BUGLY_APP_ID, false)
12-
}
10+
override fun callCreateOnMainThread(): Boolean = true
11+
12+
override fun waitOnMainThread(): Boolean = false
13+
14+
override fun create(context: Context): Unit =
15+
CrashReport.initCrashReport(context, Configs.BUGLY_APP_ID, false)
1316
}
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package com.fmt.github.tasks
22

3+
import android.content.Context
34
import com.didichuxing.doraemonkit.DoraemonKit
45
import com.fmt.github.mApplication
5-
import com.fmt.launch.starter.task.MainTask
6+
import com.rousetime.android_startup.AndroidStartup
67

7-
class InitDoKitTask : MainTask() {
8+
class InitDoKitTask : AndroidStartup<Unit>() {
89

9-
override fun run() {
10-
//因为滴滴平台暂时注册不了,productId后续会替换,暂时使用不了平台工具
11-
DoraemonKit.install(mApplication,"")
12-
}
10+
override fun callCreateOnMainThread(): Boolean = true
11+
12+
override fun waitOnMainThread(): Boolean = true
13+
14+
override fun create(context: Context): Unit = DoraemonKit.install(mApplication, "")
1315
}

app/src/main/java/com/fmt/github/tasks/InitImageLoaderTask.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.fmt.github.tasks
22

3+
import android.content.Context
34
import android.graphics.Bitmap
45
import android.graphics.drawable.Drawable
56
import android.view.View
@@ -13,13 +14,15 @@ import com.fmt.github.AppContext
1314
import com.fmt.github.R
1415
import com.fmt.github.common.image.ImageLoadStrategyManager
1516
import com.fmt.github.common.image.ImageLoaderOptions
16-
import com.fmt.launch.starter.task.MainTask
17+
import com.rousetime.android_startup.AndroidStartup
1718

18-
class InitImageLoaderTask : MainTask() {
19+
class InitImageLoaderTask : AndroidStartup<Unit>() {
1920

20-
override fun run() {
21-
ImageLoadStrategyManager.init(GlideLoadStrategy())
22-
}
21+
override fun callCreateOnMainThread(): Boolean = true
22+
23+
override fun waitOnMainThread(): Boolean = false
24+
25+
override fun create(context: Context): Unit = ImageLoadStrategyManager.init(GlideLoadStrategy())
2326

2427
/**
2528
* Glide加载图片策略
@@ -83,4 +86,5 @@ class InitImageLoaderTask : MainTask() {
8386
})
8487
}
8588
}
89+
8690
}
Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
package com.fmt.github.tasks
22

3+
import android.content.Context
34
import com.fmt.github.di.appModule
4-
import com.fmt.launch.starter.task.Task
5+
import com.rousetime.android_startup.AndroidStartup
56
import org.koin.core.context.startKoin
67

7-
class InitKoInTask : Task(){
8+
class InitKoInTask : AndroidStartup<Unit>() {
89

9-
override fun run() {
10+
override fun callCreateOnMainThread(): Boolean = false
11+
12+
override fun waitOnMainThread(): Boolean = false
13+
14+
override fun create(context: Context): Unit? {
1015
startKoin {
1116
modules(appModule)
1217
}
18+
return null
1319
}
1420
}
Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
package com.fmt.github.tasks
22

3+
import android.content.Context
34
import androidx.core.content.ContextCompat
45
import com.fmt.github.R
5-
import com.fmt.launch.starter.task.Task
6+
import com.rousetime.android_startup.AndroidStartup
67
import com.scwang.smartrefresh.header.MaterialHeader
78
import com.scwang.smartrefresh.layout.SmartRefreshLayout
89

9-
class InitSmartRefreshLayoutTask : Task() {
10+
class InitSmartRefreshLayoutTask : AndroidStartup<Unit>() {
1011

11-
override fun run() {
12-
SmartRefreshLayout.setDefaultRefreshHeaderCreator { context, layout ->
12+
override fun callCreateOnMainThread(): Boolean = false
13+
14+
override fun waitOnMainThread(): Boolean = false
15+
16+
override fun create(context: Context): Unit =
17+
SmartRefreshLayout.setDefaultRefreshHeaderCreator { c, layout ->
1318
layout.setEnableHeaderTranslationContent(false)
14-
MaterialHeader(context).setColorSchemeColors(
19+
MaterialHeader(c).setColorSchemeColors(
1520
ContextCompat.getColor(
16-
context,
21+
c,
1722
R.color.colorPrimary
1823
)
1924
)
2025
}
21-
}
2226
}

build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ buildscript {
88
maven { url 'https://maven.aliyun.com/repository/google' }
99
google()
1010
jcenter()
11+
mavenCentral()
1112
}
1213
dependencies {
1314
classpath 'com.android.tools.build:gradle:3.4.2'
@@ -24,6 +25,7 @@ allprojects {
2425
maven { url 'https://maven.aliyun.com/repository/google' }
2526
google()
2627
jcenter()
28+
mavenCentral()
2729
maven { url "https://jitpack.io" }
2830
}
2931
}

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
include ':common'
2-
include ':app', ':simplebehavior', ':LaunchStarter',':flutter_module'
2+
include ':app', ':simplebehavior',':flutter_module'
33
setBinding(new Binding([gradle: this]))
44
evaluate(new File(
55
settingsDir.absolutePath,

0 commit comments

Comments
 (0)