下载

JDK:
http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html

Ant:
http://ant.apache.org/manual/install.html#sysrequirements

Eclipse:
http://www.eclipse.org/downloads/packages/

ADT:
http://developer.android.com/sdk/installing/installing-adt.html

Android-SDK:
http://developer.android.com/sdk/index.html#Other

环境变量

1
2
3
4
5
6
7
8
9
10
11
# JAVA_HOME、ANT_HOME、ANDROID_SDK_ROOT设置成实际目录

JAVA_HOME - D:\Android\Java\jdk1.8.0_20

ANT_HOME - D:\Android\apache-ant-1.9.5

ANDROID_SDK_ROOT - D:\Android\android-sdk

CLASSPATH - %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;.

PATH - %JAVA_HOME%\bin;%ANT_HOME%\bin;%ANDROID_SDK_ROOT%\tools;%ANDROID_SDK_ROOT%\platform-tools;%PATH%

连接设备

下载某个手机助手之类的自动下载驱动比较省心。

首次打包准备

在工程目录下新建 ant.properties 文件,内容为

1
2
3
4
5
6
7
8
9
10
key.store={keystore的文件路径}
key.alias={工程名}
key.store.password={密码}
key.alias.password={密码}

例:
key.store=release.keystore
key.alias=ProjectDemo
key.store.password=123456
key.alias.password=123456
1
android update project
1
2
3
# 到每个依赖工程中执行 android update project
# 用法: android update project -p {工程目录} -t {target版本} -n {工程名字}
# android update project -p . -t "android-19" -n "ProjectDemo"

打包

1
2
# 此时,执行此命令即可打包
ant release

进阶版

批量打包

  • 替换 AndroidManifest.xml 中的渠道字段
  • 在不修改源代码的情况下完成打包

新建 custom_rules.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
<!-- 指定AndroidManifest文件为AndroidManifest.xml.tmp -->
<property
name="manifest.file"
value="AndroidManifest.xml.tmp" />

<!-- copy AndroidManifest.xml to AndroidManifest.xml.tmp -->
<copy
file="AndroidManifest.xml"
tofile="${manifest.file}"
overwrite="true" />

<!-- 设置bl.channel的缺省值 EMPTY_CHANNEL ->
<condition property="bl.channel" else="EMPTY_CHANNEL">
<isset property="bl.channel"/>
</condition>

<!-- 替换 AndroidManifest.xml.tmp中预设的渠道字段 ->
<replace
file="${manifest.file}"
token="预设字段"
value="${bl.channel}"
encoding="UTF-8" />
</project>

批处理文件

1
2
3
4
5
6
7
8
:: 把{工程名}替换成实际的工程名
call ant clean
for %%i in (F00 F01 F02 F03) do (
call ant release -Dbl.channel %%i
ren bin\{工程名}-release.apk {工程名}_%%i.apk
)

del AndroidManifest.xml.tmp