@@ -7,6 +7,7 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.function.api.startup.IStartUpProvider
|
||||
import com.mogo.eagle.core.function.startup.stageone.APMStartup
|
||||
import com.mogo.eagle.core.function.startup.stageone.HttpDnsStartUp
|
||||
import com.mogo.eagle.core.function.startup.stageone.ThreadOptStartup
|
||||
import com.mogo.eagle.core.function.startup.stagetwo.*
|
||||
import com.rousetime.android_startup.StartupListener
|
||||
import com.rousetime.android_startup.StartupManager
|
||||
@@ -53,6 +54,7 @@ class MogoStartUpProvider : IStartUpProvider {
|
||||
StartupManager.Builder()
|
||||
.addStartup(HttpDnsStartUp())
|
||||
.addStartup(APMStartup())
|
||||
.addStartup(ThreadOptStartup())
|
||||
.setConfig(config)
|
||||
.build(it)
|
||||
.start()
|
||||
|
||||
@@ -21,6 +21,6 @@ class APMStartup : AndroidStartup<Boolean?>() {
|
||||
}
|
||||
|
||||
override fun dependenciesByName(): List<String> {
|
||||
return emptyList()
|
||||
return listOf("com.mogo.eagle.core.function.startup.stageone.ThreadOptStartup")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.mogo.eagle.core.function.startup.stageone
|
||||
|
||||
import android.content.*
|
||||
import android.os.Process
|
||||
import android.os.Trace
|
||||
import android.util.*
|
||||
import com.mogo.thread.ext.core.*
|
||||
import com.mogo.thread.ext.core.config.*
|
||||
import com.mogo.thread.ext.core.config.priority.*
|
||||
import com.mogo.thread.ext.core.trace.*
|
||||
import com.rousetime.android_startup.*
|
||||
import java.io.*
|
||||
import java.text.*
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit.SECONDS
|
||||
|
||||
class ThreadOptStartup: AndroidStartup<Boolean>() {
|
||||
|
||||
override fun create(context: Context): Boolean {
|
||||
ThreadManager
|
||||
.init(ThreadConfig.Builder()
|
||||
.maxKeepAliveTime(10, SECONDS)
|
||||
.minKeepAliveTime(5, SECONDS)
|
||||
.priorityConfig(PriorityConfig.Builder()
|
||||
.checkInterval(1, SECONDS)
|
||||
.setPriority("GLThread\\s+\\d+", Process.THREAD_PRIORITY_BACKGROUND)
|
||||
.setPriority("Dispatch-\\w+", Process.THREAD_PRIORITY_BACKGROUND)
|
||||
.build())
|
||||
.traceConfig(TraceConfig.Builder()
|
||||
.enabled(false)
|
||||
.trace(object : ITrace {
|
||||
override fun enter(section: String) {
|
||||
//Trace.beginSection(section)
|
||||
//Log.d("TTTTTT", "enter->$section" )
|
||||
}
|
||||
override fun exit() {
|
||||
//Trace.endSection()
|
||||
}
|
||||
})
|
||||
.build())
|
||||
/*.dump(DumpConfig.Builder()
|
||||
.dumpLogFilePath(File(context.getExternalFilesDir(null), "thread_dump_log_${ SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.ROOT).format(Date()) }.txt").absolutePath)
|
||||
.dumpPeriod(5, SECONDS)
|
||||
.threadRunThreshold(10, SECONDS)
|
||||
.build())*/)
|
||||
return true
|
||||
}
|
||||
|
||||
override fun callCreateOnMainThread(): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun waitOnMainThread(): Boolean {
|
||||
return true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user