본문 바로가기

개발/안드로이드

[안드로이드] 코드 난독화를 위해 R8 적용하기

코드 난독화의 목적은 아래와 같습니다.

  • 앱 바이너리를 decompile 하더라도 코드 정보의 논리적 해독 불가
  • 코드의 용량 감소
    • Method signature가 단순화 됩니다.

R8을 적용하면 코드 난독화를 아주 쉽게 적용할 수 있습니다.

 

1. gradle.properties 수정

android.enableR8=true
android.enableR8.fullMode=true

 

2. app/build.gradle 수정

buildTypes {
        debug {
            debuggable true
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        release {
            debuggable false

            // Enables code shrinking, obfuscation, and optimization for only
            // your project's release build type.
            minifyEnabled true

            // Enables resource shrinking, which is performed by the
            // Android Gradle plugin.
            shrinkResources true

            // Includes the default ProGuard rules files that are packaged with
            // the Android Gradle plugin. To learn more, go to the section about
            // R8 configuration files.
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }