[Opt]新增OOM内存监测

This commit is contained in:
chenfufeng
2023-08-09 18:27:50 +08:00
parent 76e153a815
commit 879bbc2a90
3 changed files with 23 additions and 0 deletions

View File

@@ -203,6 +203,7 @@ ext {
//========================= Koom ======================
koomnative : "com.kuaishou.koom:koom-native-leak-static:2.2.0",
koomxhook : "com.kuaishou.koom:xhook-static:2.2.0",
koomjava : "com.kuaishou.koom:koom-java-leak-static:2.2.0",
//========================= Koom ======================
recyclerviewadapterhelper : "io.github.cymchad:BaseRecyclerViewAdapterHelper:3.0.4",

View File

@@ -72,6 +72,7 @@ dependencies {
implementation rootProject.ext.dependencies.android_start_up
implementation rootProject.ext.dependencies.cicle_indicator
implementation rootProject.ext.dependencies.koomjava
implementation rootProject.ext.dependencies.koomnative
implementation rootProject.ext.dependencies.koomxhook
api project(':test:crashreport-apmbyte')

View File

@@ -12,6 +12,10 @@ import android.widget.FrameLayout
import androidx.core.app.ActivityCompat
import androidx.recyclerview.widget.LinearLayoutManager
import com.kwai.koom.base.MonitorManager.addMonitorConfig
import com.kwai.koom.javaoom.monitor.OOMHprofUploader
import com.kwai.koom.javaoom.monitor.OOMMonitor
import com.kwai.koom.javaoom.monitor.OOMMonitorConfig
import com.kwai.koom.javaoom.monitor.OOMReportUploader
import com.kwai.koom.nativeoom.leakmonitor.LeakListener
import com.kwai.koom.nativeoom.leakmonitor.LeakMonitor.start
import com.kwai.koom.nativeoom.leakmonitor.LeakMonitorConfig
@@ -50,6 +54,7 @@ import com.mogo.map.listener.MogoMapListenerHandler.Companion.mogoMapListenerHan
import com.mogo.map.uicontroller.EnumMapUI
import com.zhjt.service.chain.ChainLog
import kotlinx.android.synthetic.main.module_main_activity_main.*
import java.io.File
/**
@@ -239,6 +244,22 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
}
private fun startLeakMonitor() {
val oomMonitorConfig = OOMMonitorConfig.Builder()
.setEnableHprofDumpAnalysis(true)
.setHprofUploader(object : OOMHprofUploader {
override fun upload(file: File, type: OOMHprofUploader.HprofType) {
}
})
.setReportUploader(object : OOMReportUploader {
override fun upload(file: File, content: String) {
printLeakMsg("OOMLeak--$content")
}
})
.build()
addMonitorConfig(oomMonitorConfig)
OOMMonitor.startLoop(true, false, 5_000L)
val leakMonitorConfig: LeakMonitorConfig = LeakMonitorConfig.Builder()
.setLoopInterval(50000)
.setMonitorThreshold(16)