![]() Be Mobile. Be Free. |
|
First, the Google phone ...
By now, everyone knows that there is really no Google phone but an open source phone platform. I am not sure how to make of it. Android is certainly not the first attempt of its kind. The SavaJe Technology (acquired by Sun) and Sun JavaFx Mobile are some of the examples of Java phone platforms. They did not quite take off for varieties of reasons. Would Google phone follow the same fate? Only time will tell. Google does provide access to the kernel source code which is based upon Linux, and is built for Qualcomm chipset. So you could imagine that the Google engineers will be using these devices to test the platform. You could see the phone from the video below from Google Android web site. The prototype phone is eerily similar to the screenshot from emulator. Somehow I have a hunch that someone will port this kernel and the Android platform to existing real phones soon. There are already some discussions going on for Dell Axim X50v, HTC Kaiser (also known as AT&T Tilt), and HTC Universal (also known as T-Mobile MDA-IV, etc). The core of Android runs Linux. Underlying C/C++ library is not well documented, and not supported. This is very similar to Apple iPhone. There have been some programmers hacking away, running console C/C++ applications on it. For now, without GUI, it is quite useless. But it could be a starting point to dig up the underlying file systems, etc. Google did mention in the document that Bluetooth and WiFi native APIs will be available, but not now. Hmmm, why am I not surprised? The Android platform is based on Java. In other words, if an application is not based on Java, it cannot be called Android application, even though it runs on Android-based phones. Major components in Android platform are shown in the following architecture diagram, taken from Google Android SDK doc.
One unique thing about Android is that every application has its own Java Virtual Machine (JVM) - Dalvik. The resource consumption for this JVM is not clear and no benchmark information is available. Intuitively it might be problematic but then again Google has proven the intuition wrong a few times. It would be interesting to see the rationales behind this decision. Key functionalities seem complete from the online resource and SDK document. Most of the networking functionalities will be supported in the final releases, including GSM, Bluetooth, EDGE, 3G, and WiFi. GPS will also be included. But they are not included in this version of Android SDK. Phone is so much different from PC. I am not sure phone platform alone can define the user experience. Aesthetics, materials, design, touch, hold, feel and operations are all parts of overall experience that are so crucial to the success of the phone, thus the underlying phone platform. Google certainly has a good start and let's hope Google succeeds in transforming the phone and phone platform landscape. I have been playing with Google Phone Android SDK since it was released. Please note that this is just some first impression, particularly when this SDK is not yet a final release. This article explores the Google Phone platform Android from developer's perspective, partly because I am from programming background and want to focus on development side of things, partly because, well, there is no phone :) Here are some screenshots from the emulator in SDK. You could download the emulator and give it a try. It is free. After you unzip the SDK, just run Emulator.exe in tools folder. As you can see, the applications available in the SDK emulator are fairly limited so far. Note that Note Pad is a sample I built and deployed from the SDK via Eclipse and the Android plugin.
Not much could be said about the web browser except it is based on WebKit engine as I could not get networking to work and test out its real capabilities. It does provide zoom in, zoom out and pan capabilities. The emulator itself does not have a menu where you could configure it. I could not dig up any useful information from command line options either.
Contact contains some basic information. Other PIM functions such as Calendar, Tasks and Notes are missing from SDK. However Google did promise to have them in the final release.
Development environment and tool are fantastic. It is based on Eclipse with Android plugin. Debugging of the application is painless because there is an emulator integrated with this IDE environment. This is certainly on par with Windows Mobile development tools. And in stark contrast with other open source Mobile Linux distributions, such as Familiar, Angstrom, OpenMoko, etc. I am able to follow the Google Android document and start building its sample applications right after downloading the SDK. Following are some observations from developer's perspective: The API and UI concepts such as Activity, Intent Receiver, Service, and Content Provider are different from the conventional UI design concepts, perhaps due to the java platform. Non-standard nature of these concepts might deter developers slightly because it is certainly not applicable on any other platforms. I have been looking for different resolution supports but can't find it. Perhaps this is good news because the programmers should not care about the resolutions ideally. Perhaps this is not so good if there is only one resolution, 320x240, as provided in emulator. There are some features in Android platform that stand out, including MapView API which integrates Google Map into Android, a XMPP protocol for P2P communication, and a Location-Based Service (e.g., GPS). UI are on par with other phone platforms, providing basic visual elements but not much beyond that. For instance, Trees, Spreadsheet, etc, advanced elements are not available. Maybe this is good trend toward a simplified interface. Personally I prefer that the advanced functionalities are available in case you need them. Samples are very comprehensive. API demos are grouped under these categories to showcase the UI capabilities.
These are autocomplete features when you type.
Basic date and time widgets.
Gallery contains very interesting capabilities and is quite nice. The operations to switch between pictures are very smooth and similar to iPhone, where the selected photo is zoomed in a bit to show the visual effect. Image formats such as JPG, PNG, GIF are supported. I am not able to test out video formats such as those mentioned (MPEG4, H.264, AAC, MP3, etc) in the document. However from the Media API descriptions, for instance, it looks simple enough to play a media file.
Here are some 2D and 3D sample applications. 2D graphics library is optimized by Google. 3D graphics is based on OpenGL ES 1.0 specifications.
Arrange objects by the grid
You could place pictures on the buttons.
A sample to view pictures with smooth switching similar to Apple iPhone.
Different styles of progress bars.
Radio buttons
There are two themes built-in: black and white. Apple design engineers, please help! Google style simplistic search home page definitely needs some helping hands when it comes to phone.
There are some programming and debugging options a programmer can configure.
This is the Notepad I built from SDK sample using Eclipse with Android plugin.
On the positive sides, Google Android is a drastically different approach from Apple's closed platform policy. I am sure it will be welcomed by all developers. Without a real phone to touch, to hold and to sell, there is not much at stake for Google like Apple does. Apple's one million iPhones in three months is in a league all by itself. Maybe Google is just testing the water. Let's hope that one million Android downloads in three months (wild guess?) translates into something bigger than Apple's stellar record. However, quite frankly, I am a bit disappointed at the moment (I definitely hope as time goes by the perception will change). Not at the Android phone platform (whether it is complete or polished enough), but at the non-revolutionary aspect of this platform. Granted, I might have high hope after much hyped rumors of Google Phone given track records of Google's innovations that we all grow accustomed to. Perhaps it also has something to do with iPhone's setting such a high standard in terms of innovation. Android platform is evolutionary in nature. I am certainly hoping to see more revolutionary elements going forward. Because of its openness, hardware vendors could also bring on their innovation to the platform. How well the model will work remains to be seen. |