一、简介

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. BAPI 使用

    BAPI_ACC_DOCUMENT_POST *---BAPI_ACC_DOCUMENT_POST 所需要的参数  DATA: OBJ_TYPE LIKE BAPIACHE09-OBJ_TYPE,   ...

  2. HOG参数简介及Hog特征维数的计算(转)

    HOG构造函数 CV_WRAP HOGDescriptor() :winSize(64,128), blockSize(16,16), blockStride(8,8),      cellSize( ...

  3. tomcat实现文件打开下载功能

    omcat作为http的下载服务器,网上有很多办法 但我认为最简单的是: 1.直接把文件放在 tomcat6/webapps/ROOT 目录下, 2.然后在网址中访问: http://192.168. ...

  4. Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结

    上一篇 | 下一篇 Spring MVC程序中得到静态资源文件css,js,图片 文件的路径 问题总结 作者:轻舞肥羊 日期:2012-11-26 http://www.blogjava.net/fi ...

  5. 2016 MIPT Pre-Finals Workshop Taiwan NTU Contest

    2016弱校联盟十一专场10.5 传送门 A. As Easy As Possible 假设固定左端点,那么每次都是贪心的匹配\(easy\)这个单词. 从\(l\)开始匹配的单词,将\(y\)的位置 ...

  6. HDU-1255 覆盖的面积 (扫描线)

    题目大意:给若干个矩形,统计重叠次数不为0的面积. 题目分析:维护扫描线的长度时,只需要只统计覆盖次数大于1的区间即可.这是个区间更新,不过不能使用懒标记,但是数据规模不大,不用懒惰标记仍可以AC. ...

  7. 关于duplicate symbol _main in的解决办法

    报错:duplicate symbol _main in: duplicate symbol _main in:    /Users/gavin/Library/Developer/Xcode/Der ...

  8. springMVC源码学习之:springMVC响应请求的几种方法

    spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void. ModelAndView @RequestMap ...

  9. android XML解析器全解案例

    1.使用pull解析 package com.example.myxml; import java.io.InputStream; import java.util.ArrayList; import ...

  10. PHP strrpos strpos strstr strrchr 区别

    1. strstr string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) $needl ...