2014-07-17 8 views
3

일반적으로 -keep이있는 클래스를 제외하면 클래스가 난독 화되는 것을 방지합니다.모든 클래스를 축소 할 수 있지만 일부는 가독성으로 혼란스럽게 할 수 있습니까?

그러나 또한 축소되지 않습니다.

proguard-project.txt를 정의하여 -keep과 함께 제외 된 클래스를 제외하고 클래스의 특정 하위 집합 만 난독화할 수 있습니까?

목표는 proguard를 사용하여 Android 65k 메소드 한도를 유지하면서 APK 내에서만 당사자 코드를 모호하게 만듭니다.

감사

답변

3

예, 당신은 수정만을 난독 (최적화) 단계에 적용해야 -keep 옵션 allowshrinking을 추가 할 수 있습니다. 예를 들어 :가 축소 단계에서 사용되지 않는 나타나는 경우

-keep,allowshrinking class com.example.SomeClass 

지정된 클래스

제거 할 수 있지만, 그렇지 않으면, 그 이름은 난독 단계에서 유지됩니다.

1

에릭의 대답은 좋은데, 또 다른 방법이 있습니다.

-keep,allowshrinking 

당신은 사용할 수 있습니다 : 그래서이 모든 당황하게됩니다

-keepnames class !com.example.apackage.** {*;} 

:

-keepnames 

당신은 또한이 역을 이용 할 수

먼저, 속기에 대한이 apackage 내부의 클래스와 그 밖의 것은 없지만, 여전히 모든 코드에서 데드 코드를 제거 할 수 있습니다.

난독 처리 기능이 켜져 있으면 파일 이름과 행 번호와 같은 모든 메타 데이터가 제거되어 디버거 및 스택 추적이 중단됩니다. 광고 게재를 원할 경우 다음 줄을 추가 할 수 있습니다.

-renamesourcefileattribute SourceFile 
-keepattributes SourceFile,LineNumberTable