Mobile OS and Application Platforms

The mobile industry is being increasing cluttered with jargon, says Anuj Gupta, our latest guest blogger for mobileapptesting.com. In this post, Anuj clears the air with an essential primer for anyone remotely involved in the mobile testing space, including discussions on the most popular operating systems and application platforms for iPhone, Blackberry, Windows mobile and more.

Mobile devices are evolving into increasingly sophisticated general purpose computers and this has led to the development of a variety of platforms and operating systems in the mobile space. Today, the operating system lying inside your mobile device is equally important as the device manufacturer (OEM). The various features, GUI, processing speed, and most importantly, the applications available for your device will depend greatly on the underlying OS.

Unfortunately, industry jargon has cluttered our understanding of this emerging technology. It is my intention to clear the air on a few of these misunderstandings. Here goes….

Manufacturers launch devices based on various user segments, and giving rise to a number of Mobile OS and Application platforms. A mobile OS manages the hardware and software resources of a mobile device, similar to that of a computer OS. Some OS platforms cover the entire range of the software stack, while others may only include the lower levels (typically the kernel and middleware layers) and rely on additional software platforms to provide a user interface framework.

Today’s phones are expected to run a growing range of software such as internet browsers, navigation packages, games and music/video players. Application platforms are supposed to provide a ground for them.  Application platforms are built over lower-level kernel operating systems (OS) such as Rex, Linux or compact real-time OS’s such as Nucleus. Software running on the device accesses platform resources through a set of application programming interfaces or APIs. Application development platforms, such as Brew, Symbian UIQ, Android, LIMO, ALP, Qtopia or WIPI provide programming resources for native and Java applications.

Mobile developers typically develop for multiple platforms to maximize their available market. This can be a difficult and time-consuming task as multiple platforms use different API calls for common OS operations and accessing OS resources such as accessing memory and files.

There is a variety of both the OS and the application platforms in the market. Obviously, some are more dominant than others. Here is a list of major mobile operating systems and Application platforms.

Mobile (Kernel) Operating Systems
The most common operating systems (OS) used in smartphones are:

Symbian OS from the Symbian Foundation
Symbian has the largest share in most markets worldwide, but lags behind other companies in the relatively small but highly visible North American market. It has been used by many major handset manufacturers, including BenQ, Fujitsu, LG, Mitsubishi, Motorola, Nokia, Samsung, Sharp, and Sony Ericsson. Prior to 2009, Symbian supported multiple user interfaces, i.e. UIQ from UIQ Technologies, S60 from Nokia, and MOAP from NTT DOCOMO. As part of the formation of the Symbian platform in 2009 these three UIs were merged into a single platform which is now fully open source. It has received some adverse press attention due to virus threats (namely Trojan horses).

The operating system consists of the kernel and middleware components of the software stack. The upper layers are supplied by application platforms like S60, UIQ, and MOAP.

Symbian has a “micro-kernel” architecture, which means that the minimum requirements are within the kernel to maximize robustness, availability and responsiveness. It contains a scheduler, memory management and device drivers, but other services like networking, telephony and file system support are placed in the OS Services Layer or the Base Services Layer. The inclusion of device drivers means the kernel is not a true microkernel. The EKA2 real-time kernel, which has been termed a “nanokernel” contains only the most basic primitives and requires an extended kernel to implement any other abstractions.

RIM Blackberry OS
This is a proprietary software platform, created by Research In Motion, for their Black Berry phones. OS is focused on easy operation and was originally designed for business.

The Blackberry operating system provides multi-tasking and supports specialized input devices that have been adopted by RIM for use in its handhelds, particularly the trackwheel, trackball, and most recently, the trackpad and touchscreen.

The BlackBerry platform is perhaps best known for its native support for corporate email, through MIDP 1.0 and, more recently, a subset of MIDP 2.0, which and allows complete wireless activation and synchronization with Microsoft Exchange, Lotus Domino, or Novell GroupWise email, calendar, tasks, notes, and contacts, when used in conjunction with BlackBerry Enterprise Server. The operating system also supports WAP 1.2. Recently it has seen a surge in third-party applications and has been improved to offer full multimedia support.

iPhone OS from Apple Inc.
The iPhone uses an operating system called iPhone OS, which is derived from Mac OS X. iPhone OS has four abstraction layers: the Core OS layer, the Core Services layer, the Media layer, and the Cocoa Touch layer. The operating system uses roughly 500 megabytes of the device’s storage. iPhone app store is the online market for downloading iPhone applications. Third party applications were not officially supported until the release of iPhone OS 2.0 on July 11th 2008.

Presently XCode 3.1 is the development environment and the applications are written in Objective C (a variant of language C).

Windows Mobile from Microsoft
Windows mobile is based on the Windows CE 5.2 kernel, and features a suite of basic applications developed using the Microsoft Windows API. It is designed to be somewhat similar to desktop versions of Windows, feature-wise and aesthetically. The current version is called “Windows Mobile 6.5″.

Third-party software development is available for this with several options for developers to use when deploying a mobile application. This includes writing native code with Visual C++, writing managed code that works with the .NET Compact Framework, or Server-side code that can be deployed using Internet Explorer Mobile or a mobile client on the user’s device. The .NET Compact Framework is actually a subset of the .NET Framework and hence shares many components with software development on desktop clients, application servers, and web servers which have the .NET Framework installed, thus integrating networked computing space called the cloud.

The two improved variants of this operating system, Windows Mobile 6 Professional (for touch screen devices) and Windows Mobile 6 Standard, were unveiled in February 2007. It has been criticized for having a user interface which is not optimized for touch input by fingers; instead, it is more usable with a stylus. However, unlike iPhone OS, it does support both touch screen and physical keyboard configurations. On February 15th, 2010 Microsoft unveiled its next-generation mobile OS, Windows Phone 7. The new mobile OS includes a completely new over-hauled UI called “Metro”. It includes full integration of Microsoft services such as Zune, Xbox Live and Bing.

Linux operating system
Linux is strongest in China where it is used by Motorola, and in Japan, used by DoCoMo. Rather than being a platform in its own right, Linux is used as a basis for a number of different platforms developed by several vendors, including Android, LiMo, Maemo, Openmoko and Qt Extended, which are mostly incompatible.PalmSource (now Access) is moving towards an interface running on Linux. Another platform based on Linux is being developed by Motorola, NEC, NTT DoCoMo, Panasonic, Samsung, and Vodafone.

Palm webOS from Palm Inc. and Palm OS/Garnet OS from Access Co.
Palm webOS is Palm’s next generation operating system. PalmSource traditionally used its own platform developed by Palm Inc.  Underneath the graphical user interface sits a software stack that has much in common with mainstream Linux distributions for desktop computers. webOS uses, among other components, the Linux kernel, Upstart, GStreamer as multimedia framework, libpurple for instant messaging, Simple DirectMedia Layer (SDL) for game programming, PulseAudio for audio management, and WebKit.Applications for webOS are written in JavaScript, HTML, AJAX, and some other common ‘web’ technologies, which is handled by WebKit, as well as C and C++. It supports streaming video in RTSP, H.263, and H.264 formats.

Palm publishes a webOS software development kit called Mojo which can be accessed from the launcher screen

Bada from Samsung
The Bada operating system has a kernel configurable architecture, which allows the use of either the Linux kernel, or another Real-time operating system (RTOS) kernel. The Linux kernel is the preferred choice for smartphones, while RTOS is used for cheaper feature-phones, due to its smaller memory footprint.

It has a web browser based on the open-source WebKit, and also features Adobe Flash. Both WebKit and Flash can be embedded inside native Bada applications. Bada offers interactive mapping with Point of interest (POI) features, which can also be embedded inside native applications.

Bada supports various sensors, such as motion sensing, vibration control, face detection, accelerometer, magnetometer, tilt, and GPS, which can be incorporated into applications.

Native applications are developed in C++ with the Bada SDK, and the Eclipse based IDE. Bada can also run Java ME applications (MIDP profile).

The bada mobile phone operating system is still in development, and Samsung expects handsets to be available in the second half of 2010.The first device to run Bada is called ‘Wave’ and was unveiled to the public at Mobile World Congress 2010, Wave is a fully touch screen phone running the new mobile operating system.

MeeGo from Nokia and Intel
At the 2010 Mobile World Congress in Barcelona, Nokia and Intel both unveiled ‘MeeGo’ a brand new mobile operating system which would combine the best of Moblin and the best of Maemo to create a truly open-sourced experience for users across all devices.

Android from Google Inc.
Android was developed by Google Inc. Android is an Open Source, Linux-derived platform backed by Google, along with major hardware and software developers (such as Intel, HTC, ARM, and eBay, to name a few), that form the Open Handset Alliance. This OS, though very new, already has a cult following among programmers eager to develop apps for its flexible, Open Source, back end. Android promises to give developers access to every aspect of the phone’s operation. This lends many to foresee the promise of further growth for the Android platform.

Anuj is a Creative Writer, Marcom Consultant and a Technology enthusiast with 4+ years of experience in Mobile technologies and Advertising. He often describes himself as a Writer’s heart in an Engineer’s body. He undertakes various freelance assignments apart from his job as a marcom executive in an IT firm. Read more of his writings at http://www.techmodish.blogspot.com/.

10 Responses to “Mobile OS and Application Platforms”

  1. Anuj said:

    I am glad it was useful for you Josiah.

    Take care..

    Anuj

  2. Mobile Application Platforms – Part II | Mobile App Testing said:

    [...] few weeks back, guest blogger Anuj Gupta laid out the basics of mobile operating systems and platforms, where he covered Symbian, iPhone, Windows Mobile and RIM Blackberry OS among others. Here is part [...]

  3. Abishek saware said:

    Very very thank you sir.I am prepairing for seminar on Android.Your this blog helps me alot. Again Thank you!

  4. NT said:

    hai

    this sounds interesting.

    but pl can u explain how we test moiles on these environments. how we connect them to the linux os.

  5. Arun Gupta said:

    Hi sir,
    I am having Samsung Wave S 8500 mobile phone (Bada OS).
    Can i run java games or applications on this. And, can i install themes other than smt.
    Pls help.

    thanks

  6. Anuj said:

    Its my pleasure guys. I would try to get back with more such articles.

    Anuj

  7. meenakshi devikar said:

    it is very useful

  8. rahul.del said:

    This could be a nice opportunity fr all the developers as Vodafone and Airtel consumers can now download local and global paid content on Nokia’s mobile app store and pay through monthly mobile phone bills or from the pre-paid balance. Nokia announced to pay 70% of the end user price straight to the developer… Developers can now sell their apps to millions of Nokia Consumers today via Direct Operator Billing in India.
    Nokia App Store attracts 15m downloads everyday, Start Earning More by Developing for Millions of Nokia Customers. Go To: http://www.earnwithappsnow.com/?pcode=112&src=11&act=1

  9. Hari Srinivas said:

    thank you for such a useful information….

  10. sandeep said:

    hi

    i m having Sansui H50t handset based on RTK OS.

    can anyone tell me where i can get compatible games for my handset?

    thanks in advance

    sandeep

Leave a Reply