- Android Things创客DIY第六课-Android T
- Android Things创客DIY第一课-用Android
- Android Things创客DIY第三课-Android T
- Android Things创客DIY第四课-Android T
- Android Things创客DIY第二课-Android T
- Android Things创客DIY第二课-Android T
- Android Things 初体验——远程控制开关LED灯
- Android Things入门-设置本地时区
- Android Things 物联网应用开发初体验&&a
- Android Things创客DIY第五课-硬件开发案例教程-
Android Things旨在让Android开发者可以用熟悉的工具(Android Studio)开发智能设备。
Android Things是给Android开发者开发智能设备的一个大大的福利,Android开发者熟悉移动开发和移动互联网,可以将自己的移动互联网思维注入智能设备的设计中,而传统的硬件开发者,在这方面相较于Android开发者有所欠缺,这是Android开发者的优势。

然而,Android开发者对硬件、电路往往不够熟悉,这是劣势,然而通过学习,对硬件和电子电路有一些了解,就可以很方便的用Android Things开发智能设备了。如果你喜欢动手,可以很方便的设计你的智能设备,并DIY出原型产品,开发运行在设备中的Android Things APP,结合云服务和手机APP,展示你的产品创意。之后聪明的你就可以全面的展示你的智能设备,融资或是通过众筹的方式,进行智能设备的产品化。或者你只想DIY自己玩玩,或是带着你的孩子一起玩,对,给孩子开发自己专属的智能玩具,那也是很酷的事情。

做Android Things,做物联网开发,就不得不说电子电路了,Android开发者可能并不熟悉,不过本文会帮你梳理一下,基本上都是初中物理的知识。首先要介绍一个非常好的工具——面包板。

面包板可以让你不需要焊接,通过接插的方式,把电子元件连接在一起,实现所需的功能,非常省时省力。Android Things官网的开发案例,也基本上都是通过面包板连接电子元件实现的。上图就是Android Things官网的第一个例子,电灯大法(让LED灯闪烁)。虽然Android Things现在也推荐一些集成了LED、按键和一些传感器的树莓派扩展板,不过还是建议入门者选择面包板和插件元件的配件套装,这样你知道电路是怎么连接的,知道原理会有助于发展你的创意。
我们在淘宝上提供了入门套装,你可以选择包含了树莓派和已烧录Android Things系统的TF的套件,如果你已经有树莓派,只购买配件即可。如果你要自己下载烧录Android Things系统,可以先读我的另一篇《Android Things入门防坑必读-硬件和系统下载安装篇》。
套件根据Android Things官网Samples开发案例所需的配件进行打包,精选优品,无需自己搭配,专业工程师亲自搭配测试。

开发第一个Android Things APP
如果你是Android开发者,你应该已经有了Android Studio,如果没有的话,可以到官网下载一个最新版的。
https://developer.android.google.cn/studio/index.html

API版本选择 API 26: Android 8.0 (Oreo)。
之后,到Github上去下载官网第一个例子(Simple PIO)的源代码。
https://github.com/androidthings/sample-simplepio
在Android Studio中打开,这里有个坑,应该是Android Studio的Bug,由于项目使用的是新的gradle-4.1进行编译,提示Failed to open zip file。没有下载成功。测试发现用浏览器是可以打开下载的,所以感觉是Android Studio的Bug。如图,打开gradle-wrapper.properties文件,看最后一行。

如下图红框所示,讲最后一行的https改成http,重新编译即可,第一次编译时要下载gradle-4.1-all.zip文件,需要耗费很长时间。

通过网络adb连上树莓派,假设树莓派的IP地址为192.168.1.100,即在命令行输入
adb connect 192.168.1.100
如果是NXP的Pico开发板,则是通过USB Type-C线,通过USB方式连接ADB,通过网络方式连接ADB会提示拒绝连接。
连接成功后,运行blink这个app即可看到LED灯闪烁了。

还有一个坑需要注意一下,通常我们在调试APP的时候,可以在Android Studio中点击停止按钮,来停止设备上的APP运行,但你可以试一下Android Things上的这个APP,你点击停止,它马上又重新启动了!!!
这是Android Things的看门狗程序实现的功能,试想你的智能设备售卖出去了,然后程序异常退出了,你总不希望它在用户手里变砖头吧,所以Android Things发现你的APP退出之后,会帮你重新启动。(以前都要自己写异常重启的代码,现在系统帮你实现了。)
不过在调试的时候,没办法停止就不太好,比如你先调试了A程序,然后又运行了B程序,A程序没法退出,B程序就没法申请A程序已使用的资源。所以,官网给出的方法是,调试完A程序之后,如果要调试B程序,则先通过ADB将A程序卸载掉。
adb uninstall com.example.projectA
或者,用我这个方法——在调试的时候,取消掉程序的IOT_LAUNCHER属性:修改AndroidManifest.xml文件,如下图所示,将
<category android:name="android.intent.category.IOT_LAUNCHER" />
这一行注释掉。再运行,APP退出后就不会自动重启了。当然注释掉之后,Android Things设备开机后,也就不会自动运行这个APP了,所以正式发布的时候,要把注释取消掉。

我在Blink代码的基础上,做了一个数字管显示数字,自动累加的例子,你可能猜到了数码管其实就是一系列LED灯组合在一起的,下一篇文章中会做介绍,你也可以动手实践一下。


网友评论