8.3 KiB
本地开发环境基线
状态:已从当前主机实测 最后核验:2026-08-04 适用范围:
D:\OPC\brainwave的 Android 开发、构建和设备验证
本文件记录项目当前可用的本地工具链,不是期望环境清单。后续实现必须先使用这里已经确认的能力;需要升级或安装新工具时,应说明原因并在完成后更新本文件。
为避免泄密,本文件不记录主机名、设备序列号、Git 用户邮箱、完整 PATH、代理地址、密钥、令牌或用户级配置内容。
1. 主机环境
| 项目 | 实测值 |
|---|---|
| 操作系统 | Microsoft Windows 10 专业版,10.0.19045,Build 19045 |
| 架构 | 64 位 / amd64 |
| PowerShell | 7.3.12,Core Edition |
| 区域 | zh-CN |
| 时区 | China Standard Time |
| CPU | Intel Core i7-14650HX |
| 逻辑处理器 | 24 |
| 内存 | 15.8 GiB |
| Hypervisor | 已检测到(HypervisorPresent=True) |
| 工作区磁盘 | D:,检测时可用约 49.9 GiB |
环境结论:硬件和 Hypervisor 能满足 Android 构建;当前没有 Android Emulator 包,因此 Hypervisor 暂时不构成可用模拟器环境。
2. 仓库与终端工具
| 项目 | 实测值 |
|---|---|
| 仓库路径 | D:\OPC\brainwave |
| Git | 2.49.0.windows.1 |
| 默认分支 | main,跟踪 origin/main |
| 检测起点提交 | fdb20b8 |
core.autocrlf |
true |
core.longpaths |
未显式设置 |
| Python | 3.10.11,C:\Python310\python.exe |
| Node.js / npm | 22.22.1 / 11.12.1 |
| Google Chrome | 150.0.7871.188,C:\Program Files\Google\Chrome\Application\chrome.exe |
首次环境审计时仓库没有 Gradle Wrapper、build.gradle*、settings.gradle* 或根 AGENTS.md。当前这些仓库级入口已经建立;app 暂时是纯 Kotlin/JVM 领域 harness,不是可安装 Android application。
Windows 路径可能较长;如果后续依赖缓存或生成代码触发路径长度错误,应优先缩短包/生成目录或评估仓库级长路径配置,并把实际决定写入决策记录。
3. Java
| 项目 | 实测值 |
|---|---|
JAVA_HOME |
D:\jdk17 |
| Java | Eclipse Temurin OpenJDK 17.0.13+11 |
java.exe |
D:\jdk17\bin\java.exe |
javac |
17.0.13 |
当前 Android 构建必须优先使用该 JDK 17。不要在项目脚本中硬编码个人绝对路径;Wrapper/Gradle 应读取 JAVA_HOME,CI 则独立配置同一主版本。
4. Android SDK
ANDROID_HOME 和 ANDROID_SDK_ROOT 均已设置为:
C:\Users\ila20\AppData\Local\Android\Sdk
已确认组件:
| 组件 | 版本/状态 |
|---|---|
| Android SDK Platform | Android 14,API 34,Revision 3 |
| Build Tools | 34.0.0 |
| Platform Tools | 37.0.0 |
| ADB | 1.0.41,Version 37.0.0-14910828 |
| Command-line Tools | 22.0 |
| Android CLI | 1.0.15985488 |
| Android Emulator | 未安装 |
| AVD | 不可用;没有 Emulator 包 |
SDK 许可证目录存在,包含 Android SDK 相关许可证文件。这里只记录文件名存在,不复制许可证哈希或用户配置。
首次环境检测运行 Android CLI 时,该工具完成了自身嵌入式组件解包,并尝试发送匿名指标;指标请求因连接超时失败。没有通过该命令安装新的 Android platform、build-tools、system image 或项目依赖。以后调用 Android CLI 应使用关闭指标的选项,并且不能把这次结果视为外网稳定可用的证据。
5. Android Studio 与命令行开发
| 项目 | 实测值 |
|---|---|
| Android Studio | 标准安装位置、注册表和开始菜单均未发现 |
| JetBrains Toolbox | 3.6.3.86383 已安装 |
| Toolbox 中 Android Studio | 未发现 |
全局 gradle |
未在 PATH 中发现 |
全局 kotlinc |
未在 PATH 中发现 |
Android Studio 不是当前环境的可用前提。项目必须先支持 PowerShell + Gradle Wrapper 的命令行构建、测试和安装;以后安装 IDE 只能作为开发体验增强,不能成为 CI 或代理验证的隐式依赖。
6. Gradle 本地缓存
虽然没有全局 Gradle,本机已有可运行的 Wrapper 分发缓存:
| 项目 | 实测值 |
|---|---|
| 缓存的 Gradle 分发 | gradle-8.2-bin |
| 已验证 Gradle | 8.2 |
| Gradle 使用的 JVM | Temurin 17.0.13 |
| 缓存的 Android Gradle Plugin | 8.2.0 |
| 缓存的 Kotlin Gradle Plugin | 1.9.20 |
| 缓存的 JUnit | 4.13.2 |
用户级 ~/.gradle/gradle.properties |
不存在 |
仓库已提交 gradlew、gradlew.bat、gradle/wrapper/gradle-wrapper.jar 和固定 Gradle 8.2 及 SHA-256 的 gradle-wrapper.properties。所有项目命令使用:
.\gradlew.bat <task>
不要要求用户安装全局 Gradle。当前缓存已实际证明 Gradle 8.2、Kotlin 1.9.20 与 JUnit 4.13.2 可离线完成领域构建和测试;Compose、Hilt、Room 等 Android 依赖仍未配置或验证,不能据此推断可离线解析。
7. 已连接 Android 真机
检测时存在 1 台已授权的物理设备。为避免持久化设备标识,本文件不记录序列号。
| 项目 | 实测值 |
|---|---|
| 厂商/型号 | OnePlus PKG110 |
| Android | 16 |
| API Level | 36 |
| ABI | arm64-v8a |
| 物理分辨率 | 1264 × 2780 |
| 当前覆盖分辨率 | 1080 × 2376 |
| 物理/覆盖密度 | 560 / 480 dpi |
当前设备可用于 adb 安装、手工验收和 connectedDebugAndroidTest。测试脚本不得硬编码序列号;设备可能随时断开,纯 JVM 门禁必须独立可运行。
8. 网络与代理状态
HTTP_PROXY:已设置,值未记录。HTTPS_PROXY:已设置,值未记录。NO_PROXY:未设置。- Android CLI 指标请求曾连接超时。
结论:任何需要下载 Gradle、Maven 依赖或 SDK 组件的步骤都必须以实际命令结果为准。不得因为代理变量存在就宣称网络可用,也不得把代理地址写入仓库。
9. 当前实现基线
在环境发生变化前,Android 工程应遵守:
- 使用现有 Temurin JDK 17。
- 使用项目自带 Gradle Wrapper,不依赖全局
gradle或kotlinc。 - 首次可构建配置只能依赖已安装的 SDK Platform 34 和 Build Tools 34.0.0;若模板要求更高版本,应先记录差异,再决定调整模板或安装 SDK。
- 命令行构建是必须能力,不假设 Android Studio 存在。
- 仪器测试优先使用已连接的 API 36、arm64 真机;不假设 Emulator/AVD 存在。
- 不自动安装系统级工具、SDK 平台或模拟器;确需新增环境能力时,先说明影响。
- 发布时的
targetSdk和商店要求是独立发布门禁,不能因为本机只有 Platform 34 就永久锁定;工具链升级后必须更新本文件和相关 ADR。 - P-1 原型截图使用现有 Node.js 与 Chrome DevTools 协议生成,不额外安装前端依赖;命令见移动端交互原型。
10. 已知缺口
- 可安装的 Android application 壳尚未创建;正式名称、组织所有的 application ID 与最终
minSdk仍待确认。 - Android Studio 未安装。
- Android Emulator、system image 和 AVD 不可用。
- 本机只确认安装了 Android Platform 34 / Build Tools 34.0.0。
- Compose、Hilt、Room、DataStore 与 Navigation 的 Maven 依赖尚未完整离线验证。
- 代理已配置,但外部仓库和 Android CLI 网络连通性尚未验证。
已解除的缺口:Gradle Wrapper、Version Catalog、根 AGENTS.md、CI 与可执行的 verifyLocal 已建立;verifyLocal --offline 已在 JDK 17 上通过。它当前不包含 Android lint、APK 构建或设备测试。
这些缺口分别由实施计划的 P0 和质量门禁处理。环境缺口不是跳过验证的理由;无法运行的门禁必须在交付报告中准确说明。
11. 复核命令
以下命令用于更新本文件时复核,输出必须人工脱敏后才能写入仓库:
Get-CimInstance Win32_OperatingSystem
$PSVersionTable
git --version
node --version
npm --version
java -version
javac -version
Get-ChildItem $env:ANDROID_HOME\platforms -Directory
Get-ChildItem $env:ANDROID_HOME\build-tools -Directory
& "$env:ANDROID_HOME\platform-tools\adb.exe" version
& "$env:ANDROID_HOME\platform-tools\adb.exe" devices -l
.\gradlew.bat --version # Wrapper 创建后
禁止把 Get-ChildItem Env:、用户级 Gradle 属性、ADB 私钥或未经筛选的系统信息原样提交。