文章目录
  1. 1. Things Support Library
    1. 1.1. 外设 I/O API
    2. 1.2. 用户驱动 API
  2. 2. 操作调整
    1. 2.1. 核心应用包
    2. 2.2. 显示非必需
    3. 2.3. Home Activity 支持
    4. 2.4. Google Services 支持
    5. 2.5. 权限
    6. 2.6. 通知
  3. 3. 英文地址

Android Things 出现让我们对嵌入式开发更加的容易,它提供了和 Android 一样的开发工具、基于优秀的 Android Framework 的架构和 Google APIs。

platform-architecture

嵌入式应用提供了可类似于手机和平板的设备和驱动。此外,嵌入式设备通常呈现一个单一的应用程序体验到用户。本文主要讨论 Android 开发和 Android Things 开发的差异,主要包括增加、删除和区别。

Android Things 通过增加 Things Support Library 来拓展了 Android Framework 框架。这些新的 APIs 是移动设备上没有的,可以和新的硬件设备结合起来。

Android Things 平台为流线型单应用而生。Android Things 不存在系统应用,你的应用会在设备开机的时候启动,这个设计号称为体验而生。

Things Support Library


外设 I/O API

外围 I/O API 让你的应用程序使用工业标准协议和接口与传感器和执行器进行通信。支持的协议有:GPIO、PWM、I2C、SPI、UART。

如果获取更多如何使用 APIs 可以通过查看 外设 I/O API 指南

用户驱动 API

用户驱动程序扩展现有的 Android 框架服务,并允许应用程序将硬件事件注入框架,其他应用程序可以访问使用标准的 Android APIs。

有关如何使用 API 的详细信息,请参见用户驱动程序指南

操作调整


核心应用包

Android Things 不包括标准的系统应用程序和 Content Provider。避免使用通用的 Intent 以及以下 Content Provider API:

CalendarContract
ContactsContract
DocumentsContract
DownloadManager
MediaStore
Settings
Telephony
UserDictionary
VoicemailContract

显示非必需

Android Things 支持图形化界面,使用和 Android 相同的的 UI 工具包。在图形模式下,应用占用全部的屏幕。Android Things 没有状态栏和导航按钮,这为应用提供了完全可控的用户体验。

不过,Android Things 一般不需要显示屏。在不存在显示屏的设备上,Activity 任然是 Android Things 的主要组件。这是因为框架将所有输入事件传递给具有焦点的前台活动。你的应用程序无法通过其他应用程序组件(例如服务)接受关键事件或活动事件。

Home Activity 支持

Android Things 希望应用让 Manifest 中的 Home Activity 作为系统自动启动的主要入口点。这个 Activity 添加一个同时包含 CATEGORY_DEFAULT 和 IOT_LAUNCHER 的 intent filter。

为了方便开发,这样的活动应该包括 CATEGORY_LAUNCHER 意图过滤器,这样 Android Studio 可以启动默认的 Activity 便于部署和测试。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<application
android:label="@string/app_name">
<activity android:name=".HomeActivity">
<!-- Launch activity as default from Android Studio -->
<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>
</application>

Google Services 支持

Android Things 支持 Google APIs for Android 的一个子集。一般来说,要求用户输入或认证凭证的 API 不适用 Android Things 应用。下面表中列举了在 Android Things 中废弃掉的 API:

Supported APIsUnavailable APIs
CastAdMob
DriveAndroid Pay
Firebase AnalyticsFirebase App Indexing
Firebase Cloud Messaging (FCM)Firebase Authentication
Firebase Crash ReportingFirebase Dynamic Links
Firebase Realtime DatabaseFirebase Invites
Firebase Remote ConfigFirebase Notifications
Firebase StorageMaps
FitPlay Games
Instance IDSearch
LocationSign-In
Nearby
Places
Mobile Vision

权限

Android Things 不支持在运行时请求权限,因为嵌入式设备不一定有显示屏幕。你需要在 Manifest 中声明需要的权限。所有的正常的和危险的权限都会在安装时被授权。

通知

由于 Android Things 没有状态栏,所以不支持通知就理所当然了。开发中一定要避免要避免在你的应用中调用 NotificationManager APIs。

英文地址

https://developer.android.com/things/sdk/index.html


本文地址 http://94275.cn/2016/12/20/Android-Things/ 作者为 Zhenguo

author:Zhenguo
Author: Zhenguo      Blog: 94275.cn/     Email: jinzhenguo1990@gmail.com
I have almost 13 years of application development experience and have a keen interested in the latest emerging technologies. I use my spare time to turn my experience, ideas and love for IT tech into informative articles, tutorials and more in hope to help others and learn more.
文章目录
  1. 1. Things Support Library
    1. 1.1. 外设 I/O API
    2. 1.2. 用户驱动 API
  2. 2. 操作调整
    1. 2.1. 核心应用包
    2. 2.2. 显示非必需
    3. 2.3. Home Activity 支持
    4. 2.4. Google Services 支持
    5. 2.5. 权限
    6. 2.6. 通知
  3. 3. 英文地址
返回顶部