- Update: “Gartner Says Android to Become No. 2 Worldwide Mobile Operating System in 2010 and Challenge Symbian for No. 1 Position by 2014” [Sept 10]: “Communication service providers’ (CSPs’) marketing and vendor support for Android-based smartphones will drive the platform to become the second-largest platform, following Symbian, by year-end 2010 (see Table 1). This is almost two years earlier than Gartner predicted a year ago.”
- Update: “Your Froyo Tablet Probably Won’t Support Android Market [Sept 10]: “Google says that this version of Android wasn’t optimized for tablets. … Functionally, the biggest hurdle is that most tablets won’t be able to use the Android Market, Google’s official store for Android apps.”
- Update: HTC to offer Android 3.0 tablet PC in 1Q11, say Taiwan component makers [Sept 15]; Acer to launch three tablet PC models featuring 5- to 7-inch panels [and Android 3.0 in the first quarter of 2011] [Sept 14]: “Before the Android models are released though, Acer will launch an x86 model using an Intel processor and Windows 7 to test the water in the market”.
- Update: Android smartphone shipments to surpass 55 million units worldwide in 2010, says Digitimes Research [Aug 17]. The following CY2010 ranking is forecasted: Symbian 35%, Android 19.6%, RIM Blackberry 16.4%, Apple iOS 15.2%, Microsoft 5%.
- Update: Samsung to Launch 7-inch Tablet in September [Aug 24] on Sept. 2 at the IFA Berlin consumer electronics show, based on Android 2.2.
- Related: Microsoft: At $15, Windows Phone 7 Is Cheaper than Free Android [Sept 1]. Not without foundation. The clearly accepted claim: “Android phone makers have a problem with upgrading Android — witness the ongoing Froyo update problems as evidence for that”. But what is really important: “Android devices sell like hotcakes, and Windows Phone devices don’t sell at all. So if Android costs phone makers more, they’d still flock to it, because that’s where the money is. So cost, at this point, is irrelevant.”
Ars technica had two articles in the last 3 days which have created quite an excitement on the web (66K+ hits):
- This is, however, just “the tip of the iceberg”.
- To understand that you could read first my two previous infonuggets on the subject if you want to grasp the extent of the current Android momentum:
– Beyond Android 2.1 [July 4]
– OPhone OS (OMS) 2.0 based on Android 2.1 [July 5]
- The mobile Internet technology momentum behind the Android in general could be well understood from my another infonugget:
– 3.9G TD-LTE rollout in 2012 with integrated 2G, 3G and 4G? [July 19]
- In addition, Android has just joined the ranks of the 1st tier cloud client software platforms, as has been indicated recently by my another infonugget, titled:
– E-reading SaaS wars next to e-reader wars [June 30]
- Finally, below is the whole discussion of Android 2.2 (Froyo) significance which will make the whole “iceberg” completely visible.
Android 2.2 is an incremental update, but the performance enhancements alone make it an important upgrade for Android enthusiasts. The improved responsiveness and smoother interface transitions really boost the user experience.
Several of the new features—particularly batch updating—offer immediate and obvious benefits. Other features, such as SD storage and cloud backup, aren’t going to start delivering real value until they get broader uptake among Android application developers. I’m particularly enthusiastic about the cloud messaging service—it seems like a capability that will deeply enrich Android and open the door for some innovation in the application development community.
Google’s aggressive development efforts are moving Android forward at a rapid pace. The platform has matured considerably since its initial launch two years ago. The introduction of a JIT [just-in-time compilation] in version 2.2 has largely resolved Android’s performance problems, making it more competitive than ever. As Google works towards version 3.0 and a rumored user interface overhaul, it’s likely that we will see even more innovation.
It is worth to combine the results of those two tests in a single chart (recalculated in order to show the performance improvement vs. the performance of the benchmark on the Nexus One with Android 2.1 as the baseline):
The performance improvement is especially remarkable for v8 benchmark which is quite understandable since the V8 Benchmark Suite by Google is:
SunSpider is just delivering about half of the performance improvement of the V8 benchmark suite which could be because:
Note: The main characteristics of a microbenchmark are the following:
• Small program
– Datasets may be large
• All time spent in a few lines of code
• Performance depends on how those few lines are compiled
• Goal: Discover some particular fact
• Remove all other variables
[See: slide #8 of the How NOT To Write A Microbenchmark presentation from JavaOne 2002]
The V8 benchmark suite used for tuning the engine might be more “microbenchmarkish” than the SunSpider benchmark which is explicitly trying to avoid microbenchmarking!
Developers of Android are themselves declaring that:
which seems to well correspond to the performance improvement result by the SunSpider benchmark suite.
Ars technica, however, didn’t carry out benchmarking of the Java engine used in Android 2.2 (so called Dalvik, which is not a regular JVM) albeit vast majority of Android applications are coded in Java, and:
The new Dalvik JIT [just-in-time] compiler in Android 2.2 delivers between a 2-5X performance improvement in CPU-bound code vs. Android 2.1 according to various benchmarks.
This is from the same, Android 2.2 and developers goodies [May 10, 2010] blog post which contains other significant improvements from developers’ point of view as well.
Endnote: My statement in the name of the post, that the type of Android 2.2 (Froyo) excitement shown by Ars technica is “just the tip of the iceberg” is even more true from software developers’ perspective. A lot of professional developers in technologically well established and long mature camps, like Microsoft .NET and JVM based enterprise Java / community developed application frameworks (eg. Spring), are considering the Android framework quite underperforming and immature. I’ve met even misunderstanding among them, that Android is programmed in JavaSript or even C++.
Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.
… Android includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework.
Since June 2009 there is also a Native Development Kit (NDK) for which it is good to know that:
Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse of existing code and in some cases increased speed.
… Please note that the NDK does not enable you to develop native-only applications. Android’s primary runtime remains the Dalvik virtual machine.
As you know, Android applications run in the Dalvik virtual machine. The NDK allows developers to implement parts of these applications using native-code languages such as C and C++.
… the NDK is a companion to the SDK that provides tools to generate and embed native ARM machine code within your application packages. This native code has the same restrictions as the VM code, but can execute certain operations much more rapidly. This is useful if you’re doing heavy computations, digital processing, or even porting existing code bases written in C or C++.
What is a Web App?
To me, a web app is basically a web site that is specifically optimized for use on a smartphone. The site content could be anything from a standard small business brochure site to a mortgage calculator to a daily calorie tracker–the content is irrelevant. The defining characteristics of a web app are that the user interface is built with web standard technologies, it is available at a URL (public, private, or perhaps behind a login), and it is optimized for the specifics of a mobile device. A web app is not installed on the phone, it is not available in the Android Market, and it is not written with Java.
What is a Native App?
In contrast, native apps are installed on the Android phone, they have access to the hardware (speakers, accelerometer, camera, etc.), and they are written with Java. The defining characteristic of a native app, however, is that it’s available in the Android Market–a feature that has captured the imagination of a horde of software entrepreneurs worldwide, me included.
Which Approach is Right for You?
Here’s where it gets exciting. The always-online nature of the Android phone creates an environment where the lines between a web app and a native app get blurry. There are even some little known features of the Android web browser that allow you to take a web app offline if you want.What’s more, several third party projects–of which PhoneGap is the most notable–are actively developing solutions that allow web developers to take a web app and package it as a native app for Android and other mobile platforms.
For me, this is the perfect blend. I can write in my native language, release a product as a pure web app (for Android and any other devices that have a modern browser), and use the same code-base to create an enhanced native version that can access the device hardware and potentially be sold in the Android Market. This is a great way to create a “fremium” model for your app – allow free access to the web app, and charge for the more feature-rich native version.