프로그래밍/Android

안드로이드 apk 용량 줄이는 효과적인 방법

Lou Park 2017. 1. 6. 19:16



>> https://blog.getsigneasy.com/engineering/signeasy-android-app-lighter/


요약하면 이렇습니다. 디테일은 링크를 통해서 알아보세요!


최소한의 라이브러리 사용하기

Google API의 경우에 v6.5 이상 부터 선택적으로 라이브러리를 포함시킬 수 있도록 했으니, 사용하는 종류만 골라서 사용하는 것이 좋다.


ProGuard 사용하기

ProGuard는 앱에서(라이브러리를 포함) 사용하지 않는 클래스나 메소드, 필드들을 지워주는 효과적인 툴이다.

만약에 AppCompat-v7 또는 support library-v4를 사용하고 있다면 ProGuard파일에 아래의 2줄이 없도록 해야한다.

-keep class android.support.v4.** { *; }

-keep class android.support.v7.** { *; }


Minifying과 Shrinking

Gradle에게 사용하지 않는 리소스들을 삭제 하라고 명령하는 심플한 방법이다.

앱의 build.gradle 파일을 열어 아래와 같이 설정 해주면 된다.

buildTypes {

        release {

            minifyEnabled true

            shrinkResources true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

}


drawable 관리

mdpi나 hdpi까지 내려가는 사용자가 거의 없다면 여기에 있는 에셋은 과감히 없애도 된다.

왠만하면 vector drawable을 사용하라.


Android Lint

Android Studio에서 Analyze > Run inspection by name > 다이얼로그에 "unused resources"입력 > 검사할 영역 선택 (whole project 추천) 해서 코드의 어떤 부분에서도 쓰이지 않는 리소스를 찾을 수 있다.


언어 설정

Gradle에서 앱에 사용하고 있는 언어를 제한하여 용량을 줄이는 방법이다.

이것은 앱에 포함된 다른 라이브러리들 같은데에서도 사용되는 번역 파일들을 날릴 수 있게 해 줘서 좋다.

앱의 build.gradle 파일을 열어 아래와 같이 설정 해주면 된다.

defaultConfig {

resConfigs “en”, “es”, “ja”, “in”

}