이 라인 01 23,
-keep public class * extends android.view.View ;
이 때, 모호한되는 하나의 클래스를 방지한다 (이 경우)
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
방지 구체적인 방법을 난독 화되지. 대괄호가 포함되어 있으면 여러 항목에 적용됩니다. 또한 여러 클래스를 유지하는 데 사용할 수도 있고, 여러 다른 클래스를 유지할 수도 있습니다. packages 또는 패키지의 특정 클래스를 통해 사용할 수도 있습니다. 와일드 카드로 인해 전체 시스템이 유연합니다.
- keep something {
somethingElse
}
매개 변수를 기반으로 계속 지정합니다 : 기본적으로 : 동안
-keep something;
수단은 하나 하나를 유지한다. 그것이 여러 가지를 지킬 수 있다는 것을 의미합니다. 하나의 (주석 버전 :
- keep something {//When something
somethingElse//keep somethingElse
//... and more as needed
}
그것은이 경우 문에 비해 어느 정도입니다.
if(something)
//single line for action
과 : 기본적으로
if(something){
//Do multiple things
}
:
-keep //keep if
public class * extends Something //the class extends something
및
-keep //if
public class * extends Something //the class extends something
{
field1//keep field1
//and whatever else is supplied
}
당신은 두 개의 서로 다른 사람이그리고 세 번째 예 :
-keep public keepclassmembers * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
잘못되었습니다. keepclassmembers
은 -keep
대신 을 사용합니다. -keep
클래스 멤버와 클래스 자신을 유지하면서 즉 :
-keepclassmembers public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
그리고 -keepclassmembers
는, 클래스 회원을 유지합니다.
이 경우 {keep}은 keepclassmembers {}와 어떻게 다른지는 회원 모두를 막기 때문에 유지됩니다. 위 문장 3을 업데이트했습니다. – Girish
@ Girish는 진술 3으로 편집했습니다. – Zoe
진술 3은 오타였습니다. 정정 해 주셔서 감사합니다. 내 이해는 입니다. 문 1 - 클래스보기가 난독 화되는 것을 방지합니다. 문 2 - 특정 방법, 즉 public을 방지합니다. (android.content.Context); 어느 쪽이든간에 {0} 사이에있는 은 난독 화되지 않습니다. 문 3 - 특정 메서드 즉 public을 방지합니다. (android.content.Context); 어느 쪽이오고있는간에 {}와 (와) 사이에 난독 화되는 것이 있습니다. 유지와 keepclassmembers의 차이를 이해하고 있습니다 만,이 특정의 경우는, 문장 2의 결과가 이며, 문장 3은 같을 것입니다. –
Girish