2016-09-28 2 views

답변

1

첫 번째 규칙 만 클래스 자신 (기본 생성자)를 유지합니다.

두 번째 규칙은 모두 메서드필드에을 클래스에 유지합니다.

1
-keep class com.myclass.** 

com.myclass 패키지의 모든 클래스와 모든 하위 패키지를 유지합니다. 축소 및 최적화 단계에서 이러한 클래스의 구조를 변경하거나 제거해야하는 경우에도 그렇게하지 마십시오.

위에서 정의한대로 com.myclass 패키지의 모든 클래스와 해당 클래스의 모든 필드 및 메소드를 유지합니다.

차이점의 예 : 첫 번째 명령을 사용하면 내 진입 점 메서드 (예 : main)가 여전히 축소되어 최적화되고 난독 화 될 수 있습니다. 이러한 메소드의 시그니처를 손상시키지 않고 유지하려면 필요한 메소드 또는 필드를 지정할 수 있습니다 (또는 와일드 카드 *). 이것은 반성과 서명과 이름이 그대로 유지되어야하는 다른 상황에 필수적입니다.

-keepnames 및 유사한 명령은 서명을 보관하지만 축소하는 동안 이미 제거되지 않은 경우에만 사용됩니다.

관련 문제