安卓与Jenkins概述

Posted Jason Zhang~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓与Jenkins概述相关的知识,希望对你有一定的参考价值。

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布/测试项目;监控外部调用执行的工作。
Jenkins特点

  • 开源免费
  • 跨平台,支持所有的平台
  • master/slave支持分布式的build
  • web形式的可视化的管理页面
  • 安装配置超级简单
  • tips及时快速的帮助
  • 已有的200多个插件

android与Jenkins

对于我们开发工程师来说,我们只管写代码,至于怎么打包,测试,我们是不需要过多关注的。而现在安卓比较流行的方案是:使用Jenkins搭建Android自动打包。
科技不断进步发展,编程语言、框架等也在不断创新,而作为习惯且喜欢偷懒的程序员来说,一些自动化能减少我们人力操作的东西简直就是神器。作为四年经验的安卓开发者,越来越对打包APK的纯苦力劳动感到厌倦。新功能代码写到一半,测试、产品、后台等等动不动会有人来找你要个APK包,测试环境、预发布环境、生产环境等等,一堆的配置,不同的渠道包等等,你是不是受够了自己明明作为一个牛逼的Android开发工程师,最后却沦为一个做苦力不断帮人打包的劳工?
如果你也和我一样,想好好写代码,不想总是让打包这样的简单无技术含量的事情来打扰到你,那么,跟我一直来了解学习如何使用Jenkins来解放双手,以后打包将变得简单便捷,如果可以,你也可以教会公司其他人使用它来打包,而自己彻底脱离一个打包er的身份。

其实我对Jenkins已经有了基础的认知了解,也有搭建好自己公司项目的初步环境,查过很多资料也走过一些坑,在最后能使用Jenkins来完成打包APK的时候,心里还是有点成就感的,这里先说下我自己这段时间以来使用Jenkins的感悟吧。

优势

  1. 减少人工操作步骤,自动化完成打包与发布。测试环境、生产环境使用不同的服务器域名、接口签名等,需要打包不同的渠道包等,打包后需要手动上传到蒲公英等操作等等。当我们还在Clean、Build、打包、改文件名字、上传到蒲公英、把二维码图片发给需要的人,然后才能去打卡下班的时候,那些牛逼的程序员,打开一个网站,选几个选项,然后就可以打卡下班回家吃饭啦!后续的操作Jenkins都帮他完成啦!服务器上构建打包上传到蒲公英发邮件给需要的人一套流程自动化完成,你说叼不叼?
  2. 让开发者脱离打包er的身份。公司以前一直都是需要开发者来打包APK,有时候其他人需要APK的时候只能找开发者,然后等开发者打包,有时候开发者代码正写到一半或者开发者请假不在公司等等情况,都会影响到大家。尤其是有时候环境很多需要打很多包的时候,经常找开发者打包,开发者也会很烦…而Jenkins配置好之后,任何人都可以去这个平台上获取当前代码库里面最新的代码根据自己的需求打包出来自己想要的APK文件。
  3. 代码会更加规范。当然,其实就算不用Jenkins,很多人的代码就已经是规范的了。但是,涉及到很多东西和不同的环境变量改变时,大家确实可以有很多种方式。而使用Jenkins之后,为了让一些可变的变量能由Jenkins打包时来指定,涉及这些变量的地方的逻辑就必须做成规范统一管理的了。就我公司项目来说,测试环境还是生产环境是在某个Java文件类中修改,APK的版本Code和Name是在build.gradle中修改,诸如此类的,但是使用Jenkins之后,整个APP的可变量,都放在gradle.properties文件夹中,即使是不使用Jenkins打包,用安卓开发者工具打包或者需要修改什么东西的时候,只需要在这个文件中去修改配置即可。甚至大家可以把服务器域名或者一些其他的值,在代码里面都不写,直接在这个统一的配置文件写,然后在Jenkins里面配置几个可选项或者可以自定义输入。这也导致项目的各种配置很灵活。

以上是关于安卓与Jenkins概述的主要内容,如果未能解决你的问题,请参考以下文章

Android Developer -- Bluetooth篇 概述

Jenkins持续化集成

Linux 0.11 - 进入内核前的苦力活完结篇

Jenkins 学习笔记玩转持续集成与持续交付

Gitlab与Jenkins结合构成持续集成(CI)环境

jenkins+gitlab构建安卓自动编译环境