Google is interested in building Android as a platform. Having 80% of your install base stuck 4 versions behind[1] is a crappy way of doing it. Even after they've moved more and more of the platform into the Play frameworks you're still leaving users without a bunch of improvements to the core platform, not to mention security fixes. iOS is miles ahead on this front exactly because it controls the hardware. That Google doesn't do the same now that it also controls the hardware seems short-sighted.
Building a 150$ great phone would allow them to set a feature/quality floor for the market. If they forced their suppliers so the hardware in these phones is properly supported upstream, targeting new versions of Android should be pretty easy. When Ubuntu launches a new version it doesn't need to go and retrofit it to the thousand different types of laptop out there. The state of Android though is that the GPU/Camera/whatever drivers are binary blobs locked in to a specific kernel version.
One of the annoyances I've had with Android, from a new consumer's point of view, is that it's presented as this monolithic OS that's the same across every phone. But once you do the research, you find that it's really not. Except for the Nexus line, there really isn't a "Google Android" experience. When you buy an Android device, you're really buying HTC's, Samsung's, Amazon's or Motorola's Android. Every device has different capabilities. Some ship with different Google services out of the box, others ship with their own internal apps. Google's Android strategy is that every manufacturer can make their own Android shell, without placing any requirements on the vendors as to what version of Android they're using.
It's a great thing that there's all this choice for the devices. It's a great thing that Android allows this kind of freedom. But it's led to a lot of issues for Google and for developers.
The problem that Google has is that they've effectively lost control of Android. They can't force manufacturers to use the latest version of Android. So they're left with situations like this, where the vast majority of Android devices are running an old version of the OS, and will never be updated to the newest version, because the manufacturers just don't want to[1]. So the result is that they have to support around 4 different codelines at the same time(ICS, HC, Gingerbread, and Froyo).
It's a problem for developers because your display code might not look right on a new device with a weird screen resolution. Or you might need API calls that are only in 4.0, which would lock you out of 90% of the devices right now.
No, the alternative is for Google to exert control over the device manufacturers and state that if they're going to be using the Android OS, they need to support and update their devices to the latest version for at least 2 years after the phones are released.
[1] There is a good economic argument that patching phones that are 18 months old with 24 month contracts about to be up just doesn't make sense, but honestly, it comes down to that the manufacturers just aren't willing to do it.
Bullshit. There are any number of ways Google can fix this issue:
Subsidized engineers to write drivers for them
Free/Cheap consulting team to write drivers and package releases for them
Supporting open source projects for porting firmware forward for the phones
They can create a HUGE code and VHDL library for phone development which can be used by anyone building a phone, thereby increasing the ability to release interfaces that fit with the new Android releases
Then can take on the vendor specific builds (a la a build farm).
And most importantly: Re merging Android with the Linux kernel, and pushing heavily for phone vendors to merge their source in as well.
Those are just technically oriented ways they can do it. From a business standpoint:
They can make an "Instant Upgrade" seal they put on phones that will have upgrades available X days after the vanilla Google release is out there. I know many people would look for this.
They can add a marketing division around android which gives a top tier to android phones which support a reasonable update timeline.
They can add future proof specs for the next 3 versions of Android, and anyone with at least those steps can run it out of the box
They can step up the GPL enforcement, making sure people are releasing all the drivers for all the phones as they're created, then take those source code drops and vanilla android, release a vanilla android build for all phones (or all phones that don't release an updated version in X days).
Google is providing pisspoor integration support for vendors, and the vendors certainly have no interest in updating handsets. If google doesn't fix this, Apple wins.
I think the issue is that Android is becoming like windows is/was. By this I mean that there is lots of built in bloat. For instance Rogers (my carrier) automatically installs an NHL app, a ringtone app and other seemingly useless addons. Further, Android API's tend to change quickly and the standards aren't as strong as they are around the iOS ecosystem[0].
If google stops allowing manufacturers and carriers to customize the device and handles upgrades we'll see the same stats as iOS has with regards to market reach of the latest os version. Further, if they clean up the API's and develop better standards its less likely that apps will crash phones or cause significant lag or issues when running on old devices with a new os
0. I say this as an android dev who only wrote a little iOS with swift.
I'm not sure how anyone can believe this after seeing Android. Google's modus operandi is to make the open core less and less functional over time after everyone has migrated to it, and then put the useful stuff into their proprietary version (Google Pixel, Google Chrome).
The gist is that Google wanted to grow Android into something other than a niche player, and made a deal with the devils: hardware vendors. In effect, hardware vendors said they wanted to take a dump on their customers just like they always have, with bloatware baked in and planned obsolescence and Google said OK. And they don't control the hardware.
On the manufacturing side, a huge team is assembled with piles of money and resources to design and build a complete product out of hardware, firmware (blobs), and software, test it, document it, and then hand it off to marketing. That entire team is disbanded into a pool from which a whole new team will be created for a whole new product. Maybe less than a dozen people remain on a product team following release, and that's just to cover major bugs found once it's in the field. After about 6 months, it might be a team of two people. If it's a small market product, it might be a team of handful that cover multiple similar products.
Anyway, after 18-24 months there's essentially no one around from the manufacturer to support the product. It's not at all the same business model as say, Apple, where it's a giant team supporting a dozen handsets post-release, with coordinated roll outs for bug fixes.
If you want a newer OS on the Android phone, it's a do it yourself proposition. Lineage OS. Hopefully your phone has a relatively easy to unlock bootloader. And while Lineage OS will have a much newer kernel than the stock OS, the code to support, e.g. the NFC, may not be upstream because it's got some patent encumbered code, or maybe something new in the kernel breaks some driver and no one is around who knows enough about it to get it fixed. The exact sequence to put components into low power state, if not correct can cause battery life to suck. There are all sorts of ways this can not work out well, but at least it's an option.
What Google has done since Android 5 is emphasize library stability and security through Google Play updates. New features and bug fixes happen via Google Play itself being updated; it appears to be just an app update but it's actually what the bulk of 3rd party apps use. The low level stuff including the kernel isn't user space, and while your handset gets stuck for life, in effect, with an old kernel, Google are pushing out a chunk of bug and security fixes this way.
It's not like manufacturers don't want the strong brand recognition of being well supported and giving their owners the latest stuff. That helps them sell future phones as well, by gaining market share.
The problem that Google apologists/Android fanboys forget... is that deploying an Android update is a HUGE cost to manufacturers for customization, testing, and deployment.
Google ships endless new versions without any respect to this, and leaves most of the work, and the cost, on manufacturers, who already had thin margins to begin with. Especially on entry level phones, hardware costs have been a race to the bottom.
These people are afraid to point out that Google has created an OS that's hard to update universally, requires a custom deployment for each and every hardware model, and is shipped without working hardware support for most of the hardware using it or even a modicum of stability even on their own reference platforms.
The biggest problem I see is (and there may be other biggies, but this is the one that has bitten me), is that device support in Android kernels never gets upstreamed to Linux. Not necessarily due to GPL violations, but because even though the device source tree is published, there's no one willing to shepherd the changes upstream (and many vendor changes are low quality, so it would be a lot of work). Typically even a Nexus device is stuck on the specific kernel version that it was released with.
Google is a little better on the kernel side, but in other ways, AOSP is even worse. There's lots of good stuff done in Cyanogen and OmniROM, for example, but there's no way to get stuff into upstream AOSP. Google just pitches something over the wall once a year and ROM developers have to rebase or re-implement their ROM features.
I don't like this argument, because Android is not developed openly and the kernel itself is a fork which lags behind the mainstream Linux development until Google implements the changes, which users see when they throw away their phone because Samsung/HTC/Xiaomi/Ulefone/Whatever doesn't want to update the phone or Verizon/ATT/Telenor/T-Mobile, etc., doesn't want to push the update because they branded the phone so that means its theirs but not their responsibility.
I think Google doesn't retain nearly enough control over the platform -- why the hell are they licensing their "Google Experience" apps to handset manufacturers that ship devices with ancient versions of the OS using hacked-together private drivers and never releasing software updates? Why even let them ship the app store if your own flagship applications in it will be masked due to incompatibility?
Smart move by google. Potentially they've regained control of their platform past, present and future...
In one fell swoop they can resolve fragmentation, keep everyone up to date on functionality/APIs, bypass OEM/carrier update issues (be it carrier QA, OEM lack of interest, or just crapware). Most importantly google can keep any OEM's (ie samsung) in check and prevent them branching away from android.
The downsides: what happens when google break an entire range of phones/functionality with an update? Are they going to QA every android product in existence?
Will older models slow down and become unusable as the baseline resource requirements increase? (I'm looking at you IOS7)...
I keep wondering why nobody just supersets Android. Even just having an Android phone which is designed to be repairable and have drivers in the kernel tree so it isn't tied to a specific kernel version, people would pay for that.
And then on top of it you can add all of your Google-alternative libraries and services, which need not be perfect immediately to get people to use it because they can start off running Android apps and buying it for the open hardware. But as you get more users, the software improves too.
Google has tried to release a phone before and they fail hard. The phone stops getting updates. If you want an android device with updates you have to get a BlackBerry.
Android OS is horrible because it's always different. From release to release. From phone to phone. Everyone has their own little tidbit to add and makes it non uniform.
Google doesn't control Android after they release it. It's open software (which is why Samsung gets to "skin" it the way they do) and Samsung could add anything they want or even rip bits out. It's not Google's decision.
Edit: this is a lot of downvotes for no comments. What's wrong with my comment?
This is not surprising and this hit-job of an article implies it has something to do with the quality of Lollipop rather than the real reason: When Google first released Android, it was a major underdog to iOS. As part of the negotiations to get the carriers to... um... carry phones with Android, Google sacrificed the ability to push out Android updates. That ability rests with the cell providers and they always take their sweet time with it.
Note: I have no particular love for Google. Just the truth.
The real problem with it is Linux. Here's a few facts:
The Kernel has no stable ABI for drivers.
Manufacturers only ever develop a driver for their chips once, and then send that to the OEM. They never update.
The Linux Kernel LTS gets 2 years of updates, Google's fork about 4.
From the day a Kernel is released, to the day it ships in a phone, usually 2 years are spent integrating the blobs and code drops from the chip manufacturers.
On every kernel upgrade that breaks the ABI, those 2 years would have to be redone from scratch.
Linux can't mainline support for every exotic piece of hardware that ever shows up in a device.
Manufacturers can't keep maintaining several developers to update every single chip they release.
Google can't keep Android on 6 year old kernels forever.
Now combine these facts, and you'll see the issue.
For about 2 months I have lived with almost no Google apps on my Android device, it has been crappy but I no longer trust them sadly. Looks like with 4.2 on this is going to be near impossible. I really want a decent open source, FOSS phone OS to come along. And before tin foil hat accusations are thrown at me, anyone who believes the relentless drive from Google to shove search, Google + and targetted advertising down people's throats is not getting out of hand needs a reality check, Google actually looks pretty desperate to me. Really hoping a decent Firefox OS phone or something else can come along, as it stands, I'll stick with CyanogenMod 10.1 and use F-Droid / sideloading.
I consider google with android to be a similar position to the linux kernel on my servers. I don't expect any of the kernel team to produce a patch for my 2.6.18 kernel I am running on a RHEL 5 system, I expect Red Hat to do that.
Why doesn't Samsung / LG / HTC manage Long Term support for Android versions, back port the patches and roll them out? Alternatively why don't they all pool together and manage an LTS version for customers.
It seems crazy that the company that has a relationship with the customer doesn't have to support the customer, and everyone instead blames google who wrote the code. The android vendors could back port, create alternative patches or simply make the device able to be updated to a more recent version.
Building a 150$ great phone would allow them to set a feature/quality floor for the market. If they forced their suppliers so the hardware in these phones is properly supported upstream, targeting new versions of Android should be pretty easy. When Ubuntu launches a new version it doesn't need to go and retrofit it to the thousand different types of laptop out there. The state of Android though is that the GPU/Camera/whatever drivers are binary blobs locked in to a specific kernel version.
[1] https://developer.android.com/about/dashboards/index.html
reply