2016-10-25 7 views
1

저는 고객이 요구하는 모든 기능으로 구성된 하나의 Android AAR 라이브러리를 개발했습니다. 개발자가 코드를 난독 화하여 코드를 디 컴파일하기 쉽지 않게하기 위해 고객에게 제공하기 전에 라이브러리에 프로 가드를 적용하고 싶습니다.proguard를 android의 AAR 라이브러리에 적용하는 방법은 무엇입니까?

위해 구성 다음 여기에 언급 내가했던 Click Here

을, 나는이 질문을 게시하기 전에 봤 그리고 나는 그들이 어떤 구성을 사용하지 않도록 스스로 그 라이브러리 프로젝트, ProGuard에서 실행되지 않는 발견 내 도서관 프로젝트에 프로 가드를 적용 해.

buildTypes { 

    debug { 
     shrinkResources false 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 

    release { 
     shrinkResources true 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 

나는 proguard-rules.pro

-keepparameternames 
-renamesourcefileattribute SourceFile 
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod 

-keep public class * { 
public protected *; 
} 

-keepclassmembernames class * { 
java.lang.Class class$(java.lang.String); 
java.lang.Class class$(java.lang.String, boolean); 
} 

-keepclasseswithmembernames class * { 
native <methods>; 
} 

-keepclassmembers enum * { 
public static **[] values(); 
public static ** valueOf(java.lang.String); 
} 

-keepclassmembers class * implements java.io.Serializable { 
static final long serialVersionUID; 
private static final java.io.ObjectStreamField[] serialPersistentFields; 
private void writeObject(java.io.ObjectOutputStream); 
private void readObject(java.io.ObjectInputStream); 
java.lang.Object writeReplace(); 
java.lang.Object readResolve(); 
} 

에이 규칙을 적용했지만 내 데모 프로젝트에이 AAR 사용 후 라이브러리가 제대로 익숙해 있지만, 안드로이드에 디 컴파일 후 코드는 그냥 볼 수 숨겨지지 않습니다 우리가 방금 Ctrl 키를 누른 상태에서 메소드를 디 컴파일하면 모든 메소드가 해당 라이브러리에 적용된 프로 가이드 규칙없이 표시됩니다.

나에게 안드로이드를 처음 접했을 때 잘못된 단계를 알려주십시오.

+0

[안드로이드 라이브러리 (AAR)에서 프로 가이 트 구성을 포함하는 방법] (http://stackoverflow.com/questions/30201420/how-to-include-a-proguard-configuration-in-my- android-library-aar) –

답변

-1

Android 라이브러리 (aar- 파일)는 난독 화되지 않습니다. minifyEnabled 옵션은 com.android.library -projects에서 무시됩니다. 따라서 누구나 쉽게 aar 파일에 포함 된 코드를 디 컴파일 할 수 있습니다.

2

AAR 모듈은 실제로 난독 화 될 수 있습니다.

, proguardFiles와 함께 구성 build.gradle 당신의 AAR consumerProguardFiles 'proguard-rules.pro'를 추가 AAR을 사용하고 응용 프로그램/모듈은 ProGuard에서, 구성 (축소 된되어서는 안 공개 API에 대한 즉, 어떤 제외)를 실행하는 경우 그 것 때문에 영광 받으십시오.