一、简介

android app 自动构建服务器用于自动下载app代码、自动打包、发布,要建立这样的服务器,关键要解决以下几个问题:

1. android app 自动化打包
android 的打包一般是人工通过eclipse或者studio的ui界面打包的,如果要让系统自动打包,必须在控制台环境下;
只要按照 google 的文档,把 eclipse 或者 studio 工程转化为 ant 或者 gradle 工程,就可以在控制台环境下打包了;
这里,我们选择 ant,主要是它容错好,遇到图片格式等问题不会中断整个进程,而我们在打包 gradle 工程的时候,它无论遇到什么错误都会中断整个进程(由于时间紧,我们没有仔细寻找改变 gradle 中断的方法,如果有网友知道可以告诉我)。

2. 任务提交方式简单
既然是自动化构建服务器,就应该有一个界面友好、配置方便的任务提交 UI。在不知道 jenkins 前,我们自己编写 UI 系统,有了 jenkins 后就方便多了,只需要简单配置就可以把构建服务器与 jenkins 集成起来,利用 jenkins 功能强大的可视化工具管理构建服务。

注:

android app 构建系统需要开启 ssh 服务,并且编写一个能传入参数、传出结果,而且能完成下载代码、打包、发布到 ftp 的构建脚本,通过 ssh 服务和构建脚本,构建服务器就能与 jenkins 集成了;

二、下面是我建立的Android APP自动构建服务器详细介绍

任务提交界面:

SVN:

FTP:

1)系统架构
操作系统:Ubuntu Server 14
应用环境:android sdk, ant, jdk

2)构建过程

1. 提交打包任务
在CI上点击 kxd_android_01_svn,开始检测代码是否有更新,之后触发android 构建服务器打包

2. android 构建服务器打包
2.1 检测SVN上的kxd android产品是否存在
2.2 将当前代码拷贝到tag上
2.3 export当前代码到/home/autobuild/kxd_android/build下
2.4 生成 ant build.xml文件
2.5 运行 ant clean
2.6 运行 ant release
2.7 copy apk和log到ftp上
2.8 传出params到/home/autobuild/kxd_android/params.txt

三、安全问题:
自动构建完成后,在正式发布前,必须加壳防止反编译;如果加壳程序支持linux控制台运行,可以加入到构建脚本里。

[系统集成] Android 自动构建系统的更多相关文章

  1. 基于Jenkins自动构建系统开发

    1  绪论 1.1 课题的研究背景 随着IT行业的不断发展,软件开发的复杂度也随着不断提高.与此同时,软件的开发团队也越来越庞大,而如何更好地协同整个团队进行高效准确的工作,从而确保软件开发的质量已经 ...

  2. Android Studio构建系统基础

    基础知识 项目创建成功后会自动下载Gradle,这个过程特别慢,建议FQ.下载的Gradle在Windows平台会默认在 C:\Documents and Settings\<用户名>.g ...

  3. .net 基于Jenkins的自动构建系统开发

    先让我给描述一下怎么叫一个自动构建或者说是持续集成 : 就拿一个B/S系统的合作开发来说,在用SVN版本控制的情况下,每个人完成自己代码的编写,阶段性提交代码,然后测试-修改,最后到所有代码完工,进行 ...

  4. Android Studio的构建系统:Gradle

    原文作者:youxiachai <用Gradle 构建你的android程序> 前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android st ...

  5. Android Studio添加原生库并自动构建

    [时间:2017-09] [状态:Open] [关键词:Android,Android Studio,gradle,native,c,c++,cmake,原生开发,ndk-build] 0 引言 最近 ...

  6. 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】

    引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...

  7. 打造一个全命令行的Android构建系统

    IDE都是给小白程序员的,大牛级别的程序员一定是命令行控,终端控,你看大牛都是使用vim,emacs 就一切搞定” 这话说的虽然有些绝对,但是也不无道理,做开发这行要想效率高,自动化还真是缺少不了命令 ...

  8. 利用ant脚本 自动构建svn增量/全量 系统程序升级包

    首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...

  9. 项目管理及自动构建工具Maven

    项目管理及自动构建工具Maven 一.Maven安装.目录结构.cmd命令1.下载安装apache-maven-3.2.3-bin.zip下载:http://maven.apache.org/down ...

随机推荐

  1. [转]C语言文件操作

    1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制文件 13.2文件指针 定义文件类型指针变量的一般形式: FILE *指针变量名; 例如: FILE ...

  2. 116. Populating Next Right Pointers in Each Node

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  3. 在VS2010下配置OpenCV 2.3

    一.下载OpenCV 2.3:       http://www.opencv.org.cn/download/OpenCV-2.3.0-win-superpack.exe   二.解压 将下载的Op ...

  4. HTML---常见标签与插入背景音乐;

     插入背景音乐 (一).基本语法: embed src=url 说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等, Netscape及新版的IE 都支持 ...

  5. [USACO11JAN]利润Profits

    题目描述 The cows have opened a new business, and Farmer John wants to see how well they are doing. The ...

  6. CentOS搭建LNMP环境

    安装开发工具包: yum groupinstall -y "Development Tools*" 50多个,安装了好久…… 下载Nginx: http://nginx.org/e ...

  7. spring注解方式在一个普通的java类里面注入dao

    spring注解方式在一个普通的java类里面注入dao @Repositorypublic class BaseDaoImpl implements BaseDao {这是我的dao如果在servi ...

  8. C#学习之LinqtoSql类的简单例子

    LinqtoSql类把访问.操作数据库的细节封装了起来,把连接操作数据库变得相当简单.下面是简单的例子. 第一步:添加LinqtoSql类 1.创建一个控制台应用程序项目,下载一个NrothWind ...

  9. 拆分ABBYY FineReader 12文档的方法

    处理大量多页文档时,通常都会首先扫描所有文档,然后才进行分析和识别.但是,要正确保留每个纸质文档的原始格式,ABBYY FineReader 12必须将每个文档作为单独 FineReader 文档进行 ...

  10. Python画图形界面

    使用QTdesigner 生成.ui文件,输入命令行pyuic4 -o test.py test.ui 在生成的Python文件后面输入下面代码 if __name__=="__main__ ...