ant 自动打包

简介: 引用:http://handsomeliuyang.iteye.com/blog/1156070  Ant使用   在ant的官网http://ant.apache.org进行下载后apache-ant-1.

引用:http://handsomeliuyang.iteye.com/blog/1156070

 Ant使用

 

在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命令就行。

相关文章
|
关系型数据库 分布式数据库 数据库
阿里云PolarDB登顶2024中国数据库流行榜:技术实力与开发者影响力
近日,阿里云旗下的自研云原生数据库PolarDB在2024年中国数据库流行度排行榜中夺冠,并刷新了榜单总分纪录,这一成就引起了技术圈的广泛关注。这一成就源于PolarDB在数据库技术上的突破与创新,以及对开发者和用户的实际需求的深入了解体会。那么本文就来分享一下关于数据库流行度排行榜的影响力以及对数据库选型的影响,讨论PolarDB登顶的关键因素,以及PolarDB“三层分离”新版本对开发者使用数据库的影响。
788 3
阿里云PolarDB登顶2024中国数据库流行榜:技术实力与开发者影响力
|
9月前
|
存储 关系型数据库 对象存储
体验云数据库RDS通用云盘核心能力
本次课程由杨浩磊(木信)分享,主题为体验云数据库RDS通用云盘的核心能力。内容分为四部分:1) 初识RDS通用云盘,介绍其低成本、高性能的特点;2) 核心能力详解,涵盖IO加速、IO突发和数据归档功能;3) 方案及应用案例,展示实际性能提升与成本优化;4) 线上活动与权益,提供免费试用等优惠。RDS通用云盘通过多级存储架构,显著提升读写性能并降低存储成本,适用于多种业务场景。
351 38
|
7月前
|
人工智能 BI 数据安全/隐私保护
纷享销客CRM全面评测
在企业数字化转型浪潮中,国产CRM备受青睐。本文对国产CRM第一梯队产品进行分析,对比了其中两款典型产品,从技术实力、行业经验、产品功能等多方面阐述差异,为不同规模企业的CRM选型提供参考建议。
|
安全 Python
【视频】Python用GM(1,1)灰色模型预测模型对电力预测
【视频】Python用GM(1,1)灰色模型预测模型对电力预测
|
存储 NoSQL 算法
Redis内存回收
Redis 基于内存存储,性能卓越,但单节点内存不宜过大,以免影响持久化或主从同步。可通过配置 `maxmemory` 限制最大内存。内存达到上限时,Redis采用两种策略:内存过期策略和内存淘汰策略。过期策略包括惰性删除和周期删除,后者分为 SLOW 和 FAST 模式。内存淘汰策略有八种,如 LRU、LFU 和随机淘汰等,用于在内存不足时释放空间。官方推荐使用 LFU 算法。
210 2
Redis内存回收
|
12月前
|
人工智能 算法 数据中心
从“纸面算力”到“好用算力”,超聚变打通AI+“最后一公里”
2024年,《政府工作报告》首提“AI+”行动,推动人工智能成为新质生产力引擎。市场层面,AI+正深刻变革金融、医疗、制造等行业,但AI算力瓶颈依然存在。在2024年中国算力大会上,超聚变等企业探讨了算力的绿色化和效能提升。超聚变推出的FusionPoD for AI全液冷服务器,显著降低能耗并提升算力效能,其FusionOne AI解决方案也加速了AI在各行业的落地。这些创新将重塑算力格局,推动智能革命。
246 0
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗健康领域的革新应用
本文将深入探讨人工智能(AI)技术在医疗健康领域的创新应用,从智能诊断系统、个性化治疗计划的制定到患者监护与健康管理,揭示AI如何提高医疗服务的效率和质量。通过分析具体案例,如AI辅助癌症检测和遗传病风险评估,本文旨在展现AI技术在现代医疗体系中扮演的关键角色,以及其对未来医疗保健的潜在影响。
|
人工智能 安全 5G
移动应用中的即时通讯技术革新
【4月更文挑战第4天】 在移动应用的丰富生态中,即时通讯技术作为连接用户的重要桥梁,正经历着前所未有的变革。本文将深入探讨移动即时通讯的最新技术进展、所面临的挑战以及未来的发展趋势。随着人工智能和机器学习技术的融合,通讯应用正在变得更加智能化和个性化。同时,面对数据安全和隐私保护的挑战,加密技术和匿名通信机制被推向了前台。文章还将分析5G网络对即时通讯性能提升的影响,并展望量子计算如何重塑未来通讯的安全边界。
235 6
|
索引 Python 容器
Python 实现列表去重的方法
【2月更文挑战第20天】
362 1
|
人工智能 自然语言处理 算法
魔搭进校园 | AI赋能大学计划:AI大模型技术与产业趋势高校行·西安交通大学站成功举办
2024年1月10日,西安交通大学兴庆校区教2-1400丝路大礼堂,一场别开生面的AI技术交流讲座在此拉开帷幕。