Android(安卓)Ant编译时候进行混淆
16lz
2021-01-26
版权所有,欢迎转载,转载请注明 : SinFrancis http://mdev.cc
关于ANT 编译和脚本请查看 : http://sinfrancis.iteye.com/blog/721582
这里使用的是proguard4.4 ,在原有的ANT脚本上加入以下代码:
定义proruard4.4 的home :
<property name="proguard-home" value="D:/eclipsetools/proguard4.4/lib"/>
加入混淆的target配置到build.xml中去:
<!--Execute proguard class flies--><target name="optimize"><jar basedir="${outdir-classes}" destfile="temp.jar"/><java jar="${proguard-home}/proguard.jar" fork="true" failonerror="true"><jvmarg value="-Dmaximum.inlined.code.length=32"/><arg value="-injars temp.jar"/><arg value="-outjars optimized.jar"/><arg value="-libraryjars ${android-jar}"/><!-- <arg value="-libraryjars ${external-libs}/*.jar"/>--><arg value="-dontpreverify"/><arg value="-dontoptimize"/><arg value="-dontusemixedcaseclassnames"/><arg value="-repackageclasses ''"/><arg value="-allowaccessmodification"/><!--<arg value="-keep public class ${exclude-activity}"/>--><!--<arg value="-keep public class ${exclude-provider}"/>--><arg value="-keep public class * extends android.app.Activity"/><arg value="-keep public class * extends android.content.ContentProvider"/><arg value="-keep public class * extends android.view.View"/><arg value="-keep public class * extends android.preference.Preference"/><arg value="-optimizationpasses 7"/><arg value="-verbose"/><arg value="-dontskipnonpubliclibraryclasses"/><arg value="-dontskipnonpubliclibraryclassmembers"/></java><delete file="temp.jar"/><delete dir="${outdir-classes}"/><mkdir dir="${outdir-classes}"/><unzip src="optimized.jar" dest="${outdir-classes}"/><delete file="optimized.jar"/></target>
注意:-keep这个参数是表示哪些类不被混淆,具体查看progurard的文档。这里凡是在xml文件中配置的文件均不可混淆,否则运行时候会找不到类的。
在编译的 target中加入 调用混淆target的命令 :
<antcall target="optimize"/>
这样既可。
如果你使用了xmlpull类库的话,混淆的时候请不要加入到源代码中,android的类库中已经包含了 xmlpull,否则的话混淆是无法成功的,会出现
Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull
.v1.XmlPullParser
等相关的错误。
更多相关文章
- Android(安卓)cupcake源代码获取和编译 for Ubuntu 9.04
- Android(安卓)源码编译学习笔记(一)
- Android7、8、9最新相关工具编译汇总(adb.exe fastboot.exe)
- Android(安卓)2.2 Eclipse 源码工程 调试
- 编译Android源码时出现的java版本的问题
- mac下搭建cocos2d-x2.2.1版本android编译环境教程
- NDK使用log的问题
- android 系统定制之编译方法总结
- Android(安卓)反编译APK详解