1. Dex 부분 암호화가 무엇인가요?
안드로이드 앱의 classes.dex 파일들의 일부분만 암호화하는 기능입니다.
Dex 사이즈가 큰 경우 전체 암호화에 의해 앱의 초기 로딩 속도가 지연될 수 있습니다.
Dex 부분 암호화 기능은 중요 비지니스 로직이 포함된 클래스 또는 패키지만을 선택적으로 암호화하여, 복호화가 필요한 Dex의 크기를 최소화 함으로써 필수적인 보안을 유지하면서도 앱의 초기 실행 속도를 향상할 수 있는 보안 기능입니다.
2. Dex 부분 암호화에 따른 성능 비교
아래 예시는 Dex 크기가 40MB인 앱을 사용해 테스트한 결과입니다.
- 원본의 앱 초기 로딩 속도(Original)를 기준으로, 전체 암호화(100%)를 적용한 앱과 부분 암호화(2% ~ 40%)를 비교했을 때 앱 설치 후 최초 로딩 속도가 개선되는 것을 확인할 수 있습니다.
- 앱에서 사용하는 실제 Dex 크기에 따라, Dex 암호화 기능의 성능은 달라질수 있으므로, 명확한 수치 표현을 위해 Dex의 크기가 비교적 큰 앱을 사용하였습니다.
3. 이용 가이드
- 패키지 전체를 암호화하려면 항목 선택에서 "패키지(이하 모든 클래스)"를 선택합니다.
- 특정 클래스만 암호화하려면 항목 선택에서 "클래스"를 선택합니다.
- 패키지명 및 클래스명은 대소문자가 정확히 일치해야 합니다.
- 선택하는 클래스가 많아지면 앱의 초기 실행 속도가 저하됩니다.
- 오픈소스 라이브러리 등 비즈니스 로직이 포함되지 않은 클래스는 제외하는 것을 권장합니다.