Android Things 入门篇

1. Android Things 概述

       Android Things开发类似于传统的Android移动端设备的开发,涉及使用Android框架和工具编写应用程序。所有需要的是一个Flash中安装有Android Things  OS的开发板和所需的外设。 Android Things相对于核心的Android操作系统,Android Things有几个核心的关键不同点。需要通过后面不断的学习来了解关键概念。 Android Things 通过与Android移动端应用开发使用相同的集成开发工具、开发框架、谷歌API,因此使基于嵌入式设备的 Android Things 应用开发变得非常容易。
      Android Things在核心Android框架之外的扩展了 Things Support Library的API。这些API允许应用程序在移动设备上,集成所没有的新类型的硬件。  Android Things平台为满足单一应用程序使用场景而进行了精简。所以不像Android系统上存在系统app。
Android Things 入门篇_第1张图片


2. Android Things支持库

2.1 Peripheral I/O API

        Peripheral I/O API    让开发的应用程序,使用工业标准协议和接口与传感器和执行器进行通信。支持接口包括:GPIO、PWM、I2C、SPI、UART

2.2 User Driver API

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



3. Android Things特点

3.1 核心应用程序包

         Android Things不包含系统应用程序的标准套件和Content Provider。在你开发的应用中也应避免使用常见的Intent和下面的Content Provider API:

      • CalendarContract
      • ContactsContract
      • DocumentsContract
      • DownloadManager
      • MediaStore
      • Settings
      • Telephony
      • UserDictionary
      • VoicemailContract

3.2 用户界面是可选的

         Android Things支持图形用户界面,使用与传统Android应用程序相同的UI toolkit。在图形模式,应用程序窗口占用了全部显示区域。Android Things没有系统状态栏或者导航按钮。 然而,Android Things不要求显示。在没有图形显示的设备上,Activity仍然是Android Things的应用程序App的主要组件。这是因为框架将所有输入事件分发给前台具有焦点的Activity。应用无法通过其他应用程序组件如Service获取key Evenet或者Motion Event。

3.3 支持主Activity

        Android Things需要应用程序在它的manifest 文件中声明“Home Activity”,作为在开机自动启动时,系统的主要入口。这个Activity必须同时包含一个CATEGORY_DEFAULT和IOT_LAUNCHER的Intent Filter。为了便于开发,所有的Activity应该包含CATEGORY_LAUNCHER Intent Filter,以便于使用Android Studio在开发和调试的时候,可以作为默认的Activity启动它。

    android:label="@string/app_name">
   
       
       
           
           
       
       
       
           
           
           
       
   

3.4 支持Google服务

       Android Things属于Google API for Android的一个子集。按照一般规则,要求用户输入或者验证证书的API不适用于Android Things 应用程序。下面的表格列举了在Android Things中支持的API:

Android Things 入门篇_第2张图片

3.5 权限

       不支持在运行时申请权限,因为嵌入式设备并不能保证在允许时,有UI来显示对话框与用户进行交换。需要在Android Things应用的清单文件中提前声明生命权限。在你的应用的清单文件中声明的所有正常和危险的权限在安装的时候授予。

3.6 通知

      因为在Android Things中没有系统级别的状态栏和窗口,所以不支持通知。避免在应用中调用NotificationManager。

4. 获取硬件

4.1 硬件平台

          在开始之前,需要一个支持开发板。您可以在JAndroid Things官网的开发工具包页面上选择合适的开发板,  Android Things 支持的板子有:

Android Things 入门篇_第3张图片

4.2 开发板特色外设

      下面的开发者工具包专为运行Android Things代码示例而设计。
Android Things 入门篇_第4张图片

5.  烧写 Android Things

5.1 树莓派 3

       树莓PI 3模型B是世界上最流行的最新的单板计算机。它提供了一个四核64位ARM Cortex-A53 CPU,运行在1.2GHz,四个USB 2端口,有线和无线网络、HDMI和复合视频输出,和40个引脚GPIO的接口,用于与外部物理的连接器进行对接。

Android Things 入门篇_第5张图片

5.2 擦写镜像

       根据所使用的开发板硬件平台,选择合适的系统镜像进行下载烧录。在开始擦写前,除树莓PI 3开发板外,还需要以下资源:

  • HDMI 数据线
  • HDMI-enabled 显示器(非必需)
  • USB  数据线
  • 以太网数据线
  • MicroSD 卡及读卡器
       烧写Android Things OS到树莓Pi开发板上,需下载最新的Android Things镜像文件,并按照以下步骤进行操作:
(1).在您开发的电脑上插入一个8 GB或更大的microSD卡。
(2).将下载到的镜像文件解压到在您的计算机上。导航到解压缩的图像文件。
          注:这些压缩的镜像超过4GB。在一些平台上可能导致内置工具的问题。如果您无法解压缩档案,或看到
            一条消息,说它崩溃,使用7-Zip(Windows)或unarchiver(Mac OS)代替。
(3). 按照Raspberry Pi官方指示将镜像写入SD卡:
    • Linux
    • MAC
    • Windows
(4).将烧写完毕的microSD卡插入到树莓派开发板上。
(5).按下列连接到开发板:   

Android Things 入门篇_第6张图片
  • 连接USB电缆到J1的权力。
  • 将以太网电缆连接到本地网络。(注意:您也可以选择连接Wi-Fi)  
  • 将HDMI电缆连接到外部显示器。
(6).大概第一次系统启动要一到两分钟,耐心等待就行。  系统启动完之后,显示器显示了当前有线网的的 IP 地址(没有显示器,可以到路由器管理中的“设备管理”项中查看树莓派PI 3的设备IP),以及 Wi-Fi 还没有连接上的状态。那么,我们可以借助有线网的 IP,去连接 ADB:
(7).使用 adb tool工具连接到这个IP地址:

$ adb connect 
connected to :5555
注:由于 Raspberry Pi 是支持 DNS 广播的,如果你的电脑支持 MDNS 功能,运行命令::
$ adb connect Android.local

5.2 连接WIFI
   
         1.  这样我们的 ADB 就正常连上Raspberry Pi 3了。借助 ADB ,我们可以连接 Wi-Fi 了。
     adb shell am startservice   -n com.google.wifisetup/.WifiSetupService   -a WifiSetupService.Connect   -e ssid XXXX -e passphrase  YYYY

2.  接下来就要检查 Wi-Fi 是否正确连上了:         adb shell  "logcat -d | grep Wifi"
Android Things 入门篇_第7张图片

3.  出现上面的消息,表明 Wi-Fi 是正常启动了。那 DNS 是否通呢?拨下网线,然后 ping 一下“百度域名”试试。
Android Things 入门篇_第8张图片

如果想清楚开发版上所有的保存的网络,输入以下命令:
$ adb shell am startservice \
   
-n com.google.wifisetup/.WifiSetupService\
   
-a WifiSetupService.Reset

至此,可以使用你的Android Studio来开始你的第一个Android Things 应用程序了。

你可能感兴趣的:(Android,Things)