[系统集成] Android 自动构建系统
一、简介
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 自动构建系统的更多相关文章
- 基于Jenkins自动构建系统开发
1 绪论 1.1 课题的研究背景 随着IT行业的不断发展,软件开发的复杂度也随着不断提高.与此同时,软件的开发团队也越来越庞大,而如何更好地协同整个团队进行高效准确的工作,从而确保软件开发的质量已经 ...
- Android Studio构建系统基础
基础知识 项目创建成功后会自动下载Gradle,这个过程特别慢,建议FQ.下载的Gradle在Windows平台会默认在 C:\Documents and Settings\<用户名>.g ...
- .net 基于Jenkins的自动构建系统开发
先让我给描述一下怎么叫一个自动构建或者说是持续集成 : 就拿一个B/S系统的合作开发来说,在用SVN版本控制的情况下,每个人完成自己代码的编写,阶段性提交代码,然后测试-修改,最后到所有代码完工,进行 ...
- Android Studio的构建系统:Gradle
原文作者:youxiachai <用Gradle 构建你的android程序> 前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android st ...
- Android Studio添加原生库并自动构建
[时间:2017-09] [状态:Open] [关键词:Android,Android Studio,gradle,native,c,c++,cmake,原生开发,ndk-build] 0 引言 最近 ...
- 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】
引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...
- 打造一个全命令行的Android构建系统
IDE都是给小白程序员的,大牛级别的程序员一定是命令行控,终端控,你看大牛都是使用vim,emacs 就一切搞定” 这话说的虽然有些绝对,但是也不无道理,做开发这行要想效率高,自动化还真是缺少不了命令 ...
- 利用ant脚本 自动构建svn增量/全量 系统程序升级包
首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...
- 项目管理及自动构建工具Maven
项目管理及自动构建工具Maven 一.Maven安装.目录结构.cmd命令1.下载安装apache-maven-3.2.3-bin.zip下载:http://maven.apache.org/down ...
随机推荐
- python数据结构与算法——小猫钓鱼(使用队列)
按照<啊哈>里的思路实现这道题目,但是和结果不一样,我自己用一幅牌试了一下,发现是我的结果像一点,可能我理解的有偏差. # 小猫钓鱼 # 计算桌上每种牌的数量 # 使用defaultdic ...
- 递归神经网络(RNN,Recurrent Neural Networks)和反向传播的指南 A guide to recurrent neural networks and backpropagation(转载)
摘要 这篇文章提供了一个关于递归神经网络中某些概念的指南.与前馈网络不同,RNN可能非常敏感,并且适合于过去的输入(be adapted to past inputs).反向传播学习(backprop ...
- 转载:奇异值分解(SVD) --- 线性变换几何意义(下)
本文转载自他人: PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理 ...
- bsgrid
网址:http://bsgrid.oschina.mopaasapp.com/ var total = gridObj.options.totalRows; jquery必须放在bsgrid的前面 根 ...
- 改造dede 后台会员目录
可以在后台目录(默认 dede),里面的inc->inc_menu.php 文件里进行添加或更改,实现功能!
- ASP.NET MVC报错: Multiple types were found that match the controller named
当使用ASP.NET MVC的Area功能时,出现了这样的错误: Multiple types were found that match the controller named 'Home'. T ...
- ASP.NET 各种缓存
原文地址:http://www.cnblogs.com/ltp/archive/2009/06/30/1514311.html 有时候总听到网友说网站运行好慢,不知如何是好:有时候也总见到一些朋友 ...
- DIV的绝对居中
来源:http://www.cnblogs.com/damonlan/archive/2012/04/28/2473525.html 作者:浪迹天涯 很多时候,我们需要在浏览器中让一个div居中进行显 ...
- OpenJudge计算概论-找最大数序列
/*===================================== 找最大数序列 总时间限制: 1000ms 内存限制: 65536kB 描述 输入n行(n 不大于 30),每行不超过10 ...
- Linux-LVS+keepalived-Testing
LVS:Linux Virtual Server+++++++++++++Info+++++++++++VIP:172.18.20.222LVS-Master IP:172.18.20.206LVS- ...