近来公司开发一系列移动产品,作为产品提供方,需要提供demo示例给商户,又不想把源码直接提供给对方,就需要对自己的android工程进行混淆打包。
下面是打包过程:
第一步:原工程(此工程为Library)中创建一份proguard.pro文件:
-injars bin\sdk.jar -outjars 'E:\workspace\SDK\libs\sdk.jar' -libraryjars libs\android-support-v4.jar //该工程中引用到的jar -libraryjars 'C:\android-sdk\platforms\android-7\android.jar' -dontoptimize -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -optimizationpasses 5 -dontusemixedcaseclassnames -dontpreverify -verbose -dontwarn android.support.v4.** -keep class android.support.v4.** { <fields>; <methods>; } -keep interface android.support.v4.app.** { <fields>; <methods>; } -keep public class * extends android.support.v4.** -keep public class * extends android.app.Fragment -keep public class * extends android.app.Application -keep public class * extends android.app.Activity -keep public class * extends android.app.Service -keep public class * extends android.app.Service -keep public class com.****.widget.** { <fields>; <methods>; }
第二步:使用android-sdk\tools\proguard打jar包
执行“android-sdk\tools\proguard\bin\proguardgui.bat” ,选中第一步的proguard.pro文件,执行完毕会在E:\workspace\SDK\libs目录下生成一个sdk.jar
第三步:使用反编译文件,查看sdk.jar ,里面相关的widget等均被混淆。
当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及。