N Things Google Needs to Fix in Android

Wired runs a story about "5 Things Google Needs to Fix in Android". Here are the 5 things identified with my comment:

  • Push for More Consistency

"What makes it worse, he says, is that the Android experience is even
inconsistent across manufacturers, as each phone maker layers their own
interface on top (think HTC Sense and Motorola’s Motoblur) as a way of
making their Android phones stand out. And these extra layers, of
course, make it especially hard to update a phone to the latest version
of Android, creating an even larger disparity between what Android
phones can and can’t do."

This is indeed a dilemma. On one hand, OEMs need to have a software platform that supports the creation of hardware and software differentiations to build brand affinity, which naturally leads to some unique user experience of the home screen, the out-of-the-box application portfolio, OEM value-add contents and services on the device or in the cloud, and sometimes an application SDK for devices made by the same OEM. On the other hand, the software platform vendors (Google, Microsoft, and Symbian/Nokia) don't want to see their own ecosystem get too fragmented and thus would like to build more consistency into the platform. My take is that OEMs must be able to innovate on top of the software platform--this is Rule #1. Therefore Google must figure out a way to maintain UI design and platform customization consistency with their frequently updated releases, making it possible for OEMs to catch up with the new releases quickly.

  • Reorganize Android Market

"The lack of spell-check when searching for apps is just a minor reason
why navigating the Android Market can be so frustrating. It’s also
difficult to sift through apps. While users can whittle apps down to
broad categories, such as games, they can’t sort by rating or recently

Can Android Market offer some sort of 'shopping wizard' that leverages some Q&As with the user as well as social networking data to create app recommendations? Or can it provide something similar to Apple Genius in the apple app store?

Update: Android Market now has the "Just In" list of apps.

  • Make it Easy to Kill Apps

"Steve Jobs himself said, “If you see a task manager, they blew it.” By
“they” he means Google’s Android team. The problem is that there’s no
visual indicator of which apps are running, nor is there an easy way to
exit them or force them to close. (Slacker’s player lets you tap a soft
key to quit, but this isn’t a consistent experience — it varies from app
to app.)"

Task Manager as a platform component is definitely needed. No matter how smart the OS is (in terms of being able to track and kill long-run resource intensive applications that bring down device performance), user will still need a tool to do it themselves.

  • Don’t Let Apps Run Wild

"While we’re on the subject of multitasking, both Castonguay and Horman
agree that the freedom that draws developers to Android in the first
place has a downside: It also lets apps go overboard, slowing down
phones and draining their battery life. Google should step in, they say,
and enforce guidelines for how often an app pings the cloud or notifies
the user when it’s running in the background."

This is about the Android SDK design and Android Market certification process. The Android SDK is very powerful and flexible, not to mention the NDK. And this is one of the greatest advantages of the Android platform. So keep it as-is. Instead, what Google should do is to create a technical acceptance process for Android applications, and only allow those applications that pass a certain App Health check to publish. Microsoft is doing something similar at this point.

  • Cater to the Attention-Deficit Crowd

" ...the platform needs to be more nimble at switching between open apps.
Right now, Android users have to hit the home button to exit an app and
return to the home screen (they can also hold down the home button to
see key apps, but it’s the same idea)."

This is no a problem, I suppose. Right now one just needs to press and hold the home button to see and launch the applications used recently. Given a form factor of around 4" screen, I am not sure if there are better ways of doing application switching.

I also want to share my thought on the improvement that Google should make for Android platform development, from OEM's perspective.

  • A platform development IDE

Currently native code is debugged using gdb. A better integrated development environment similar to Microsoft Platform Builder will make platform development a lot easier. Ideally, the tool should provide easy kernel and platform level debugging capabilities (ddd-like), dmesg and logcat windows, flashing capability, and other small tasks that are currently enabled by miscellaneous command line tools scattered around the Android building environment. 

  • A better UI layout tool

Historically, Java application framework adopts a layout engine that was designed to allow easy adaption of various screen sizes. It works OK, but not very natural. Developers have to think about several layers of layouts, one embedded into another, for a hardly complicated UI. The SDK should have included a tool to make it easier.

  • A set of performance troubleshooting tools

While traceview can help profile the performance of the device, there is no real-time thread and events monitoring tool (such as Kernel
on Windows CE) on Android now. In addition, it would be of great help if there is a tool that breakdown UI delay at the application layer, within the Dalvik runtime, within system libraries, and even in kernel drivers. Of course, this requires the framework and system libraries source code to have built-in performance counters. As of now, performance troubleshooting on Android can be accomplished by instrumenting at different layers and investigate the logs, which usually turns out to be very tedious and time consuming. Google should do something to make it easier.

Overall Google is doing an excellent job creating the ever-growing Android ecosystem in such a short period of time. I am sure the Googlers in Mountain View are smart enough to find out what are missing in their current offerings. Just bear in mind that Android innovations comes not only from Google, but also from device OEMs.