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

Android编译环境构建(二)(可用于物理机、虚拟机、容器化Jenkins环境)

文章目录

  • 需求
  • 环境要求
  • 文件下载
    • Gradle Version:7.5
    • cmdline-tools
    • 至此普通物理环境的Android编译环境已部署完毕
  • 部署maven(可选)
  • Jenkins配置Android构建环境

说明:
物理环境:物理机、虚拟机等
容器化环境:docker等

需求

Gradle Version:7.5 # 必需项,用于开源构建自动化工具
cmdline-tools # 必需项,SDK 管理器,用于下载SDK、Build-Tools
Android SDK 35 # 必需项,Software Development Kit,软件开发工具包
Build-Tools 35 # 必需项,Android项目构建工具
platform-tools # 必需项,SDK 平台工具
ndkVersion:21.4.7075529 # 非必需项,Native Development Kit,本地开发工具包
apache-maven-3.9.9 # 非必需项,此次为Android编译环境构建

环境要求

JDK17:由于新版SDK只能够使用cmdline-tools下载,而官网提供最版的cmdline-tools又需要JDK17的环境
这里默认已经准备好了JDK17环境

文件下载

Gradle Version:7.5

可参考:https://developer.aliyun.com/article/1377971
所有版本下载地址:https://gradle.org/releases/

  1. 下载
  • 下载方法一(推荐):
    Windows内下载完后上传到Linux服务器中,以7.5版本为例
    打开下载地址后,找到你需要的版本,点击对应版本中Download: binary-only or complete (checksums)中的"complete",即可开始下载
    若Linux服务器中没有解压程序,建议在Windows中解压出来后再将整个文件夹上传至Linux服务器指定的目录中

  • 下载方法二:
    Linux内下载并解压
    将下载方法一中的下载地址复制粘贴
    注意:需要已安装unzip,否则无法解压

# 使用curl下载
curl -o /tmp/ https://github.com/gradle/gradle-distributions/releases/download/v7.5.0/gradle-7.5-all.zip
# 使用wegt下载
wget -P /tmp/gradle-7.5-all.zip https://github.com/gradle/gradle-distributions/releases/download/v7.5.0/gradle-7.5-all.zip#将下载好的压缩包解压至 /opt/ 目录中
unzip /tmp/gradle-7.5-all.zip -d /opt/
  1. 准备文件
    我这边已将Gradle-7.5文件夹上传到了Linux服务器中的 /opt/ 目录下
  • 对于容器化环境部署的Jenkins,需要多执行一步,物理环境则不需要执行该步骤
    将gradle-7.5从Linux服务器中,复制粘贴到容器中
# docker cp Gradle目录路径 Jenkins所在容器名称(或ID):容器内存放Gradle的目录路径
docker cp /opt/gradle-7.5/ jenkins_new:/opt/ 

Gradle-7.5目录构成如下:

root@bdf796726e0a:/# ls -l /opt/gradle-7.5/
total 60
-rw-r--r--  1 root root 23606 Jan 31  1980 LICENSE
-rw-r--r--  1 root root   868 Jan 31  1980 NOTICE
-rw-r--r--  1 root root   976 Jan 31  1980 README
drwxr-xr-x  2 root root  4096 Jan 31  1980 bin
drwxr-xr-x  5 root root  4096 Jan 31  1980 docs
drwxr-xr-x  2 root root  4096 Jan 31  1980 init.d
drwxr-xr-x  3 root root 12288 Jan 31  1980 lib
drwxr-xr-x 93 root root  4096 Jan 31  1980 src
  1. 配置环境变量,物理环境执行,容器化环境无需执行
vi /etc/profile# 在文件末尾添加
export GRADLE_HOME=/opt/gradle-7.5
export PATH=$GRADLE_HOME/bin:$PATH# 刷新环境变量
source /etc/profile# 测试是否安装成功,有版本输出则为成功
gradle -v

cmdline-tools

sdkmanager
打开网页后,在最下方找到仅限命令行工具,点击下载Linux版的
下载页面:https://developer.android.com/studio?hl=zh-cn
使用文档页面:https://developer.android.com/tools/sdkmanager?hl=zh-cn

若下方命令下载失败,可进入platform-tools下载页面单独下载platform-tools:
https://developer.android.com/tools/releases/platform-tools?hl=zh-cn#downloads.html

  1. 目录准备
# Linux 服务器新建android-sdk目录
mkdir -P /opt/android-sdk在Windows中解压出来后再将整个cmdline-tools文件夹上传至Linux服务器的 /opt/android-sdk/ 目录中# 在Linux服务的cmdline-tools目录中新建latest目录,并将目录内容移动到新建的latest目录中
mkdir -P /opt/android-sdk/cmdline-tools/latest # 创建latest目录
cd /opt/android-sdk/cmdline-tools/ # 进入cmdline-tools目录
mv bin/ lib/ NOTICE.txt source.properties -t latest/ # 将原始 cmdline-tools 目录内容(包括 lib 目录、bin 目录、NOTICE.txt 文件和 source.properties 文件)移动到新创建的 latest 目录中
  1. 下载程序
# 查询可用sdk build-tools等工具列表,--channel=0 代表Stable 稳定版
/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager  --list --channel=0# 下载Android SDK 35 Build-Tools 35
/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root=/opt/android-sdk "platform-tools" "platforms;android-35" "build-tools;35.0.0" "ndk;21.4.7075529"# 核对文件,下载完成后应该会有以下目录
ls -l /opt/android-sdk/
total 32
drwxr-xr-x 4 root root 4096 Oct 29 09:59 build-tools
drwxr-xr-x 3 root root 4096 Oct 28 06:52 cmdline-tools
drwxr-xr-x 8 root root 4096 Oct 29 09:59 emulator
drwxr-xr-x 2 root root 4096 Oct 28 07:46 licenses
drwxr-xr-x 3 root root 4096 Oct 28 07:49 ndk
drwxr-xr-x 3 root root 4096 Oct 28 08:03 platform-tools
drwxr-xr-x 5 root root 4096 Oct 29 10:00 platforms
drwxr-xr-x 6 root root 4096 Oct 29 09:59 tools
  1. 配置环境变量,物理环境执行,容器化环境无需执行
vi /etc/profile# 在文件末尾添加
export ANDROID_HOME=/opt/android-sdk
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export NDK=/opt/android/ndk/21.4.7075529/
export PATH=${PATH}:$NDK# 刷新环境变量
source /etc/profile# 测试是否安装成功,有版本输出则为成功
adb --version

至此普通物理环境的Android编译环境已部署完毕

4 拷贝程序到容器中,物理环境无需执行,容器化环境执行
将android-sdk从Linux服务器中,复制粘贴到容器中

# docker cp android-sdk目录路径 Jenkins所在容器名称(或ID):容器内存放android-sdk的目录路径
docker cp /opt/android-sdk/ jenkins_new:/opt/ 

部署maven(可选)

  1. 下载
    官网地址:https://maven.apache.org/download.cgi
    下载 apache-maven-3.9.9-bin.zip
    按照上面安装gradle的方法,将压缩包上传到Linux服务器 /opt/ 目录中

  2. 配置环境变量,物理环境执行,容器化环境无需执行

vi /etc/profile# 在文件末尾添加
export M2_HOME=/opt/apache-maven-3.9.9
export PATH=$PATH:$M2_HOME/bin# 刷新环境变量
source /etc/profile# 测试是否安装成功,有版本输出则为成功
mvn -version
  1. 拷贝程序到容器中,物理环境无需执行,容器化环境执行
    将apache-maven-3.9.9从Linux服务器中,复制粘贴到容器中
# docker cp maven目录路径 Jenkins所在容器名称(或ID):容器内存放maven的目录路径
docker cp /opt/apache-maven-3.9.9/ jenkins_new:/opt/ 

Jenkins配置Android构建环境

  1. 配置JDK
    路径:系统管理 > 全局工具配置 > JDK 安装
    配置完成后,点击保存
    配置如图:
    请添加图片描述
  2. 配置Gradle
    路径:系统管理 > 全局工具配置 > Gradle 安装
    配置完成后,点击保存
    配置如图:
    请添加图片描述
  3. 配置android SDK、NDK
    路径:系统管理 > System > 全局属性
    勾选环境变量,配置完成后,点击保存
    配置如图:
    请添加图片描述
  4. 配置Maven(可选)
    路径:系统管理 > 全局工具配置 > Maven 安装
    配置完成后,点击保存
    请添加图片描述
http://www.lryc.cn/news/476816.html

相关文章:

  • Web服务器(实验)
  • 【湖南-常德】《市级信息化建设项目初步设计方案编制规范和支出预算编制标准(试行)》-省市费用标准解读系列05
  • 微信小程序 https://pcapi-xiaotuxian-front-devtest.itheima.net 不在以下 request 合法域名
  • vue什么时候渲染旧的VDOM,什么时候渲染新的VDOM
  • 【Qwen2技术报告分析】从模型架构 数据构建和模型评估出发
  • Naive UI 选择器 Select 的:render-option怎么使用(Vue3 + TS)(鼠标悬停该条数据的时候展示全部内容)
  • 使用Mac如何才能提高OCR与翻译的效率
  • QML----复制指定下标的ListModel数据
  • CSS Text(文本)
  • 聊一聊Spring中的@Transactional注解【下】【注解失效场景】
  • 对称加密与非堆成加密
  • 江协科技STM32学习- P28 USART串口数据包
  • Linux脚本循环(for、while、until)
  • 文件系统上云的挑战
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十一章 制作Ubuntu文件系统
  • 中间件漏洞总结
  • PySpark Yarn集群模式
  • Matlab基于经纬度点并行提取指定日期的tiff栅格位置的值
  • npm入门教程19:npm包管理
  • 【NOIP提高组】虫食算
  • 软件测试面试题个人总结
  • HTML 语法规范——代码注释、缩进与格式、标签与属性、字符编码等
  • 【Wi-Fi】WiFi中QAM及16-QAM、64-QAM、512-QAM、1024-QAM、2048-QAM、4096-QAM整理
  • 红黑树的平衡之舞:数据结构中的优雅艺术
  • angular实现list列表和翻页效果
  • 闯关leetcode——3285. Find Indices of Stable Mountains
  • 算法【Java】—— 动态规划之斐波那契数列模型
  • idea连接docker并构建镜像
  • 百度如何打造AI原生研发新范式?
  • RedisTemplate类中的常用方法粗解(简单明了,预计5分钟看完)