What is Android Things - Gary Explains

The Benefits and Limitations of Android Things

Android Things is a version of the Android operating system designed specifically for Internet of Things (IoT) devices. This operating system allows developers to create complex IoT products with features such as camera capabilities, facial recognition, object recognition, and computer vision. The ability to tap into sensors, accelerometers, GPS units, and other hardware components makes it an ideal choice for building smart home devices, industrial automation systems, and wearables.

One of the key benefits of Android Things is its built-in support for various hardware interfaces such as SPI, serial ports, and GPIO pins. This means that developers can easily interface with sensors and other devices without needing to write custom code or deal with complex electronics. Android Things also provides a graphical user interface (GUI) that allows users to interact with the device using a touchscreen display. The GUI is customizable, enabling developers to create intuitive interfaces for their IoT products.

A demo provided by Google showcases the capabilities of Android Things. The demo shows a simple user interface with a picture of a board in the middle of the screen and switches on the right-hand side that allow users to control different GPIO pins. In this example, an LED connected to GPIO 21 is controlled using the GUI. By clicking on the switches, the user can turn the LED on and off. This demo highlights the ease of use and flexibility of Android Things, allowing developers to quickly create IoT products with intuitive interfaces.

Despite its benefits, Android Things has some limitations. One major issue is the lack of a deployment mechanism. Currently, users need to set up their device using ADB (Android Debug Bridge) and then flash software onto it manually. This can be time-consuming and may disconnect after a few minutes. Additionally, setting up WiFi connectivity requires a complicated command, which may deter end-users from using the product. Google needs to develop a deployment system that makes it easy for users to set up and use their IoT devices.

Another limitation of Android Things is its high system requirements. The operating system is designed with more powerful hardware in mind, including a CPU that costs more than traditional microcontrollers. This may make it less accessible to some developers, especially those working with low-end microcontroller boards. However, Google believes that the technology and developer knowledge of Android will be key selling points for IoT products. They argue that developers can take their existing experience with Android and Java and apply it directly to their new IoT projects.

Conclusion

Android Things offers a powerful platform for building complex IoT devices with features such as computer vision and sensor integration. Its built-in support for various hardware interfaces, graphical user interface, and customizable GUI make it an attractive choice for developers. However, the lack of a deployment mechanism and high system requirements may limit its accessibility to some users. As Google continues to develop Android Things, we can expect improvements in these areas that will make it more appealing to a wider range of developers and consumers alike.

As a developer preview running on Raspberry Pi and other boards, Android Things is still in its early stages. While it has the potential to revolutionize IoT development, there are still many holes in Google's vision for the platform. The absence of a deployment mechanism makes it difficult for users to set up and use their devices, while the high system requirements may limit its appeal to some developers.

Despite these challenges, Android Things remains an exciting development in the world of IoT. Its potential for enabling complex IoT products with intuitive interfaces is substantial, and we can expect to see more innovative products in the future. As Google continues to refine and expand Android Things, it will be interesting to see how it evolves and what features are added to make it more accessible to a wider range of developers and consumers.

For those interested in learning more about Android Things, there is no shortage of resources available. The official Android website provides detailed documentation and tutorials on getting started with the platform. Developers can also find communities and forums dedicated to discussing and sharing knowledge about Android Things.

In conclusion, Android Things offers a powerful platform for building complex IoT devices. Its benefits include built-in support for various hardware interfaces, graphical user interface, and customizable GUI. However, it still has limitations, including a lack of deployment mechanism and high system requirements. As Google continues to develop and refine the platform, we can expect to see improvements that will make it more appealing to developers and consumers alike.

For those looking to get started with Android Things, there is no better time than now. The operating system is constantly evolving, and new features are being added all the time. By staying up-to-date with the latest developments and best practices, developers can create innovative IoT products that push the boundaries of what is possible with this platform.

Whether you're a seasoned developer or just starting out, Android Things offers a wealth of opportunities for creating complex and powerful IoT devices. With its built-in support for various hardware interfaces and customizable GUI, it's an ideal choice for building smart home devices, industrial automation systems, and wearables. As the world of IoT continues to evolve, we can expect to see more innovative products built on top of Android Things.

In conclusion, Android Things is a powerful platform that offers a wide range of benefits for developers looking to build complex IoT devices. While it still has limitations, its potential for enabling innovative products with intuitive interfaces is substantial. As Google continues to refine and expand the platform, we can expect to see more exciting developments in the world of IoT.

For those interested in learning more about Android Things, there are many resources available. The official Android website provides detailed documentation and tutorials on getting started with the platform. Developers can also find communities and forums dedicated to discussing and sharing knowledge about Android Things. By staying up-to-date with the latest developments and best practices, developers can create innovative IoT products that push the boundaries of what is possible with this platform.

As the world of IoT continues to evolve, Android Things will play an increasingly important role in enabling complex devices with intuitive interfaces. With its built-in support for various hardware interfaces and customizable GUI, it's an ideal choice for building smart home devices, industrial automation systems, and wearables. Whether you're a seasoned developer or just starting out, Android Things offers a wealth of opportunities for creating innovative IoT products that push the boundaries of what is possible with this platform.

"WEBVTTKind: captionsLanguage: enhello there my name is Gary Sims from Android authority now Google recently announced a new iot operating system called Android things and the idea is that we replace our existing uh inet of things operating system called brillo and this time more emphasizing the compatibility with Android well I've downloaded it I've been using on a Raspberry Pi 3 and I've discovered how it all works so if you want to know what is Android things please let me explain so first I kind of look what is internet of things now it's basically any device that's connected to the internet and it's performing a job or a function for us now while smartphones and laptops are connected to the internet they kind of connect to the internet because we're using them as tools but an iot device is something that's more autonomous it stays on its own doing data Gathering and doing tasks that we've assigned it to do without very much human interaction so take the example of a weather station maybe it's out in a field somewhere and it's taking different sensor readings and it's sending those back up into the cloud for analysis now that doesn't just mean weather stations we can talk about home automation we can talk about home security we can talk about smart cities we can talk about sort of factories and power plants and all these kind of things that have kind of autonomous aspects to them and they're using the internet to send up the data to monitor what's going on so it's really it sensors that that are then sending up data into the cloud where we then analyze the information now of course we haven't really even come to fully understand all the different areas of which this idea of connected devices can work in our in our lives Street lamps cars fridges refrigerators you know everything that we can think of can be connected to the internet if it can do a useful task now to build those products there has to be a element of computing power inside those devices so that's why you need a computer a chip and you need an operating system and it needs to have internet connectivity so Google have relased Android things with the idea that they are going to want people to use the technology built on Android the knowledge they have of Android the knowledge they have of java to build iot devices now of course it has to have a hardware component because we're talking about devices here and what Google have done they've supported three boards from the start and there are more boards coming along the way and those three boards are the Intel Edison which is obviously an Intel x80 CH 86 chip we've got the X nxp PCO which is an arm cortex A7 base chip and we've got the Raspberry Pi 3 which uses a quad core cortex a53 chip that's 64 bits so as you can see here we've got support for uh Intel processors and for arm processors we've got 32-bit support and 64-bit support all the devices come with at least half a gigabyte of memory and we're running at 500 MHz or 1 GHz now that's quite quite different to the other types of iot kits that we have which are ones that are running on microcontrollers now microcontrollers run at very different speeds they run at maybe only 96 mahz or 48 MHz they might only have maybe uh 256k of Ram or 128k of ram a very very very much smaller power requirement much smaller Hardware requirement Now Android things can't run on those because Android is of course based on Linux and Linux is a full multitasking operating system with virtual memory support which means you need a complicated mmu memory management unit and you only find those in things like the cortex a series and uh Intel's uh x86 series now this option to go with Android rather than with a microcontroller uh type of design uh could be a great benefit because we have such great powerful computers in our iot devices maybe things like voice recognition and maybe facial recognition and maybe kind of picture detection and some of level of AI could happen in the iot devices which would be very useful because we have such power there but at the same time it doesn't raise the sort of the entry level do I really need a quad core uh sort of 1 GHz processor in my fridge so you know there is this kind of discrepancy now Google are specifically aiming for one type part of the market with Android things and it's missing out on a whole other part of the market now whether that's a good idea or a bad idea only time will tell so I'm using a Raspberry Pi 3 which really is a good idea that Google supports because it really is a very popular board I wouldn't even know way to buy an Intel Edison board but raspberry pies I think I've got like five of them here in my house so they really are the most popular platform for this kind of thing and so the way it works is this you download the image for the Raspberry Pi you copy it onto an SD card you boot up the the Raspberry Pi with that SD card and you're instantly into Android things now during the bootup process you kind of see at the beginning a few lines of bootup information kind of reminiscent to kind of a Linux machine booting up then after a few seconds you get the splash screen which shows you Android things booting up with a kind of a small uh moving dots just to show that things are working and then finally at the end you just get the uh Android uh thing screen comes up which does nothing there's no user interface it's just this is meant to be a standalone device it just sits there and tells you whether it has internet connectivity or not that's all that that's all it does but the real power comes when you start developing apps for it now to develop apps you need to use Android Studio at least Android Studio 2.2 and your SDK needs to be at least at level API level 24 so that's kind of Android 7 now once you have that you can then start using Android things and you can build an app in a very similar way to you build uh an Android app you've got the normal things there's a manifest file there's resource files for the layout written in XML there's Java code in there and very similar to the way you would write an Android app you write an Android things app and then once it's built you connect over uh the ethernet to the uh the board when you've set that up before using ADB you can kind of connect to it through Ethernet or through Wi-Fi and then you connect to that board and it kind of uploads flashes the app onto your board now once an app has been flashed on there whenever you reboot it it reboots directly into that app now there are two types of uh Android things uh applications there are those with displays and there are those without displays now the with display ones basically work in the very similar way to Android apps you've got the normal layout that you do inside of Android Studio you've got the same UI toolkit that you've get in uh Android and you can build device uh app apps that run on these devices with a screen but there's a few differences there's no status bar at the top there's no buttons on screen buttons to go back and forth you just get the whole real estate is occupied by your app and of course that's going to be useful for maybe types of kios for some types of products that have touch screens people are going to want to be able to run this kind of user interface on their iot device but there are going to be lots of iot devices that don't need a display at all and so Android thing is cages for that as well you can write a device an app sorry that has no uh display whatsoever but it does Network things it it collect sensor data and it sends them up to the cloud and all of the stuff that you get inside of Android all of the access to the Google Cloud Server Services you can get with an Android things app that doesn't have a display but of course the one big difference between an Android smartphone and an Android things board is that we also have access to the hardware now that means access to things like the different general purpose input output pins and also to other types of buses and Technologies including is squ C including uh SPI including serial ports and those are all available inside of Android so if you want to do pulse cold modulation to control a Servo then Android things knows how to do that already if you want to talk to I squ C to a particular device maybe to an LCD screen then it Android things only knows how to do that if you want to talk SPI to some nonvolatile memory then uh Android thing already knows how to do that so they've built in all that Hardware support the lowest level of Hardware so that you can talk to sensors and accelerometers and GPS units and all these kind of things and build an iot product that is able to do complicated and useful things including cameras of course and that leads to the whole possibility of things like facial recognition and object recognition and computer vision in general so let me just show you a quick demo of what Android things can do this is a demo that Google provided shows us how to make a simple user interface and it also shows us how Android things can talk to Hardware in this case an LED which we're going to make switch on and off so the device has now booted up and here is this simple demo from from Google it shows a picture of a board in the middle of the screen and over on the right hand side there are little switches that allow you to turn the different GPO pins on and off now the LED I've got connected is connected to gpio 21 and over here we can see we got a mouse you can use a touchcreen as well if you've got touchscreen Hardware connected up to your board and if I click here you can see that the LED comes on we click it it goes off click it goes on click it goes off and of course I could have many LEDs many different inputs outputs here that I can control manually so this is showing us a graphical UI with Android things and control of Hardware directly with Android things now at the moment this is a developer preview that there is running on the raspberry pie and the other board and it really is a preview because there are some big holes in Google's vision for Android things the first and most obvious biggest hole is that there's no deployment mechanism at the moment what do I mean by that the if you want to talk to the board you have to set things up using ADB you have to connect to the board and then you kind of flash things over and then ADB kind of sometimes disconnects and there's a whole problem I found with it kind of disconnecting after a few minutes and if you want to set up WiFi you kind of type in this complicated command which for a developer is not so bad but for a user would never would never work at all for them to kind of uh kind of get the Wii connection up and running now Google need to have a deployment system that either means a generic app that can work with all internet of thing boards that they just say here's our Internet of Things control app and you kind of find your device and you can kind of do lots of things with a nice user interface on your mobile phone or they need to release the source code for a generic app that people can tailor for their particular internet of think device because at the moment there's no way of handling that processor at all so you can't actually ship a product yet that's usable by a consumer at the at the end level and the other problem is that Google really have set the system requirements quite High by opting for kind of Android and Linux and a complicated CPU they really have set the entry level higher than maybe some iot developers would like we're talking like half a gigabyte of ram here and that's that's that costs money we're talking about a complicated processor that costs money much much different to the prices of the low-end microcontroller board now whether that's the right decision or not we'll find out in the future Google are really betting that the technology of and Android and the people's knowledge of Android developers knowledge of of of java will be the key selling point that people say well I can take that same experience in fact I can take some the same code that I've already got and I can use it directly in my new iot product and they're banking that that really is the way people are going to think I'm not sure that's going to be true but time will be the judge of that well my name is G Sims from Android authority I hope you enjoyed this quick overview of Android things if you did please do give it a thumbs up also don't forget to subscribe to Android authority YouTube Channel download the Android authority app because that will give you access to all of our news and features directly on your mobile phone and last but not least don't forget to go over to androidauthority.com because we are your source for all things Androidhello there my name is Gary Sims from Android authority now Google recently announced a new iot operating system called Android things and the idea is that we replace our existing uh inet of things operating system called brillo and this time more emphasizing the compatibility with Android well I've downloaded it I've been using on a Raspberry Pi 3 and I've discovered how it all works so if you want to know what is Android things please let me explain so first I kind of look what is internet of things now it's basically any device that's connected to the internet and it's performing a job or a function for us now while smartphones and laptops are connected to the internet they kind of connect to the internet because we're using them as tools but an iot device is something that's more autonomous it stays on its own doing data Gathering and doing tasks that we've assigned it to do without very much human interaction so take the example of a weather station maybe it's out in a field somewhere and it's taking different sensor readings and it's sending those back up into the cloud for analysis now that doesn't just mean weather stations we can talk about home automation we can talk about home security we can talk about smart cities we can talk about sort of factories and power plants and all these kind of things that have kind of autonomous aspects to them and they're using the internet to send up the data to monitor what's going on so it's really it sensors that that are then sending up data into the cloud where we then analyze the information now of course we haven't really even come to fully understand all the different areas of which this idea of connected devices can work in our in our lives Street lamps cars fridges refrigerators you know everything that we can think of can be connected to the internet if it can do a useful task now to build those products there has to be a element of computing power inside those devices so that's why you need a computer a chip and you need an operating system and it needs to have internet connectivity so Google have relased Android things with the idea that they are going to want people to use the technology built on Android the knowledge they have of Android the knowledge they have of java to build iot devices now of course it has to have a hardware component because we're talking about devices here and what Google have done they've supported three boards from the start and there are more boards coming along the way and those three boards are the Intel Edison which is obviously an Intel x80 CH 86 chip we've got the X nxp PCO which is an arm cortex A7 base chip and we've got the Raspberry Pi 3 which uses a quad core cortex a53 chip that's 64 bits so as you can see here we've got support for uh Intel processors and for arm processors we've got 32-bit support and 64-bit support all the devices come with at least half a gigabyte of memory and we're running at 500 MHz or 1 GHz now that's quite quite different to the other types of iot kits that we have which are ones that are running on microcontrollers now microcontrollers run at very different speeds they run at maybe only 96 mahz or 48 MHz they might only have maybe uh 256k of Ram or 128k of ram a very very very much smaller power requirement much smaller Hardware requirement Now Android things can't run on those because Android is of course based on Linux and Linux is a full multitasking operating system with virtual memory support which means you need a complicated mmu memory management unit and you only find those in things like the cortex a series and uh Intel's uh x86 series now this option to go with Android rather than with a microcontroller uh type of design uh could be a great benefit because we have such great powerful computers in our iot devices maybe things like voice recognition and maybe facial recognition and maybe kind of picture detection and some of level of AI could happen in the iot devices which would be very useful because we have such power there but at the same time it doesn't raise the sort of the entry level do I really need a quad core uh sort of 1 GHz processor in my fridge so you know there is this kind of discrepancy now Google are specifically aiming for one type part of the market with Android things and it's missing out on a whole other part of the market now whether that's a good idea or a bad idea only time will tell so I'm using a Raspberry Pi 3 which really is a good idea that Google supports because it really is a very popular board I wouldn't even know way to buy an Intel Edison board but raspberry pies I think I've got like five of them here in my house so they really are the most popular platform for this kind of thing and so the way it works is this you download the image for the Raspberry Pi you copy it onto an SD card you boot up the the Raspberry Pi with that SD card and you're instantly into Android things now during the bootup process you kind of see at the beginning a few lines of bootup information kind of reminiscent to kind of a Linux machine booting up then after a few seconds you get the splash screen which shows you Android things booting up with a kind of a small uh moving dots just to show that things are working and then finally at the end you just get the uh Android uh thing screen comes up which does nothing there's no user interface it's just this is meant to be a standalone device it just sits there and tells you whether it has internet connectivity or not that's all that that's all it does but the real power comes when you start developing apps for it now to develop apps you need to use Android Studio at least Android Studio 2.2 and your SDK needs to be at least at level API level 24 so that's kind of Android 7 now once you have that you can then start using Android things and you can build an app in a very similar way to you build uh an Android app you've got the normal things there's a manifest file there's resource files for the layout written in XML there's Java code in there and very similar to the way you would write an Android app you write an Android things app and then once it's built you connect over uh the ethernet to the uh the board when you've set that up before using ADB you can kind of connect to it through Ethernet or through Wi-Fi and then you connect to that board and it kind of uploads flashes the app onto your board now once an app has been flashed on there whenever you reboot it it reboots directly into that app now there are two types of uh Android things uh applications there are those with displays and there are those without displays now the with display ones basically work in the very similar way to Android apps you've got the normal layout that you do inside of Android Studio you've got the same UI toolkit that you've get in uh Android and you can build device uh app apps that run on these devices with a screen but there's a few differences there's no status bar at the top there's no buttons on screen buttons to go back and forth you just get the whole real estate is occupied by your app and of course that's going to be useful for maybe types of kios for some types of products that have touch screens people are going to want to be able to run this kind of user interface on their iot device but there are going to be lots of iot devices that don't need a display at all and so Android thing is cages for that as well you can write a device an app sorry that has no uh display whatsoever but it does Network things it it collect sensor data and it sends them up to the cloud and all of the stuff that you get inside of Android all of the access to the Google Cloud Server Services you can get with an Android things app that doesn't have a display but of course the one big difference between an Android smartphone and an Android things board is that we also have access to the hardware now that means access to things like the different general purpose input output pins and also to other types of buses and Technologies including is squ C including uh SPI including serial ports and those are all available inside of Android so if you want to do pulse cold modulation to control a Servo then Android things knows how to do that already if you want to talk to I squ C to a particular device maybe to an LCD screen then it Android things only knows how to do that if you want to talk SPI to some nonvolatile memory then uh Android thing already knows how to do that so they've built in all that Hardware support the lowest level of Hardware so that you can talk to sensors and accelerometers and GPS units and all these kind of things and build an iot product that is able to do complicated and useful things including cameras of course and that leads to the whole possibility of things like facial recognition and object recognition and computer vision in general so let me just show you a quick demo of what Android things can do this is a demo that Google provided shows us how to make a simple user interface and it also shows us how Android things can talk to Hardware in this case an LED which we're going to make switch on and off so the device has now booted up and here is this simple demo from from Google it shows a picture of a board in the middle of the screen and over on the right hand side there are little switches that allow you to turn the different GPO pins on and off now the LED I've got connected is connected to gpio 21 and over here we can see we got a mouse you can use a touchcreen as well if you've got touchscreen Hardware connected up to your board and if I click here you can see that the LED comes on we click it it goes off click it goes on click it goes off and of course I could have many LEDs many different inputs outputs here that I can control manually so this is showing us a graphical UI with Android things and control of Hardware directly with Android things now at the moment this is a developer preview that there is running on the raspberry pie and the other board and it really is a preview because there are some big holes in Google's vision for Android things the first and most obvious biggest hole is that there's no deployment mechanism at the moment what do I mean by that the if you want to talk to the board you have to set things up using ADB you have to connect to the board and then you kind of flash things over and then ADB kind of sometimes disconnects and there's a whole problem I found with it kind of disconnecting after a few minutes and if you want to set up WiFi you kind of type in this complicated command which for a developer is not so bad but for a user would never would never work at all for them to kind of uh kind of get the Wii connection up and running now Google need to have a deployment system that either means a generic app that can work with all internet of thing boards that they just say here's our Internet of Things control app and you kind of find your device and you can kind of do lots of things with a nice user interface on your mobile phone or they need to release the source code for a generic app that people can tailor for their particular internet of think device because at the moment there's no way of handling that processor at all so you can't actually ship a product yet that's usable by a consumer at the at the end level and the other problem is that Google really have set the system requirements quite High by opting for kind of Android and Linux and a complicated CPU they really have set the entry level higher than maybe some iot developers would like we're talking like half a gigabyte of ram here and that's that's that costs money we're talking about a complicated processor that costs money much much different to the prices of the low-end microcontroller board now whether that's the right decision or not we'll find out in the future Google are really betting that the technology of and Android and the people's knowledge of Android developers knowledge of of of java will be the key selling point that people say well I can take that same experience in fact I can take some the same code that I've already got and I can use it directly in my new iot product and they're banking that that really is the way people are going to think I'm not sure that's going to be true but time will be the judge of that well my name is G Sims from Android authority I hope you enjoyed this quick overview of Android things if you did please do give it a thumbs up also don't forget to subscribe to Android authority YouTube Channel download the Android authority app because that will give you access to all of our news and features directly on your mobile phone and last but not least don't forget to go over to androidauthority.com because we are your source for all things Android\n"