LC는 메모리 누수를 방지하는 매우 유용한 도구이지만 LC에는 Activity, Fragment, ViewModel, RootView 및 Service 개체만 지원하는 모니터링이 제공됩니다. 더 많은 개체를 모니터링하려면 해당 인터페이스를 호출하여 수동으로 모니터링을 추가해야 합니다. 여전히 사용하기 불편해서 더 많은 개체를 자동으로 모니터링하기 위해 바이트코드 계측을 사용하려고 합니다.
바이트코드로 다음이 지원됩니다.
java.io.Closeable#닫기
- 파일 스트림
- 소켓
- 커서
- 기타 Closeable에서 상속
android.graphics.Bitmap#recycle
삽입 도구: https://github.com/miqt/android-plugin/tree/master/plugin/inject-code-plugin
부록:
https://github.com/square/leakcanary/blob/main/leakcanary-object-watcher-android-core/src/main/java/leakcanary/AppWatcher.kt