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.rhkb.cn/news/461659.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF+MVVM案例实战(十)- 水波纹按钮实现与控件封装

文章目录 1、运行效果1、封装用户控件1、创建文件2、依赖属性实现2、使用封装的按钮控件1.主界面引用2.按钮属性设置3 总结1、运行效果 1、封装用户控件 1、创建文件 打开 Wpf_Examples 项目,在 UserControlLib 用户控件库中创建按钮文件 WaterRipplesButton.xaml ,修改 Us…

Spring Boot解决 406 错误之返回对象缺少Getter/Setter方法引发的问题

目录 前言1. 问题背景2. 问题分析2.1 检查返回对象 3. 解决方案3.1 确保Controller返回Result类型3.2 测试接口响应 4. 原理探讨5. 常见问题排查与优化建议结语 前言 在Spring Boot开发中,接口请求返回数据是系统交互的重要环节,尤其在开发RESTful风格的…

FineReport 单元格的特殊应用场景

1、实现鼠标点击的行变色 创建报表 1.1、鼠标点击某行时该行高亮显示 JavaScript 代码如下: _g().addEffect(highlightRow, {color: red,trigger: mousedown, });结果 1.2、鼠标悬浮某行时该行变色,离开时恢复 其他一样,就改代码 JavaScr…

MacOS的powermetrics命令查看macbook笔记本的耗能情况,附带查看ANE的工作情况

什么是 powermetrics? powermetrics 是 macOS 系统自带的一个命令行工具,用于收集和分析系统能源消耗数据。通过它,我们可以深入了解 Mac 的硬件性能、软件行为以及能源使用情况,从而优化系统配置,提高电池续航时间。…

系统架构师-一文搞定架构风格

架构风格分类 五大架构风格简介子风格数据流风格面向数据流,按照一定的顺序从前向后执行程序批处理、管道-过滤器调用/返回风格构件与构件之间存在相互调用的关系,一般是显示的调用主程序/子程序、面向对象、层次结构(层次型架构风格&#x…

第13课 数据处理

数轴是一维的,平面直角坐标系是二维的。单个学生的成绩是一维的,全班同学的成绩是二维的。 Python是强大的数据处理工具,可以处理多种数据文件。最基础的数据文件包括一维数据、二维数据、CSV格式数据文件。 这节课重点学习一维数据、二维数据…

3D人体建模的前沿探索:细数主流模型与技术进展

文章目录 一、前言二、主要内容SMPL文献内容:文献信息: SMPLX文献内容:文献信息: STAR文献信息: SCAPE文献内容:文献信息: BfSNet3. 文献内容: SMPLR文献内容:文献信息&a…

闪存学习_1:Flash-Aware Computing from Jihong Kim

闪存学习_1:Flash-Aware Computing from Jihong Kim 前言一、Storage Media:NAND Flash Memory1、概念2、编程和擦除操作3、读操作4、异地更新操作(Out-Place Update)5、数据可靠性6、闪存控制器(SSD主控)7…

【真题笔记】15年系统架构设计师要点总结

【真题笔记】15年系统架构设计师要点总结 分布式数据库中各种透明RAID 5IPv6 IPv4电子商务系统项目配置管理IPO图(输入加工输出图)桥接模式的UML图面向对象设计原则软件测试 在15年真题练习中,对错题模棱两可的考点进行重点记录与内容延申。…

软件测试基础知识总结

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 基础篇 1. 什么是软件测试? 软件测试(Software Testing)的经典定义是:在规定的条件下对程序进行操作&#xff…

「微服务」持续测试如何做?

如今,软件开发对于速度和灵活性的持续追求,催生了各种超越传统界限的方法和实践。而作为现代 DevOps 实践的基石,持续测试的出现与发展,正好满足了加速软件交付的需求。下面,我将和您探讨持续测试的最新发展&#xff0…

智能家居10G雷达感应开关模块,飞睿智能uA级别低功耗、超高灵敏度,瞬间响应快

在当今科技飞速发展的时代,智能家居已经逐渐成为人们生活中不可或缺的一部分。从智能灯光控制到智能家电的联动,每一个细节都在为我们的生活带来便利和舒适。而在众多智能家居产品中,10G 雷达感应开关模块以其独特的优势,正逐渐成…

中国大学慕课视频资源分析

右键查看视频信息 关注点在 urls 这个参数,仔细分析就会发现其实是由若干个.ts拓展名和一个.m3u8拓展名的视频文件,每一个.ts视频文件的时长在10秒钟左右。 中国大学MOOC将课程的视频文件拆分成若干个这样的.ts片段,并且用.m3u8记录这些片段…

T4--侯豆病毒识别

导入需要使用的包包括 from tensorflow import keras from tensorflow.keras import layers,models import os, PIL, pathlib #加载文件使用的 import matplotlib.pyplot as plt import tensorflow as tfdata_dir "第四周"data_dir pathlib.Path(da…

Chromium HTML5 新的 Input 类型tel对应c++

一、Input 类型: tel <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> </head> <body><form action"demo-form.php">电话号码: <input type"tel" name…

Python批量查找包含多个关键词的PDF文件

在信息爆炸的时代&#xff0c;数据管理变得愈发重要。U盘作为一种便携式存储设备&#xff0c;常常承载着我们大量的个人和工作数据。然而&#xff0c;随着文件数量的增加&#xff0c;在U盘中快速找到特定文件常常成为一个令人头疼的难题。我们通常可以采用everything来快速查找…

宿舍人走自动断电系统控制的重点

石家庄光大远通电气有限公司学生公寓人走断电人来自动送电系统是一种智能化的用电管理系统&#xff0c;旨在提高高校宿舍的用电安全性和管理效率。这种系统通常具有以下功能和特点&#xff1a; 1. 人走断电功能&#xff1a;系统能够通过感知技术检测宿舍内是否有人员活动。当检…

Maple MapleSim 2024.2 新版本发布

Maple 2024.2 Maple 2024.2 是 Maple 2024 版本的维护更新&#xff0c;在多个方面对 Maple 2024 进行了修正和改进&#xff0c;包括&#xff1a; 可以将工作表标签页打开在新的窗口中 嵌入式组件列表增加了新的功能 GUI 组件面板图标更新 可滚动矩阵的改进 修正包含非英文字…

centos7之LVS-DR模式传统部署

介绍 优缺点以及适用场景 优点&#xff1a;能负载更多的Realserver减轻LB的压力,性能高于tun模式。 缺点&#xff1a;不支持端口转发(VIP:80必须代理RIP:80),Realserver和LVS需要在同一网段下。 适用&#xff1a;适用于大多数公司&#xff0c;也是大多数公司用的最多的模式。…

Springboot 整合 Java DL4J 实现文本分类系统

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…