当前位置: 首页 > ai >正文

关于安卓自动化打包docker+jenkins实现

在这里插入图片描述

背景

安卓开发过程中,尤其是提测后,会有一个发包的流程。这个流程简单来说,一般都是开发打包,然后发群里,测试再下载,发送到分发平台,然后把分发平台的应用主页发出来,最后群里面的人去下载。这样整套下来,过于复杂,完全是浪费了一大部分的开发力,所以便有了此文。

环境

win11
linux64服务器
docker

实现过程

本问不再讲解docker如何安装,只在docker基础上进行讲解,如需了解docker的安装教程,请自行百度。

(1)安装jenkins
这里有一个要点,因为是客户端的自动化打包,也不想和其他端混淆在一起,所以建议是在docker安装一个新的jenkins,从而独立出来。

博主使用的jenkins版本,是jenkins--2.492.3,这个版本默认支持jdk11,比较符合当前开发的项目要求,其他版本,可在jenkins官网查询得到。

用于国内对docker进行了限制,所以这里直接docker pull是不行的,因为docker默认源是外部的,解决方法如下:docker -load实现,或者是换一个镜像源下载。博主这里使用的是换一个镜像源,具体指令如下:

docker pull docker.m.daocloud.io/jenkins/jenkins:2.462.3-lts-jdk11

然后创建对应的目录,再进行映射,示例指令如下:

docker run -d -p 8153:8080 -p 8154:50000 -v xxxxx:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -u 0 --name android_jenkins docker.m.daocloud.io/jenkins/jenkins:2.462.3-lts-jdk11

上述指令中,xxxxx是代表服务器中,正常的目录。这个目录把/var/jenkins_home挂载出来外部的,便于后续文件的处理,获取。
android_jenkins就是代表这个容器的别名,后续这个名字可以用作指令中的某些标识。

完成上述步骤以后,jenkins就已经再docker里面跑起来了。输入

服务器地址:8153

即可访问jenkins。
(2)下载安卓编译相关文件:

重点

下载之前,要有一个概念,就是把文件放到对应的容易根目录下,方便后续进行配置
相关指令有:

//进入容器
docker exec -it <容器id> /bin/bash
//复制文件到容器
cp <源文件> <目标路径>
docker cp xxx.jar android_jenkins:/xxx
//打开容器bash
docker exec -it <容器id> /bin/bash

下面就是开始下载文件了

jdk8,jdk11,gradlexxx,安卓sdk

首先,jdk很容易下载的,选中Linux版本下载即可。
gradle也是,这里从这个链接下载: 链接

android sdk安装-------------------------------------------------------------------------

先从官网,下载一个命令行工具

https://developer.android.com/studio?hl=zh-cn#command-tools

再下载

wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz

解压

tar zxvf android-sdk_r24.4.1-linux.tgz

然后把第一个command-tools移动到sdk的目录下,在去找到command-tools的bin,sdkManager,记住路径,方便后续进行指令操作

完成上述步骤后,把文件统统复制到容器里面,当然,你也可以放在外面的映射目录

然后对sdkmanager执行如下操作:

./sdkmanager --licenses
./sdkmanager "platforms;android-31"
./sdkmanager "build-tools;31.0.0"

同时,再jenkins的全局配置中,配置好gradle的路径,jdk的路径。
注意:jdk的路径,配置后,若想再构建单个项目中指定,需要下载
JDK Parameter Plugin这个插件。

上述就是所有文件复制的流程,完成后,安卓打包的所需文件,环境,都已经完成,下面就是配置单独项目进行打包了。

(3)打包配置
(3-1)新建一个项目
在这里插入图片描述
然后进入项目的配置页:
这里就不一一截图了,核心要点如下:

配置参数化构建的参数

例如dev,Debug这种,结合起来,因为最后项目都是执行gradle的,而gradle指令,无非就是assembleDebDebug之类的,所以这写参数,需要交由构建者选择。

选择合适的jdk版本

上文说到,JDK Parameter Plugin这个插件可以作为构建参数的选项,所以这里可以针对单个项目,进行指定jdk构建

配置合适的git源

这里涉及到的就是git配置,会有一些什么证书问题之类的,可以自行百度。若你的源码地址只要求账号密码,那就最简单不过了,否则需要生成证书后,在源码侧配置完成,才能进行git指令的操作

配置合适的gradle

由于项目的不一致,所以gradle也是不一致的,这里需要在全局配置好gradle所有版本,然后再单独进入某个项目中选择即可,建议也是本地配置,因为下载网址速度很慢。

后续就是发包,发送到企业微信等操作了

对于蒲公英发包,官方已经有很成熟的sh之类的脚本,请自行下载后修改。
对于发送到企微,新建机器人,添加webhock即可,这里百度也一大堆,不一一叙述。

总结

整个配置过程,就是一个接纳新事物的过程,遇到问题,网上都有解决方式,由于其他原因,这里不能放出所有脚本和指令,不过这些都是很简单的,所以请自行百度即可。

http://www.xdnf.cn/news/3017.html

相关文章:

  • 《Python实战进阶》 No46:CPython的GIL与多线程优化
  • 2025-03 机器人等级考试三级理论真题 3级
  • 区块链+医疗:破解数据共享困局,筑牢隐私安全防线
  • 聊聊Spring AI Alibaba的MermaidGenerator
  • Java 核心--泛型枚举
  • 【KWDB 创作者计划】_深度解析KWDB存储引擎
  • vue elementui 去掉默认填充 密码input导致的默认填充
  • 大连理工大学选修课——机器学习笔记(8):Boosting及提升树
  • 2025年深圳杯-东三省联赛赛题浅析-助攻快速选题
  • 第四部分:赋予网页健壮的灵魂 —— TypeScript(中)
  • word模板填充导出-(支持word导出、pdf导出)
  • 抢先体验 | Qwen3 模型发布:基于 ZStack AIOS 平台极速体验
  • 第二章-科学计算库NumPy
  • 六.割草机技术总结--6.RTK定位精度分析
  • c++线程的创建
  • Qwen3 开源!深度对比 DeepSeek,一文选对模型
  • vue3数字秒转换为时分秒格式
  • 西游记2:天花乱坠,地涌金莲;说一会道,讲一会禅,三家(指儒、释、道)配合本如然;长生不老之术、七十二般变化之能以及筋斗云之法;你从何处而来,便回到何处去吧
  • Linux基础篇、第一章_01_3安装虚拟机手动安装部署Ubuntu22.04服务器
  • MySQL日志详解
  • 算法训练营第五天 | 454.四数相加II\ 383. 赎金信\15. 三数之和\ 18. 四数之和
  • 同一个路由器接口eth0和ppp0什么不同?
  • PCB入门指南:从电阻到常见电路的全解析
  • acwing背包问题求方案数
  • NOC科普一
  • 大模型——使用coze搭建基于DeepSeek大模型的智能体实现智能客服问答
  • 你的私域该大扫除了
  • 【记录】Python调用大模型(以Deepseek和Qwen为例)
  • 思维导图的快速生成
  • 某铝制品长棒材精轧线低压无源滤波装置改造案例