Thursday, April 3, 2008

Android v.s. Symbian OS

I came across a side-by-side comparison between Android and Symbian OS.

Other than some technical details, most of the items compared apply to Windows Mobile as well.





















































































































































































































AndroidSymbian OS
Business model
Revenue stream for creatorAdvertising, fairy dust?Fixed license fee per phone (with a few quirks, all publicly known
Source code availabilityAvailable to nobody yet. Available to all, in theory, one day.Available only to Symbian OS phone manufacturers, plus partners who pay a lot.
Source code modifiabilityFreely modifiable (although I seem to remember constraints for Open Handset Alliance members, presumably related to keeping the APIs sufficiently similar between devices to keep a common platform for developersModifiable, but with similar restrictions aimed at keeping a common platform.
End-user opennessEnd devices will probably accept Java-language applications. No evidence that they will accept native applications.All end devices accept Java-language applications, and virtually all also accept native applications.
Current market position in smartphone marketZero, but has Google behind itOverwhelmingly dominant in EMEA and Japan, reasonable success elsewhere except America. (American technology writers just don’t realise Symbian exists, and that it’s America which is unusual…)
Technical Basis
API languageJavaC++ (J2ME Java also available for a subset of APIs)
Standards-complianceHighly POSIXy for native handset software. Proprietary for high-level Java APIs.Proprietary. POSIX layer available, but it limits interaction with the rest of the OS so much that it’s only really used for porting software.
KernelLinux with minor changesProprietary
Basic user libraryBSD-derived libcProprietary
User interfaceUnknown; current is a ‘placeholder’None; UIs developed by Nokia (S60), DoCoMo (MOAP) and UIQ/Motorola/Sony Ericsson (UIQ). Other UIs have existed in the past.
Typical filesystemYAFFS2Proprietary.
Toolchain for native softwareStandard GCC, possibly requiring prelinking and other odditiesProprietary, built on top of GCC
Binary formatStandard ELFProprietary
Toolchain for typical third party softwareAnt-based, dex compiler, etc.Same toolchain for entire device
Debugging/profiling/investigation toolsStandard UNIX toolsNot a lot
Inter-process communicationUnclear. D-bus for some layers. OpenBinder for others. Possibly something different again for messages flowing between the Dalvik-side processes.Proprietary; based on client-server.
Features
Pre-emptive multithreadingYesYes
Memory protection between processesYesYes
Pre-emptible kernelYesYes
Demand pagingYesYes
Virtual memory (page outs)Probably not according to Dianne Hackborn; they are anticipating devices with 64MB RAM and 128MB flashNot yet, but it may not be long; Symbian OS has been in use on phones with hard disks for some time
Shared librariesYesYes
Copy-on-writeYesN/A (’fork’ is not used)
Reference counting of kernel objects and proper cleanup if a process diesYesYes
Approaches to problems
Flash space taken by many copies of symbol names for dynamic linkageUnknown; maybe just don’t use too many native programsLink by ordinal not by name
Memory allocationAllocate a big hunk of virtual address space for process. On write, try to free up enough physical RAM pages to give it the memory it needs.Allocate minimum virtual and physical address space; heap algorithms in user library know how to request more RAM from kernel.
Memory full behaviourKernel will kill other processes if necessary to relinquish physical RAM. If no physical RAM is available, program is killed.On some Symbian systems, user-side heap library may request other apps to exit. If no memory really is available, malloc equivalent throws an exception and application should be able to handle it.
Memory management within user codeCheck for NULLs from malloc if you’re lucky, but you’ve probably got spare virtual address space anyway so it’s unlikely you’ll be told of a memory allocation failureIncredibly anal rules about memory management
SecurityEach process runs as its own user. Unclear how this prevents access to certain APIs that could do destructive things.Processes have capabilities and can only access APIs appropriate to their capabilities. Applications must be certified and are then signed such that they cannot access APIs beyond their capabilities.
Overhead of loading binariesStore application code as dex files which can just be mmap’ped inStore application code as native code which can just be mmap’ed in (or equivalent)
Overhead of interpreter startupApplication interpreter starts once (Zygote) and all other processes fork from thatNo interpreter - native applications
ComponentisationSoftware uses ‘intents’ to say what it wishes to do. Other software can fulfil the intent.Applications typically rigidly defined (but can load plug-ins).
XML and text files are inefficientCompile XML down to a binary representationCompile resource files down to a binary representation
Overhead of multiple threadsRemove need for multiple threads, but allow developers to use them if they wish. Provide event loop which runs in main thread and can respond to most events. Allow events to be posted onto event loop using handler object.Remove need for multiple threads, but allow developers to use them if they wish. Provide object-oriented event loop in main thread (’active scheduler’), using ‘active objects’ to respond to each type of incoming event.

Overhead of making APIs and libraries thread-safeInsist they are used only from main threadRun in a different process; use IPC for all UI requests. And indeed pretty much anything else.

Tuesday, March 18, 2008

Slashdot: High Expectations For Google Android

Check out this Slashdot story, which is a nice summary of latest Android news.

Now it seems clear that Android phones are competing with iPhones.

Now it is clear that iPhone is used as the phone that every OEM wants to beat, including those Windows Mobile Seven based phones.

I would like to publicly make a speculation that Android phones will reach 1 million in less than 6 months from the debut, which is sometime in the second half of this year.

How long will it take for Android phones to reach 10 million? I would say 18 months.

Friday, February 1, 2008

Microsoft Acquires Yahoo

MSFT made an offer to buy YHOO at $31 a share today, Feb 1st, 2008. This will be the largest tech acquisition ever. This boosts Microsoft to Search #2, and gives it a very nice web portal (yahoo.com).

As for the mobile field, not much impact as I see it. Yes Yahoo has bought a mobile developer team directly from Motorola. However, Yahoo barely made any big in this area, except that Yahoo Go! software. Let's see how it turns out...

Sunday, January 20, 2008

Thursday, January 17, 2008

The Race Is On

It has been quiet out there on Google Android and Open Handset Alliance lately.


But from various sources I have, several OEM/ODMs are working around the clock to get their Android phone shipped PRETTY SOON. At least one major US operator has already signed up to ship one Android phone this year. Clearly the race is on to ship the 1st Android phone.


As for how the phone looks like, I heard Android phones will look much better than the “Wistron gPhone that was shown at CES”. Guess how many Android phones will be shipped this year? Will it have a huge impact on Windows Mobile?

Wednesday, January 16, 2008

Mobile Application Development Analysis (Android and Others)

I came across this technical document on the web that does a good job evaluating four major mobile application development platforms: J2ME, BRWE, Symbian, and Android.

One missing here is Windows Mobile of course.

From the report:

Technical Features:

The technical features and specifications for Android are as follows:

· Handset layouts: The platform is adaptable to both larger, VGA devices and more traditional smart phone layouts.

· Connectivity: Android supports a wide variety of connectivity technologies including Bluetooth, EDGE, 3G, and WiFi.

· Messaging: Both SMS and MMS are available forms of messaging including threaded text messaging.

· Web browser: The web browser available in Android is based off of the open-source Web Kit application framework.

· Java virtual machine: Software written in Java can be compiled into Dalvik byte codes and executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine.

· Media support: Android will support advanced audio/video/still media formats such as MPEG-4, H.264, MP3, and AAC.

Device Support:

Recently announced by the Open Handset Alliance, whose 34 members include Google, HTC, Motorola, Qualcomm, and T-Mobile, Android is a new Linux-based platform currently available only as a developer pre-release. Although it does not yet have any fielded implementations, its support by 34 major software, hardware and telecoms companies makes it likely that it will be rapidly adopted from 2008. Android application environment is J2me CDC and thus SUN CDC emulator and J2ME Java for personal profile applies can use Net Beans and Eclipse IDEs.

Looking for a in-depth analysis of the Android OS ...

Wednesday, January 9, 2008

Wistron showcases "Google Phone" at CES 2008

The image “http://www.techchee.com/wp-content/uploads/2008/01/google-android-prototype-by-taiwanese-wistron-neweb-corp-060108.jpg” cannot be displayed, because it contains errors.

Wistron NeWeb Corp(WNC), a Taiwanese phone ODM, shows a real Android based phone at CES 2008. This is the first publicly announced Android based cell phone. Wistron said the phone will be shipped in March.
http://photo1.bababian.com/upload6/20080109/AD53069ECCBA6FC9B5576F02CDF192B6.jpg
http://photo1.bababian.com/upload6/20080109/6E5230B78888369A72B01F1950EF18DF.jpg
From PCMag CES2008 coverage:

The GW4 is based on a TI OMAP 1710 chipset with a 216-MHz processor and only 64 MB of program memory, yet the model we saw ran the Opera Web browser, played video and flipped between a range of Web widget applications like weather and stocks. The user interface was very responsive.

The phone will come in two tri-band GSM/GPRS versions, one for the U.S. and one for Europe and Asia. The very slow cellular GPRS (not EDGE) network will be complemented by 802.11g Wi-Fi with a built-in SIP VOIP client for Internet calling. A higher-speed 3G version will come out by the end of 2008. The GW4 also has a 2.5-inch, 320x240 touch screen and 2-megapixel camera.

Other built-in apps include a mail program with Outlook syncing, MSN/Yahoo/AIM IM clients and MS Office and PDF readers, though those will presumably be replaced by whatever apps Google ends up preferring in their Android suite.


Update: According to the PCMag story, the phone they showed at CES is actually running a version of MontaVista Linux 2.6. Wistron spokeswoman Molly Lin said the GW4 will be running Android by March, when Wistron will start selling it to more prominent firms for branding

This brought up an interesting question: how does Wistron get Android? They are not a member of Open Handset Alliance ...

Tuesday, January 8, 2008

Leaked Windows Mobile 7 details?

Windows-Mobile-7-Overview
Someone close to Microsoft posted some screenshots and descriptions of Windows Mobile 7 that Microsoft is developing. According to the source, Windows Mobile 7 will have cool touch and motion UIs that look even better than what iPhone has.

Key "What's New":
  • Windows Mobile 7 will use touch gestures, similar to how the iPhone does.
  • Windows Mobile 7 will use the camera on the phone to detect motions and create appropriate actions.
  • Windows Mobile 7 will have dramatically improved visuals, different from the iPhone and much more similar to the dark and futuristic visuals of Windows Vista.
  • Windows Mobile 7 is designed to use the finger, not the stylus, though many devices will be required to include a stylus.
  • Windows Mobile 7 is clearly designed for better media playback, ..., Mobile Internet Explorer runs full-screen web pages in a minimalistic interface, and has “tabbed” browsing, except you can switch tabs by shaking the phone.
  • The keyboard has been improved, but plans for a full touch keyboard, a la the iPhone, have been shelved until a future version of Windows Mobile.
If these features finally make into Windows Mobile 7, then I have to say Windows Mobile 7 is indeed innovational. To the feature planning, if true, represents a fundamental change in design philosophy of Windows Mobile. Challenged by Apple iPhone and upcoming Google Android powered phones, folks in Redmond may start to think deeply about what a "consumer' really wants in terms of using a mobile gadget.

Will Android support touch screen as well as those fancy visuals? What cool stuff can it offer to beat the expectation?