728x90
앱을 잘 만들어서 신나게 플레이스토어에 올렸다고 생각해보자.
그런데 다운로드 받는데 한참 걸린다.
그럼 사용자는 최악의 경우 다운로드를 취소할 수 도 있다.(다소 과장)
다양한 설정을 통해 용량을 줄이고 이러한 상황을 막아보자.
isMinifyEnabled
기능
- 사용하지 않는 코드 축소
- 앱 및 라이브러리 종속 항목에서 미사용 클래스, 필드, 메서드, 속성을 감지하여 안전하게 삭제
- 라이브러리 종속 항목에서 몇 개의 API만 사용한다면 축소는 앱이 사용하지 않는 라이브러리 코드를 식별하고 앱에서 그 코드만 삭제
- 앱 클래스 및 멤버의 이름을 줄이는 난독화
- 이름을 줄이는 과정을 통해 앱의 크기를 줄임
- R8을 사용한 난독화
- 개선된 코드 최적화 전략을 적용하여 앱 크기 줄이고 성능 개선하는 최적화
하지만 단점으로 내가 작성한 코드들을 축약해버려 제대로 실행이 되지 않을 수 있다.
그렇기 때문에 proguards에서 설정해주어 필요한 파일마저 축약하고 삭제하는 것을 막아줘야 한다.
이를 모르고 처음 스토어에 등록했다 실행이 되지 않아 리젝 먹었다.
그 후 내가 직접 릴리즈모드를 실행시켜보니 실행시 오류가 발생하였다.
프로가드를 설정한 후 앱을 실행시 서버통신이 제대로 되지 않는 오류도 있었다.
프로가드를 꼼꼼하게 작성하자...
isShrinkResources
기능
- 리소스 축소
isMinifyEnabled가 true일 때만 설정이 가능하다.
먼저 코드 축소가 실행된 후 리소스 축소가 실행되어 앱에서 사용되는 리소스인지 파악한다.
이러한 과정을 거쳐 앱의 용량을 줄일 수 있다.
주의사항
이 기능들을 적용하면 빌드하는데 시간이 오래 걸린다.
그렇기 때문에 release모드에서만 사용해야 한다.
그래서 효과가 있을까?
전 후를 비교하기에는 그 사이에 많은 리소스와 코드가 추가되었다.
코드가 약 5000줄 추가되었고, 리소스도 다수 추가되었다.
그런데도 용량이 약 16% 줄어들었다.
효과가 있기 때문에 적용해보는 것을 추천한다.
자세한 원리나 더욱 자세한 설명은 공식문서를 참고하면 된다.
728x90