版权所有,欢迎转载,转载请注明 : 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

等相关的错误。

更多相关文章

  1. Android(安卓)cupcake源代码获取和编译 for Ubuntu 9.04
  2. Android(安卓)源码编译学习笔记(一)
  3. Android7、8、9最新相关工具编译汇总(adb.exe fastboot.exe)
  4. Android(安卓)2.2 Eclipse 源码工程 调试
  5. 编译Android源码时出现的java版本的问题
  6. mac下搭建cocos2d-x2.2.1版本android编译环境教程
  7. NDK使用log的问题
  8. android 系统定制之编译方法总结
  9. Android(安卓)反编译APK详解

随机推荐

  1. Android轻量级缓存框架ASimpleCache
  2. 如何查看无法导出的android数据库文件?
  3. Android(安卓)增强版百分比布局库 为了适
  4. android中Acitivity的启动方式启动模式讲
  5. Android本地数据存储之Sharedpreference
  6. Coder Essential之客户端知识索引(iOS/An
  7. Android Socket 实现
  8. Android 中文 API (27) ―― SeekBar.OnSee
  9. android小知识点
  10. 为Android内核添加新驱动