Android Things 教程:使用 Android Things 开发物联网应用

我在问自己 Google 在物联网上做了些什么。本文旨在介绍 Google 的 Android Things 在物联网方面的一个方面。

我问自己 Google 在物联网上做了什么,除了在他们的 Google 云平台上为物联网提供云服务。最近我在一次会议上了解到,他们在物联网上有很多活动,我决定深入研究。 本文旨在介绍 Google 在物联网(IoT)方面的努力的一个方面,这是一个基于 Android 的物联网设备(称为Android Things)的操作系统。

一点小历史

自 2015 年 Brillo 项目发布以来,得到社会各界的广泛批评。谷歌决定把他们的努力建立一个物联网设备操作系统,以安全的赌注,这是 Android。 事实上,由于 Android SDK 在移动设备上取得了明显的成功,Google 强调开发者可以利用他们在移动设备上的开发知识,为物联网构建解决方案。

系统和供应架构

您可能已经从该项目的名称中猜到了,Android Things 操作系统重用了 Android 技术栈中的架构结构和组件。但是,它仅共享堆栈的较低层,因为应用程序模型从库层开始是不同的。

Android Things 关于原始 Android 架构的架构修改,使得 Android Things 能够扩展核心 Android 架构,以提供额外的 API 来支持在 Android 上运行的移动设备不支持的硬件组件。运行时层之下的扩展 “Java API Framework” 和 “Things support” 为物联网应用,提供了与 GPIO 交互以及与传感器和执行器通信的可能性。

Android Things 还重用了 Google 目前使用的安全配置方法,以更新移动设备上的 Android 操作系统,以便通过 Google Cloud(Android Things 控制台)无线更新 Android Things 操作系统和应用程序。这带来了一些有趣的功能,如物联网设备上的操作系统的后台更新没有服务中断、引导故障转移、自动安全更新和捆绑中的应用程序管理。

支持硬件

Android Things 是一个操作系统,它需要一个最低的硬件配置来运行。 如本文的封面图片所示,不支持 Arduino、Particle、Trinket 和其他基于 ATmega 的设备。 此外,我的 dental prosthesis 还没有支持。通过查看支持的设备,它们是一些 32 位和 64 位 Intel 和 ARM CPU。除了 Wi-Fi 和蓝牙之外,操作系统似乎最少需要 512MB RAM(最初设计为支持 64MB RAM)。

支持设备的正式列表可在项目网站 上找到。左侧的图显示了我写这篇文章时,支持的物联网设备或系统模块(SOM)的名称。

设备支持主要受 Linux 内核和虚拟内存的多任务支持的限制。这种限制只能在完全支持分页存储器管理单元(PMMU)的处理器上,部署这种操作系统,例如 Intel 和 ARM。这意味着 Android Things 操作系统,将不太可能支持基于其他微控制器的受限物联网设备。

第一手经验

一旦我了解了 Android Things 操作系统,我就有些痒,要将它部署在我的一个设备上,看看它是怎样的,并将其与我有机会玩的其他解决方案进行比较。 另一方面,由于我有一个 Raspberry Pi,我决定用它来做我的实验。

入门步骤在官方网站上有很好的描述。我只是简单地描述一下,毕竟那些懒惰的人懒得去访问官方网站。

配置Pi

  • 登录,创建产品,从控制台构建并下载正确的 Android Things 镜像。
  • 将镜像写入您将在 Pi 上使用的 SD 卡。
  • 将您的 Pi 连接到以太网、HDMI和电源。然后这应该启动引导。请注意,启动可能需要一分多钟。 而且,如下图所示,需要十几秒来显示启动画面。

连接控制台

一旦启动顺序完成,有关连接的一些信息将显示在屏幕上,如下图所示。

您需要使用 ADB 连接到 Raspberry Pi。它可用于 Android Studio(您将需要开发应用程序)或作为独立的。

  • 您可以使用多点(multicasted)连接主机名为 “Android.local” 的设备,或者屏幕上的 IP 连接到 Pi,通过使用下面的命令:
adb connect YOUR_IP 
  • 然后使用以下命令连接到 Wifi:
adb shell am startservice -n com.google.wifisetup/.WifiSetupService  -a WifiSetupService.Connect -e ssid YOUR_SSID -e passphrase YOUR_PWD

建立你的第一个应用

请参阅本指南,因为我已经通过拍摄许多照片和截图来完成我的东西。然而,正如我的朋友 Hackster 喜欢代码一样,我附上了一个需要开关和 LED 的 hello word 项目。

开始:

  • 安装 Android Studio。
  • 导入附加到这个项目的代码。
  • 更新 Android Manifest。
<activity android:name=”.HelloButtonActivity”>
    <intent-filter>
        <action android:name=”android.intent.action.MAIN” />
        <category android:name=”android.intent.category.LAUNCHER” />
    </intent-filter>
    <! — Launch activity automatically on boot -->
    <intent-filter>
        <action android:name=”android.intent.action.MAIN”/>
        <category android:name=”android.intent.category.IOT_LAUNCHER”/>
        <category android:name=”android.intent.category.DEFAULT”/>
    </intent-filter>
</activity>
  • 获得开发板,再将其烧录到 Android Things,并选择 Raspberry Pi 3。
  • 使用 adb 连接 - 再次连接。
adb connect YOUR_IP 
  • 添加 gradle 依赖
compile ‘com.google.android.things.contrib:driver-button:0.1’ 
  • 运行
./gradlew installDebug 

结论

Android Things 使用的技术已经是被移动设备验证过的。这使得该解决方案,可以充分利用操作系统和应用程序开发的所有知识。但是,由于我们在本文的硬件支持部分讨论的原因,该操作系统在支持设备方面受到限制,因此我们不太可能在受限设备上看到 Android Things。

原文链接:https://www.hackster.io/charifmahmoudi/iot-with-google-s-android-things-283f0b