프로가드가 많이 바뀌었다..
요즘적용을 안하다보니... 최신기준으로 수정 작성함
기본 프로젝트 생성을 하면
proguard-project.txt = 프로가드 세팅 파일
project.properties = 프로젝트 세팅파일
project.properties 프로젝트 세팅파일에 프로가드 사용 여부 주석을 해제 하자
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
해제방법은 # 을 삭제
안드로이드 signkey 로 바이너리를 만들면
자동으로 Proguard 설정되어짐 확인방법은
android proguard 폴더 아래 4개의 File 생성되야 적용된것임
- dump.txt : 어플리케이션에서 사용중인 클래스들의 내부 구조에 대한 대략적인 정보를
- mapping.txt : 난독화 과정에서 기존 클래스 혹은 메서드가 어떤 새로운 난독화된 이름으로 매핑되었는지 그 목록. 난독화 된 어플리케이션에 발생하는 로그나, 스택 트레이스 들을 분석하기 위해서 꼭 챙겨 두셔야 합니다.
- seeds.txt : 난독화 되지 않은 클래스와 멤버들의 목록입니다.
- usage.txt : 사용되지 않기 때문에, apk 파일에서 제거된 코드들의 목록입니다. 혹시 제거되서는 안되는 메서드나 클래스가 제거되었는지 꼭 확인
문제가 생길시 파일 설정방법(라이브러리 추가나 메소드가 변경되어 메소드등이 없다고 나올때)
project.properties File
#프로가드 사용여부
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
#프로젝트 지정 sdk 본인의 프로젝트에 알맞은 sdk 사용
target=android-17
proguard-project.txt File
-verbose //로그 봄
-dontoptimize // 압축 하지 않음 그냥 하지말자...
-dontshrink //사용하지 않는 메소드를 유지하라
-dontwarn org.apache.**
-dontwarn (Warnig이 나온 클래스).**
// 빌드시 can't find superclass or interface // can't find referenced class 등의 Warnig 이 나올경우
//클래스 Warnig 을 무시 한다
-libraryjars libs/android-support-v4.jar // 라이브러리 추가
-libraryjars libs/json-simple-1.1.1 .jar
-keep public class * { public protected *; }
//public class 와 protected class 의 경우 를 난독화 하지 않는다.
//public class 를 난독화 할경우 메소드 호출중 문제가 될수 있음....
-keep class org.apache.http.** //org.apache.http.하위 클래스를 전부 난독화 하지 않음
-keep interface org.apache.http.** //org.apache.http. 하위 인터페이스를 난독화 하지 않는다
-keep class org.apache.http.** {
public *;
}
// org.apache.http.하위 클래스중 public method 만 난독화 하지 않음
난독화후 어플리케이션 실행하여 돌려보면서 난독화 범위를 적용해야함.
'android' 카테고리의 다른 글
eclipse에서 Android framework 소스 보기 Activity 등등 (0) | 2012.02.10 |
---|---|
[보안]Android Java Script local 에 저장 하여 사용하기 (0) | 2011.12.27 |
구글 IO 2008 행사의 안드로이드 세션 중 'Anatomy & Physiology of an Android' (0) | 2011.10.31 |
Android TextView 안에 이미지 추가 (0) | 2011.10.13 |
한글계정 Android avd 실행시 문제 해결 (0) | 2011.06.21 |