0% found this document useful (0 votes)
22 views

Rahul Term Paper 1

Uploaded by

rebelabhisingh29
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Rahul Term Paper 1

Uploaded by

rebelabhisingh29
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

OPERATING SYSTEM AND COMPARISON OF ANDROID AND IOS

A Project Report Submitted

In Partial Fulfilment of the Requirements for the Degree

of

Bachelor of Commerce

Submitted by

Rahul yadav

(2110012015497)

Supervised by

Prof. Madhurima mam

UNIVERSITY OF LUCKNOW , LUCKNOW


2023-2024
ACKNOWLEDGEMENT

I would like to express my sincere gratitude to my mentor and guide for their invaluable support
and guidance throughout the preparation of this project report on’ OPERATING SYSTEM
AND COMPARISON OF ANDROID AND IOS’. Their expertise and encouragement have
been instrumental in shaping the content and ensuring its quality.

I am deeply thankful for their patience, insightful feedback, and unwavering support, which have
contributed significantly to the completion of this project. Their mentorship has been a source of
inspiration and motivation for me.

I would also like to extend my appreciation to all the individuals who have contributed to this
project in various capacities, whether through providing information, offering assistance, or
offering moral support.

Finally, I would like to express my heartfelt gratitude to my family and friends for their
understanding, encouragement, and support throughout this journey.

Thank you to my mentor and everyone else who has played a part in making this project a
reality. Your support and encouragement have been truly invaluable

Rahul yadav

B.com sem 6th

2110012015497
CERTIFICATE OF DECLARATION

I Rahul yadav hereby declare that the minor project entitled operating system and comparison of
android and ios is an original piece of work carried out by me under the supervision of Prof
Madhurima Lall, Faculty of Commerce, University of Lucknow. I also declare that I have
adhered to all the principles of academic honesty & integrity and have not misinterpreted or
fabricated or falsified any data/idea/fact/source in my minor project report.

Date:

Signature

Name: Rahul yadav

Roll No: 2110012015497

Class Sl No. :64

Class: B.Com- Sem VI (Section: E)

Session: 2023-24
Table of content
1.1What is mobile operating system?

2.1Popular platforms of the Mobile OS


1.2.1 Android OS
2.2.1 Bada (Samsung Electronics)
3.2.1 BlackBerry OS
4.2.1 iPhone OS / ios
5.2.1 Symbian OS
6.2.1 Windows Mobile OS
7.2.1 Harmony OS
8.2.1 Palm OS
9.2.1 WebOS (Palm/HP)
3.1What is iOS?
4.1Features of IOS Platform

5.1History

6.1Architecture of iOS

1.6.1Core OS Layer
2.6.1 Core Services Layer
3.6.1Address book framework
4.6.1Cloud Kit framework
5.6.1Core data Framework
6.6.1Core Foundation framework
7.6.1Core Location framework
8.6.1Core Motion Framework
9.6.1Foundation Framework
10.6.1Healthkit framework
11.6.1Homekit framework
12.6.1Social framework
13.6.1StoreKit framework

7.1Technologies used by Ios

8.1User Interface

1.8.1 UIKit

2.8.1Core Graphics

3.8.1 Core Animation

9.1Games

1.9.1 GameKit

2.9.1 SpriteKit

3.9.1 OpenGL ES

4.9.1 Game Controller

10.1Data

1.10.1Core Data

2.10.1 Foundation

11.1Memory management in iOS?

12.1Memory Management Issues

13.1Memory Management Rules

14.1Handling Memory in ARC

15.1Memory Management Tools

1.2What is Android?

2.2Why Android?
3.2Features of Android
1.3.2Beautiful UI
2.3.2Connectivity
3.3.2Storage
4.3.2Media support
5.3.2Messaging
6.3.2Web browser
7.3.2Multi-touch
8.3.2Multi-tasking
9.3.2Resizable widgets
10.3.2Multi-Language
11.3.2GCM
12.3.2Wi-Fi Direct
13.3.2Android Beam
4.2Android Applications
5.2Categories of Android applications
6.2History of Android
7.2Android – Architecture

8.2Linux kernel
9.2Libraries
10.2Android Libraries
1.10.2android.app
2.10.2android.content
3.10.2android.database
4.10.2android.opengl
5.10.2android.os
6.10.2android.text
7.10.2android.view
8.10.2android.widget
9.10.2android.webkit
11.2Android Runtime
12.2Android – Services
13.2Started
14.2Bound
15.2Android - Content Providers
16.2Android – Fragments
17.2Overview of memory management
18.2Garbage collection
19.2Share memory
Operating system
usage worldwide

Customer Satisfaction

Global Market Share

Current and future


market share

Reason for android


win and success

Conclusion

Biblography

Annexure
1.1What is mobile operating system?
Every computer or mobile device has an operating system (OS) installed on
it. Windows, OS X (now macOS), Unix, Linux, Android, and iOS are all
operating systems.

Whether it's a laptop, desktop computer, smartphone, tablet, or smart watch,


operating systems serve as graphical software overlays for controlling the
device's internal hardware. The difference between OS reflect the different
needs and purposes of the device. Mobile operating systems
like Android and iOS, for example, are specifically designed to
power smartphones, tablets, and wearables.

Most mobile OS present as a graphical display of buttons, icons, windows,


and tiles that you can touch or interact with to perform various tasks. This
visual architecture is the backbone of the operating system. Without the OS,
the device would be a series of command prompts and inscrutable computer
code.

The mobile operating system manages the hardware and makes it possible
for smartphones, tablets, and wearables to run apps and other programs in a
user-friendly way. A mobile OS also manages mobile multimedia functions,
mobile and internet connectivity, touch screen controls, Bluetooth
connectivity, GPS navigation, cameras, speech recognition, and more. Most
operating systems are not interchangeable. For example, if you have a
Samsung phone, which runs the Android OS, you cannot use it to run Apple
iOS, which is the operating system used to run iPhones, iPads, and iPod
Touches.

2.1Popular platforms of the Mobile OS


1.2.1 Android OS: The Android operating system is the most
popular operating system today. It is a mobile OS based on the Linux
Kernel and open-source software. The android operating system was
developed by Google. The first Android device was launched in 2008.

2.2.1 Bada (Samsung Electronics): Bada is a Samsung mobile operating


system that was launched in 2010. The Samsung wave was the first mobile
to use the bada operating system. The bada operating system offers many
mobile features, such as 3-D graphics, application installation, and
multipoint-touch.
3.2.1 BlackBerry OS: The BlackBerry operating system is a mobile
operating system developed by Research in Motion (RIM). This operating
system was designed specifically for BlackBerry handheld devices. This
operating system is beneficial for the corporate users because it provides
synchronization with Microsoft Exchange, Novell GroupWise email, Lotus
Domino, and other business software when used with the BlackBerry
Enterprise Server.

4.2.1 iPhone OS / iOS: The iOS was developed by the Apple Inc. for the
use on its device. The iOS operating system is the most popular operating
system today. It is a very secure operating system. The iOS operating
system is not available for any other mobiles.

5.2.1 Symbian OS: Symbian operating system is a mobile operating system


that provides a high-level of integration with communication. The Symbian
operating system is based on the java language. It combines middleware of
wireless communications and personal information management (PIM)
functionality. The Symbian operating system was developed by Symbian
Ltd in 1998 for the use of mobile phones. Nokia was the first company to
release Symbian OS on its mobile phone at that time.

6.2.1 Windows Mobile OS: The window mobile OS is a mobile operating


system that was developed by Microsoft. It was designed for the pocket PCs
and smart mobiles.

7.2.1 Harmony OS: The harmony operating system is the latest mobile
operating system that was developed by Huawei for the use of its devices. It
is designed primarily for IoT devices.

8.2.1 Palm OS: The palm operating system is a mobile operating system
that was developed by Palm Ltd for use on personal digital assistants
(PADs). It was introduced in 1996. Palm OS is also known as the Garnet
OS.

9.2.1 WebOS (Palm/HP): The WebOS is a mobile operating system that


was developed by Palm. It based on the Linux Kernel. The HP uses this
operating system in its mobile and touchpads.

As we are focusing on iOS and android so let’s now discuss this two
operating system and details:

3.1What is iOS?
IOS stands for iphone operating system. It is a proprietary mobile operating
system of apple for its handheld. It supports Objective-C, C, C++, Swift
programming language. It is based on the Macintosh OS X. iPhone, iPod,
iPad and apple TV all comes with IOS.

4.1 Features of IOS Platform


It has following features:

 Multitasking
 Social Media
 iCloud
 In-App purchase
 Game Center
 Notification Center
 Accelerometer
 Gyroscope
 Powerful APIs
 GPS
 High end processor
 Accessibility
 Bluetooth
 Orientations
 Camera integration
 Location services
 Maps
 Email, contacts, web pages and messages etc.

5.1 History
iPhone was first release in June, 2007 and on September 5, 2007, Apple
released the iPod Touch which had most of the non-phone abilities of the
iPhone. In June 2010 apple rebranded iPhone OS as iOS. iPad first
generation was released in April 2010 and iPad Mini was released in
November 2012.
To develop iOS application use following steps:

 Register as a developer.

 Design beautiful app interfaces.

 Learn the Objective-C language.

 Develop great apps.

 Learn about the technologies available to you.

 Access the documentation.

 Debug and test your app.

 Ship your app.

6.1Architecture of iOS
Architecture of IOS is a layered architecture. At the uppermost level iOS
works as an intermediary between the underlying hardware and the apps you
make. Apps do not communicate to the underlying hardware directly.
Apps talk with the hardware through a collection of well-defined system
interfaces. These interfaces make it simple to write apps that work
constantly on devices having various hardware abilities.
Lower layers gives the basic services which all application relies on and
higher level layer gives sophisticated graphics and interface related services.
Apple provides most of its system interfaces in special packages called
frameworks. A framework is a directory that holds a dynamic shared library
that is. a files, related resources like as header files, images, and helper apps
required to support that library. Every layer has a set of Framework which
the developer uses to construct the applications.

1.6.1 Core OS Layer


The Core OS layer holds the low level features that most other technologies
are built upon.

 Core Bluetooth Framework.


 Accelerate Framework.
 External Accessory Framework.
 Security Services framework.
 Local Authentication framework.

64-Bit support from IOS7 supports the 64-bit app development and enables
the application to run faster.
2.6.1 Core Services Layer Some of the Important Frameworks available in
the core services layers are detailed:

 3.6.1Address book framework – Gives programmatic access to a


contacts database of user.
 4.6.1Cloud Kit framework – Gives a medium for moving data between
your app and iCloud.
 5.6.1Core data Framework – Technology for managing the data model
of a Model View Controller app.

 6.6.1Core Foundation framework – Interfaces that gives fundamental


data management and service features for iOS apps.

 7.6.1Core Location framework – Gives location and heading


information to apps.

 8.6.1Core Motion Framework – Access all motion based data


available on a device. Using this core motion framework Accelerometer
based information can be accessed.

 9.6.1Foundation Framework – Objective C covering too many of the


features found in the Core Foundation framework

 10.6.1Healthkit framework – New framework for handling health-


related information of user

 11.6.1Homekit framework – New framework for talking with and


controlling connected devices in a user’s home.

 12.6.1Social framework – Simple interface for accessing the user’s


social media accounts.

 13.6.1StoreKit framework – Gives support for the buying of content


and services from inside your iOS apps, a feature known asIn-App
Purchase.

7.1Technologies used by iOS


IOS provides frameworks that define particular sets of functionality from
gaming and media to security and data management which you can
integrate into your app. UIKit framework is used to design your app’s user
interface and the Foundation framework to incorporate common data
structures and behavior into your code. These are two of the most common
frameworks used in iOS app development.
8.1User Interface

1.8.1 UIKit

Its classes allow you create a touch based user interface. Because all iOS
apps are based on UIKit, you can’t ship an app without this framework. It
gives the infrastructure for drawing to the screen, handling events and
creating common user interface elements. UIKit also arranges a complex
app by organizing the content that’s showed on the screen.

2.8.1Core Graphics

It is a low level, C based framework. It is the workhorse for handling high


quality vector graphics, path based drawing, transformations, images, data
management and more.
The easiest and most efficient way to create graphics in iOS is to use
prerendered images with the standard views and controls of the UIKit
framework. Because UIKit is a higher-level framework which also provides
classes for custom drawing including paths, colors, patterns, gradients,
images, text, and transformations.

3.8.1 Core Animation

Its interfaces are part of the Quartz Core framework. To create higher level
animations and visual effects use Core Animation. UIKit provides
animations that are built on top of the Core Animation technology.
If you require advanced animations further than the capabilities of UIKit,
use Core Animation directly. You can create a hierarchy of layer objects
that you manipulate, rotate, scale, transform. Core Animation’s familiar
view-like abstraction lets you can create dynamic user interfaces without
having to use low-level graphics APIs such as OpenGL ES.

9.1Games

1.9.1 GameKit

This framework provides leaderboards, achievements and other features to


add to your iOS game.

2.9.1 SpriteKit
This framework provides graphics support for animating arbitrary textured
images or sprites. In addition to being a graphics engine, it also contains
physics support to bring objects to life. It is a good option for games and
other apps that need complex animation chains.

3.9.1 OpenGL ES

It is a low level framework that supports hardware accelerated 2D and 3D


drawing. Apple’s implementation of the OpenGL ES standard works
intimately with the device hardware to give high frame rates for full screen,
game-style apps. Because It is a low-level, hardware focused API, it has a
steep learning curve and a significant effect on the overall design of your
app.

4.9.1 Game Controller

This framework makes it simple to search controllers connected to a Mac


or iOS device. When a controller is opened on your device, your game
examines control inputs as part of its normal gameplay. These controllers
give new ways for players to control your game. Apple has designed
specifications for hardware controllers to ensure that all controllers have
consistent sets of control elements that both players and game designers
can rely on.

10.1Data

1.10.1Core Data

It manages an app’s data model. Use it to create model objects which are
known as managed objects. You manage relationships between those
objects and make changes to the data through the framework. It takes
benefit of the built in SQLite technology to save and manage data
competently.

2.10.1 Foundation

This framework defines a set of important base classes. Among other


things this framework contains classes representing basic data types like as
strings and numbers and collection classes for saving other objects.
11.1Memory management in iOS?
Memory management in iOS was initially non-ARC (Automatic Reference
Counting), where we have to retain and release the objects. Now, it
supports ARC and we don't have to retain and release the objects. Xcode
takes care of the job automatically in compile time.

12.1 Memory Management Issues


As per Apple documentation, the two major issues in memory management
are
 Freeing or overwriting data that is still in use. It causes memory
corruption and typically results in your application crashing, or worse,
corrupted user data.
 Not freeing data that is no longer in use causes memory leaks. When
allocated memory is not freed even though it is never going to be used
again, it is known as memory leak. Leaks cause your application to
use ever-increasing amounts of memory, which in turn may result in
poor system performance or (in iOS) your application being
terminated.

13.1 Memory Management Rules

 We own the objects we create, and we have to subsequently release


them when they are no longer needed.
 Use Retain to gain ownership of an object that you did not create. You
have to release these objects too when they are not needed.
 Don't release the objects that you don't own.

14.1Handling Memory in ARC

You don't need to use release and retain in ARC. So, all the view controller's
objects will be released when the view controller is removed. Similarly, any
object’s sub-objects will be released when they are released. Note that if
other classes have a strong reference to an object of a class, then the whole
class won't be released. So, it is recommended to use weak properties for
delegates.
15.1Memory Management Tools

We can analyze the usage of memory with the help of Xcode tool
instruments. It includes tools such as Activity Monitor, Allocations, Leaks,
Zombies, and so on.

1.2What is Android?

Android is an open source and Linux-based Operating System for mobile


devices such as smartphones and tablet computers. Android was developed
by the Open Handset Alliance, led by Google, and other companies.
Android offers a unified approach to application development for mobile
devices which means developers need only develop for Android, and their
applications should be able to run on different devices powered by Android.
The first beta version of the Android Software Development Kit (SDK) was
released by Google in 2007 where as the first commercial version, Android
1.0, was released in September 2008.
On June 27, 2012, at the Google I/O conference, Google announced the next
Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with
the primary aim of improving the user interface, both in terms of
functionality and performance.
The source code for Android is available under free and open source software
licenses. Google publishes most of the code under the Apache License
version 2.0 and the rest, Linux kernel changes, under the GNU General
Public License version 2.

2.2Why Android?

3.2Features of Android
Android is a powerful operating system competing with Apple 4GS and
supports great features. Few of them are listed below
1.3.2Beautiful UI
Android OS basic screen provides a beautiful and intuitive user interface.
2.3.2Connectivity
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC
and WiMAX.
3.3.2Storage
SQLite, a lightweight relational database, is used for data storage purposes.
4.3.2Media support
H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1,
MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP.
5.3.2Messaging
SMS and MMS
6.3.2Web browser
Based on the open-source WebKit layout engine, coupled with Chrome's V8
JavaScript engine supporting HTML5 and CSS3.
7.3.2Multi-touch
Android has native support for multi-touch which was initially made
available in handsets such as the HTC Hero.
8.3.2Multi-tasking
User can jump from one task to another and same time various application
can run simultaneously.
9.3.2Resizable widgets
Widgets are resizable, so users can expand them to show more content or
shrink them to save space.
10.3.2Multi-Language
Supports single direction and bi-directional text.
11.3.2GCM
Google Cloud Messaging (GCM) is a service that lets developers send short
message data to their users on Android devices, without needing a
proprietary sync solution.
12.3.2Wi-Fi Direct
A technology that lets apps discover and pair directly, over a high-bandwidth
peer-to-peer connection.
13.3.2Android Beam
A popular NFC-based technology that lets users instantly share, just by
touching two NFC-enabled phones together.

4.2Android Applications
Android applications are usually developed in the Java language using the
Android Software Development Kit.
Once developed, Android applications can be packaged easily and sold out
either through a store such as Google Play, SlideME, Opera Mobile
Store, Mobango, F-droid and the Amazon Appstore.
Android powers hundreds of millions of mobile devices in more than 190
countries around the world. It's the largest installed base of any mobile
platform and growing fast. Every day more than 1 million new Android
devices are activated worldwide.
This project has been written with an aim to teach you how to develop and
package Android application. We will start from environment setup for
Android application programming and then drill down to look into various
aspects of Android applications.

5.2Categories of Android applications


There are many android applications in the market. The top categories are

6.2History of Android
The code names of android ranges from A to N currently, such as Aestro,
Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice
Cream Sandwich, Jelly Bean, KitKat, Lollipop and Marshmallow. Let's
understand the android history in a sequence.

7.2Android - Architecture
Android operating system is a stack of software components which is
roughly divided into five sections and four main layers as shown below in
the architecture diagram.
8.2Linux kernel
At the bottom of the layers is Linux - Linux 3.6 with approximately 115
patches. This provides a level of abstraction between the device hardware
and it contains all the essential hardware drivers like camera, keypad, display
etc. Also, the kernel handles all the things that Linux is really good at such
as networking and a vast array of device drivers, which take the pain out of
interfacing to peripheral hardware.

9.2Libraries
On top of Linux kernel there is a set of libraries including open-source Web
browser engine WebKit, well known library libc, SQLite database which is
a useful repository for storage and sharing of application data, libraries to
play and record audio and video, SSL libraries responsible for Internet
security etc.

10.2 Android Libraries


This category encompasses those Java-based libraries that are specific to
Android development. Examples of libraries in this category include the
application framework libraries in addition to those that facilitate user
interface building, graphics drawing and database access. A summary of
some key core Android libraries available to the Android developer is as
follows −
 1.10.2android.app
Provides access to the application model and is the cornerstone of all
Android applications.
 2.10.2android.content
Facilitates content access, publishing and messaging between
applications and application components.
 3.10.2android.database
Used to access data published by content providers and includes
SQLite database management classes.
 4.10.2android.opengl
A Java interface to the OpenGL ES 3D graphics rendering API.
 5.10.2android.os
Provides applications with access to standard operating system
services including messages, system services and inter-process
communication.
 6.10.2android.text
Used to render and manipulate text on a device display.
 7.10.2android.view
The fundamental building blocks of application user interfaces.
 8.10.2android.widget
A rich collection of pre-built user interface components such as
buttons, labels, list views, layout managers, radio buttons etc.
 9.10.2android.webkit
A set of classes intended to allow web-browsing capabilities to be
built into applications.
Having covered the Java-based core libraries in the Android runtime, it is
now time to turn our attention to the C/C++ based libraries contained in this
layer of the Android software stack.

11.2Android Runtime
This is the third section of the architecture and available on the second layer
from the bottom. This section provides a key component called Dalvik
Virtual Machine which is a kind of Java Virtual Machine specially designed
and optimized for Android.
The Dalvik VM makes use of Linux core features like memory management
and multi-threading, which is intrinsic in the Java language. The Dalvik VM
enables every Android application to run in its own process, with its own
instance of the Dalvik virtual machine.
The Android runtime also provides a set of core libraries which enable
Android application developers to write Android applications using standard
Java programming language.

12.2Android - Services
A service is a component that runs in the background to perform long-
running operations without needing to interact with the user and it works
even if application is destroyed. A service can essentially take two states
13.2Started
A service is started when an application component, such as an activity, starts
it by calling startService(). Once started, a service can run in the background
indefinitely, even if the component that started it is destroyed.
14.2Bound
A service is bound when an application component binds to it by calling
bindService(). A bound service offers a client server interface that allows
components to interact with the service send requests, get result, and even
do so across processes with interprocess communication (IPC).
A service has life cycle callback methods that you can implement to monitor
changes in the service's state and you can perform work at the appropriate
stage. The following diagram on the left shows the life cycle when the
service is created with startService() and the diagram on the right shows the
life cycle when the service is created with bindService(): (image courtesy :
android.com )

To create an service, you create a Java class that extends the Service base
class or one of its existing subclasses. The Service base class defines various
callback methods and the most important are given below. You don't need to
implement all the callbacks methods. However, it's important that you
understand each one and implement those that ensure your app behaves the
way users expect.

15.2Android - Content Providers


A content provider component supplies data from one application to
others on request. Such requests are handled by the methods of the
Content Resolver class. A content provider can use different ways to
store its data and the data can be stored in a database, in files, or
even over a network.

Content providers let you centralize content in one place and have many
different applications access it as needed. A content provider behaves very
much like a database where you can query it, edit its content, as well as add
or delete content using insert(), update(), delete(), and query() methods. In
most cases this data is stored in an SQlite database.
A content provider is implemented as a subclass of ContentProvider class
and must implement a standard set of APIs that enable other applications to
perform transactions.
public class My Application extends ContentProvider {
}
16.2 Android – Fragments

A Fragment is a piece of an activity which enable more modular activity


design. It will not be wrong if we say, a fragment is a kind of sub-activity.

Following are important points about fragment −


 A fragment has its own layout and its own behavior with its own life
cycle callbacks.
 You can add or remove fragments in an activity while the activity is
running.
 You can combine multiple fragments in a single activity to build a
multi-pane UI.
 A fragment can be used in multiple activities.
 Fragment life cycle is closely related to the life cycle of its host activity
which means when the activity is paused, all the fragments available
in the activity will also be stopped.
 A fragment can implement a behaviour that has no user interface
component.
 Fragments were added to the Android API in Honeycomb version of
Android which API version 11.

You create fragments by extending Fragment class and You can insert a
fragment into your activity layout by declaring the fragment in the activity's
layout file, as a <fragment> element.
Prior to fragment introduction, we had a limitation because we can show only
a single activity on the screen at one given point in time. So we were not able
to divide device screen and control different parts separately. But with the
introduction of fragment we got more flexibility and removed the limitation
of having a single activity on the screen at a time. Now we can have a single
activity but each activity can comprise of multiple fragments which will have
their own layout, events and complete life cycle.
Following is a typical example of how two UI modules defined by fragments
can be combined into one activity for a tablet design, but separated for a
handset design.
The application can embed two fragments in Activity A, when running on a
tablet-sized device. However, on a handset-sized screen, there's not enough
room for both fragments, so Activity A includes only the fragment for the
list of articles, and when the user selects an article, it starts Activity B,
which includes the second fragment to read the article.

17.2Overview of memory management


The Android Runtime (ART) and Dalvik virtual machine
use paging and memory-mapping (mmapping) to manage memory. This
means that any memory an app modifies—whether by allocating new
objects or touching mmapped pages—remains resident in RAM and cannot
be paged out. The only way to release memory from an app is to release
object references that the app holds, making the memory available to the
garbage collector. That is with one exception: any files mmapped in without
modification, such as code, can be paged out of RAM if the system wants to
use that memory elsewhere.

18.2Garbage collection
A managed memory environment, like the ART or Dalvik virtual machine,
keeps track of each memory allocation. Once it determines that a piece of
memory is no longer being used by the program, it frees it back to the heap,
without any intervention from the programmer. The mechanism for
reclaiming unused memory within a managed memory environment is
known as garbage collection. Garbage collection has two goals: find data
objects in a program that cannot be accessed in the future; and reclaim the
resources used by those objects.

Android’s memory heap is a generational one, meaning that there are


different buckets of allocations that it tracks, based on the expected life and
size of an object being allocated. For example, recently allocated objects
belong in the Young generation. When an object stays active long enough, it
can be promoted to an older generation, followed by a permanent
generation.

Each heap generation has its own dedicated upper limit on the amount of
memory that objects there can occupy. Any time a generation starts to fill
up, the system executes a garbage collection event in an attempt to free up
memory. The duration of the garbage collection depends on which
generation of objects it's collecting and how many active objects are in each
generation.
Even though garbage collection can be quite fast, it can still affect your
app's performance. You don’t generally control when a garbage collection
event occurs from within your code. The system has a running set of criteria
for determining when to perform garbage collection. When the criteria are
satisfied, the system stops executing the process and begins garbage
collection. If garbage collection occurs in the middle of an intensive
processing loop like an animation or during music playback, it can increase
processing time. This increase can potentially push code execution in your
app past the recommended 16ms threshold for efficient and smooth frame
rendering.
Additionally, your code flow may perform kinds of work that force garbage
collection events to occur more often or make them last longer-than-normal.
For example, if you allocate multiple objects in the innermost part of a for-
loop during each frame of an alpha blending animation, you might pollute
your memory heap with a lot of objects. In that circumstance, the garbage
collector executes multiple garbage collection events and can degrade the
performance of your app.

19.2 Share memory


In order to fit everything, it needs in RAM, Android tries to share RAM
pages across processes. It can do so in the following ways:
 Each app process is forked from an existing process called Zygote. The
Zygote process starts when the system boots and loads common framework
code and resources (such as activity themes). To start a new app process, the
system forks the Zygote process then loads and runs the app's code in the
new process. This approach allows most of the RAM pages allocated for
framework code and resources to be shared across all app processes.
 Most static data is mmapped into a process. This technique allows data to be
shared between processes, and also allows it to be paged out when needed.
Example static data include: Dalvik code (by placing it in a pre-
linked. odex file for direct mmapping), app resources (by designing the
resource table to be a structure that can be mmapped and by aligning the zip
entries of the APK), and traditional project elements like native code
in .so files.
 In many places, Android shares the same dynamic RAM across processes
using explicitly allocated shared memory regions (either with ashmem or
gralloc). For example, window surfaces use shared memory between the app
and screen compositor, and cursor buffers use shared memory between the
content provider and client.
Operating System Usage
Worldwide

iOS
 Less than half of iOS Devices are in North-America.

 The iOS experienced its strongest growth in unique devices in the past year in Asia,
Oceania and Western Europe

iOS Devices by Country:

Rank Country % of User


1 United States 43%
2 United Kingdom 9%
3 France 6%
4 Canada 5%
5 Japan 4%
6 Australia 4%
7 Germany 4%
8 China 2%
9 Republic of Korea 2%
10 Italy 2%
Data based on the 43.8 million iOS devices in the AdMob network in May 2010.
Android
 67% of Android users are in North America
 China was the second largest Android market with 13% of users

Android Unique Device Distribution 2010


1% 1% 1%
1%

12% North America


Asia
Western Europe
18% Eastern Europe
Latin America
66% Oceania
Africa

Android Devices by Country:


Rank Country % of User
1 United States 66%
2 China 13%
3 United Kingdom 4%
4 France 2%
5 Japan 2%
6 Germany 2%
7 Republic of Korea 1%
8 Spain 1%
9 Canada 1%
10 Sweden 1%

Data based on the 12.7 million Android devices in the AdMob network in May 2010
Customer Satisfaction
According to ADMOB User Application Survey Summary:
iOS and Android users willing to recommend their device to others
•91% iOS, 84% Android would recommend.
This shows iOS users are more satisfied with their devices compared to Android.

Are you likely to recommend your device to a friend or colleague?


Yes Maybe No

3% 5%
5%
12%

91%
84%

iOS Android
GLOBAL MARKEWT SHARE

Android Tops iOS in 3rd Quarter Global Smartphone Share in


2010:

Report by Gartner:

Company 3Q10 3Q10 Market Share 3Q09 3Q09 Market Share


Units (%) Units (%)

Android 20,500.0 25.5 1,424.5 3.5

iOS 13,484.4 16.7 7,040.4 17.1

Worldwide Smartphone Sales in 3Q10 in Thousands of Units (Source: Gartner)

Gartner released its data, revealing a tremendous Android surge that saw the platform leap
above iOS with over 20 million units sold during the third quarter to reach second position
and grab a 25.5% share of the global smartphone market. Apple slipped slightly to 16.7% of
the market from 17.1% in the year-ago quarter, but was able to maintain its third-place
position from the year-ago quarter and move up from its fourth-place position last quarter.
Report by The Nelson Company:

The race for the lead in U.S. smartphone operating system (OS) consumer market share is
tighter than it has ever been. According to November data from The Nielsen Company, the
popularity of the Android OS among those who purchased a smartphone in the last six
months (40%) makes it the leading OS among recent acquirers.

Conclusion:
Both the reports by The Nielsen Company and Gartner show that Android has had a better
market share in 2010 even though Android was launched recently in the market as compared
to iOS
CURRENT AND FUTURE MARKET SHARE

According to Gartner, Android to command nearly half of worldwide smartphone operating


system market by Year-End 2012.
Worldwide smartphone sales will reach 468 million units in 2011, a 57.7 % increase from
2010, according to Gartner Inc. By the end of 2011, Android will move to become the most
popular operating system (OS) worldwide and will build on its strength to account for 49 %
of the smartphone market by 2012.
Sales of open OS* devices will account for 26 % of all mobile handset device sales in 2011,
and are expected to surpass the 1 billion mark by 2015, when they will account for 47 % of
the total mobile device market.
―By 2015, 67 % of all open OS devices will have an average selling price of $300 or below,
proving that smartphones have been finally truly democratized,‖ said Roberta Cozza,
principal analyst at Gartner.
Android's position at the high end of the market will remain strong, but its greatest volume
opportunity in the longer term will be in the mid- to low-cost smartphones, above all in
emerging markets.

Worldwide Mobile Communications Device Open OS Sales to End Users by OS


(Thousands of Units)

Operating System 2011 2012 2013 2014

Android 67,255 179,873 310,088 539,318

Market Share (%) 22.7 38.5 49.2 48.8

iOS 46,598 90,560 118,848 189,924

Market Share (%) 15.7 19.4 18.9 17.2

Source: Gartner (April 2011)


Gartner predicts that Apple’s iOS will remain the second biggest platform worldwide through
2014 despite its share deceasing slightly after 2011. This reflects Gartner’s underlying
assumption that Apple will be interested in maintaining margins rather than pursuing market
share by changing its pricing strategy. This will continue to limit adoption in emerging
regions. iOS share will peak in 2011, with volume growth well above the market average.
This is driven by increased channel reach in key mature markets like the U.S. and Western
Europe.
And The Winner is…
REASON FOR ANDROID WIN AND SUCCESS

Following are the reasons for Android’s success:

1. Android’s Ubiquity
There is little debating the importance that ubiquity has played on the success of
Android OS. With the help of so many great Android devices, more and more
customers have adopted Google’s operating system. No single device is beating the
iPhone, but if nothing else, Android OS has proven that a bundle of moderate-selling
products is better than one big one.
2. Google’s Focus
Google has shown since the beginning that it has one main goal in mind: to beat the
competition as quickly and efficiently as possible. It has done that with the kind of
focus and expertise that few expected the search giant to have in the mobile market.
Along the way, it’s applied the principles of its success in the search engine field to its
mobile strategy.
3. Motorola
Motorola has been integral to the success of Android OS. With the release of the
company’s Droid, Motorola started a firestorm in the Android space. And now, with
the company’s Droid X and Droid 2 on Verizon store shelves, the company is
providing even more value to customers. Going forward, Motorola will likely double
down on Android OS. Considering customers’ acceptance of those products, it’s not a
stretch to say that the company will continue to enjoy such success going forward.
4. Apple’s Mistakes
Apple might be wildly successful, but the company has made mistakes over the years
that have helped Android OS become so popular. For example, Apple’s desire to deny
certain applications access to the App Store rubbed some consumers the wrong way.
And its unwillingness to deliver multitasking for so long turned some consumers to
other devices. Plus, the company still hasn’t nixed its AT&T exclusivity. Those
combined issues have pushed some consumers to Google.
5. Verizon
Verizon is widely considered the top carrier in the space. It has the most subscribers;
it has the best service around the country; and it has outstanding customer service,
according to a recent study by J.D. Power and Associates. But the company is also
heavily invested in Android. And its continuing commitment to the mobile operating
system has helped increase Google’s market share by a wide margin over the past few
years.
6. The Nexus One
Google’s Nexus One is viewed as a failure by most. After all, the device was
discontinued after a relatively short amount of time on store shelves. But it served a
key purpose: it was branded by Google and it gave Android OS the kind of hype that
only a Google product could offer. In other words, Nexus One put Android OS on the
map. And its legacy is still being felt today as more and more consumers buy an
Android-based device.
7. iPhone 4 Antenna Issues
Although Apple was successful at getting the iPhone 4’s antenna problems out of the
headlines, it still had a major impact on Android OS. Consumers were concerned that
their calls would drop. And it was viewed as another strike against Apple’s
relationship with AT&T. The issue pushed some consumers to Android. It’s possible
that those folks won’t come back anytime soon.
8. Android’s Vast Improvements
When Android first launched, the operating system was hampered by several issues. It
didn’t have many of the features available in iOS, and it lacked the kind of usability
that consumers wanted. But over time, Google has made Android OS far more usable.
Now it’s arguably more feature-packed than iOS nowadays. Consumers have realized
that. They’re starting to buy Android-based devices at an increasing rate because of it.
9. Google Plays Nice with Developers
Apple has made some serious mistakes throughout the years in its handling of
developers. The company was secretive and it denied certain applications for what
seemed to be poor reasons. Google hasn’t followed that path. The search giant has
played nice with developers, and in the process, its Android Market has grown with
outstanding programs. It’s still dwarfed in size by the App Store, but applications
have drawn customers to Android OS that would have otherwise gone to Apple’s
iPhone.
10. RIM’s Failures
RIM has helped Android OS become the success that is. Before Apple and Google
joined the mobile market, it was RIM that dominated. That was the company that was
captivating audiences. But the company failed to see the future as Apple and Google
joined the market. And now, it’s watching Android OS overtake it and start
dominating the smartphone space. Simply put, RIM’s lackadaisical attitude has only
helped Android over the past few years.
CONCLUSION

Android and iOS have already conquered the consumer market, and with the users becoming
accustomed to those devices, more people want to use them for work. In the competitive
environment where every second, day a new technological advancement takes place and both
iOS and android are pushing themselves every now and then to achieve excellence in their
products. Today Android’s percentage share in the market is increasing at a increasing rate on
the other hand with iOS coming up in the market it is stealing all the market shares. With the
help of our research it is found that android is rapidly taking its pace in the eyes of today’s youth
and every person today wants affordable and best operating system which android guarantees to
provide to its users.

Comparing Android and iOS ultimately boils down to personal preference and specific needs.
Android offers more device variety, customization options, and often more affordable devices,
while iOS provides a seamless user experience, timely updates, and a tightly integrated
ecosystem.

Hence, both Android and iOS have their own advantages and disadvantages and we consumers
should choose and promote these things properly.
Bibliography

http://en.wikipedia.org/wiki/Apple_Inc.

http://en.wikipedia.org/wiki/Mobile_operating_system

http://en.wikipedia.org/wiki/Google

http://en.wikipedia.org/wiki/IOS_(Apple)

http://en.wikipedia.org/wiki/Android_(operating_system)

http://blog.nielsen.com/nielsenwire/online_mobile/apple-leads-smartphone-race-
while-android-attracts-most-recent-customers/

http://www.gartner.com/it/page.jsp?id=1622614

http://www.macrumors.com/2010/11/10/gartner-android-tops-ios-in-3q-2010-global-
smartphone-market-share/

http://metrics.admob.com/wp-content/uploads/2010/06/May-2010-AdMob-Mobile-
Metrics-Highlights.pdf

http://www.eweek.com/c/a/Mobile-and-Wireless/Google-Android-OS-Secrets-to-
Success-10-Reasons-Its-Now-on-Top-179122/

http://www.gsmarena.com/
ANNEXURE

QUESTIONNAIRE:

Ques1. Which of the Following Brand of Mobile Phone do you use?

a) Apple
b) Samsung
c) Nokia
d) Blackberry
e) Micromax
f) Others. Please Specify: _

Ques2. Which Feature do you look for in a Mobile?

a) Value For Money


b) High Quality Camera
c) Games
d) 3G
e) Social Networking
f) Instant Messaging
g) Sound Quality
h) Push Mail
i) All of the Above
Ques3. How much are you willing to spend on a mobile?

a) Less than Rs.5000


b) Between Rs.5000 to Rs.10,000
c) Between Rs.10,000 to Rs.15,000
d) Between Rs.15,000 to Rs.20,000
e) Rs20,000 and Above

Ques4. Out of the Following which phone will you prefer?

a) Nokia Lumia 800


b) Samsung Galaxy Note
c) Apple’s iPhone 4S
d) Blackberry Bold 4
e) Others. Please Specify:_

Ques5. How frequently do you get a new mobile phone?

a) 3 months or less
b) 6 months or less
c) 1 year or less
d) Whenever you feel like

Ques6. How many mobile phones do you carry around?

a) 1 – for office
b) 1 – for personal
c) 1 – both office and personal
d) 2 – 1 for office and 1 personal
e) More than 2

Ques7. Do you think mobile phones will transform in future?

a) Yes
b) No
c) Don’t Know
If Yes,

Ques8.Which Feature would you like to add in your Mobile?

Ans.

Ques9. Which Platform is your Phone is built on?

a) iOS
b) Symbian
c) Android
d) Blackberry OS
e) Windows
f) Others. Please Specify:_

Ques10. Do you install any application on your mobile phone?

a) Yes
b) No

Ques11. Which is you favourite mobile application?

Ans.

Ques12. Which Style of Phone do you prefer?

a) Touch Screen
b) QWERTY Keypad
c) Mono Block
d) Slide
e) Flip

Ques13. If given a chance will you purchase an iPhone over Samsung or Blackberry?

a) Yes
b) No

You might also like