244 lines
6.0 KiB
Markdown
244 lines
6.0 KiB
Markdown
|
||
---
|
||
|
||
## ⭐ 概览
|
||
|
||
目标:在 Debian 12 上搭建可以 **本地编译 Android 原生 APK** 的环境,包含:
|
||
|
||
- ✅ OpenJDK (推荐 17)
|
||
|
||
- ✅ Android SDK 命令行工具(cmdline-tools)
|
||
|
||
- ✅ Platform tools(adb)与 build-tools、platforms
|
||
|
||
- ✅ 可选:NDK / CMake(用于原生 C/C++)
|
||
|
||
- ✅ Gradle(用于构建)
|
||
|
||
|
||
适用场景:CI、无 GUI 的服务器、或仅需命令行编译的开发环境。
|
||
|
||
---
|
||
|
||
## 🧾 前置条件
|
||
|
||
- 一台运行 **Debian 12** 的机器(有 sudo 权限)
|
||
|
||
- 稳定的网络(用于下载 SDK 与工具)
|
||
|
||
- 建议至少 10GB 可用磁盘空间(SDK + 系统镜像可能占用)
|
||
|
||
|
||
---
|
||
|
||
## 1️⃣ 安装基础工具
|
||
|
||
先更新并安装基础依赖:
|
||
|
||
```bash
|
||
sudo apt update
|
||
sudo apt install -y git unzip wget curl zip build-essential
|
||
```
|
||
|
||
这些工具用于下载、解压、构建等。
|
||
|
||
---
|
||
|
||
## 2️⃣ 安装 JDK(推荐:OpenJDK 17)
|
||
|
||
Android Gradle Plugin(AGP)对 JDK 有版本要求,JDK 17 是安全选择:
|
||
|
||
```bash
|
||
sudo apt install -y openjdk-17-jdk
|
||
```
|
||
|
||
检查版本:
|
||
|
||
```bash
|
||
java -version
|
||
# 期望输出类似:openjdk version "17.x"
|
||
```
|
||
|
||
---
|
||
|
||
## 3️⃣ 下载并安装 Android SDK 命令行工具
|
||
|
||
去 Google 官方下载 `commandlinetools` 压缩包,或者用 wget(示例):
|
||
|
||
```bash
|
||
mkdir -p $HOME/Android/cmdline-tools
|
||
cd $HOME/Android/cmdline-tools
|
||
wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip
|
||
unzip cmdline-tools.zip
|
||
# 有时解压出来的目录名是 cmdline-tools,移动或重命名为 latest:
|
||
mv cmdline-tools latest
|
||
```
|
||
|
||
> 🔔 注意:实际下载链接和版本会随时间变化,请按需到 Android 官方网站获取最新版。
|
||
|
||
---
|
||
|
||
## 4️⃣ 配置环境变量(推荐写入 `~/.bashrc` 或 `~/.zshrc`)
|
||
|
||
将 SDK 路径加入环境变量,保证 `sdkmanager`、`adb` 等工具可用:
|
||
|
||
```bash
|
||
# 在 ~/.bashrc 或 ~/.zshrc 添加:
|
||
export ANDROID_HOME=$HOME/Android
|
||
export ANDROID_SDK_ROOT=$ANDROID_HOME
|
||
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH
|
||
|
||
# 使之生效:
|
||
source ~/.bashrc
|
||
```
|
||
|
||
---
|
||
|
||
## 5️⃣ 使用 sdkmanager 安装常用组件
|
||
|
||
通过 `sdkmanager` 安装 `platform-tools`、指定 Android 平台与 build-tools:
|
||
|
||
```bash
|
||
sdkmanager --sdk_root=$ANDROID_HOME "platform-tools" "platforms;android-34" "build-tools;34.0.0"
|
||
```
|
||
|
||
可选安装(若需要 NDK / CMake 编译原生代码):
|
||
|
||
```bash
|
||
sdkmanager "ndk;26.1.10909125" "cmake;3.22.1"
|
||
```
|
||
|
||
如果是自动接受许可,可以使用:
|
||
|
||
```bash
|
||
yes | sdkmanager --licenses
|
||
```
|
||
|
||
---
|
||
|
||
## 6️⃣ 安装 Gradle(可选:系统级)
|
||
|
||
Android 项目通常随 Gradle Wrapper(`gradlew`)一起提供,能自动下载合适版本。但若想系统安装:
|
||
|
||
```bash
|
||
wget https://services.gradle.org/distributions/gradle-8.7-bin.zip -P /tmp
|
||
sudo unzip -d /opt/gradle /tmp/gradle-8.7-bin.zip
|
||
# 添加到 PATH(写入 ~/.bashrc):
|
||
export PATH=/opt/gradle/gradle-8.7/bin:$PATH
|
||
```
|
||
|
||
检查:
|
||
|
||
```bash
|
||
gradle -v
|
||
```
|
||
|
||
---
|
||
|
||
## 7️⃣ 创建或获取一个示例 Android 项目并编译
|
||
|
||
如果你已经有一个项目,进入项目目录并使用 Gradle Wrapper:
|
||
|
||
```bash
|
||
# 如果项目有 gradlew:
|
||
./gradlew assembleDebug
|
||
|
||
# 编译成功后 APK 通常位于:
|
||
app/build/outputs/apk/debug/app-debug.apk
|
||
```
|
||
|
||
如果想新建一个空项目,可先使用 Android Studio 在本地创建(GUI 更方便),或直接从 GitHub 上的模板克隆一个样例工程。
|
||
|
||
---
|
||
|
||
## 8️⃣ 将 APK 部署到设备或模拟器(可选)
|
||
|
||
- 真机(需开启 USB 调试):
|
||
|
||
|
||
```bash
|
||
adb install -r app/build/outputs/apk/debug/app-debug.apk
|
||
```
|
||
|
||
- 模拟器:需要安装 emulator 与系统镜像(`system-images`),并创建 AVD。命令行使用 `avdmanager` / `emulator`。
|
||
|
||
|
||
---
|
||
|
||
## 9️⃣ 常见问题 & 排查建议 ❗
|
||
|
||
- `sdkmanager` 找不到:确认 PATH 是否包含 `$ANDROID_HOME/cmdline-tools/latest/bin`。
|
||
|
||
- `java` 版本不对:Gradle/AGP 可能需要特定 JDK 版本,查看项目 `gradle.properties` / `build.gradle` 推荐的版本。
|
||
|
||
- 下载慢或失败:考虑使用代理或镜像(国内网络环境常见)。
|
||
|
||
- 权限问题:若在 `/opt` 等系统目录解压安装,需 `sudo`。
|
||
|
||
|
||
---
|
||
|
||
## 🔁 推荐一键脚本(示例)
|
||
|
||
下面给出一个**示例脚本**的框架(**请先审阅再运行**,并根据需要改版本号):
|
||
|
||
```bash
|
||
#!/usr/bin/env bash
|
||
set -e
|
||
|
||
# 安装基础工具
|
||
sudo apt update
|
||
sudo apt install -y git unzip wget curl zip build-essential openjdk-17-jdk
|
||
|
||
# 目录
|
||
SDK_ROOT=$HOME/Android
|
||
mkdir -p $SDK_ROOT/cmdline-tools
|
||
cd $SDK_ROOT/cmdline-tools
|
||
|
||
# 下载命令行工具(请确认链接是否过期)
|
||
wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip
|
||
unzip -o cmdline-tools.zip
|
||
mv cmdline-tools latest || true
|
||
|
||
# 环境变量(仅本次会话)
|
||
export ANDROID_HOME=$SDK_ROOT
|
||
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH
|
||
|
||
# 安装 SDK 组件
|
||
yes | sdkmanager --sdk_root=$ANDROID_HOME "platform-tools" "platforms;android-34" "build-tools;34.0.0"
|
||
|
||
echo "安装完成,请将下列行加入你的 ~/.bashrc 或 ~/.zshrc:"
|
||
echo "export ANDROID_HOME=\$HOME/Android"
|
||
echo "export PATH=\$ANDROID_HOME/cmdline-tools/latest/bin:\$ANDROID_HOME/platform-tools:\$PATH"
|
||
```
|
||
|
||
---
|
||
|
||
## 🔗 参考 & 延伸阅读
|
||
|
||
- Android 官方开发者网站(SDK / command line tools)
|
||
|
||
- Gradle 官方文档
|
||
|
||
- Android NDK 文档(若使用原生 C/C++)
|
||
|
||
|
||
> 上面链接建议直接在浏览器打开 Android 官方站点获取最新版工具和镜像。
|
||
|
||
---
|
||
|
||
## ✅ 小结
|
||
|
||
在 Debian 12 上搭建 Android 原生构建环境的要点:
|
||
|
||
- 安装合适的 **JDK(推荐 17)**
|
||
|
||
- 下载并配置 **Android SDK command-line tools**,并通过 `sdkmanager` 安装 `platform-tools`、`platforms` 与 `build-tools`
|
||
|
||
- 使用项目自带的 **Gradle Wrapper (`gradlew`)** 进行构建,必要时可系统安装 Gradle
|
||
|
||
- 如需本地编译原生代码,记得安装 **NDK / CMake**
|
||
|
||
|
||
---
|