在ant的官网http://ant.apache.org进行下载后apache-ant-1.8.2

解压(存放的路径不要有中文字符)

把ant里的lib设置到环境变量:E:\Android\apache-ant-1.8.2\lib

这样在命令行里就可以直接使用ant

学习资料:
1.  ant使用指南.rar

2. 文档:apache-ant-1.8.2/docs/manual/index.html下的Ant Tasks à List of Tasks

Ant的For循环

在ant的核心包里没有相关的For循环的Task,要下载相应的扩展包,已经有人写过了。

扩展包:Ant-contrib包就是一个里面有For循环的扩展包。

下载地址:http://ant-contrib.sourceforge.net/

使用这个扩展包中的for循环的介绍:http://enjoyyou.blog.hexun.com/41449457_d.html

把ant-contrib里的lib包复制到apache-ant-1.8.2\lib下面,就可以了

混淆proguard

混淆proguard是一个开源项目,ant自动打包的过程用的就是这个开源项目,在android-sdk-windows\tools目录下有一个proguard文件夹,里面就有这相应的jar包

Android sdk里自带的proguard jar包有一个bug,对于一些方法在混淆时会报异常,要解决这个bug,只需要去proguard的官网http://proguard.sourceforge.net/下载最新的jar包proguard4.6

下载下来后,用proguard4.6\lib里的jar包替换android-sdk-windows\tools\proguard\lib里的jar,用proguard4.6\lib\bin里的以.bat结尾的文件替换android-sdk-windows\tools\proguard\bin里的文件

下载svn里的项目(svnant)

因为我们的项目是用svn来进行托管,所以需要用ant来下载最新代码,根据服务器所用的svnservice的版本去svnant的官网http://subclipse.tigris.org/svnant.html 下载svnant的版本,我用的是:svnant-1.1.0-RC2

然后只要把svnant-1.1.0-RC2\lib里的jar包复制到apache-ant-1.8.2\lib里就可以了

在下载下来的jar里,有相应的doc文档,可以知道怎么使用

写脚本,布署项目

      1. 在项目里要加入几个文件(build.properties, build.xml, local.properties, proguard.cfg), 怎样得到这些文件了,只需要用命令创建一个android项目,就可以得到这些文件(这些文件对于不同的项目,基本上是一样的):

        现在来说说这几个文件:
        1). Build.xml文件:这个文件是ant运行时脚本,这是一个固定的模板,其中主要需要变动的是:<project name="MyAndroidApp" default="help">里的name属性,这个属性的唯一作用是用于命名生成的apk文件(如MyAndroidApp-release.apk);但注意,这个文件不要在eclipse里打开,如果打开了会报错,解决办法只有把这个文件先删除再复制进去。
        2). Build.properties文件:这是一个属性文件,可以更改编译时的一些属性,我主要用到的是下面几个属性

        jar.libs.dir表示如果你引用的第三方jar包的路径,其default=libs
        java.encoding表示文件的编码,其default=gbk
        key.store表示key的路径,如:xx/xxxx.keystore
        key.alias表示key的别名,这个别名不要带路径
        key.store.password, key.alias.password就不用说了。
        3). Local.properties文件:这个也是一个属性文件,其中用于记录sdk.dir的路径

         4). proguard.cfg文件:这个是混淆配置文件,其中的大部分是都是一样的,只要根据模板走就行了,其中主要是注意两点:
        *. -keep class * extends android.view.View 这个表示自定义的view对象不做混淆,其默认情况下是没有的,但这个必须要写,因为我们会在xml文件里使用其全路径

        *. -dontwarn com.mapbar.android.**这名话很重要,如果我们使用了第三方的jar包,编译时也会对第三方的jar进行混淆,如果第三方法的jar包里有类所关联的类没有加入到这个jar包中,则在编译时,会warn,而且这个warn会让编译过程终止。而这句话的意思是,不要抛出前缀为com.mapbar.android的warn,这样就不会终止编译过程了。
      2. 写ant脚本和配置文件(build.xml, build.properties)

        a). build.properties是一个属性文件,是一些打包的配置文件

        b). build.xml文件的写法:

      3. 使用:只要打开命令行,进入这个目录,一个ant命令就行。

Ant自动打包的更多相关文章

  1. ANT自动打包U3D安卓项目研究笔记

    概述 因项目使用Atlassian Stash作为项目源码管理端,且其支持Ant命令自动编译,可使其根据最新的代码自动打包,故产生该研究Ant打包的任务.在此将研究过程及一些相关知识整理记录在此. 本 ...

  2. Android ant自动打包脚本:自动替换友盟渠道、版本号、包名

    本文最后修改时间:2014-3-10 Android项目开发时,给公司人员安装,频繁升级,版本号总需要改,太麻烦,跟着时间变,自动升级才方便. Android项目开发新版时,手机上可能要装两个版本,一 ...

  3. Android ant自动打包 crunch 报错

    解决办法: 修改SDK_HOME/tool/ant/build.xml. <property name="aapt.ignore.assets" value="&l ...

  4. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  5. windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件

    原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用a ...

  6. Android Studio Gradle 多渠道自动打包,动态修改HostUrl,签名apk,混淆配置详解

    文/ skay csdn博客:http://blog.csdn.net/sk719887916/article/details/40541163 最近遇到项目从Eclispe迁移到Android st ...

  7. android编译打包(用ant脚本打包)

    为了可以实现自动化打包,下面我介绍一下如何用ant工具来打包android项目: 直接上build.xml文件源码: <?xml version="1.0"?> < ...

  8. 关于 ant 不同渠道自动打包的笔记

    必要的java.android.ant文件及循环打包用到的ant的jar 下载Ant(这里的Ant不是eclipse和android SDk里面自带的ant)      官方下载地址:http://a ...

  9. Ant自动编译打包&发布 android项目

    Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...

随机推荐

  1. node 发送邮件demo (QQ邮箱)

    nodemailer是nodejs中的邮件发送模块,本文使用的版本为2.5.0 --下载模块 npm install nodemailer npm下载模块后,在项目中引入就可以使用: var node ...

  2. 微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js)

    微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞 ...

  3. 用户和用户组以及 Linux 权限管理

    1.从 /etc/passwd 说起 前面的基本命令学习中,我们介绍了使用 passwd 命令可以修改用户密码.对于操作系统来说,用户名和密码是存放在哪里的呢?我们都知道一个站点的用户名和密码是存放在 ...

  4. day 59 MySQL之锁、事务、优化、OLAP、OLTP

    MySQL之锁.事务.优化.OLAP.OLTP   本节目录 一 锁的分类及特性 二 表级锁定(MyISAM举例) 三 行级锁定 四 查看死锁.解除锁 五 事务 六 慢日志.执行计划.sql优化 七 ...

  5. Python9-From-CSS-day48

    1.form表单相关内容前后端有数据交互的时候用form表单form表单提交数据的几个注意事项: 1.所有获取用户输入的标签都必须放在form表单里面 2.action 控制着往哪里提交 3.inpu ...

  6. Codeforces Round #464 (Div. 2) B. Hamster Farm

    B. Hamster Farm time limit per test2 seconds memory limit per test256 megabytes Problem Description ...

  7. datagrid的修改和删除功能的实现

    1.修改 双击,进入一行的编辑状态的功能的实现 2.删除 3.扩展easyui的datagrid,添加动态增加或删除Editor的方法 (1)背景要求: 对于某一列,比如密码,动态增加时候,是可以编辑 ...

  8. 二叉树遍历(Java实现)

    二叉树遍历(Java实现)   主要是二叉树的遍历,包括递归遍历和非递归遍历 import java.util.ArrayDeque; import java.util.ArrayList; impo ...

  9. 可实现一键分享到多个平台(微信,微博,qq空间,人人等)

    友推是一款是面向移动应用的SDK分享组件,提供给开发者集成使用.通过友推,开发者可以轻松集成社会化分享功能,同时创建及管理推荐好友使用您应用的推荐奖励活动,用户推荐好友安装使用您的应用即可获得推荐奖励 ...

  10. ogre3D学习基础19 --- 材质的继承,纹理的滚动与旋转

    以上一节为基础,废话不多说. 首先新增一个节点,用于比较显示 //新增一个节点 ent = mSceneMgr->createEntity("Quad"); ent-> ...