重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
android-build by hyperb1iss/hyperdroid-skill
npx skills add https://github.com/hyperb1iss/hyperdroid-skill --skill android-build本技能涵盖通过 Gradle CLI 构建 Android 应用以及通过 AOSP/LineageOS 构建自定义 ROM。
./gradlew tasks # 列出可用任务
./gradlew assembleDebug # 构建调试版 APK
./gradlew assembleRelease # 构建发布版 APK
./gradlew installDebug # 构建并安装到设备
./gradlew bundleRelease # 构建 AAB (App Bundle)
# APK 输出位置
# app/build/outputs/apk/debug/app-debug.apk
# app/build/outputs/apk/release/app-release.apk
./gradlew assembleFreeDebug # 产品风味 + 构建类型
./gradlew assemblePaidRelease
./gradlew assembleDebug --info # 详细输出
./gradlew assembleRelease -x test # 跳过测试
./gradlew test # 单元测试
./gradlew testDebugUnitTest # 仅调试版单元测试
./gradlew connectedAndroidTest # 仪器化测试
./gradlew connectedCheck # 所有连接的测试
# 运行特定测试
./gradlew test --tests "*.MyTestClass"
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
./gradlew lint # 运行 lint
./gradlew lintDebug # 仅调试版 (更快)
./gradlew ktlintCheck # Kotlin 风格检查 (如果已配置)
./gradlew detekt # Detekt 分析 (如果已配置)
./gradlew clean # 清理构建
./gradlew clean assembleDebug # 清理 + 构建
./gradlew --refresh-dependencies # 强制刷新依赖项
./gradlew --stop # 停止 Gradle 守护进程
./gradlew dependencies # 所有依赖项
./gradlew app:dependencies # 模块依赖项
./gradlew dependencyInsight --dependency <name>
调试密钥库位置:
~/.android/debug.keystore~/.android/debug.keystoreC:\Users\<user>\.android\debug.keystore密码:android,别名:androiddebugkey
# 创建发布版密钥库
keytool -genkey -v -keystore release.keystore \
-alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
./gradlew assembleDebug --parallel # 并行构建
./gradlew assembleDebug --build-cache # 使用缓存
./gradlew assembleDebug --offline # 离线模式
./gradlew --scan # 构建扫描 (上传数据)
./gradlew --profile # 本地性能分析报告
org.gradle.jvmargs=-Xmx4g -XX:+HeapDumpOnOutOfMemoryError
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=true
android.useAndroidX=true
sdkmanager --list # 列出可用包
sdkmanager --list | grep system # 过滤系统镜像
sdkmanager "platform-tools" # 安装包
sdkmanager "platforms;android-34" # 安装平台
sdkmanager "system-images;android-34;google_apis;x86_64"
sdkmanager --update # 更新所有包
sdkmanager --licenses # 接受许可证
avdmanager list device # 列出设备配置文件
avdmanager list avd # 列出已创建的 AVD
# 创建 AVD
avdmanager create avd -n my_avd \
-k "system-images;android-34;google_apis;x86_64" \
-d pixel_6
avdmanager delete avd -n my_avd
emulator -list-avds # 列出 AVD
emulator @my_avd # 启动 AVD
emulator @my_avd -no-snapshot # 全新启动
emulator @my_avd -no-window # 无头模式
emulator @my_avd -wipe-data # 恢复出厂设置
# 安装 repo 工具
mkdir -p ~/.bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+x ~/.bin/repo
export PATH="$HOME/.bin:$PATH"
# 初始化 repo
mkdir android && cd android
repo init -u https://github.com/LineageOS/android.git -b lineage-21.0
# 或 AOSP: repo init -u https://android.googlesource.com/platform/manifest
# 同步源代码
repo sync -c -j$(nproc) --force-sync --no-tags --no-clone-bundle
# 设置环境
source build/envsetup.sh
# 选择设备
lunch <device>-userdebug # AOSP
breakfast <device> # LineageOS
# 构建
m # 完整构建
mka bacon # LineageOS (生成可刷写 zip)
mka bootimage # 仅 boot.img
mka systemimage # 仅 system
# 并行构建
m -j$(nproc)
| 变体 | 用途 |
|---|---|
user | 生产环境,无 root,调试受限 |
userdebug | 类似 user + root + 调试 |
eng | 开发环境,包含所有调试工具 |
m bootimage # 内核 + ramdisk
m systemimage # 系统分区
m vendorimage # 供应商分区
m otapackage # OTA zip 包
mka bacon # LineageOS 可刷写 zip 包
# 特定模块
m Settings # 仅 Settings 应用
mm # 构建当前目录
mmm packages/apps/Settings # 构建特定路径
breakfast <device> # 设置并同步设备依赖
brunch <device> # breakfast + mka bacon
# 从 Gerrit 挑选提交
repopick <change_number>
repopick -t <topic>
# 同步特定项目
repo sync packages/apps/Settings
out/target/product/<device>/
├── boot.img # 内核 + ramdisk
├── system.img # 系统分区
├── vendor.img # 供应商分区
├── lineage-*.zip # 可刷写 zip (LineageOS)
└── recovery.img # 恢复镜像 (非 A/B)
device/<vendor>/<device>/
├── AndroidProducts.mk # 产品 makefile 列表
├── BoardConfig.mk # 板级配置
├── device.mk # 设备 makefile
├── lineage_<device>.mk # LineageOS 产品定义
├── extract-files.sh # 供应商二进制文件提取脚本
├── proprietary-files.txt # 二进制文件列表
├── sepolicy/ # SELinux 策略
└── overlay/ # 资源覆盖层
BoardConfig.mk - 硬件配置:
TARGET_ARCH := arm64
TARGET_BOARD_PLATFORM := <platform>
TARGET_BOOTLOADER_BOARD_NAME := <device>
BOARD_KERNEL_CMDLINE := ...
BOARD_BOOT_HEADER_VERSION := 4
device.mk - 设备包:
PRODUCT_PACKAGES += \
android.hardware.audio@7.0-impl \
audio.primary.$(TARGET_BOARD_PLATFORM)
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/audio_policy.conf:...
# 设置
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
# 或使用 Clang:
export CC=clang
export CLANG_TRIPLE=aarch64-linux-gnu-
# 配置
make <device>_defconfig
# 构建
make -j$(nproc)
# 输出
arch/arm64/boot/Image.gz
# 在 BoardConfig.mk 中
TARGET_KERNEL_SOURCE := kernel/<vendor>/<device>
TARGET_KERNEL_CONFIG := <device>_defconfig
TARGET_KERNEL_CLANG_COMPILE := true
# 内存溢出
export GRADLE_OPTS="-Xmx4g"
# 守护进程问题
./gradlew --stop
rm -rf ~/.gradle/daemon
# 缓存问题
./gradlew clean --refresh-dependencies
# Ninja 错误 - 通常是依赖问题
m clean && m
# Jack 服务器 (旧版本构建)
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
# SELinux 问题
audit2allow -i audit.log
# Gradle
./gradlew assembleDebug --stacktrace
./gradlew assembleDebug --info
# AOSP
m 2>&1 | tee build.log
| 任务 | 命令 |
|---|---|
| 构建调试版 | ./gradlew assembleDebug |
| 构建发布版 | ./gradlew assembleRelease |
| 安装 | ./gradlew installDebug |
| 测试 | ./gradlew test |
| 代码检查 | ./gradlew lint |
| 清理 | ./gradlew clean |
| 依赖项 | ./gradlew dependencies |
| 任务 | 命令 |
|---|---|
| 设置环境 | source build/envsetup.sh |
| 选择设备 | lunch <device>-userdebug |
| 完整构建 | m |
| LineageOS zip 包 | mka bacon |
| 仅内核 | mka bootimage |
| 同步 | repo sync -c -j$(nproc) |
每周安装次数
52
仓库
GitHub 星标数
9
首次出现
2026年1月28日
安全审计
已安装于
opencode44
gemini-cli42
codex42
github-copilot41
cursor39
kimi-cli38
This skill covers building Android apps via Gradle CLI and building custom ROMs via AOSP/LineageOS.
./gradlew tasks # List available tasks
./gradlew assembleDebug # Build debug APK
./gradlew assembleRelease # Build release APK
./gradlew installDebug # Build + install to device
./gradlew bundleRelease # Build AAB (App Bundle)
# APK output location
# app/build/outputs/apk/debug/app-debug.apk
# app/build/outputs/apk/release/app-release.apk
./gradlew assembleFreeDebug # Flavor + build type
./gradlew assemblePaidRelease
./gradlew assembleDebug --info # Verbose output
./gradlew assembleRelease -x test # Skip tests
./gradlew test # Unit tests
./gradlew testDebugUnitTest # Debug unit tests only
./gradlew connectedAndroidTest # Instrumented tests
./gradlew connectedCheck # All connected tests
# Run specific test
./gradlew test --tests "*.MyTestClass"
./gradlew lint # Run lint
./gradlew lintDebug # Debug only (faster)
./gradlew ktlintCheck # Kotlin style (if configured)
./gradlew detekt # Detekt analysis (if configured)
./gradlew clean # Clean build
./gradlew clean assembleDebug # Clean + build
./gradlew --refresh-dependencies # Force dependency refresh
./gradlew --stop # Stop Gradle daemon
./gradlew dependencies # All dependencies
./gradlew app:dependencies # Module dependencies
./gradlew dependencyInsight --dependency <name>
Debug keystore location:
~/.android/debug.keystore~/.android/debug.keystoreC:\Users\<user>\.android\debug.keystorePassword: android, Alias: androiddebugkey
# Create release keystore
keytool -genkey -v -keystore release.keystore \
-alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
./gradlew assembleDebug --parallel # Parallel builds
./gradlew assembleDebug --build-cache # Use cache
./gradlew assembleDebug --offline # Offline mode
./gradlew --scan # Build scan (uploads data)
./gradlew --profile # Local profile report
org.gradle.jvmargs=-Xmx4g -XX:+HeapDumpOnOutOfMemoryError
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=true
android.useAndroidX=true
sdkmanager --list # List available packages
sdkmanager --list | grep system # Filter system images
sdkmanager "platform-tools" # Install package
sdkmanager "platforms;android-34" # Install platform
sdkmanager "system-images;android-34;google_apis;x86_64"
sdkmanager --update # Update all
sdkmanager --licenses # Accept licenses
avdmanager list device # List device profiles
avdmanager list avd # List created AVDs
# Create AVD
avdmanager create avd -n my_avd \
-k "system-images;android-34;google_apis;x86_64" \
-d pixel_6
avdmanager delete avd -n my_avd
emulator -list-avds # List AVDs
emulator @my_avd # Start AVD
emulator @my_avd -no-snapshot # Fresh boot
emulator @my_avd -no-window # Headless
emulator @my_avd -wipe-data # Factory reset
# Install repo tool
mkdir -p ~/.bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+x ~/.bin/repo
export PATH="$HOME/.bin:$PATH"
# Initialize repo
mkdir android && cd android
repo init -u https://github.com/LineageOS/android.git -b lineage-21.0
# Or AOSP: repo init -u https://android.googlesource.com/platform/manifest
# Sync source
repo sync -c -j$(nproc) --force-sync --no-tags --no-clone-bundle
# Setup environment
source build/envsetup.sh
# Select device
lunch <device>-userdebug # AOSP
breakfast <device> # LineageOS
# Build
m # Full build
mka bacon # LineageOS (with flashable zip)
mka bootimage # Just boot.img
mka systemimage # Just system
# Parallel build
m -j$(nproc)
| Variant | Purpose |
|---|---|
user | Production, no root, limited debugging |
userdebug | Like user + root + debugging |
eng | Development, all debug tools |
m bootimage # Kernel + ramdisk
m systemimage # System partition
m vendorimage # Vendor partition
m otapackage # OTA zip
mka bacon # LineageOS flashable zip
# Module-specific
m Settings # Just Settings app
mm # Build current directory
mmm packages/apps/Settings # Build specific path
breakfast <device> # Setup + sync device deps
brunch <device> # breakfast + mka bacon
# Cherry-pick from Gerrit
repopick <change_number>
repopick -t <topic>
# Sync specific project
repo sync packages/apps/Settings
out/target/product/<device>/
├── boot.img # Kernel + ramdisk
├── system.img # System partition
├── vendor.img # Vendor partition
├── lineage-*.zip # Flashable zip (LineageOS)
└── recovery.img # Recovery (non-A/B)
device/<vendor>/<device>/
├── AndroidProducts.mk # Product makefiles list
├── BoardConfig.mk # Board configuration
├── device.mk # Device makefile
├── lineage_<device>.mk # LineageOS product
├── extract-files.sh # Vendor blob extraction
├── proprietary-files.txt # Blob list
├── sepolicy/ # SELinux policies
└── overlay/ # Resource overlays
BoardConfig.mk - Hardware configuration:
TARGET_ARCH := arm64
TARGET_BOARD_PLATFORM := <platform>
TARGET_BOOTLOADER_BOARD_NAME := <device>
BOARD_KERNEL_CMDLINE := ...
BOARD_BOOT_HEADER_VERSION := 4
device.mk - Device packages:
PRODUCT_PACKAGES += \
android.hardware.audio@7.0-impl \
audio.primary.$(TARGET_BOARD_PLATFORM)
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/audio_policy.conf:...
# Setup
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
# Or for Clang:
export CC=clang
export CLANG_TRIPLE=aarch64-linux-gnu-
# Configure
make <device>_defconfig
# Build
make -j$(nproc)
# Output
arch/arm64/boot/Image.gz
# In BoardConfig.mk
TARGET_KERNEL_SOURCE := kernel/<vendor>/<device>
TARGET_KERNEL_CONFIG := <device>_defconfig
TARGET_KERNEL_CLANG_COMPILE := true
# OOM
export GRADLE_OPTS="-Xmx4g"
# Daemon issues
./gradlew --stop
rm -rf ~/.gradle/daemon
# Cache issues
./gradlew clean --refresh-dependencies
# Ninja error - usually dependency issue
m clean && m
# Jack server (old builds)
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
# SELinux issues
audit2allow -i audit.log
# Gradle
./gradlew assembleDebug --stacktrace
./gradlew assembleDebug --info
# AOSP
m 2>&1 | tee build.log
| Task | Command |
|---|---|
| Build debug | ./gradlew assembleDebug |
| Build release | ./gradlew assembleRelease |
| Install | ./gradlew installDebug |
| Test | ./gradlew test |
| Lint | ./gradlew lint |
| Clean | ./gradlew clean |
| Task | Command |
|---|---|
| Setup env | source build/envsetup.sh |
| Select device | lunch <device>-userdebug |
| Full build | m |
| LineageOS zip | mka bacon |
| Just boot | mka bootimage |
| Sync | repo sync -c -j$(nproc) |
Weekly Installs
52
Repository
GitHub Stars
9
First Seen
Jan 28, 2026
Security Audits
Gen Agent Trust HubFailSocketPassSnykFail
Installed on
opencode44
gemini-cli42
codex42
github-copilot41
cursor39
kimi-cli38
Android设备自动化工具Midscene使用指南 - 基于AI的移动端自动化测试与操作
977 周安装
Next.js 16 完全指南:掌握缓存组件、Turbopack、proxy.ts 与 React Compiler
221 周安装
OpenAI DALL-E 3 图像生成命令行工具 - 哥特式大教堂预设与批量生成指南
219 周安装
Gemini深度研究技能:AI自主研究工具,自动生成市场分析、技术报告
220 周安装
项目安全设置协调器 - 自动化安全扫描、配置与风险评估工具
221 周安装
TypeScript/Python/.NET项目代码检查工具自动配置 - ESLint, Ruff, Roslyn Analyzers
220 周安装
React前端项目重构与脚手架生成工具 - 支持单体迁移和最小化项目创建
221 周安装
| Dependencies | ./gradlew dependencies |