Android Developer

[Android] 난독화(Proguard)

졸려질려 2019. 5. 14. 22:25
반응형

Proguard

  • 코드 난독화 및 APK 최적화를 위한 도구

왜 필요한가?

  1. 코드 난독화를 통해 디컴파일시 본인의 코드가 노출되는 것을 방지
  2. 불필요한 메서드를 제거하여 멀티덱스를 피할 수 있다.

MultiDex?

  • 안드로이드 앱을 구성하는 코드는 컴파일 되어 덱스(Dex) 파일로 만들어 진다.
  • 하나의 덱스 파일은 최대 65536개 의 메소드만 참조 할 수 있다.
  • 만약 프로젝트의 코드가 65536개의 메소드를 초과하면 여러 개의 덱스파일 이 생성된다.
  • 멀티 덱스를 사용하여 컴파일 할 수 있지만, 빌드 과정에서 앱 내의 파일을 여러 덱스파일로 나누어야 하므로 빌드 속도가 느려지고 APK의 용량이 커진다.

Proguard 와 Non-Proguard 비교하기

디컴파일러 : jadx v0.9.0


사진 위에 걸린 링크를 통해 들어간 페이지를 조금 내리면 위 사진과 같은 부분이 나온다.
zip 파일 안에 gui 파일까지 있으니 zip 파일만 다운 받으면 된다.

Non-Proguard >>>>

1. 임의의 어플리케이션을 Build APK 한다.

2. Event log를 따라서 apk 파일을 확인한다.


3. 다운받은 jadx-gui 파일을 실행한다.

4. apk 파일을 열어준다.

5. 디컴파일된 자바 소스 코드를 확인한다.

Proguard >>>>

1. App - build.gradle(Module:app) 확인한다.

2. 빌드 타입을 디버깅과 릴리즈 버전으로 나눈 후 Sync Now 한다.


디버깅 버전과 릴리즈 버전으로 나누어서 프로가드를 하는 것이 좋다.

3. 디컴파일된 자바 소스 코드를 확인한다.

반응형

'Android Developer' 카테고리의 다른 글

[Android] Log  (0) 2019.07.10
[Android] Activity의 LaunchMode  (0) 2019.07.10
[Android] OpenSource, ButterKnife, Firebase  (0) 2019.05.02
[Andoird] GIF를 이용한 Splash Activity 만들기  (0) 2019.04.12
[Android] Android Design Pattern  (0) 2019.04.09