安卓APP编译装机
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_e150a61d/app-android-build。
技能介绍
解决原生工程编译验证的痛点
在开发基于原生 Kotlin/Compose 重写的 APP_android 工程时,修改源码后往往需要立即在真机上验证效果。然而,手动执行编译和装机不仅步骤繁琐,还极易踩中环境配置的暗坑。本技能专为纯原生工程打造,提供一条全程命令行的编译装机流水线,让代码改动到真机运行的链路变得可靠且可重复。
核心能力与执行流程
技能通过四个核心步骤自动完成构建与部署:
- 前置校验:自动检查
gradle-wrapper.jar是否存在,并确保local.properties就绪(缺失时自动生成)。 - Gradle 编译:调用
gradlew.bat assembleDebug执行编译,并精准回显BUILD结果或关键错误信息。 - 产物校验:确认
app-debug.apk成功生成,并记录其文件时间戳以确认是最新产物。 - 装机与验证:通过
adb install -r安装到连接的手机,并校验设备上的versionName与lastUpdateTime确保安装成功。
适用边界与避坑指南
本技能仅适用于 APP_android 纯原生工程,不可用于 UniApp 工程(需走 HBuilderX 流程)或纯固件项目(需走 idf.py 流程)。在执行过程中,请务必注意以下关键环境限制:
- JDK 版本:AGP 8.7.3 强制要求 JDK 17+,脚本会将
JAVA_HOME指向 Android Studio 的 JBR (OpenJDK 21),手动执行时需保持一致。 - Wrapper 缺失:若
gradle-wrapper.jar丢失,由于它是二进制文件,需从 UniApp 壳工程直接拷贝。 - PowerShell 兼容:在 PowerShell 5.1 下,原生命令的 stderr 可能被误报为 ErrorRecord。判断成功与否必须看
$LASTEXITCODE和BUILD SUCCESSFUL,切勿被红字误导。 - 包名与签名:工程固定包名为
com.boling.device,若与旧版签名不一致导致覆盖失败,需先卸载旧包。此外,因与 UniApp 包名相同,两者无法在设备上共存。
使用场景
- 修改了 Kotlin 源码和 Compose 界面后,需要把 `APP_android` 工程编译并装到真机上验证交互效果。
- 拿到最新的纯原生代码,不需要装机,只想快速跑一遍流水线确认当前工程能否正常编译通过。
- 遇到 APK 打包失败或真机安装报错时,需要一套标准的自动化步骤来排查环境与日志问题。
- 需要将新版原生 APK 覆盖安装到手机,但遇到签名不一致报错,需要排查并处理旧包卸载。
适合人员
- 负责纯原生项目重构的 Android 开发者,需要在改动代码后快速拿到可用的真机安装包。
- 需要验证 Bug 修复情况的测试人员,需要一套标准的构建和安装步骤确保产物正确部署。
- 负责 CI 流水线配置的工程师,需要将命令行构建能力集成到自动化测试流程中。