# 环境说明
* Debian Server 9.5 (需要 root 权限)
* JDK 1.8
* sdkmanager from Android Command line tools
* gradle-4.10.1
# Step 1 安装 JDK 环境
```bash
# 可以选择安装 Oracle JDK 8 或者 OpenJDK 8
# Oracle JDK 8
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
# OpenJDK 8
add-apt-repository ppa:openjdk-r/ppa
apt-get update
apt-get install openjdk-8-jdk
```
> 如果提示找不到 add-apt-repository 命令,请使用此命令获取 apt-get install software-properties-common
> 如果提示启动 dirmngr 失败,则使用此命令修复 apt-get install dirmngr --install-recommends
# Step 2 安装 Android SDK
android sdk 工具包的一些命令行工具是基于32位系统的,在64为平台运行32程序必须安装 i386 的一些依赖库,方法如下:
```bash
dpkg --add-architecture i386
apt-get update
apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1
```
接着下载用于 Linux 的 Android SDK 包并解压。下载地址可前往 [Android 开发者网站](https://developer.android.com/studio#downloads) 获取。
```bash
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux-4333796.zip
```
编辑 .profile 或者 .bash_profile 把下面的目录增加到 `PATH` 的搜索路径中,确保 Android SDK 的的一些命令工具可以直接在终端使用,比如 `sdkmanager` 命令。
```bash
ANDROID_HOME=$HOME/android-sdk-linux
export PATH="$PATH:$ANDROID_HOME/tools:$PATH:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools"
export ANDROID_HOME
```
使用命令获取 `platform-tools` 和 `platforms;android-28`,其中后者是本文发布时最新的 Android 内部版本。
```bash
sdkmanager "platform-tools" "platforms;android-28"
```
# Step 3 安装 gradle 构建环境
下载 grdle 二进制包,释放到本地Home目录,创建名字为"gradle"的符号链接,符号连接的好处是方便版本更新,有了新的版本直接修改符号链接即可。
```bash
wget https://services.gradle.org/distributions/gradle-4.10.1-all.zip
unzip gradle-4.10.1-all.zip
ln -s gradle-4.10.1 gradle
```
配置gradle环境变量并使其生效,编辑 ~/.profie 文件增加下面内容
```bash
GRADLE_HOME=$HOME/gradle
export PATH=$PATH:$GRADLE_HOME/bin
```
至此,构建环境已准备完毕。可以准备一个简单的 Android 工程,适当修改 `build.gradle` 并运行 `gradle assemble` 测试构建工作。编译产物在工程根目录的 `build/outputs/apk` 中。
> Tips: 需要重点留意 `build.gradle` 的签名文件配置部分,`storeFile` 的路径配置。通常需要写为绝对路径指向签名密钥文件 (jks 文件)。
### 参考&致谢
* [Install Any Oracle Java (JDK) Version In Ubuntu, Debian, Linux Mint Or Fedora With install-java.sh](https://www.linuxuprising.com/2019/02/install-any-oracle-java-jdk-version-in.html)
* [打造一个全命令行的Android构建系统 - 简书](https://www.jianshu.com/p/1694ea9a3f90)
基于Gradle 的 Android 工程自动化构建实践