一、生成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” failοnerrοr=”true”>
<arg value=”clean” />
</exec>
<exec executable=”ndk-build” failοnerrοr=”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命令。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35298.html