文档章节

Jenkins 自动化打包 Android

shzwork
 shzwork
发布于 05/19 18:02
字数 2234
阅读 5
收藏 1

为什么

Android程序员常常需要打包给测试进行逻辑和界面测试,在新的项目模块开发中,我司使用了 Scrum敏捷开发;有优点也有缺点,在第一次尝试过程中,发现测试在最后的环节才参与到开发中,导致项目周期延长了几天;最后项目总结,提出测试不能参与到开发环节上的原因主要是 开发无法实时提供测试包

客户端开发总是觉得只有当逻辑和界面开发完成之后才能提供完整的测试包,这样的想法和做法自然是错误的,所以就有了今天的主题 Jenkins 自动化打包 Android

怎么做

当提出一个问题后,应该有大致的解决方法,如果没有,那就 谷歌 吧~

很长一段时间,网上有很多教程说起jenkins多么多么牛,可以释放你的左右手~ 一直没有去尝试,一个是没有时间,另外一个是没有实践的项目

下面开始动手操作吧,需要:

  • linux服务器一台
  • Git版本控制
  • JDK安装
  • Gradle,并配置环境变量
  • Android SDK,并配置环境变量
  • 安装、配置Jenkins

2.1. linux 服务器

如果需要梯子,可以买国外的服务器:

不需要可以使用:

等等,当然,如果觉得价格太贵,可以选择配置虚拟机来实现;买好服务器之后,就可以连接了,

  • windows用户可以使用 XShell, 其中还包含xftp
  • mac用户可以直接使用终端来连接服务器

值得注意的是, 为了方便后续的操作,需要把服务器的ssh 的端口修改为 22(如果默认端口不是22):

##连接服务器之后输入该命令
vi /etc/ssh/sshd_config

滑动到最后,修改port为22

服务器修改端口

 

2.2.Git 版本控制

yum install git

查看git版本:

查看Git版本.png

 

2.3. JDK安装

由于官网的jdk下载需要接受协议,所以只能下载到本地之后上传到服务器;

scp 本地文件 root@服务器地址:/路径

拷贝文件到服务器.png

解压:

tar -zxvf jdk.tar.gz

配置环境变量:

vi /etc/profile

加入如下代码:

export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

source /etc/profile ## 使得更改生效

 

配置jdk环境变量.png

2.4. Gradle 安装

Gradle版本尽量和项目中使用的版本一致,不要引起不必要的错误;我项目中使用的版本是4.10.1,所以下载对应的版本:

wget https://downloads.gradle.org/distributions/gradle-4.10.1-all.zip

这样是直接下载到你当前所在的目录的,可以移动到某一个特定的目录,接下来就是解压:

unzip gradle-5.0-all.zip

如果没有该命令则说明没有安装 zip unzip, 使用 yum install zip unzip安装即可
解压之后打开/etc/profile文件,配置和jdk类似的环境变量:

配置gradle.png


我的gradle放到了 /usr/ellison/目录下

 

source /etc/profile ## 使得更改生效

2.5. SDK 安装

sdk下载到本地,使用上面同样的方式上传到服务器,Android SDK 下载地址,选择 Download Options 找到Command line tools only:

sdk下载地址.png

 

然后将文件上传到服务器,这里不再赘述; 接着配置sdk环境变量

vi /etc/profile

配置sdk环境变量.png

上面我是将文件放到了 /opt/androidSDK目录下,各位可以随便放到服务器哪个目录都可以,只需配置环境变量 然后使得生效即可:

source /etc/profile

配置好sdk环境变量之后,输入sdkmanager命令就可以来获取到sdk版本以及build-tools版本了;输入sdkmanager --list命令来获取所有的信息:

获取build-tools版本.png

 

可以看到最新的 build-tools版本是29.0.0-rc1, 可以根据项目中使用的build-tools版本来下载,我这边使用的是28.0.3; 下载命令为:

sdkmanager "build-tools;28.0.3"

安装好 build-tools之后,还需要安装必须的sdk版本,同样的也是根据项目中使用的下载需要的sdk:

获取所有的sdk版本.png

 

sdkmanaager "system-images;android-28;default;x86_64"

等待下载完成后,sdk就安装完了; 到此所有的 Android环境就安装完了。接下来就是jenkins安装了

3.1. Jenkins 安装

wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
rpm –import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins

安装的时候在国内会出现公钥未安装的情况,yum install --nogpgcheck 取消验证即可。

安装完之后,还不能启动 jenkins,因为jenkins默认的配置并不能找到你本机的jdk配置,打开jenkins的配置文件:

vim /etc/init.d/jenkins

找到如下位置之后,修改java文件的位置,即为本机安装的jdk环境位置:

修改jenkins启动.png

 

接下来就可以启动jenkins了:

sudo service jenkins start

启动jenkins

sudo service jenkins stop

停止jenkins

3.2. 启动Jenkins 创建新任务

启动jenkins之后,在浏览器上面输入<ip地址>:8080就可以打开jenkins主页,进入第一个页面会让输入初始密码:

cat <浏览器上提示的目录地址>

获取密码之后输入登录创建一个新任务:

jenkins创建新任务.png


输入任务的名称,选择 构建一个自由风格的软件项目 ,点击 确定 即创建了一个新的任务,正常情况下,会选择插件安装,笔者使用国外的服务器安装的时候一路畅通提示安装插件,但是国内的服务器却提示 jenkins服务器已经离线 ,如果出现这种问题,则需要在浏览器上输入如下地址进行修改:

 

http://<服务器IP地址>:8080/pluginManager/advanced , 找到 升级站点 ,将url中的 https修改为http, 这样就能正常安装需要的插件了:

修改jenkins已经离线.png

 

3.3. 配置jenkins全局环境

安装完插件之后,就来到了jenkins主面板

jenkins主面板.png


配置环境变量在 系统管理->全局工具配置, 将之前配置的 GitJDKGradle设置好:

配置环境.png

 

3.3. 配置项目

3.3.1 配置 General 构建化参数

添加项目之后,进入项目的系统设置:

 

配置构建化参数.png

首先看到的是 General, 这个是配置我们一些常用见的构建时候配置,多变体打包;多变体打包涉及到资源文件的设置等,这里的设置关系到后面的编译语句,所以要和application模块中的build.gradle文件相同,这样才能打出我们需要的版本包;这里给出一个实例:

配置构建化过程参数.png

 

在上面,我添加了buildType,这个名称是随便填写的,后面编译语句需要引用这个字段,这个参数我添加了debugrelease两个打包的版本;然后还添加了一个多变体buildFlavor参数,选项为xiaomitencent两个应用市场的包,所以需要在build.gradle中设置这两个市场的数据,怎么设置请各位自行谷歌~

3.3.2 配置 源码管理

现在项目一般都是由Git来版本控制,同样的,我们配置源码管理的时候选择用Git来版本控制:

配置源码管理.png


输入项目url,认证则需要点击添加按钮,选择账号密码方式或者ssh秘钥方式都是可以的:

添加凭据.png

 

3.3.3 配置 构建名称及构建

当我们构建的时候,jenkins主面板名称会显示#1, #2, #3,这样的构建名称,显然不是很友好,这里构建环境可以设置构建名称:

配置构建环境.png


配置构建语句:

构建脚本.png


这里 clean assemble${buildFlavor}${buildType} 这里的buildFlavorbuildType就是添加的构建参数。

 

保存上面的设置之后,进入项目的面板, 选择Build with Parameters开始构建:

build开始构建.png

 

到此,所有的jenkins配置和构建就结束了。

总结:

  1. 服务器的配置
  2. Android环境的配置
  3. Jenkins的配置



作者:设计失
链接:https://www.jianshu.com/p/50e3e3fbaff6
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

本文转载自:https://www.jianshu.com/p/50e3e3fbaff6

shzwork
粉丝 11
博文 595
码字总数 10198
作品 0
厦门
私信 提问
自动化构建Android项目 ---- Jenkins自动化部署学习笔记(二)

  上篇文章跟大家分享了在Windows上安装Jenkins的方法,这篇文章来跟大家分享一下利用Jenkins自动化构建Android项目: 一、所需准备: Android项目上传至版本管理平台,这里我准备了Githu...

onestravel
2018/05/22
0
0
使用Jenkins实现自动化打包

使用Jenkins实现自动化打包 Jenkins个开源的持续集成工具,不仅可以用来进行Android打包,也可以用来进行iOS打包、NodeJs打包、Java服务打包等。 The leading open source automation serve...

孤狼悲月
05/28
0
0
Android直接用手机打包apk!

你没有看错,用手机浏览器访问Jenkins,就可以打包apk,并生成下载二维码,发送邮件通知测试人员下载,从此解放双手,告别打包测试。先上本人手机邮箱收到的打包成功通知效果图: 废话少说,...

Zachary46
2018/08/01
0
0
jenkins maven管理的android项目怎么打包apk

RT,我在jenkins已经建好了maven项目,代码也已经拉去好了,build也通过了,请问怎么打包成apk呢? 在网上查了一些资料: 1、主要就是ant打包方式,但是我的项目是maven管理的,应该行不通吧...

hzy00
2014/09/23
1K
2
Jenkins中使用ant管理Android应用开发生命周期

软件环境 OS:CentOS 6.0 64-bit Android SDK:adt-bundle-linux-x86_64 Jenkins:1.529 Ant:1.8.2 配置管理 1.Jenkins中配置JDK,直接配置1.7+以上JDK。过程略。 2.把Android工程改造成具有A...

miscellanea
2013/11/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基础服务系列-Centos7 安装Node.js10

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. 简介 以官方centos镜像为基础,安装Node.js 10。 Unix prerequisites: gcc and g++ >= 6.3 or newer, or GNU ......

wuxinshui
45分钟前
1
0
Canonical修复了内核安全更新引入的回归问题

导读 Canonical今天发布了所有支持Ubuntu操作系统版本的新Linux内核版本,以解决最新内核安全更新引入的回归问题。 上周,Canonical发布了所有支持Ubuntu版本的Linux内核更新,以解决Jonatha...

问题终结者
今天
3
0
elasticSearch(四)——javaApi

一、

ittzg
今天
2
0
elasticseach 数据的导出与导出工具elasticdump使用

Centos下安装elasticdump yum install elasticdump 安装完成后 [root@i-vvxxxxswtw5ne ~]# elasticdump --helpelasticdump: Import and export tools for elasticsearchversion: 2.2.0......

scgaopan
今天
5
0
DNS域名解析命令 —— nslookup

命令nslookup 名称: name server lookup 用途: 查询域名的DNS信息 语法: ]# nslookup [选项] [域名] 模式: 交互式、非交互式 交互式选项: 实例: 交互式: 非交互式: 查询域名 ]# nsl...

迷失De挣扎
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部