Archive for June 2011
For a long time, I’ve been waiting for the ability to use a Wi-Fi connection on an Android device in conjunction with Google Voice to make and receive calls without a cell phone plan. A few recent changes in Google Voice and the availability of the GrooVe IP app made this look like a reality; so I bought myself a Nexus One. It arrived yesterday.
The basic setup was quite simple: I had no problems setting up the N1 to use my home Wi-Fi network, and GrooVe IP was able to use my existing Google Voice account to make outgoing calls without a problem. Freedom from telcos at last!, I thought.
Well, not quite. Almost immediately I encountered a problem: there is apparently a bug in the drivers or firmware for the wireless adapter that causes it to shut down and disconnect from the wireless router when the phone’s screen shuts off, regardless of the phone’s setting for the Wi-Fi Sleep Policy. This means that I can’t receive incoming calls unless the screen is on.
Ok, no big deal, I thought. This phone is running a relatively old build of Android (2.2); it’s the official developer phone; so I ought to be able to find an update or workaround that fixes this issue. I’ve been winding my way down a troubleshooting rabbit hole ever since.
As a Debian user, I’m not used to this kind of experience. Here are my thoughts about the Android platform and ecosystem, after 24 hours of trying to fix this issue:
The Android “community” is fragmented. There is (or was) a lot of discussion fairly recently about fragmentation in Android software. A related and, I think, bigger problem is the fragmentation in the user community. There does not seem to be a central place to look for information about software problems, or to look for help. Instead, there’s a mish-mash of ad-supported Web-based forum sites, generally with a very low signal-to-noise ratio. Reports from frustrated users are many; but follow-ups from technically capable people are few and far between. If a solution is posted at all, it’s difficult to tell whether it worked, and whether it would be worth trying yourself. Sometimes, someone posts link to yet another third-party site with instructions to load a .zip file they’ve posted onto your device — not exactly confidence inspiring, to say the least.
Compared to the Debian world, this is like being back on Windows: authoritative information is almost impossible to find in the user community, and even when information looks authoritative, the fact that it’s posted on some random Web site instead of an official wiki or mailing list causes me to think twice.
There are a few things that Google and other stewards of the Android ecosystem could do to fix this community fragmentation:
- Create a single centralized mailing list for Android users. It should be a mailing list, or series of mailing lists, along the lines of those found at lists.debian.org. Having a mailing list, as opposed to a Web-based forum, allows proper threading and quoting (and doesn’t require clicking through artificial pagination) which makes it easier both to post and to find high-quality information. Technically-adept users will be more likely to provide good help to others if there is a single place to do so, and that place is accessible via e-mail and/or NNTP. (Of course, a Web-based interface is still useful, especially for searching the list archives, but shouldn’t be the primary means of access.)
- Create a centralized wiki containing articles about common problems, HOWTOs for addressing them, and attachments of files that users may need.
- Use these mailing lists and wiki for communication with the community. Of course, a mailing list and wiki won’t solve the signal-to-noise ratio unless the people who actually maintain Android have some involvement in it. Representatives from Google and from the handset manufacturers should regularly answer questions on the list, and they should enforce a certain amount of netiquette: users should be encouraged to search the archives first, ask detailed questions, refrain from flaming, etc.
This last point brings up another important issue: there seems to be a huge disconnect between “users” and “developers” in the Android world. Contact between users needing technical assistance and the people who can actually provide that assistance is few and far between; and often, the message amounts to, “We’re looking into it. Sit tight until the next release!”
To their credit, Google appears to want some of this interaction to happen. They have “community managers” who occasionally respond to user issues in the Google-hosted forums. Unfortunately, questions from users far outweigh messages from community managers, and few users are in any position to help one another. The contrast with the Debian users list is stark: in the Debian world, there is no artificial boundary between (enabled, enlightened) developers and (disabled, helpless) users; there are just users with varying degrees of knowledge, who contribute what they can when they can.
Google also has a publicly-accessible issue tracker, including a feature that allows additional users to upvote an issue. This is good for what it’s worth, but it doesn’t seem to have much influence on the direction of Android development. One gets the sense that Google uses a different, internal issue tracker for Android bugs and features. Android releases, for example, do not seem to list the specific issues that they close or address. So though some of the information I’ve seen indicates that my particular problem has been solved in Android 2.3.4, I can’t find any official confirmation of this.
Again, my point of comparison here is the Debian bug tracking system, where one sees regular contact between maintainers and users, and the relationship between issues and releases is made public and obvious.
I would much prefer to see a single issue-tracking system for Android that’s used by both users and developers, and that makes it obvious to anyone who cares to look exactly which issues are being worked on, when there’s a patch available, and when a fix will be available through an update.
Finally, there is the issue of the opacity of the update process. Android updates are rolled out to users a few at a time, without any explanation of why one group gets them before another. It’s possible to find instructions for installing these updates manually, but again, the information comes from third parties, not the Android developers, and it feels far from officially sanctioned. I have no idea why my phone thinks it’s up-to-date at version 2.2 (remember, it’s an unlocked, developer phone) when others have gotten 2.2.x or 2.3.x updates over the air.
I understand that for many users, updates come via their cell carrier, which has its own set of headaches. But for those users who are running an unmodified, unmediated Android on officially-supported hardware, I can’t understand why there is no equivalent of
apt-get dist-upgrade the moment a new stable release is available.
All of this leaves me feeling a little helpless in the face of what I thought was going to be a minor problem. I want to like Android, and I hope the project succeeds in building a stronger community and a stronger relationship between users and developers. From where I sit, though, it has a long way to go.