Слияние кода завершено, страница обновится автоматически
用于监控应用的 Native 内存泄漏问题,它的核心原理如下,详情可参考 libmemunreachable 实现
repositories {
mavenCentral()
}
dependencies {
implementation "com.kuaishou.koom:koom-native-leak:${latest_version}"
implementation "com.kuaishou.koom:xhook:${latest_version}"
}
初始化 MonitorManager, 参考这里 由于 LeakMonitor 依赖 MonitorManager,确保 MonitorManager 已经初始化
初始化 LeakMonitor
LeakMonitorConfig config = new LeakMonitorConfig.Builder()
.setLoopInterval(50000) // 设置轮训的间隔,单位:毫秒
.setMonitorThreshold(16) // 设置监听的最小内存值,单位:字节
.setNativeHeapAllocatedThreshold(0) // 设置native heap分配的内存达到多少阈值开始监控,单位:字节
.setSelectedSoList(new String[0]) // 不设置是监控所有, 设置是监听特定的so, 比如监控libcore.so 填写 libcore 不带.so
.setIgnoredSoList(new String[0]) // 设置需要忽略监控的so
.setEnableLocalSymbolic(false) // 设置使能本地符号化,仅在 debuggable apk 下有用,release 请关闭
.setLeakListener(leaks -> { }) // 设置泄漏监听器
.build();
MonitorManager.addMonitorConfig(config);
LeakMonitor.INSTANCE.start();
LeakMonitor.INSTANCE.stop();
LeakListener
中接收到泄漏信息;通常不需要主动检查LeakMonitor.INSTANCE.checkLeaks();
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )