[번역] Android APK 사이즈 줄이는 법

harry.kim
6 min readAug 28, 2017

How to reduce APK size in android 를 번역하였습니다.
원작자인
Amit Shekhar 의 허락을 받고 공유합니다.
Correctify App 의 내용을 포함하고 있습니다.

APK Size Reduction Technique

최근 저희는 Correctify. 라는 앱을 공개하였습니다. 그리고 많은 사람들이 앱의 크기가 어떻게 2.5MB 보다 작을수 있는지 많이 문의하는데요. 그래서 이 글을 통해 그 답을 드리고자 합니다. 특별한건 없습니다. 단순하고 표준을 따뤘을 뿐이죠.

What is Correctify?

Correctify 는 무료 영어 학습/편집 앱 입니다. 여러분이 입력한 단어들에 대한 스펠링, 문법적 실수들을 체크할수 있는 가장 강력한 머신러닝툴을 제공합니다. 영어의 역사를 배울수 있고, 매일 재미 요소들을 통해 언어에 대해 배울 수 있습니다. 이 앱은 퀴즈를 통해 도전하는 당신에게 영어를 배우는 즐거움을 선사할것입니다. 퀴즈는 당신이 당신의 진행상태를 테스트 해볼수 있게해줍니다.

여기 앱 링크가 있으니 받을수 있다면 받아서 해보세요. #알러빗

Apk size 줄이는 방법

자 이제 본론으로, 우리가 어떻게 앱 사이즈를 줄였을까요? Apk 사이즈를 줄이기 위한 노력들을 소개합니다.

  • ProGuard 를 사용하자 : 프로가드는 사용하지 않는 Java code 를 제거해줍니다. code foot prints 를 줄이는데 굉장히 효과적입니다. 프로가드를 사용하는데 주의해야할 것들이 있으니 참고하세요. 우리 앱도 프로가드를 사용중입니다.
    Refer: Link
  • Split Apk 를 사용하자 : 특정 해상도나, ABI 에 따라 별도 Apk 를 만들수 있습니다. 특히 앱사이즈를 크게 줄여줍니다.
    Refer: Link
  • 최종 Apk (ProGuard 이후)에 Facebook’s ReDex 를 이용해 최적화 하자.
    Code size 도 줄여줄 뿐만 아니라, 잠재적인 성능향상에도 도움이 됩니다.
    Refer: Link , Link, Link
  • 사용하지 않는 XML files 확인하자
    Lint 같은 툴들이 사용하지 않는 리소스를 체크하고 지워줍니다.
    - Refer: Link
  • 최대한 Resource 를 줄이자.
    Gradle 의 shrinkResources 를 사용해서 프로젝트에서 사용되지 않는 리소스를 모두 제거합니다. build.gradle 에서 다음과 같은 코드를 추가하면 됩니다.
release {

shrinkResources true

}
  • resConfigs 를 이용해서 필요하지 않은 localized resource 를 제거하자.
    대부분의 support libraries 들은 우리에게 필요하지 않은 다른 언어를 위한 localized folders를 가지고있을지도 모르거든요.
defaultConfig {

resConfigs “en”, “hi”

}
  • Vector Drawables 사용하기 : Vector Drawable 은 앱사이즈를 줄이는데 가장 좋은 방법중 하나입니다.
    Refer: Link
  • Debug library 를 앱에서 제거하자.
    debugComplie 을 이용해 할수 개발용버전을 만들 수 있습니다.. database 디버깅을 하기위한 Android Debug Database 같은것들이요.
    Refer: Link
debugCompile ‘com.amitshekhar.android:debug-db:1.0.1’
  • WebP file format 사용하기 : 이미지를 PNG, JPEG 같은 포맷대신에, WebP 같은 포맷을 사용할수 있다. (Android 3.2 API 13 이상에서). WebP 포맷은 JPEG같은 손실압축을 제공하며, PNG같은 투명색을 지원합니다. 근데 JPEG, PNG 보다 훨씬 압축률은 높죠.
  • GooglePlay Service의 꼭 필요한 libraries 만 사용합니다. (컴파일러가 꼭 필요로 하는 것만요)
  • 가급적 9-Patch 를 주로 사용합니다.
    Refer: Link, Link
  • 이미지 최적화 : TinyPNG, OptiPNG 같은 최적화 툴을 사용해 보세요.

Correctify 앱에서 사용중인 용량줄이는 방법

CustomFont 를 제외한 부분은 Code line 수와 관련된 내용일거라 Apk Size 에 큰 영향을 미치는 요소는 아닌 부분 같아 참고만 하셔도 될 것 같습니다.
불필요 하기보단 다른 관점에서 더 큰 의미를 갖는 기술적 내용으로 원문에 대한 번역만 진행하였습니다.

글 을 읽고 유용했거나, 좋았다면 를 부탁드립니다. 번역하는데 큰 힘이 될것 같습니다 :D

위 글과 같은 내용을 많이 공유하는 다음 페이지(Mindorks) 참고 하셔도 안드로이드 개발하시는데 유용한 정보를 많이 얻을수 있을것이라 생각됩니다.

다음 번역은 How The Android Image Loading Library Glide and Fresco Works? 를 진행해보겠습니다.

감사합니다.

--

--