
android things 已于 2020 年正式停止维护,其核心库 `com.google.android.things`(含 `device` 等子包)仅适用于旧版 android things os 设备开发,不可用于常规 android 应用;正确依赖应为 `com.google.android.things:androidthings:1.0`,且需配置 google maven 仓库并注意平台兼容性限制。
Android Things 是 Google 曾推出的面向物联网嵌入式设备的操作系统(基于 Android),专为树莓派、NXP i.MX7D 等硬件设计。其 SDK 提供了 com.google.android.things.device 等专用 API(如 PeripheralManager、UartDevice、Gpio),用于直接控制硬件外设。但需明确:该库并非普通 Android 应用可用的通用工具包,而是 Android Things OS 运行时环境的系统级 API。
✅ 正确依赖配置(仅限 Android Things 项目)
若你正在开发运行于 Android Things OS 的固件应用(targetSdkVersion ≤ 27,minSdkVersion = 24),请按以下步骤配置:
-
在项目级 build.gradle 中添加 Google Maven 仓库:
// build.gradle (Project) allprojects { repositories { google() // 即 https://maven.google.com mavenCentral() } } -
在模块级 build.gradle 中声明正确依赖:
// build.gradle (Module: app) android { compileSdk 27 // 必须为 27 或更低(Android Things 1.0 对应 Android 8.1) defaultConfig { minSdkVersion 24 targetSdkVersion 27 // 注意:Android Things 应用必须声明 uses-library manifestPlaceholders = [thingssdk: "com.google.android.things"] } }
dependencies { implementation 'com.google.android.things:androidthings:1.0' }
3. **在 `AndroidManifest.xml` 中声明系统库依赖**: ```xml
⚠️ 重要注意事项
- ❌ implementation 'com.google.android.things:device:1.0' 是错误的坐标——该 artifact 从未发布,Maven 仓库中不存在。唯一有效 artifact 是 com.google.android.things:androidthings:1.0。
- ? 不支持常规 Android 手机/平板:此库无法在标准 Android 设备上运行,调用 PeripheralManager.getInstance() 将抛出 UnsupportedOperationException 或 SecurityException。
- ? 项目已终止维护:Google 自 2020 年 1 月起停止 Android Things 的更新与支持,不再提供新功能、安全补丁或云服务(Cloud IoT Core 集成已下线)。新项目请转向 Raspberry Pi OS + libgpiod、ESP-IDF、Arduino 或 Android’s modern Jetpack libraries(如 androidx.core:core-splashscreen 不相关,硬件交互推荐使用厂商 SDK 或 HAL 层封装)。
- ? 若你在文档中看到 com.google.android.things.device.* 包,它属于 androidthings-1.0.aar 内部结构,无需单独引入子模块——androidthings:1.0 已完整包含全部 API。
✅ 替代方案建议(2024 年起)
| 场景 | 推荐方案 |
|---|---|
| 树莓派 GPIO/I²C/UART 控制 | 使用 libgpiod(C/C++/Python)或 Pi4J v2(Java) |
| 跨平台嵌入式开发 | ESP-IDF(ESP32)、Zephyr RTOS、Rust embedded-hal |
| Android 设备有限硬件访问 | android.hardware.usb(USB Host)、android.bluetooth.le(BLE)、厂商定制 HAL(如 Qualcomm QCA4020 SDK) |
总之,请确认你的目标平台是否为已刷写 Android Things 1.0 固件的开发板;否则,引入该依赖不仅无法编译通过,更会在运行时失败。技术选型前务必查阅 Android Things 官方停更公告 及当前活跃的开源 IoT 生态。










