Ubuntu(18.04)上搭建使用终端打包Android Apk环境
一、基础环境配置
- 1.1更新当前环境
- sudo apt-get update
- sudo apt-get upgrade
- 1.2 查看java环境
- 终端直接输入java -version,如果没有安装jdk,那么会提示安装open-jdk,按提示安装即可
- 这里我们选择安装java-11-openjdk,指令:sudo apt-get install java
- java安装成功后,使用java -version验证是否安装成功,java环境变量可设可不设
二、Android Gradle环境搭建
- 2.1 确保java环境已安装
- 2.2 安装gradle,执行如下指令,gradle-7.5-bin.zip这个取自git项目中,将在下面介绍
wget https\://services.gradle.org/distributions/gradle-7.5-bin.zip -P /tmp
unzip -d opt/gradle /tmp/gradle-*.zip
ls /opt/gradle
- 2.3 配置Gradle环境
sudo vim /etc/profile.d/gradle.sh
# gradle.sh写入内容
export GRADLE_HOME=/opt/gradle/gradle-xxx // 版本号
export PATH=${GRADLE_HOME}/bin:${PATH}
# 保存设置执行权限
chmod +x /etc/profile.d/gradle.sh
source /etc/profile.d/gradle.sh
gradle -v
- 2.4 配置gradle存在的问题
问题1:
To connect to services.gradle.org insecurely, use `--no-check-certificate'
将下载方式更改为:
wget --no-check-certificate -c https\://services.gradle.org/distributions/gradle-7.5-bin.zip -P /tmp
问题2:下载速度极慢
将源进行更换,链接更换为:
https://mirrors.cloud.tencent.com/gradle/gradle-7.5-bin.zip
如需查看其他版本的gradle下载,可去tencent gradle查看 此处感谢不一样的老墨提供的解决办法
三、Android SDK下载
- 3.1 配置java环境,详见上述第一部分
- 3.2 下载Android cmdline-tools,通过此工具来管理Android Sdk
- 最新版本的cmdline-tools下载地址,
- 下载最新的cmdline-tools,发现要求的最低java版本是java 17,这样要么升级java版本,要么下载cmdline-tools旧版本,因当前Ubuntu 18.04下载的是java 11,所以选择降低cmdline-tools版本
- 3.3 从上述地址下载老版本的cmdline-tools,开始进行配置操作
# 解压安装包
unzip cmdline-tools.zip
# 将解压缩的cmdline-tools目录移至到指定的Android Sdk目录,如果没有此目录,则在当前用户下任意创建一个文件目录,例如Android_Sdk,注意下述命令{user_name}为当前用户的名称,不要直接复制
mv -r cmdline-tools /home/{user_name}/Android_Sdk
cd /home/{user_name}/Android_Sdk/cmdline-tools
# 在解压过的cmdline-tools目录下创建一个名为latest的子文件,并将cmdline-tools目录下的文件复制到latest目录下
cd cmdline-tools
mv NOTICE.txt bin lib source.properties ./latest/
# 至此cmdline-tools准备工作已完成,如需下载其他版本的cmdline-tools,可以使用如下命令
./latest/bin/sdkmanager --install "cmdline-tools:12.0" // 12.0是想要下载的版本号
- 3.4 配置cmdline-tools环境变量
# 修改当前用户环境变量文件
vim ~/.bashrc
# 在文件末尾加入,注意cmdline-tools文件的目录
export PATH=$PATH:/home/{user_name}/Android_Sdk/cmdline-tools/latest;home/{user_name}/Android_Sdk/cmdline-tools/latest/bin
# 退出保存,并使其生效
source ~/.bashrc
# 开始下载android sdk、ndk、cmake,具体的版本都可以通过命令查看
sdkmanager --list | grep platform
# 多个过滤条件可以这么写
sdkmanager --list | grep "platform\|cmake"
# 下述命令中的版本号基于当前查询得出,具体下载什么版本可以依据当前需要打包的项目来下载。下面的命令执行完成后,如果不知道下载的文件在哪,其实就在配置cmdline-tools的目录/home/{user_name}/Android_Sdk
sdkmanager --install "platforms;android-32" "platform-tools" "build-tools:32.0.0" "cmake;3.22.1" "ndk;23.2.8568313"
# 为Android Sdk和NDK配置环境变量
vim ~/.bashrc
# 在文件中加入
export ANDROID_SDK=/home/{user_name}/Android_Sdk
export ANDROID_NDK_ROOT=/home/{user_name}/Android_Sdkndk/23.2.8568313
export PATH=ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH
export ANDROID_NDK=$ANDROID_NDK_ROOT
export ANDROID_HOME=$ANDROID_SDK
# 退出vim并保存修改,执行命令时期生效
source ~/.bashrc
# 也可以直接执行命令查看设置的环境变量,如下:
$ANDROID_SDK
四、项目打包
- 4.1 配置git,从远程服务器拉取项目
- 通过指令 sudo apt-get install git 安装git
- 配置git相关信息
git config --global user.name "user_name"
git config --global user.email "user_email"
# 生成ssh key,可以一直按回车键
ssh-keygen -t rsa -C "上述配置的user_email"
# 生成完毕后,查看ssk key
cat ~/.ssh/id_rsa.pub
# 将文件的整个内容复制,添加到git仓库的shh key配置里面
- 4.2 通过git拉取远程项目(过于简单,省略...)
- 4.3 通过gradle命令打包
- 前置工作,因为local.properties文件一般都是忽略文件,因为在项目从远程服务器拉取下来后,需要在本地创建
vim local.properties
# 在local.properties添加sdk配置信息,文件路径引用上述部分
sdk.dir=/home/{user_name}/Android_Sdk
# 保存修改并退出后,开始执行打包命令
gradle assembleRelease
# 打包完毕后,apk文件的地址一般位于project_name/app/build/outputs/apk/目录下,其下还会存在子目录,具体情况需要看project_name/app/build.gradle文件中的android.applicationVariants.all的配置部分
- 查看当前项目使用了什么版本的sdk,可在project_name/app/build.gradle文件中的defaultConfig部分查看targetSdk对应的版本号
- ndk的版本号,当前项目在编译阶段,如果出现为下载ndk的情况下,会自动下载缺失的ndk
后续
如果不知道什么是Windows下的Ubuntu子系统,可以查看这篇文章# Windows 使用ubantu子系统