본문

[2018.03.19] 100. Proguard 개념과 실습

도입

이번 포스팅에서는 Proguard에 대한 개념을 정리할 예정이다.



개념

(출처 - https://www.guardsquare.com/en/proguard/manual/introduction)

Proguard의 목적은 코드양 축소와 난독화이다.
코드양을 축소하기 위해 필요하지 않는 클래스, 필드, 메소드, 라이브러리 등을 감지하고 제거한다.
그리고 바이트 코드를 최적화하고 클래스, 필드, 메소드 명 등을 난독화해 해킹을 방지한다.


실습
Step1. Build.gradle에 Proguard 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
buildTypes {
    // debug 버전에 설정
    debug {
        minifyEnabled true
        // 안드로이드 스튜디오에서 제공하는 플러그인 사용
        proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
    }
    release {
        // release 버전에 설정
        minifyEnabled true
        // 안드로이드 스튜디오에서 제공하는 플러그인 사용
        proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
    }
}
cs

Step2. proguard-rules.pro 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
 
-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}
 
-dontwarn okio.**
-dontwarn okhttp3.**
 
-keep class okhttp3.** { *; }
cs



스크린 샷

구분

적용 전

적용 후

용량

난독화




#proguard #난독화


공유

댓글