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

关于安卓自动化打包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即可,这里百度也一大堆,不一一叙述。

总结

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

相关文章:

  • DeepSeek V2:引入MLA机制与指令对齐
  • 音视频项目在微服务领域的趋势场景题深度解析
  • Dify Agent节点的信息收集策略示例
  • 智驾赛道的诺曼底登陆,Momenta上海车展雄起
  • 【学习 python day5】
  • 欢度我们的节日
  • OpenHarmony-简单的HDF驱动
  • Gradio全解20——Streaming:流式传输的多媒体应用(2)——构建对话式聊天机器人
  • huggingface下载数据和模型,部分下载,本地缓存等常见问题踩坑
  • 生成项目.gitignore文件的多种高效方式
  • 分享:VTK版本的选择 - WPF空域问题
  • centos7安装NVIDIA显卡
  • 开源模型应用落地-qwen模型小试-Qwen3-8B-快速体验-pipeline方式(二)
  • JVM——Java的基本类型的实现
  • Webpack 和 Vite 中静态资源动态加载的实现原理与方法详解
  • 3dgs渲染 Nvdiffrast
  • 大数据在远程医疗中的创新应用:如何重塑医疗行业的未来
  • MySQL bin目录下的可执行文件
  • LeetCode LCP40 心算挑战题解
  • AI工作流自动化工具coze、dify、n8n,个人用户如何选择?
  • 亚马逊拟为商品标注“关税成本”,特朗普致电贝索斯讨说法
  • 徐徕任上海浦东新区副区长
  • 事关广大农民利益,农村集体经济组织法5月1日起施行
  • 中青旅:第一季度营业收入约20.54亿元,乌镇景区接待游客数量同比减少6.7%
  • 豆神教育:2024年净利润1.37亿元,同比增长334%
  • 大学男生被捉奸后将女生推下高楼?桂林理工大学辟谣