안드로이드 스튜디오 코드 축소 난독화 하기
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'
}
실제 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 위 처럼 설정하면 릴리즈 컴파일 할때 만 적용 되므로
일반 디버그 시에는 컴파일 속도 저하는 없습니다.
'프로그램잉_기타 > 안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 앱 아이콘 만들기 (0) | 2020.11.12 |
---|---|
안드로이드 스튜디오 코틀린 조건 연산자 &&(and) ||(or) !(not) ,비트 연산자 and or not xor inv() shl shr mod(나머지구하기) (0) | 2020.10.25 |
안드로이드 스튜디오 에디터에 줄 번호 표시 방법 (0) | 2020.10.17 |
안드로이드 스튜디오 에뮬레이터 내부에 저장되지 않을 때 (0) | 2020.10.10 |
안드로이드 스튜디오 화면 가로 세로 고정하기 (0) | 2020.10.08 |