模糊文件夹结构 - Android

时间:2015-03-22 16:08:11

标签: android proguard

我正在开发一个Android应用程序。我使用progaurd混淆了项目的代码。我也想混淆文件夹结构。无论如何要做到这一点?

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

ProGuard包含various directives,用于ProGuard规则文件,可以对包名称进行模糊处理,例如-flattenpackagehierarchy-repackageclasses。只需确保从AndroidManifest.xml引用或通过反射访问的任何内容都保持不变。

可以想象,商业化的Android调整DexGuard工具甚至可以让您重新打包清单中的内容(通过修改清单条目作为混淆过程的一部分),但我不知道它是否确实如此或不。

答案 1 :(得分:0)

将此代码复制并粘贴到proguard.cfg中:

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-dontoptimize
-dontpreverify
-keepattributes *Annotation*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgent
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.support.v7.app.ActionBarActivity
-keep public class * extends android.app.Fragment
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
   native <methods>;
 }
-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*(...);
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
 }

-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}

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

 -keep class * implements android.os.Parcelable {
 public static final android.os.Parcelable$Creator *;
}

-keepclassmembers class **.R$* {
public static <fields>;
}
-dontwarn android.support.**