首页 > 评测 > Android Things之十(最终章)——部署Android Things产品
Android Things之十(最终章)——部署Android Things产品
- [导读]
- 本文将为大家介绍如何使用Google帐号登入Console,建立自己的产品配置。
Android Things生态包括三个部分:硬件平台、SDK及Console。
欢迎加入Android Things交流群:452863046
前面我们接触了两个典型的硬件平台:i.MX7D及RPI3,在 Android Things的大一统之下,使用SDK来开发软件,在代码上并无差别,因为硬件细节都被隐藏在OS之下了!
当准备开始构建原型和设备时, Android Things Console提供了在支持的硬件设备上安装和更新系统映像的工具。允许开发者将更新推送到现场用户以及在自己的硬件上测试部署。使用控制台,可以完成下列任务:
• 下载并安装最新的 Android Things系统映像
• 构建包含OEM应用程序的工厂映像以及系统映像
• 将无线(OTA)更新(包括OEM应用程序和系统映像)推送到设备
简单的说,就是Console是用来管理系统映像的工具,包括创建、定制及更新系统映像。
使用Google帐号登入Console,建立自己的产品配置,例如这里添加了两个,一个是i.MX7D,另一个是RPI3。
因为OS是由Google提供的,咱们只能选择既有的产品,当前最新的版本号为1.0.2。系统映像默认添加Google Play Service,可以使用其提供的API功能。
Console还提供了系统分区的定制功能,例如分区大小,各分区的名称及信息等。
可以在定制系统映像的时候添加APP,这样一旦将系统映像写入到产品中,就可以实现开机即用!
不过这里要注意的是, Android Things只允许上传一个HomeActivity程序,该程序会在系统启动时自动启动。如果指定了多个HomeActivity程序,Console不会生成系统映像。
生成的系统映像可以指定两个版本:产品版及开发版。如果是在产品开发过程中,一般使用开发版,如果测试好了之后,就可以生成产品版的系统映像,直接用于产品部署。
前面我们在测试各种外设功能的时候,生成的Android Studio工程文件都使用的是默认设置,在正式开发产品时,根据实际情况需要,还要修改工程的配置。例如需要指定自动启动程序的Catogery属性。
以上一节中的交互式GUI为例,AndroidManifest文件应该修改如下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demo.lcddemo">
<uses-permission android:name="com.google.android.things.permission.USE_PERIPHERAL_IO" />
<application>
<uses-library android:name="com.google.android.things" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
实际上要修改的只有包括<category android:name="android.intent.category.HOME" />的这一行,有了这一行,该程序在系统启动时自动启动。
事实上,一般支持 Android Things的硬件相对来说是比较高端的硬件产品,只允许运行一个HomeActivity程序是不是浪费了硬件资源?这个问题应该从两个方面来理解:一是传统的MCU产品,基本都只能部署一个程序,而且许多 Android Things硬件甚至也没有提供GUI支持,所以这样做实际上是简化了产品部署的步骤;其次,如果确实需要更好的利用硬件资源,可以在程序里添加不同的功能模块,在主Activity里做统一任务调度,保证各模块功能的协调工作。
最后补充下 Android Things的Driver库,这是 Android Things中SDK的有益补充。SDK中提供的GPIO、I2C及SPI等库都是低级的基本操作,与具体的硬件设备无关。例如市面常见的OLED(SSD1306)模块,一般使用I2C或SPI接口来进行通信,通信过程使用的具体指令通过I2C或SPI接口发送给模块硬件,完成相应的显示功能。Drivers库就是基于SDK开发的更高层的API接口,直接面向具体的硬件模块。目前这个库还在完善当中,目前主要有SSD1306, lowpan等设备的支持。
这些三方的Drivers的Github地址为:https://github.com/androidthings/contrib-drivers,欢迎大家贡献自己的开源力量!
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
人均百万?英伟达中国员工收入曝光! 2024-08-29
-
《黑神话:悟空》玩家硬盘升级攻略:提升游戏体验,畅享3A大作 2024-08-29
-
数睿数据参加《系统与软件工程 低代码开发平台通用技术要求》国家标准编制 2024-08-29
- NRF52810蓝牙数字耳机找人定制
预算:¥30005天前
- 125KW模块式PCS软硬件外包开发
预算:¥1100000015小时前
- 12V汽车启动电源项目BMS设计
预算:¥50000023小时前
- 数据可视化软件 开发
预算:¥5000023小时前
- PLC项目调试修改
预算:¥100001天前
- 起动电机控制器开发
预算:¥1100001天前