Android代码混淆处理方法

android代码混淆

《Obfuscate an Android application》 这篇文章的作者介绍了如何在Android平台下混淆程序,并且给出ant的build.xml文件,经过自己的测试,发现里面少了一些target项,在Eclips会出错,后来结合zxing开源项目的build.xml文件,终于混淆成功,项目包减少了不少。
这里主要提一些注意事项,不提供源代码

1、创建build.xml文件

直接在项目的目录下新建一个名为build.xml的文件

2、创建Ant打包方式

项目 –> properties –> builders –> new –> ant builder

接着Buildfile选择项目build.xml文件,Base Dir选择项目目录就行了,记得勾上你的builders

3、build.xml文件修改

zxing这个文件没有加入混淆包选项,所以得做一些修改,如下示例
01. <property name="proguard-home" value="D://Program Files//proguard4.2   
02.  <target name="optimize" depends="compile">  
03. <jar basedir="${outdir-classes}" destfile="temp.jar"/>  
04. <java jar="${proguard-home}/proguard.jar" fork="true" failonerror="true">  
05.  <jvmarg value="-Dmaximum.inlined.code.length=32"/>  
06. <arg value="-injars temp.jar"/>  
07.  <arg value="-outjars optimized.jar"/>  
08. <arg value="-libraryjars ${android-jar}"/>  
09. <!-- <arg value="-libraryjars ${library-jar}/some_lib_used.jar"/> -->  
10. <arg value="-dontpreverify"/>  
11. <arg value="-dontoptimize"/>  
12.  <arg value="-dontusemixedcaseclassnames"/>  
13. <arg value="-repackageclasses ''"/>  
14. <arg value="-allowaccessmodification"/>  
15. <arg value="-keep public class com.iwidsets.WidsetsActivity"/>  
16. <!-- <arg value="-keep public class com.just2me.obfapp.receiver.*"/> -->  
17. <arg value="-optimizationpasses 7"/>  
18. <arg value="-verbose"/>  
19. <arg value="-dontskipnonpubliclibraryclasses"/>  
20.  <arg value="-dontskipnonpubliclibraryclassmembers"/>  
21. </java>  
22. <delete file="temp.jar"/>  
23. <delete dir="${outdir-classes}"/>  
24. <mkdir dir="${outdir-classes}"/>  
25.  <unzip src="optimized.jar" dest="${outdir-classes}"/>  
26.  <delete file="optimized.jar"/>  
27.  </target>
注意:keep public class com.iwidsets.WidsetsActivity需改成你的主Activity



并修改target dex
01. <!-- Convert this project's .class files into .dex files. -->  
02. <target name="dex" depends="compile,optimize">  
03. <echo>Converting compiled files and external libraries into ${out-folder}/${dex-file}...</echo>  
04.  <apply executable="${dx}" failonerror="true" parallel="true">  
05.  <arg value="--dex" />  
06. <arg value="--output=${intermediate-dex-location}" />  
07. <arg path="${outdir-classes-location}" />  
08.       <fileset dir="${external-libs-folder}" includes="*.jar"/>  
09.  </apply>  
10.  </target>   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值