搞了好几天,查看了上百个网站,最后摸索出一套很简单的ant混淆编译的方法。下面开始:
1. 拿一个普通项目来说,首先为它加上ant编译功能。
android update project --name project_name -t 3 -p D:/temp/project_name
此时会在项目根目录自动生成一个名为build.xml的ant脚本。上面的project_name是你的项目名称。
2. 加入混淆功能
就第一步来说,在命令行中已经可以使用ant进行编译了。因为Android中是这样的,在输入命令ant debug的时候会自动调用D:/android-sdk-windows/tools/ant/main_rules.xml目录下的规则文件,所以无需自己写ant脚本了。既然它会调用默认的规则文件(默认文件没有加入混淆功能),那么我们想要混淆,直接在这个规则文件上修改就好了。在名为-dex的target后加入一个target,代码如下:
修改上面代码涉及到路径的地方,改成本地对应的路径。<arg value="-ignorewarning"/>这一行是自己加入的,意思是忽略警告。
接着在名为-dex的target中进行一个混淆依赖,加入后代码如下:
实际上加入的只是optimize,意思是这个target依赖target optimize。
3. 开始编译
可以在命令行中编译了,编译后把class.dex进行反编译,可以看出来混淆成功。不知道为什么在我们的项目中反编译不回来,但是可以保证混淆是成功了。我拿过其他例子项目编译后反编译过,可以看下图:(不好意思,注册一星期之内不能上传图片)
现在补上:
分享到:
相关推荐
ant脚本编译出jar
因为项目的需要必须写一个ANDROID_ANT自动编译打包签名的脚本,终于奋斗了几天写完了,和大家分享一下
3. 设置Jocky的一些基本属性,包括jocky.jar包的位置,以及混淆编译级别: 4. 当设置jocky的enable属性为true时,此时,Ant脚本中的javac编译命令,便会被自动替换成Jocky编译器;当设置enable属性为false时,...
当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java 中应用是平台无关性的,当然不会用平台...本文介绍了android编译和ant打包原理
Android中使用Ant方式打包,一次打出N个渠道的包。
NULL 博文链接:https://phenom.iteye.com/blog/855187
使用Ant编译打包
通过ant脚本,编译打包android工程。 编译打包android工程的ant脚本,Android官方提供的打包脚本。 有注释
使用ant打包android,使用ant打包android
Android工程,演示如何使用Ant编译工程。
mac下是用ant对android App的多渠道打包工具。
Android SDK 26以后ant编译错误解决办法(错误信息:taskdef A class needed by class com.android.ant.GetUiTargetTask) https://blog.csdn.net/xlyrh/article/details/107766878
BB使用Ant进行编译.pdf. 使用ant工具对Blackberry 进行编译打包生成cod文件
NULL 博文链接:https://phenom.iteye.com/blog/745159
在编译flex/java工程是采用Ant自动编译,将编译好的工程进行打包发布.
本资源详细的描述了如何使用Ant批量多渠道导报Android应用。运营是需要上传应用到20几个市场上去,这个时候需要批量打不通tag的包,以便友盟能够统计得到各通道下载量
ant标签说明、ant案例、ant与eclipse工具配置以及使用
关于最新的Android Sdk 使用Ant多渠道批量打包的实现的文章可以看我的博客。
Ant编译打包android工程,签名,多渠道
如果你不想使用myeclipse编译java文件,你可以使用ant来编译java文件