반응형

안드로이드 스튜디오 코드 축소 난독화 하기

 

 

build.gradle (Module)에  위 소스를 추가해줍니다.

일명 R8 난독화

이렇게 해서 Release 파일을 만들면 난독화가 됩니다.

 

공식 설명 위치

developer.android.com/studio/build/shrink-code

 

 

release {
  shrinkResources true
  minifyEnabled true
  proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

}

코드.txt
0.00MB


실제 Release 하지 않더라도

Build Variants에서 release로 설정하고  Ctrl+F9로 빌드해볼 수 있습니다.

(만일 보이지 않는다면 View->Tool Windows->Build Variants)

release로 빌드한 apk 파일 위치는

C:\ 작업 폴더 \app\build\outputs\apk\release


만일 잘 되지 않는다면, 빌드 속도를 올리기 위해 --offline을 설정했는지 보세요


 

Removing unused resources requires unused code shrinking to be turned on.

위와 같은 에러 메세지가 뜬다면 , 사용하지 않는 리소스를 제거해보세요

중요한 파일을 실수로 지울수도 있으니 백업 필수입니다!!

그래도 안 된다면

minifyEnabled true가 

false 로 되어 있는지 다시 확인 하세요


Could not find junit:junit:4 에러가 뜬다면 

빌드 그리드 제일 밑 부분에 있는

testImplementation 'junit:junit:4.'

를 제거해 주세요


 

 

실제 빌드된 파일을 보면 JNI+자체 난독화 그리고 안드로이드 스튜디오 R8 난독화를 사용했을 때

저의 소스를 열어본모습입니다.

 

R8에서 숨기고 합치고 옮겨고 함수 변수 이름을 바꿔서 난독화를 하는 것 같습니다.

 

일부는 이해할 수도 있지만,, 제가 봐도 암호화 수준입니다.

 

build.gradle 위 처럼 설정하면 릴리즈 컴파일 할때 만 적용 되므로

일반 디버그 시에는 컴파일 속도 저하는 없습니다.

반응형

+ Recent posts