You are on page 1of 32


iOS is Apple's mobile operating system developed originally for the iPhone, and later deployed on the iPod Touch and iPad as well. It is derived from Mac OS X, with which it shares the Darwin foundation, and is therefore a Unix-like operating system, by nature. In iOS, there are four abstraction layers: the Core OS layer, the Core Services layer, the Media layer, and the Cocoa Touch layer. The operating system uses roughly 800 megabytes of the device's storage.

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. It can be considered as a software platform as well as an operating system for mobile devices based on the Linux operating system and developed by Google and the Open Handset Alliance. It allows developers to write managed code in a Java-like language that utilizes Google-developed Java libraries. The android architecture consists of key applications, application framework, core libraries, android runtime and a Linux kernel. The main features of android applications are which have an integrated browser, SQLite for data storage, support for common audio, video formats and it has GSM, EDGE, 3G and Wi-Fi connectivity etc. An android application consists of four important parts. They are Activity, Intent receiver, services and content provider. There are some application development tools like Eclipse for the android phones. Google also develop emulator of android phone. Which help the application developers to run the application without an android phone. Many versions of android operating system are available like Gingerbread, Honeycomb, Froyo etc. The latest one is Jelly Bean i.e, Android 4.1. The development of android made a boom in the mobile technology field.

Abstract 1


Overview of apple iOS And Android

The Birth of Android Origin of iPhone Features of Android Technology Behind iOS Architecture of Android Some Similarities Comparison between Android and iOS

7 9 13 16 23 28 29

Conclusion References

30 32


iOS is Apple's mobile operating system. Developed originally for the iPhone, it has since been shipped on the iPod Touch and iPad as well. Apple does not permit the OS to run on third-party hardware. As of June 7, 2010, Apple's App Store contained more than 225,000 iOS applications, which had collectively been downloaded more than five billion times. The user interface of iOS is based on the concept of direct manipulation, using multi-

touch gestures. Interface control elements consist of sliders, switches, and buttons. The response to user input is immediate and provides a fluid interface. Interaction with the OS includes gestures such as swiping, tapping, pinching, and reverse pinching. Internal accelerometers are used by some applications to respond to shaking the device (one common result is the undo command) or rotating it in three dimensions (one common result is switching from portrait to landscape mode). iOS is derived from Mac OS X, with which it shares the Darwin foundation, and is therefore a Unix-like operating system by nature.

In iOS, there are 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.


Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android is a software platform and operating system for mobile devices based on the Linux operating system and developed by Google and the Open Handset Alliance. It allows developers to write managed code in a Java-like language that utilizes Googledeveloped Java libraries, but does not support programs developed in native code. The unveiling of the Android platform on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 34 hardware, software and telecom companies devoted to advancing open standards for mobile devices. When released in 2008, most of the Android platform will be made available under the Apache free-software and open-source license.


iOS comprises the operating system and technologies that you use to run applications natively on devices, such as iPad, iPhone, and iPod touch. Although it shares a common heritage and many underlying technologies with Mac OS X, iOS was designed to meet the needs of a mobile environment, where users needs are slightly different. If you have previously developed applications for Mac OS X, you will find many familiar technologies, but youll also find technologies that are available only on iOS, such as the Multi-Touch interface and accelerometer support. The iPhone SDK contains the code, information, and tools you need to develop, test, run, debug, and tune applications for iOS. The Xcode tools provide the basic editing, compilation, and debugging environment for your code. Xcode also provides the launching point for testing your applications on an iOS device, and in iPhone Simulatora platform that mimics the basic iOS environment but runs on your local Macintosh computer.

Android delivers a complete set of software for mobile devices: an operating system, middleware and key mobile applications. Open Android was built from the ground-up to enable developers to create compelling mobile applications that take full advantage of all a handset has to offer. It was built to be truly open. For example, an application can call upon any of the phones core functionality such as making calls, sending text messages, or using the camera, allowing developers to create richer and more cohesive experiences for users. Android is built on the open Linux Kernel. Furthermore, it utilizes a custom virtual machine that was designed to optimize memory and hardware resources in a mobile environment. Android is open source; it can be liberally extended to incorporate new cutting edge technologies as they emerge. The platform will continue to evolve as the developer community works together to build innovative mobile applications. All applications are created equal Android does not differentiate between the phones core applications and third-party applications. They can all be built to have equal access to a phones capabilities providing users with a broad spectrum of applications and services. With devices built on the Android Platform, users are able to fully tailor the phone to their interests. They can swap out the phone's home screen, the style of the dialer, or any of the applications. They can even instruct their phones to use their favorite photo viewing application to handle the viewing of all photos. Breaking down application boundaries Android breaks down the barriers to building new and innovative applications. For example, a developer can combine information from the web with data on an individuals mobile phone such as the users contacts, calendar, or geographic location to provide a more relevant user experience. With Android, a developer can build an application that enables users to view the location of their friends and be alerted when they are in the vicinity giving them a chance to connect. Fast & easy application development Android provides access to a wide range of useful libraries and tools that can be used to build rich applications. For example, Android enables developers to obtain the location of the device, and allows devices to communicate with one another enabling rich peertopeer social applications. In addition, Android includes a full set of tools that have been built from the ground up alongside the platform providing developers with high productivity and deep insight into their applications.


Google Acquires Android Inc. In July 2005, Google acquired Android Inc., a small startup company based in Palo Alto, CA. Android's co-founders who went to work at Google included Andy Rubin (cofounder of Danger), Rich Miner (co-founder of Wildfire Communications, Inc), Nick Sears (once VP at T-Mobile), and Chris White (one of the first engineers at WebTV). At the time, little was known about the functions of Android Inc. other than they made software for mobile phones. At Google, the team, led by Rubin, developed a Linux-based mobile device OS which they marketed to handset makers and carriers on the premise of providing a flexible, upgradeable system. It was reported that Google had already lined up a series of hardware component and software partners and signaled to carriers that it was open to various degrees of cooperation on their part. Open Handset Alliance Founded On 5 November 2007, the Open Handset Alliance, a consortium of several companies which include Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel and NVIDIA, was unveiled with the goal to develop open standards for mobile devices. Along with the formation of the Open Handset Alliance, the OHA also unveiled their first product, Android, an open source mobile device platform based on the Linux operating system. Hardware Google has unveiled at least three prototypes for Android, at the Mobile World Congress on February 12, 2008. One prototype at the ARM booth displayed several basic Google applications. A 'd-pad' control zooming of items in the dock with a relatively quick response.

A prototype at the Google IO conference on May 28, 2008 had a 528 MHz Qualcomm processor and a Synaptics capacitive touch screen, and used the UMTS cellular standard. It had 128 MB of RAM and 256 MB of flash, showing that Android's memory requirements are reasonable. The demo was carried out using a 3.6 Mbit/s HSDPA connection.


Comments made by Jobs in April 2003 at the "D: All Things Digital" executive conference expressed his belief that tablet PCs and traditional PDAs were not good choices as high-demand markets for Apple to enter, despite many requests made to him that Apple create another PDA. He did believe that cell phones were going to become important devices for portable information access, and that what cell phones needed to have was excellent

synchronization software. At the time, instead of focusing on a follow-up to their Newton PDA, Jobs had Apple put its energies into the iPod, and the iTunes software (which can be used to synchronize content with iPod devices), released January 2001. On September 7, 2005, Apple and Motorola released the ROKR E1, the first mobile phone to use iTunes. Jobs was unhappy with the ROKR, feeling that having to compromise with a non-Apple designer (Motorola) prevented Apple from designing the phone they wanted to make. In September 2006, Apple discontinued support for the ROKR and released a version of iTunes that included references to an as-yet unknown mobile phone that could display pictures and video. On January 9, 2007, Jobs announced the iPhone at the Macworld convention, receiving substantial media attention, and on June 11, 2007 announced at the Apple's Worldwide Developers Conference that the iPhone would support third-party applications using the Safari engine on the device. Third-parties would create the Web 2.0 applications and users would access them via the internet.

Such applications appeared even before the release of the iPhone; the first being "OneTrip", a program meant to keep track of the user's shopping list. On June 29, 2007, Apple released version 7.3 of iTunes to coincide with the release of the iPhone. This release contains support for iPhone service activation and syncing



Company/developer: Programmed in: OS Family: Working state: Initial release: Latest stable release: Apple inc. C, C++, Objective-C Mac OS X/UNIX like Current June 29, 2007
iPhone (3GS+) iPod Touch (3G+) iPad (all models)

5.1.1 (Build 9B206) (May 7, 2012; 4 months ago)

Latest unstable release: Available language(s): Supported platforms : Kernel type: Default user interface: License: Official website: 34

iPhone (3GS+) iPod Touch (4G+) iPad (2G+) Apple TV (2G+)

6.0 GM seed (Build 10A403) (September 13, 2012; 4 days ago)

ARM (iPhone, iPod Touch, iPad, and 2nd gen. and TV), AppleA4, Apple A5, Apple A5X, Apple A6

higher Apple

Hybrid (XNU) Cocoa Touch (Multi-touch, GUI) Proprietary EULA except for open source components



The operating system was unveiled with the iPhone at the Macworld Conference & Expo on January 9, 2007, and released in June of that year. At first, Apple marketing literature did not specify its name, stating simply that the "iPhone uses OS X". Initially, third-party applications were not supported. Steve Jobs argued that developers could build web applications that "would behave like native apps on the iPhone". On October 17, 2007, Apple announced that a native SDK was under development and that they planned to put it "in developers' hands in February". On March 6, 2008, Apple released the first beta, along with a new name for the operating system: iPhone OS. Brisk sales of Apple mobile devices kindled interest in the SDK. The previous September, Apple had released the iPod Touch, which had most of the non-phone capabilities of the iPhone. Apple also sold more than one million iPhones during the 2007 holiday season. On January 27, 2010, Apple announced the iPad, featuring a larger screen than the iPhone and iPod Touch, and designed for web browsing, media consumption, and reading iBooks.


Features of Android

Application Framework It is used environments, to write applications for Android. Unlike other embedded mobile applications are all equal, for instance, an applications


which come with the phone are no different than those that any developer writes.The framework is supported by numerous open source libraries such as openssl, SQLite and libc. It is also supported by the Android core libraries. From the point of security, the framework is based on UNIX file system permissions that assure applications have only those abilities that mobile phone owner gave them at install time. Dalvik Virtual Machine It is extremely low-memory based virtual machine, which was designed especially for Android to run on embedded systems and work well in low power situations. It is also tuned to the CPU attributes. The Dalvik VM creates a special file format (.DEX) that is created through build time post processing. Conversion between Java classes and .DEX format is done by included dx tool.

Integrated Browser Google made a right choice on choosing WebKit as open source web browser. They added a two pass layout and frame flattening. Two pass layout loads a page without waiting for blocking elements, such as external CSS or external JavaScript and after a while renders again with all resources downloaded to the device. Frame flattening


converts founded frames into single one and loads into the browser. These features increase speed and usability browsing the internet via mobile phone. Optimized Graphics As Android has 2D graphics library and 3D graphics based on OpenGL ES 1.0, possibly we will see great applications like Google Earth and spectacular games like Second Life, which come on Linux version. At this moment, the shooting legendary 3D game Doom was presented using Android on the mobile phone. SQLite Extremely small (~500kb) relational database management system, which is integrated in Android. It is based on function calls and single file, where all definitions, tables and data are stored. This simple design is more than suitable for a platform such as Android.

Handset Layouts The platform is adaptable to both larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 1.0 specifications, traditional smart phone layouts. An underlying 2D graphics engine is also included. Surface Manager manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications Data Storage SQLite is used for structured data storage .SQLite is a powerful and lightweight relational database engine available to all applications. Connectivity Android supports a wide variety of connectivity technologies including GSM, CDMA, Bluetooth, EDGE, EVDO, 3G and Wi-Fi.


Messaging SMS, MMS, and XMPP are available forms of messaging including threaded text messaging. Web Browser The web browser available in Android is based on the open-source WebKit application framework. It includes LibWebCore which is a modern web browser engine which powers both the Android browser and an embeddable web view. Java Virtual Machine Software written in Java can be compiled into Dalvik bytecodes 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, AMR, JPEG, PNG, GIF. Additional Hardware Support Android is fully capable of utilizing video/still cameras, touchscreens, GPS, compasses, accelerometers, and accelerated 3D graphics. Development Environment Includes a device emulator, tools for debugging, memory and performance profiling, a plugin for the Eclipse IDE. There are a number of hardware dependent features, for instance, a huge media and connections support, GPS, improved support for Camera and simply GSM telephony. A great work was done for the developers to start work with Android using device emulator, tools for debugging and plugin for Eclipse IDE.




The kernel in iOS is based on a variant of the same basic Mach kernel that is found in Mac OS X. On top of this kernel are the layers of services that are used to implement applications on the platform. Figure 1-1 shows a high- level overview of these layers. Figure 4: iOS technology layers

This layering gives you choices when it comes to implementing your code. For example, the Core OS and Core Services layers contain the fundamental interfaces for iOS, including those used for accessing files, low-level data types, Bonjour services, network sockets, and so on. These interfaces are mostly C-based and include technologies such as Core Foundation, CFNetwork, SQLite, and access to POSIX threads and UNIX sockets among others. As you move into the upper layers, you find more advanced technologies that use interfaces based on a mixture of C and Objective-C. For example, the Media layer contains the fundamental technologies used to support 2D and 3D drawing, audio, and video. This layer includes the C-based technologies OpenGL ES, Quartz, and Core Audio. It also contains Core Animation, which is an advanced Objective-C based animation engine. In the Cocoa Touch layer, most of the technologies use Objective-C. The frameworks at these layers provide the fundamental infrastructure used by your applicatio n. For example, the Foundation framework provides object-oriented support for collections, file management, network operations, and more. The UIKit framework provides the visual infrastructure for your application, including classes for windows, views, controls, and the controllers that manage those objects. Other frameworks at this level give you access to the users contact and photo information and to the accelerometers and other hardware features of the device. The starting point for any new project is the Cocoa Touch layer, and the UIKit framework in particular. When deciding what additional technologies to use, you should start with frameworks

in the higher- level layers. The higher- level frameworks make it easy to support standard system behaviors with the least amount of effort on your part. You should fall back to the lower-level frameworks only if you want to implement custom behavior that is not provided at a higher level.


The iPhone SDK supports the creation of graphically-oriented applications that run natively in iOS. The applications you create reside on the users Home screen, along with the other system applications, such as Photos, Weather, and Clock. While running, your application occupies the entire screen and is the focus of the users attention. There is no concept of separate document windows for displaying content. Instead, all of the applications data is displayed in a single window. The event-handling model in iOS represents a significant departure from traditional desktop applications. Instead of relying on the traditional mouse and keyboard events, iOS introduces the idea of touch events. A touch event can occur at any time and in combination with one or more additional touch events. Touches can be used to detect simple interactions with content, such as selecting or dragging items, or they can be used to detect complex gestures and interactions, such as swipes or the pinch-open and pinch-close gestures (used, for example, to zoom in and out in the Photos application). Beyond considering the basic structure of your application, you need to think about how users will actually use it. iOS applications should be clean, and focused on what the user needs in the moment. Remember that users who are on-the-go want to get at information quickly and not spend a lot of time looking through several layers of screens. Providing a simple layout that highlights the key information the user needs is important. For games and other fun applications, you should also consider how the users might want to interact with your application and take advantage of technologies such as the accelerometers and camera where appropriate. As you start development, the frameworks you want to use initially are the Foundation and UIKit frameworks. These frameworks provide the key services used by all iOS applications. As you refine your application, you should investigate the other frameworks in the system to see what services they offer. The documentation for each framework includes links to relevant conceptual materials to help you learn more about how to use that framework.



iPhone SDK 4 provides support for developing iPhone applications and includes the complete set of Xcode tools, compilers, and frameworks for creating applications for iOS and Mac OS X. These tools include the Xcode IDE and the Instruments analysis tool among many others. With this software you can develop applications that run on iPhone or iPod touch using the included iPhone Simulator, which runs iOS. Installing iPhone SDK 4 requires a Macintosh computer running Mac OS X 10.6.2 (Snow Leopard) or later.

AV Foundation:

In this release, the AVAssetReader and AVAssetWriter classes have been removed from the AV Foundation framework.


LLVM GCC and LLVM compiler are now included as optional compilers for iPhone development. When selecting a target and then choosing "Update Current Target for iPad," new nib files are created but not converted to iPad. To fix this problem:

Either select each nib file that was copied, open it in Interface Builder, select the "File -> Create iPad Version" menu option, then select "Save As" for the document, and save over the nib file. Or invoke this command in the terminal from the project's folder: find Resources-iPad -type f -name "*.xib" -exec ibtool --sdk "" --change-targetruntime IBIPadFramework {} --write {} \;


When debugging your multitasking enabled app, avoid manually pausing and continuing from the debugger when the application is suspended in the background. Pausing an application that is suspended in the background disrupts proper multitasking behavior until the application is relaunched. Using a datatip on a uninitialized object, or turning it open in the variables view, will sometimes make it look like the program has crashed. The status bar at the bottom of Xcode's windows will showProgram received signal: "EXC_BAD_ACCESS" and the


toolbar buttons for stepping through the code will be disabled. To recover, choose Sync with Debugger from the Run menu and continue debugging.

Interface Builder:

iOS includes a new UINib class to support rapidly unarchiving nib files. While this class is new to iPhone SDK 4, it was present but private, in previous releases. Special care needs to be taken when deploying code that uses the UINib class and also runs on iOS releases prior to version 4. Specifically, you cannot determine the availability of the class solely using the NSClassFromStringfunction, because that check returns a private class on iOS 3.x and earlier. Instead, after getting the UINib class using NSClassFromString, you must also use the respondsToSelector: method of the returned class to see if it responds to the nibWithNibName:bundle: method. If it responds to that method, you can use the class.

Core Graphics:

CGFontCreateWithFontName can hang in some circumstances when using the UIAppFonts key in the Info.plist.


The desiredPlayers property has been removed from the GKMatchRequest class GameKitBeta.h has been renamed to GameKitPreview.h. This will break existing projects that link against GameKitBeta.h. Please recompile as needed.

Mail: Mail now supports the following RFC extensions:




The MPMoviePlayerController class changed behavior in iOS 3.2. The behavior of this class is as follows:

In iPhone SDK 3.1.x and earlier, the movie player always plays full screen. In iPhone SDK 3.2 and later, you must embed the movie players view into your applications interface. (This behavior applies to iPhone, iPad, and Universal applications.)

If you link a Universal application against iPhone SDK 3.2, you must be prepared to embed the movie player view in your interface when running on iOS and later. In this specific case, the value of theuserInterfaceIdiom property is not a reliable way to determine the behavior of the media player controller. Instead, you should test for the existence of the view property of theMPMoviePlayerController class to determine if you need to insert the view into your view hierarchy. For more information on how to perform these checks, see SDK Compatibility Guide.

In iOS 3.2 and later, the MPMoviePlayerController class now defaults to share the application's audio session for audio playback and related audio behaviors. This allows the movie player's audio to mix with the rest of the application's audio, as well as to conform to the behaviors of the application audio session's audio category (such as mixing with other applications' audio and/or obeying the Silent Switch). In iOS 3.1.3 and earlier, this class always uses a system-supplied audio session. To obtain that same behavior in iOS 3.2 and later, you must set the useApplicationAudioSessionproperty of the movie player controller object to NO. Please refer to the Audio Session Programming Guide, including the Working with Movies and iPod Music section, and the MPMoviePlayerController Class Reference for more about audio sessions and their behaviors with MPMoviePlayerController.

Multitasking: In this and future releases, there are changes to networking behavior for suspended apps:

Cancel any Bonjour-related services before being suspended.] When your application moves to the background, and before it is suspended, it should unregister from Bonjour and close listening sockets associated with any network services. A suspended application cannot respond to incoming service requests anyway. Closing out those services prevents them from appearing to be available when they actually are not. If you do not close out Bonjour services yourself, the system closes out those services automatically when your application is suspended. Be prepared to handle connection failures in your network-based sockets.] The system may tear down socket connections while your application is suspended for any number of reasons. As long as your socket-based code is prepared for other types of network failures, such as a lost signal or network transition, this should not lead to any unusual problems. When your application resumes, if it encounters a failure upon using a socket, simply reestablish the connection.

The time limit for task completion changed from 5 minutes to 10 minutes. In order to preserve the user's context when switching between apps, applications linked on or after iOS will no longer automatically cancel alerts and action sheets when the application is sent to the background.


iPhone Simulator can now simulate multiple iOS versions from a single build. Currently the simulator supports iOS 3.2 and iOS.0, allowing simulation of a single Universal binary on both iPad and iPhone Simulators. With the base SDK set to 3.2 but running in the 4.0 simulator, an application calling stat writes beyond the end of stat bufferstat() and can cause unexpected behavior or a crash. The Camera application shows up on the iOS simulator (but not on the normal simulator). This causes the UIImagePickerController object to hang an application when launched in the iOS simulator. The cancel button is disabled and the only way out of an application once the image picker is shown (with the camera for the source type) is to kill the application manually.


UIInvalidBackgroundTask has been renamed to UIBackgroundTaskInvalid On iOS.0, applications that add a text field to a UIAlertView will need to stop moving the UIAlertView by hand to avoid layout issues. Setting animatable properties inside transition animation block may not work. Tile backgrounds created with the colorWithPatternImage: method of UIColor appear with the image upside down. This is correct behavior, as the pattern and normal coordinate spaces now match. The default behavior for the new UIView block-based animation API in 4.0 is to disable user interactions across the whole interface while the animation is playing. Developers should not rely on this behavior remaining the default as it may be reversed in future releases, thereby allowing user interactions to occur by default while the animation is playing. Programs compiled against iPhone SDK 4 will continue to work as-is but code compiled under future versions of the SDK may require setting a different option flag to enable the original behavior.

The default behavior for the new UIView block-based animation API in 4.0 is to inherit the animation duration from an enclosing animation block (when present). Developers should not rely on this behavior remaining the default, as it may be reversed in future releases, thereby preventing animations from automatically inheriting the duration of their enclosing animation. Programs compiled against iPhone SDK 4 will continue to work as-is but code compiled under future versions of the SDK may require setting a different option flag to enable the original behavior. iPhone 4 uses a different system font than earlier devices. References to the Helvetica font in nib files will be decoded as the system font on these newer devices. The UIKit Text Input System never calls the methods found in the documentation under the "Determining Layout and Writing Direction" category.



The following diagram shows the major components of the Android operating system. Each section is described in more detail below.

Figure 2.1 : Architecture Of Android


Linux Kernel

Android Architecture is based on Linux 2.6 kernel. It helps to manage security, memory management, process management, network stack and other important issues. Therefore, the user should bring Linux in his mobile device as the main operating system and install all the drivers required in order to run it. Android provides the support for the Qualcomm MSM7K chipset family. For instance, the current kernel tree supports Qualcomm MSM 7200A chipsets, but in the second half of 2008 we should see mobile devices with stable version Qualcomm MSM 7200, which includes major features:

WCDMA/HSUPA and EGPRS network support Bluetooth 1.2 and Wi-Fi support Digital audio support for mp3 and other formats Support for Linux and other third-party operating systems Java hardware acceleration and support for Java applications Qcamera up to 6.0 megapixels gpsOne solution for GPS and lots of other.


In the next level there are a set of native libraries written in C/C++, which are responsible for stable performance of various components. For example, Surface Manager is responsible for composing different drawing surfaces on the mobile screen. It manages the access for different processes to compose 2D and 3D graphic layers.OpenGL ES and SGL make a core of graphic libraries and are used accordingly for 3D and 2D hardware acceleration. Moreover, it is possible to use 2D and 3D graphics in the same application in Android. The media framework was provided by PacketVideo, one of the members of OHA. It gives libraries for a playback and recording support for all the major media and

static image files. FreeType libraries are used to render all the bitmap and vector fonts. For data storage, Android uses SQLite. As mentioned before, it is extra light rational management system, which locates a single file for all operations related to database. WebKit, the same browser used by Apples Safari, was modified by Android in order to fit better in a small size screens.

Android Runtime

At the same level there is Android Runtime, where the main component Dalvik Virtual Machine is located. It was designed specifically for Android running in limited environment, where the limited battery, CPU, memory and data storage are the main issues. Android gives an integrated tool dx, which converts generated byte code from .jar to .dex file, after this byte code becomes much more efficient to run on the small processors.

Figure : Conversion from .java to .dex file

As the result, it is possible to have multiple instances of Dalvik virtual machine running on the single device at the same time. The Core libraries are written in Java language and contains of the collection classes, the utilities, IO and other tools.

Application Framework

After that, there is Application Framework, written in Java language. It is a toolkit that all applications use, ones which come with mobile device like Contacts or SMS box, or applications written by Google and any Android developer. It has several components. The Activity Manager manages the life circle of the applications and provides a common navigation back stack for applications, which are running in different processes. The Package Manager keeps track of the applications, which are installed in the device. The Windows Manager is Java programming language abstraction on the top of lower level services that are provided by the Surface Manager. The Telephony Manager contains of a set of API necessary for calling applications. Content Providers was built for Android to share a data with other applications, for instance, the contacts of people in the address book can be used in other applications too. The Resource Manager is used to store localized strings, bitmaps, layout file descriptions and other external partsof the application. The View System generates a set of buttons and lists used in UI. Other components like Notification manager is used to customize display alerts and other functions.

Application Layer

At the top of Android Architecture we have all the applications, which are used by the final user. By installing different applications, the user can turn his mobile phone into the unique, optimized and smart mobile phone. All applications are written using the Java programming language.



Some Similarities


Comparison Between Android And iOS



Android has been criticized for not being all open-source software despite what was announced by Google. Parts of the SDK are proprietary and closed source, and some believe this is so that Google can control the platform. Software installed by end-users must be written in Java, and will not have access to lower level device APIs. This provides endusers with less control over their phone's functionality than other free and open source phone platforms, such as OpenMoko. With all upcoming applications and mobile services Google Android is stepping into the next level of Mobile Internet. Android participates in many of the successful open source projects. That is, architect the solution for participation and the developers will not only come but will play well together. This is notable contrast with Apple and other companies, where such architecture of participation is clearly belated. The first Android based official devices may well be launched sometime in the early half of 2009. Obviously, that's an age away when it comes to handset design, and Android may well find itself competing against the forthcoming Nokia touch screen phones and maybe even the iPhone.


The objective of the seminar report was to study and enhance our knowledge about APPLE iOS , mobile operating system. We have learnt about the new features of the iOS operating system, whats new in it, how is it different from previous versions of iOS, what the technicality behind the iOS is and some more information about it. So we have learnt about the layers of iOS technology viz. core os, core services, media and cocoa touch. We have studied about some aspects of the iOS that will help us in developing the applications for iPhone, via this report. Hence we are now acquainted with iOS operating system for iPhone. We now know its features and technicality. Despite the fact that all the information regarding iOS cannot be bound in this report, I have tried to cover almost all points that made our study of iOS worthy. We have learnt many things about the iOS , which we can implement on our own with just a little effort. Hence our objective has been achieved through this report.


1. 2. 3. 4. 5. 6. - Android Official Webpage - Official Android Google Code Webpage - Open Handset Alliance Webpage Android Wiki - Official Google Blog Information 7. 8. 9. 10. 11. 12. 13. 14. 15.