Monday, July 18, 2011

Android: Who is worse, Google or the OEMs?





Now that I have your attention, I’d like to shed some light on what inspired this tirade I am about to display. Recently I purchased aSamsung Galaxy Tab 10.1 Android tablet. Regular readers will remember that I previously owned a Motorola Xoom tablet, which I have since passed on to Jason Perlow.
I love the hardware on the Galaxy Tab. It’s thin, it’s light, it’s comfortable to hold. The display is sharp and bright, and the battery life is excellent. The power adapter uses a proprietary connector, but at least that connector goes into a fairly standard 5 volt, 2 amp USB brick that can be used to charge pretty much any device that gets its juice through a USB cable.
On July 12, however, my love of all things Samsung came crashing down upon me as I suddenly discovered that my shiny new tablet was misbehaving–badly.
The highly touted bookmark sync between the desktop Chrome browser and Android 3.x Honeycomb tablets had stopped working. It was causing the automated background synchronization process between the tablet and all Google services to crash.
It turns out that at some point Google started making some changes to the backend systems that handle Google’s user account data. There’s nothing wrong with them doing this; it happens all the time. In fact, no other Android 3.1 tablets had any issues at all with the changes, and their bookmark sync continued to work without a blip on the radar.
Not Samsung, however. I’ve discussed the issue with a number of people, including Howard Burgess, author of the ChromeMarks for Android app. Howard tells me that the ability to push the bookmarks from his app into the Samsung browser stopped working on July 12.
I also discovered that the PhoneMarks app, which provides similar functionality, is also having issues operating properly on Samsung devices. When I tried to run it on my tablet, the app would continually crash as it tried to access the Google data backend.
So what does this mean? Well, I did some digging around the internet, and it’s become somewhat well-known amongst Android developers that Samsung actually modifies core source code in the Android operating system that handles communicating with Google’s backend data services.
Say WHAT?
Yes, that is correct. Just head over to the XDA Developers forum and search for yourself. There are people complaining about modifications to the browser, the backend communications issues, and more.
What really bothers me about this is that while it is important for OEMs to make sure the software functions properly with the hardware, Samsung is changing code they should not be touching at all. What made their developers think they know better than Google what goes on with their backend services? Samsung can’t even get their own OTA update services for their devices working properly; they shouldn’t be messing with the core communication software that connects to a service they have no access to whatsoever.
It’s not just Samsung doing this, although currently they seem to be the worst offender. Motorola and HTC respectively put out heavily modified kernels for Android that include their Motoblur and SenseUI interfaces. Samsung does the same with TouchWiz. Some people love these custom launcher/skinned interfaces for their phones and tablets. I even tried the leaked TouchWiz 4 interface from Samsung for my tablet.
Then again, some people don’t love them. Most of the time they add an extra layer of apps that are pre-loaded into memory, causing an unnecessary burden on the CPU and decreasing battery life. I liked the TouchWiz widgets, but didn’t like the modification of the browser. I was annoyed by its tendency to load apps I didn’t use into memory, and couldn’t even block from loading. Also, over time, my tablet became more and more unstable the longer the TouchWiz interface was running.
Here’s the thing: When I was running the Motorola Xoom tablet, I had none of these problems. Why? Because it’s Google’s flagship tablet device. As such, they are not allowed to modify the operating system in any way. It has to be plain vanilla Android. As such, it was quite stable when I used it–after the Honeycomb 3.1 update, of course.
Non-flagship devices are not limited by this restriction, which means the OEMs can do whatever they want to them. And that results in the issues I experienced with my tablet. I should point out that I was finally able to sync my bookmarks to my tablet, but I have to do it manually. If I keep the automated bookmark sync option enabled in my tablet settings, it will crash the sync process every single time it runs.
So who’s at fault here? I’m inclined to just swing wildly and include everyone involved. Samsung modified core operating system functionality when they should have left well enough along. Google didn’t stop any of the OEMs from fiddling with things that should have been outside their permission to mess with.
Also, Google hasn’t released the Honeycomb source code–I would love to see the folks from CyanogenMod get a hold of it so they could release a stable, vanilla firmware for all tablets. Samsung provides a website where developers can test their code, but their website is broken so you can’t create a new account to test your code.
At this point I am in total agreement with Jason in that these devices need to have a low-level hypervisor that interfaces between disparate OEM hardware and a standardized version of Android. Stop letting the OEMs make decisions about the operating system.


No comments:

Post a Comment

Blog Archive