Android使用Ant技术打包详解

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

    转自:http://handsomeliuyang.iteye.com/blog/1156070

时间: 2024-11-03 11:53:25

Android使用Ant技术打包详解的相关文章

Android热修复技术原理详解与升级探索

在2017云栖大会-上海峰会上手机淘宝资深无线开发工程师甘晓霖(万壑)作了题为<Android热修复技术原理详解与升级探索>的分享,如何实现客户端与开发节奏最快同步,阿里云为此开发了移动热修复框架Sophix.它在代码修复.资源修复.SO库修复中都展示了极高的能力,在于其他竞品的对比中,Sophix展示出来极大的优势,并且非常容易上手.

android双缓冲技术实例详解

Android中的SurfaceView类就是双缓冲机制.因此,在进行Android游戏开发时应尽量使用SurfaceView而不要使用View,这样的话效率较高,并且SurfaceView的功能也更加完善.为了更容易的了解双缓冲技术,下面介绍用View实现双缓冲的方法. 在此需要说明一下,双缓冲的核心技术就是先通过setBitmap方法将要绘制的所有的图形绘制到一个Bitmap上,然后再来调用drawBitmap方法绘制出这个Bitmap,显示在屏幕上.其具体的实现代码如下: 先贴出View类

《Android多媒体应用开发实战详解:图像、音频、视频、2D和3D》——2.1节简析Android安装文件

2.1 简析Android安装文件 Android多媒体应用开发实战详解:图像.音频.视频.2D和3D 当下载并安装Android后,会在其安装目录中看到一些安装文件.了解这些文件具体是干什么用的,对于我们后面的驱动开发知识学习十分有用,所以在本节的内容中将简要介绍这些安装文件的基本知识. 2.1.1 Android SDK目录结构 安装Android SDK后,其安装目录的具体结构如图2-1所示. temp:里面包含了一些常用的文件模板. tools:包含了一些通用的工具文件. usb_dri

Android pdf viewer在android studio应用问题说明详解_Android

之前一直是做.NET开发的,最近需要弄一个新闻app,能力有限,只能借助HTML5 WebAPP+android studio来完成这项工作. android studio主要用WebView来加载发布好的WebApp,打包生产APP. 其中由于显示一些pdf文档,所以研究了一下,记录一下心得,同时也希望帮助到新手们. android 显示网络pdf,基本原理:先将pdf文件通过DownloadManager下载到手机sdk某个文件夹中,然后通过android-pdf-viewer插件进行显示.

Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!

Android高效率编码-第三方SDK详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还是会及时更新的,比如后续会出 分享SDK:sharesdk 后端SDK:Bmob 推送SDK:极光推送 短信SDK:验证码实现 等等-- 或者出一些装ubuntu系统或者黑苹果教程什么的,或者5.X之后的新玩法,主要还是困于时间方面缺少,或许这也是一种锻炼吧,工作了挺久的了,越发觉得自己的JAVA基

Android AIDL——进程通信机制详解_Android

Android  AIDL, Android进程机制通信机制,这里就整理下AIDL 的知识,帮助大家学习理解此部分知识! 什么是 AIDL AIDL 全称 Android Interface Definition Language,即 安卓接口描述语言.听起来很深奥,其实它的本质就是生成进程间通信接口的辅助工具.它的存在形式是一种 .aidl 文件,开发者需要做的就是在该文件中定义进程间通信的接口,编译的时候 IDE 就会根据我们的 .aidl 接口文件生成可供项目使用的 .java 文件,这和

《Android 平板电脑开发实战详解和典型案例》——1.1节平板电脑基础知识概览

1.1 平板电脑基础知识概览Android 平板电脑开发实战详解和典型案例本节主要向读者介绍平板电脑的相关知识,主要内容包括平板电脑的由来.平板电脑的发展.平板电脑的家族成员.平板电脑的特点以及平板电脑与笔记本电脑和智能手机的区别等. 1.1.1 初识平板电脑平板电脑(Tablet Personal Computer,简称Tablet PC.Flat Pc.Tablet.Slates),是一种小型的.方便携带的.以触摸屏作为基本的输入设备的个人电脑,在日常生活中通常被人们称作PAD.其触摸屏(也

《Android 平板电脑开发实战详解和典型案例》——2.4节动作条——ActionBar

2.4 动作条--ActionBarAndroid 平板电脑开发实战详解和典型案例Android 3.0正式引入了ActionBar控件,抛弃了传统的导航功能,使用软件按钮取代了物理主屏.菜单.后退等按钮,规范了应用程序的导航设计.向开发人员提供了一个相对较新的导航控件,提供了更丰富的功能. 本节将介绍动作条ActionBar的基础知识与简单应用.主要内容是显示选项菜单和提供标签页的切换方式的导航以及提供下拉列表条目导航的操作. 2.4.1 显示选项菜单基本知识ActionBar上有空间时才会显

Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送

Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送,写这个系列真的很要命,你要去把他们的API文档大致的翻阅一遍,而且各种功能都实现一遍,解决各种bug各种坑,不得不说,极光推送真坑,大家使用还是要慎重,我们看一下极光推送的官网 https://www.jpush.cn/common/ 推送比较使用,很多软件有需要,所以在这个点拿出来多讲讲,我们本节