在 CentOS 7 下构建 Android 编译环境

在 CentOS 7 下构建 Android 编译环境

Android Studio 之外,还可以通过 Gradle Script 来编译 Android 项目并构建和测试应用。
本文是一个备忘录,以记录我在 x86_64 GNU/Linux 系统 CentOS Linux release 7.8.2003 下折腾 Android 编译环境的一个过程。

本文将会安装以下组件:

GitJDK 1.8Go 1.14.6Android SDK  Android NDKRust 1.45.0
  Android Targets:
    armv7-linux-androideabi
    aarch64-linux-android
    i686-linux-android
    x86_64-linux-android

以下的所有过程均是在 root 用户下操作。

1. 安装 Git 和 JDK 1.8

这两个组件发行版自带,通过以下命令即可安装。与此同时,再安装一些其他必要的组件 wget 和 unzip。

$ yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel wget unzip git

完成后通过以下命令验证 JDK 版本号。

$ java -version

返回

openjdk version "1.8.0_252"OpenJDK Runtime Environment (build 1.8.0_252-b09)OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
$ javac -version

返回

javac 1.8.0_252

2. 安装 Go

目前 Go 的最新版是 1.14.6。安装过程如下。

$ GO_VERSION=1.14.6$ wget -O /tmp/go${GO_VERSION}.tar.gz https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz
$ tar -C /usr/local -xzf /tmp/go${GO_VERSION}.tar.gz
$ rm -fv /tmp/go${GO_VERSION}.tar.gz
$ export PATH=/usr/local/go/bin:$PATH

完成后通过以下命令验证 Go 版本号。

$ go version

返回

go version go1.14.6 linux/amd64

3. 安装 Android SDK 及 Android NDK

假设 ANDROID_HOME 路径是 /opt/sdk。安装过程如下。

$ mkdir -p /opt/sdk && cd /opt/sdk
$ wget https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip
$ unzip -q commandlinetools-linux-6609375_latest.zip
$ rm -fv commandlinetools-linux-6609375_latest.zip
$ export PATH=/opt/sdk/tools/bin:$PATH
$ [ -z "${ANDROID_HOME}" ] && export ANDROID_HOME=/opt/sdk
$ yes | sdkmanager --sdk_root=${ANDROID_HOME} --licenses

通过 sdkmanager 来安装一些组件。一条命令一步到位。如下。

$ sdkmanager --sdk_root=${ANDROID_HOME} "platform-tools" "platforms;android-30" "platforms;android-29" "ndk-bundle" "ndk;21.0.6113669" "build-tools;29.0.2"

完成后,确认已安装的列表。

$ sdkmanager --sdk_root=${ANDROID_HOME} --list

返回

Installed packages:
  Path                 | Version      | Description                     | Location             
  -------              | -------      | -------                         | -------              
  build-tools;29.0.2   | 29.0.2       | Android SDK Build-Tools 29.0.2  | build-tools/29.0.2/  
  ndk-bundle           | 21.3.6528147 | NDK                             | ndk-bundle/          
  ndk;21.0.6113669     | 21.0.6113669 | NDK (Side by side) 21.0.6113669 | ndk/21.0.6113669/    
  patcher;v4           | 1            | SDK Patch Applier v4            | patcher/v4/          
  platform-tools       | 30.0.3       | Android SDK Platform-Tools      | platform-tools/      
  platforms;android-29 | 4            | Android SDK Platform 29         | platforms/android-29/
  platforms;android-30 | 1            | Android SDK Platform 30         | platforms/android-30/
  tools                | 2.1.0        | Android SDK Tools 2.1           | tools/               Available Packages:
  以下省略

4. 安装 Rust 及其它

目前 Rust 的最新版是 1.45.0。安装过程如下。

$ export RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo
$ RUST_VERSION=1.45.0$ RUSTARCH='x86_64-unknown-linux-gnu'$ wget -O /tmp/rustup-init "https://static.rust-lang.org/rustup/archive/1.21.1/${RUSTARCH}/rustup-init"$ chmod 755 /tmp/rustup-init
$ /tmp/rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION
$ rm -fv /tmp/rustup-init
$ chmod -R a+w ${RUSTUP_HOME} ${CARGO_HOME}$ export PATH=/usr/local/cargo/bin:$PATH

完成后通过以下命令验证 Rust 及组件的版本号。

$ rustup --version

返回

rustup 1.21.1 (7832b2ebe 2019-12-20)
$ cargo --version

返回

cargo 1.45.0 (744bd1fbb 2020-06-15)
$ rustc --version

返回

rustc 1.45.0 (5c1f21c3b 2020-07-13)

Rust 安装以下 Android Targets:

armv7-linux-androideabi
aarch64-linux-android
i686-linux-android
x86_64-linux-android

安装过程如下。

$ rustup install stable
$ rustup default stable
$ rustup target add armv7-linux-androideabi
$ rustup target add i686-linux-android
$ rustup target add aarch64-linux-android
$ rustup target add x86_64-linux-android

5. 持久化环境变量

上面的安装步骤是通过 export 来定义系统 PATH 的,在退出当前登录后就会丢失设置。
因此需要持久化一些环境变量。
编辑 ~/.bash_profile 文件。添加 ANDROID_HOMERUSTUP_HOMECARGO_HOME 的定义以及增加 PATH 定义。
最后呈现内容如下。

# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsexport ANDROID_HOME=/opt/sdk RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo

PATH=$PATH:$HOME/bin:$ANDROID_HOME/tools/bin:/usr/local/go/bin:/usr/local/cargo/bin

export PATH

6. 编译 Android 项目

这里选一个比较简单的项目来练手:v2ray-plugin-android
编译过程如下。

$ git clone https://github.com/shadowsocks/v2ray-plugin-android.git
$ cd v2ray-plugin-android
$ git submodule update --init --recursive
$ ./gradlew assembleRelease

完成后,编译好的 apk 文件位于 app/build/outputs/apk/release 路径下。
Android 系统要求所有 apk 必须先使用证书进行数字签名,然后才能安装到设备上或进行更新。
因此这些 apk 文件还不能被直接拿来安装。
至于如何签名,请参考以下链接,过程省略。
https://developer.android.com/studio/publish/app-signing

7. 总结

当你习惯于用命令行做事的时候,你会发现效率往往会有很大的提升。编译代码亦是如此。

本文转载自https://teddysun.com/584.html

风软资源站
风软资源站管理员

软件分享,如沐春风!

  • 声明:根据我国《计算机软件保护条例》第十七条规定:“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24小时之内删除,否则后果均由用户承担责任。
  • 本文地址:https://www.ifengsoft.com/54.html
上一篇:软媒魔方 PCMaster v6.25.0 去广告绿色纯净版
下一篇:使用 Docker 快速部署 Shadowsocks-libev + v2ray-plugin

留言评论

暂无留言
请先 登录 再评论,若不是会员请先 注册