Android Things is an Android-based OS by Google aimed for use in Linux-based embedded devices. 

Barr Group Principal Engineer Nathan Tennies discusses the pros and cons of today's Android Things.

Related Courses

Embedded Android Boot Camp


Stacy Yu:  Hi.  I’m Stacy Yu, Director of Marketing at Barr Group.  Just over a year ago, Google introduced their Android Things product aimed at IoT devices.  Today I’m here with Barr Group Principal Engineer, Nathan Tennies, to talk more about Android Things and what it means for embedded system developers.  Hi, Nathan, how are you?

Nathan Tennies:  Hi Stacy.

Stacy:  Can you tell us a little bit more about Android Things and the current status of its product rollout?

Nathan:  Sure.  Well, Android Things is Google’s attempt to tap into the exploding market for Linux-based embedded devices.  Their goal is not only to help companies get their products into market more quickly, but also to make their products better, to make them more secure and to use advanced features like machine learning, speech recognition, cloud services, all these different technologies that Google has already developed.

For instance, at the 2018 Consumer Electronics Show in January, we saw companies that had prototype smart speakers and smart displays that were based on Android Things and were using features like Google Assistant with speech recognition.  However, those products are not actually available for sale yet because Android Things itself has not been released.  Google has just released Developer Preview 7.  They have not announced when Android Things is going to be available, but everybody is expecting it is going to sometime this year.

Stacy:  Okay.  So how is Android Things supposed to help companies deliver advanced embedded systems to market faster?

Nathan:  That’s a good question.  Foremost, all Android Things devices are built around a SoM, a System on Module.  SoMs are these small boards that contain their core components that are sometimes a little tricky to get right, things like your processor, memory, NAND flash, wireless technologies like Bluetooth and Wi-Fi.

If you incorporate a SoM into your design, typically your BOM cost will go up, but you’ll save time and money in designing, debugging, and certifying your hardware.  In addition, Google has partnered with SoM vendors to create production quality Android Things board support packages.

So, the idea is that if you’re paying an Android Things device, you would select your SoM, you would design a custom carrier board around it that incorporated all of the additional electronics that your device needed, and then you would log in to Google’s Android Things web console, tell that which SoM you’re using, set a few options, and it would make Android Things binaries available right away.

Stacy:  Okay.  So, if you’re downloading binaries, how do you modify Android Things for custom hardware?

Nathan:  Well, you don’t.  Instead, your customization is really happening either at the Linux Kernel level using global kernel modules or at the application layer.  Android Things applications could be written in C or C++ or Java as is more customary for Android devices.  And in addition, Google has created APIs for SPI, I2C, PWM, GPIOs, these embedded interfaces that are more traditional.  You can use all of those in the application layer.

Stacy:  Okay.  So that sounds great.  But are there any drawbacks?

Nathan:  Well, there are few.  I think for – if you’re a small company with limited resources or you’re a startup trying to get to market very quickly, or you’re a company creating a consumer device like a smart speaker that needs advanced technologies like speech recognition, Android Things may make a good platform.  However, for embedded manufacturers that are targeting more traditional embedded markets, maybe not so much.  And part of that is that these manufacturers are typically very sensitive to BOM cost.  They’re willing to spend more NRE to reduce that.  And the idea of using a SoM, you know, maybe doesn’t work as well.  In addition, they may have concerns about, you know, whatever SoM they select, is it going to be around for a long time; what kind of support are they going to get?

In addition, Google has yet to release full source code for Android Things and the board support packages.  And it is possible that they may never do so.  And if that happens it would push Android Things closer to closed-source alternatives like Windows IoT Core.  And I think that would be unfortunate if that happens because there is nothing worse than getting 90% of the way through an embedded project and you end up with a critical bug or a feature that needs to be tweaked, and you discover that you can’t do it because you don’t have source code that you can build.

And finally, from a licensing standpoint, in addition to the standard open-source licenses, to use Android Things you have to agree to a license for the Android Things Console, for the Android Things SDK.  And I think – and there is even a 120-page compatibility definition document that specifies hardware and software requirements that all Android devices have to conform to.  I think a lot of traditional embedded manufactures aren’t going to want to do that.

Stacy:  So, is there an alternative to using Android Things for embedded devices?

Nathan:  Sure.  For one thing you can use full Android.  And so that’s what most embedded manufacturers that are using Android in their devices today are doing.  They are taking the open-source Android operating system from Google, they are modifying it for their hardware, making any sort of software customizations that they require, and then they’re building up themselves, which is not difficult.

In addition to that, they are typically starting with an Android board support package from an embedded processor vendor like NXP or TI or Qualcomm.  And the advantage of that approach is that you have full source code, you can fix any bugs or make any modifications that you want.  There are no licensing fees and you don’t have to jump through any licensing hoops set up by Google.

Stacy:  And those are all things that we teach in our Embedded Android Boot Camp, is that correct?

Nathan:  That is correct.

Stacy:  Okay, great.  Thank you very much, Nathan.