2016-10-25 10 views
1

私は1つのAndroid AARライブラリを開発しました。このライブラリは顧客が必要とするすべての機能で構成されています。コードを難読化しにくいように、コードを難読化するために顧客に提供する前にライブラリでproguardを適用します。アンドロイドのAARライブラリにproguardを適用するには?

私は順番に以下の設定を行っている

Click Hereここで言及として、私はこの質問を投稿する前に、それをGoogleで検索し、私はそれだけでライブラリプロジェクトは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

[Androidライブラリ(AAR)にプロガイド構成を含める方法](http://stackoverflow.com/questions/30201420/how-to-include-a-proguard-configuration-in-my- android-library-aar) –

答えて

-1

Androidライブラリ(aar -files)は、すべて難読化されていません。 minifyEnabledオプションは、com.android.library -projectsでは無視されます。だから誰も簡単にaarファイルに含まれているコードを逆コンパイルすることができます。

2

本当にAARモジュールは難読化することができます。

AARを使用してのApp /モジュールは、ProGuardの、ご使用の構成(縮小されてはならない公共のAPIのためのすなわち任意の除外)されますが実行されている場合ように、proguardFilesと一緒にあなたのAAR build.gradle構成にconsumerProguardFiles 'proguard-rules.pro'を追加光栄です。

関連する問題