您的位置:首页 > 移动开发 > Android开发

android 使用ant打包或者生成jar

2017-07-25 19:59 337 查看
一、生成build.xml文件

Eclipse 中使用Ant为Android打包并且签名

Android Sdk中自带文件,在{sdkpath}tools/ant目录下的3个文件

其中build.xml和unbuild.xml中定义了大量基础构建方法和构建策略。我们只需要构建我们自己的build.xml并且存放在项目的根目录下,然后引用{sdk}tools/ant即可。

在命令行窗口输入一下命令就可以生成一个build.xml文件。

<sdk>tools\android update project -p <project> - t <target>  --subprojects

说明:

<sdk>  为sdk的安装目录,其下tools\android是我们使用的命令。

project 为项目目录。

target为项目所使用的Android的target id ,就是项目对应的Android版本。

如:D:\tools\android-sdk_22\tools\android update project -p . -t android-18 --subprojects

执行上述命令将生成3个文件:

build.xml  local.properties,  proguard-project.txt

其中,build.xml文件是进行ant build的主要文件,它引用了其它文件。这些被引用的文件有local.properties,ant.properties两个属性文件,以及在build.xml中的最后,引用了sdk目录下的tools/ant/build.xml文件。
  local.properties文件中定义了sdk.dir属性,也就是当前使用的sdk的目录。
  ant.properties可根据构建需要进行相关配置。
  项目下的build.xml默认执行的target是help,运行后可以看到相关的帮助信息。如果需要的话,我们可将其修改为debug或者release。
  通过查看相关的帮助信息,可以看到其它可用的target。然后运行ant时,可指定target。例如,ant debug, ant help, ant relaese等等。

二、配置ant.properties 
  ant.properties文件是不会自动生成的,需在项目根目录下新建一个ant.properties文件。
      然后根据构建的实际需要进行相关配置。在ant.properties文件中,可以定义自己的一些属性,或者重定义一些属性。
1、设定私钥库
  ant构建时,如果是debug版的话,默认会使用debug方式签名。

  如果是release版的话,需指定相应的keystore以及私钥。否则,最后只能生成一个没有签名的apk文件。

  设定私钥库的方法如下:
  在ant.properties文件中,添加如下内容:

    key.store=<keystore>

    key.alias=<key>

    key.store.password=<keystore pwd>

    key.alias.password=<key pwd>
    其中:

      keystore为私钥库文件。

      key为签名需要使用的私钥。

      key.store.password为私钥库的密码。

      key.alias.password为私钥的密码。
2、如果项目引用了第三方库的话,只需要在项目根目录创建libs文件夹并将其放入即可。
  如果是jar库,直接放到libs目录下;
  如果是so库,需要放到libs的名为armeabi的子目录下。
  也可以通过设定相应的属性来指定第三方库的位置,其默认都是libs文件夹。

  jar.libs.dir为jar类型库所在的目录。

  native.libs.absolute.dir为so类型库所在的目录,即armeabi的父目录。
3、如果项目包含了jni代码,希望在打包时自动重新编译so库,可以修改build.xml文件。

  修改方法为,在引用sdk的build.xml文件之前添加如下target:

  <target name="-pre-build" depends="-ndk-build">

  </target>

  <target name="-ndk-build">

      <exec executable="ndk-build" failonerror="true">

          <arg value="clean" />

      </exec>

      <exec executable="ndk-build" failonerror="true" />

  </target>
  ndk-build为ndk提供的命令,需要将ndk安装目录添加到环境变量中,添加方法同sdk/tools。

生成的so默认会放到libs/armeabi目录下。

三、实现自动打包签名apk
  有两种方式可实现。
1、一种方式在elispe中执行ant.
右键点击项目中的build.xml->run as... 先查看下有多少种任务,当然这些任务都是来自<sdk>\tools\ant\build.xml,项目里的只是引用了它

 



 

  窗口打开



默认的选择在help上。打签名包的时候执行release这个任务即可。
按照以上的步骤配置好之后就能生成签名apk。
最后在项目跟目录\bin下生成apk包。
2、第二种方式通过命令行执行。
生成debug版本:ant debug
生成release版本:ant release
 
大家可以通过学习<sdk>\tools\ant\build.xml来理解ant的基本奥妙。
Ant是非常强大的。可以实现以下功能。
例如:
1.在生成apk的文件名里加上日期。
2.把apk文件自动通过邮件发给其他人。
3.apk文件上传服务器

注意事项:

如果要打成jar的项目依赖有别的jar,并且依赖的jar不会被打包进jar。这时候两个项目的target id一样,如果使用android-18,在生成build.xml文件的时候,两个项目都使用Android-18

2、在使用ant release 生成jar是,有时候会不成功,项目中bin下的一下文件可能影响正常生成jar,所以使用ant release命令前,执行一下ant clean命令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android ant 打包