An Update on Android Things
android-developers.googleblog.com
android-developers.googleblog.com
Searching for ["an update on" Google] and ignoring other sites gives results such as
https://googleblog.blogspot.com/2011/06/update-on-google-hea... https://googleblog.blogspot.com/2010/08/update-on-google-wav... https://webmasters.googleblog.com/2019/01/an-update-on-googl...
While the discontinued product that is still most commonly brought up, Reader, had a quite different headline, probably because that day was a carnage:
https://googleblog.blogspot.com/2013/03/a-second-spring-of-c...
But you can also find "An update on" for neutral or positive posts.
https://googleblog.blogspot.com/2012/02/update-on-google-bar... https://blog.google/around-the-globe/google-europe/update-ou... https://developers.google.com/web/updates/2017/12/better-ads
Still, it does have that negative connotation.
I am sure that the author of any google blog post that is titled "an update on..." is poking a little fun at google. Or maybe they don't get the joke and this is the wording that keeps coming up. I'm guessing it's the first one, though.
https://www.google.com/search?q=site:googleblog.blogspot.com...
An even more focused search would be [intitle:"an update on"], which is pretty effective, and you can see different results depending on which site you restrict the query to.
Fun!
On the handy operators note, do you still know people on the Search team, and could you ask them to give us + back now that Google Plus is shutting down?
Bad or mediocre leadership. More "Stewardship" than "Leadership." You get ongoing cultural decay in that world.
Lots of teams duplicate doing the same things. Google Cloud is likely the "chosen" team right now. That means they get their way. You can see the obvious conflict between the Android Team and Cloud Team pursuing IoT and AI at the same time.
Classic big company internal politics. Looks like Google Cloud is winning the fight here, not that Android Things was going anywhere.
The key phrase here is: "Therefore, support for production System on Modules (SoMs) based on NXP, Qualcomm, and MediaTek hardware will not be made available through the public developer platform at this time."
Translation: They are cancelling major key parts of their IoT story. They had put into place relationships for 5+ years to guarantee software support for long lifecycle of certain hardware SoCs for industrial and other purposes.
This is super embarrassing and the language could not be more carefully designed to obfuscate what is happening. I bet they had to draw straws to write this.
I feel sorry for the guy.
1. Most IoT devices are still based on smaller MCUs, not Linux. FreeRTOS and systems like it are where the majority of vendors go.
2. The smaller (but still sizable) market for embedded linux don't naturally gravitate to Java.
3. It was a subpar developer experience, IMHO. For example, see this link for a "Blinky" app, which is a sort of like the "hello world" for embedded:
https://medium.com/@monkeytypewritr/android-things-getting-t...
To put that in context, here's a blinky app in mbed, which is C++ based:
https://github.com/ARMmbed/mbed-os-example-blinky/blob/maste...
To be far: It's apples and oranges comparison (Mbed is for bare metal), but it gives you a taste for the amount of boilerplate Android Things required.
Now, if one of the major vendors invested in Rust? That would be interesting...
I've enjoyed using Espressif's esp-idf project, though I wish Rust could target Xtensa processors. mbed looks nice as well!
I hadn't heard of it before either and I'm pretty sure I work in their target market, but that's because they're doubling or tripling the amount of work I have to do to get something working relative to Embedded Linux.
The big difference is that they are actually tailored for embedded development, with standard Java, real time support and not phone APIs trying to fit somewhere.
Additionally the NDK experience is relatively bad, forcing devs to download and manually compile NDK libraries, that are part of the SDK for Java, e.g. userspace drivers.
Finally, using something like yoctos + whatever language is still more flexible.
I never really understood the pivot from Brillo into Android Things.
I am not saying that it makes a lot of sense .. I am an Android Engineer myself and the amount of boilerplate for that blinky sample makes me vomit but that's how it is.
They might call it "the internet of things" but often other protocols are involved.
I suppose the fundamental issue is that embedded systems are massively cost constrained, so they're always going to use custom hardware, and that hardware is going to vary a lot. Smart scales can get away with an M3 microcontroller, whereas a smart CCTV camera is going to need a proper SoC with lots of RAM, some kind of DSP etc. Good luck making an OS that works on both of those.
And it is a decently nice platform to work with for those use-cases - certanly better than most of the others. It has almost all Android APIs available.
Assuming that one is going with Java.
For other languages there are better alternatives anyway.