본문
[2018.03.19] 100. Proguard 개념과 실습
컴퓨터/이론: 안드로이드 2018. 3. 20. 01:10
도입
이번 포스팅에서는 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 #난독화
'컴퓨터 > 이론: 안드로이드' 카테고리의 다른 글
[2018.03.26] 102. SharedPreferences 개념과 실습 (0) | 2018.03.27 |
---|---|
[2018.03.22] 101. Key Store 개념과 실습 (0) | 2018.03.22 |
[2018.03.17] 99. OkHttp VS Retrofit (0) | 2018.03.17 |
[2018.03.09] 98. 나인 패치 개념과 실습 (2) | 2018.03.10 |
[2018.02.19] 97. ADB로 앱 설치 및 삭제 (0) | 2018.02.19 |
댓글