构建Android自动编译持续集成系统
因为我们专业,所以我们用Auto Build,所以我们用CI系统。
代码管理使用SVN,自动编译使用Ant,而持续集成使用Hudson,操作系统使用Ubuntu10.04。
1. 安装
1.1 安装JDK
sudo apt-get install sun-java6-jdk
1.2 安装Ant
sudo apt-get install ant-optional
1.3 安装Hudson
sudo apt-get upgrade
wget -O /tmp/key http://hudson-ci.org/debian/hudson-ci.org.key
sudo apt-key add /tmp/key
wget -O /tmp/hudson.deb http://hudson-ci.org/latest/debian/hudson.deb
sudo dpkg --install /tmp/hudson.deb
1.4 安装Android SDK
http://androidappdocs.appspot.com/sdk/index.html
2. Project配置
2.1 build.xml
http://androidappdocs.appspot.com/guide/developing/other-ide.html
按照官方的做法,使用自动生成的build文件就可以了。

<?xml version="1.0" encoding="UTF-8"?>
<project name="test-android">
<!-- The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked in in Version
Control Systems. -->
<property file="local.properties" />
<!-- The build.properties file can be created by you and is never touched
by the 'android' tool. This is the place to change some of the default property values
used by the Ant rules.
Here are some properties you may want to change/update:
application.package
the name of your application package as defined in the manifest. Used by the
'uninstall' rule.
source.dir
the name of the source directory. Default is 'src'.
out.dir
the name of the output directory. Default is 'bin'.
Properties related to the SDK location or the project target should be updated
using the 'android' tool with the 'update' action.
This file is an integral part of the build system for your application and
should be checked in in Version Control Systems.
-->
<property file="build.properties" />
<!-- The default.properties file is created and updated by the 'android' tool, as well
as ADT.
This file is an integral part of the build system for your application and
should be checked in in Version Control Systems. -->
<property file="default.properties" />
<!-- Custom Android task to deal with the project target, and import the proper rules.
This requires ant 1.6.0 or above. -->
<path id="android.antlibs">
<pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
<pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
<pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
<pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" />
<pathelement path="${sdk.dir}/tools/lib/jarutils.jar" />
</path>
<taskdef name="setup" classname="com.android.ant.SetupTask" classpathref="android.antlibs" />
<!-- Execute the Android Setup task that will setup some properties specific to the target,
and import the build rules files.
The rules file is imported from
<SDK>/platforms/<target_platform>/templates/android_rules.xml
To customize some build steps for your project:
- copy the content of the main node <project> from android_rules.xml
- paste it in this build.xml below the <setup /> task.
- disable the import by changing the setup task below to <setup import="false" />
This will ensure that the properties are setup correctly but that your customized
build steps are used.
-->
<setup />
</project>
2.2 local.properties
这个配置文件定义了Android SDK的位置
sdk.dir=${tool.android.sdk}
2.3 build.properties
这个文件里面定义了App的Package,以及生成App签名必须用的一些配置。
application.package=test.android
key.store=../test-android.keystore
key.alias=test-android
key.store.password=password
key.alias.password=password
3. Hudson配置
3.1 System Configuration
系统配置很简单,只需要配置JDK、Ant的位置就可以了。
比较有用的还有一项:E-mail Notification,如果你需要在build失败发送邮件的话,那么需要配置这一项。
3.2 Job Configuration
3.2.1 Source Code Management
1. 选择Subversion,并且设置好SVN的地址以及用户名、密码
2. 把Use update和Revert勾选上
3.2.2 Build Triggers
1. 勾选上Build Periodically,然后设置自动Build的时机,这里语法跟cron的语法是一样的。
例如:0 2 * * 1-6
2. 勾选上Poll SCM,设置每隔多长时间检测SVN的变更。
例如:0,15,30,45 9-23 * * 1-5
3.2.3 Build
Step1:删除上次编译的文件
rm –f test-android.keystore
rm –f –R ./test-android/gen
rm –f –R ./test-android/bin
Step2:生成Keystore
http://androidappdocs.appspot.com/guide/publishing/app-signing.html
例如:keytool -genkey -v -alias test-android -keyalg RSA -keysize 2048 -dname 'CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=xx' -validity 10000 -keypass password -storepass password -keystore 'test-android.keystore'
Step3:Invoke Ant
设置Targets:release –Dsdk.dir=$your-sdk-dir
例如:release –Dsdk.dir=/home/build/android-sdk-linux
3.2.3 Post-build Actions
1. 勾选上Archive the artifacts,设置Files to archive:test-android/bin/test-android-release.apk
2. 勾选上E-mail Notification,可以设置发送邮件的对象和时机
经过以上步骤的设置,大功告成了。
专业就是这么简单!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构