
android things 已于 2020 年正式停止维护,其核心库 `com.google.android.things`(含 `device` 等子包)不再通过主流 maven 仓库分发;若需兼容旧项目,应使用官方归档的 `androidthings:1.0` 依赖,并注意构建环境与目标设备的严格限制。
Android Things 是 Google 早期为嵌入式物联网设备推出的专用 Android 变体,其 SDK 提供了如 PeripheralManager、I2cDevice、UartDevice 等硬件抽象接口,全部位于 com.google.android.things 根包下(例如 com.google.android.things.device 是系统内部包,不对外公开使用)。值得注意的是:该包并非独立模块,而是 androidthings 主库的一部分,且 com.google.android.things:device:1.0 是一个不存在的错误坐标——Maven 中唯一有效的发布 artifact 是:
implementation 'com.google.android.things:androidthings:1.0'
✅ 正确配置步骤
-
确保仓库声明完整(Google Maven 已默认包含在新版本 Android Gradle Plugin 中,但旧项目需显式添加):
// Project-level build.gradle (or settings.gradle in AGP 8.0+) dependencyResolutionManagement { repositories { google() // 必须启用 mavenCentral() } } -
在模块级 build.gradle 中添加依赖:
android { compileSdk 30 // Android Things 1.0 基于 Android 9 (API 28–30 兼容) defaultConfig { targetSdk 28 // 强烈建议设为 28,避免运行时权限异常 // 必须声明 uses-library manifestPlaceholders = [target_things: "android.hardware.type.embedded"] } } dependencies { implementation 'com.google.android.things:androidthings:1.0' } -
在 AndroidManifest.xml 中声明 Things 特性与权限:
⚠️ 关键注意事项
- ❌ *`com.google.android.things.device.不是公开 API**:该包属于系统内部实现(如device.PowerManagerService),开发者**不应直接 import 或调用**。正确入口类是com.google.android.things.PeripheralManager`。
- ? Android Things 已终止支持:自 2020 年 1 月起,Google 停止更新、分发和认证 Android Things 设备;官方镜像与 SDK 下载链接已下线;新项目不应选用该技术栈。
- ? 仅限特定硬件运行:androidthings:1.0 仅能在搭载 Android Things 系统的设备(如 Raspberry Pi 3/4 官方镜像、NXP i.MX7D)上运行,在普通 Android 手机或模拟器中会因 java.lang.NoClassDefFoundError: com.google.android.things.PeripheralManager 而崩溃。
- ? 无 AAR 源码公开:该库以封闭 .jar 形式打包,不提供源码或 Javadoc,调试依赖反编译。
✅ 替代方案推荐(2024 年起)
| 场景 | 推荐方案 |
|---|---|
| 新嵌入式 Linux 项目 | 使用 Raspberry Pi OS + Java/Kotlin + Pi4J v2 或 libgpiod Java bindings |
| 跨平台 IoT 开发 | Flutter + platform channels 或 Rust + Android NDK |
| 企业级边缘设备 | Android Automotive OS(车载)、Android for IoT(新计划,尚未公开) 或 Linux + Yocto + JNI |
总之,若您正维护遗留 Android Things 项目,请严格使用 com.google.android.things:androidthings:1.0 依赖,并避免引用任何 *.device.* 内部包;对于新项目,请立即转向现代、可持续的嵌入式开发方案。










