아직도 메모리 누수 문제를 해결하지 못해 여러 방법으로 어디서 누수가 생기는지, 어떤 변수를 손봐야 하는지 감이 잘 오지 않아서
책을 참고하는 중에 LeakCanary라는 무료 라이브러리를 알게 됐다.
중요한건 쓰여진 모든 적용방법을 쓰고도 실행이 되지않아 어떻게 사용할지 잘 몰랐는데
유투브 영상까지 참조하면서 매니페스트 파일까지 건드려야 한다는 걸 알았다.
Getting started
In your build.gradle
:
dependencies {
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
}
In your Application
class:
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
LeakCanary.install(this);
// Normal app init code...
}
}
먼저 git 저장소에 나와있는대로 build.gradle에 해당 코드를 추가하고
다음 기존 액티비티들 이외에 새로 ExampleApplicaton 클래스를 만들어 위와 같이 정의해주어야만 한다.
그래들에 코드를 추가한 뒤 싱크를 마쳤다면 아래 코드를 작성하면서 import 가능한 요소들을 알아서 추천해 줄 것이다.
다음으로는 앱의 매니페스트 파일에 <application .. 부분에
android:name="util.ExampleApplication" 을 추가해주어야 한다.
이 작업이 최종적으로 되지않아 leakcanary를 사용할 수 없었다.
여기까지 마치고 난 뒤 앱을 테스트하면서 메모리 leak을 감지하고 팝업창 및 로그를 기록하여 보여주는 것을 확인할 수 있었다.
< 참조 >
도서 : 안드로이드 앱 성능 최적화 - 더그 실라스
유투브 : https://www.youtube.com/watch?v=a5YV6cwerX0
git repository: https://github.com/square/leakcanary
'ANDROID > Performance' 카테고리의 다른 글
[안드로이드] include 태그를 사용하고 있다면? merge 태그로 레이아웃 계층 줄이기 (0) | 2020.10.07 |
---|---|
[안드로이드] 구글이 소개하는 메모리 최적화 기법들을 리뷰해보자 (0) | 2020.07.12 |
[안드로이드] 안드로이드 스튜디오의 Inspect Code로 프로젝트 자가진단하기 (0) | 2019.08.26 |
[안드로이드] 안드로이드 오버드로우 개선 - 레이아웃의 background를 확인하자 (0) | 2018.05.04 |
[안드로이드] 안드로이드 앱 메모리 최적화 - 이미지뷰 drawable 비우기 (0) | 2018.03.16 |