Earlier this month Google Announced AndroidThings a Platform with a Stripped down version of Android Operating System which can be run on multiple existing IoT Enabled Hardware like Raspberry Pi 3, Intel Edison and NXP Pico. On the same day I took this picture;
AndroidThings is primarily focused on reducing the development and deployment time when it comes to IoT. Android being the most popular Mobile Operating System thus far has now made its way into the IoT arena with AndroidThings IoT Platform.
The purpose of this article is to try out the AndroidThings platform and evaluate its Developer friendliness.
Flashing the AndroidThings Operating System
This can be considered as the First Step of the whole process of developing apps for AndroidThings IoT Platform. With your Hardware Device Raspberry Pi 3, Intel Edison or NXP Pico you can download the correct System Image from https://developer.android.com/things/preview/download.html
And you can follow the Hardware Device's instruction on how to flash the System Image into the Hardware Device. I used a Raspberry Pi 3 so I followed the Instruction available for that.
Setting Up Development Environment
If you were an Android Developer already just like me, you probably have Development Environment setup already and you can skip this step. If not you can Download Android Studio from https://developer.android.com/studio/index.html and install it. Make sure to download the package with Android SDK if you are not comfortable with configuring PATH manually.
Configuring the AndroidThings Operating System to use Wifi
This is the third step as it enables to connect to your device over Wifi for Easy Deployment and Debugging of Apps. I followed this https://developer.android.com/things/hardware/raspberrypi.html as I used a Raspberry Pi 3 but you can follow the correct link based on your Hardware listed here https://developer.android.com/things/preview/index.html.
Connecting to AndroidThings Operating System via adb command
After finding the Ip Address of the Device you can issue the following command to connect to the AndroidThings operating system via adb command
adb connect <ip-address>
This will connect the your development machine and Hardware device. Now it is just like developing any Android App. You can just use the Android Studio IDE to create apps and run it just like you run an app in an Android Mobile Phone.
Demo (Blink and Button App)
Evaluation of the AndroidThings IoT Platform
- Hardware Device Agnostic
- Very Gradual Learning Curve (If you are familiar with Android App Development)
- Ability use many many Android Tutorials available
- Great Community of Developers backed by Google
- Limited no of Hardware Devices supported yet (Only 3 when writing this)
- Lack of Libraries for reading Sensors like DHT22 and many more in Java. (It would take some time to on board all sensor libraries to Java)
- A Steep Learning Curve (If you are not familiar with Android App Development)
Google AndroidThings IoT Platform is definitely a step in the right direction. There are so many Hardware Devices and Operating Systems for IoT it is almost too easy to get lost. With this Platform Google has tried to bring in the "Write Once, Run on Any Hardware" concept to IoT arena which must be commendable. But as far as I think it is still a work in progress and I am pretty sure with the resources Google has within couple years time this platform has the potential to become a Game changer and backbone of IoT.
- IoT Researcher Blog - http://blog.iotresearcher.com/post/simple/