This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
This paper briefly discusses the basic architecture of the Android, its benefits being open and the details of various versions. Its very interesting that android versions are named by deserts and it also follows alphabetical order. The platform is changing very quickly and it is also considered one drawback as developers are finding some difficulty in catching up quickly with new updates. Android is currently in version 3 which is designed for tablets.
Android is a complete open source platform developed and designed for mobile devices and handhelds. It is backed by Google and owned byÂ Open Handset Alliance. The goal of the Open Handset Alliance is to speed up innovation in mobile technology, lower cost handset with richer mobile experience.
Android is intended to modernize the mobile experience by providing openness to the software. To achieve this, the hardware and software is been separated and drawing the best of both worlds in to single product. This allows for a much larger number of devices to run the same applications and creates a much richer ecosystem for developers.
Open Source Platform
Android is a truly open source platform which constitutes entire stack from Linux modules all the way to libraries and from application framework to complete applications and these are developed on open platform based software's. Android isÂ licensed under business-friendly licenses (Apache/MIT) which allows others to freely widen it and use it for more arrays of purposes. Some third party open sources libraries are also included in Android stack so that the functionality can be extended.
Benefits to developers
Android openness will give access to the entire platform source code which allows developers to work on android operating system.
Benefits to manufacturers
The benefits of openness to manufacturers are that they can easily port Android OS to their custom hardware. They can also customize their own combination of hardware and software with special interest in innovation. The best thing is they can develop their own variation and that need not be pushed back to the development community. There's no need to license Android and any one can start working on it without license troubles.
History of Android
The history of Android is interesting and offers some perspective on what the future might hold.
These are the key events of the past few years:
In 2005,Â Google buys Android, Inc. The world thinks a "gPhone" is about to come out.
Everything goes quiet for a while.
In 2007, the Open Handset Alliance is announced. Android is officially open-sourced.
In 2008, the Android SDK 1.0 is released. The G1 phone, manufactured by HTC and sold by the wireless carrier T-Mobile USA, follows shortly afterward.
2009 sees a proliferation of Android-based devices. New versions of the operating system are released: Cupcake (1.5), Donut (1.6), and Eclair (2.0 and 2.1). More than 20 devices run Android.
In 2010, Android is second only to Blackberry as the best-selling smart phone platform. Froyo (Android 2.2) is released and so are more than 60 devices that run it.
In 2005, when Google purchased Android, Inc., the world thought Google was about to enter the smart phone market, and there were widespread speculations about a device called the gPhone. Google's CEO,Â Eric Schmidt, made it clear right away that Android's ambitions were much larger than a single phone. Instead, they envisioned a platform that would enable many phones and other devices.
Flavors of Android
There are lots of versions in Android in very short time and the versions are named by deserts which are named in alphabetical order starting with C for 1.5 as cup cake and continuing with latest version as Gingerbread with version number as 3 which targets tablets.
Android versions through Android 2.3
Android is an open software platform for mobile development. It is intended to be a complete stack that includes everything from the operating system through middleware and out through applications.
The below figure gives the basic architecture of the android, I will discuss about them briefly.
Linux kernel is used as a hardware extraction layer and the version is 2.6. Reason behind using Linux is of its proved security and availability of drivers. The drivers include display driver, USB driver, camera driver, keypad driver, Bluetooth driver, Wi-Fi driver, flash memory driver, Audio driver, Binder driver, power management and lot of core operating system infrastructure at robust and have been proven over time.
The native libraries are written in C/C++ and it is main powerhouse for Android
Surface manager is responsible for composing different drawing surfaces on to the screen. So, it is the surface manager who is responsible for taking different windows that are owned by different applications running in different processes and all drawing at different times and making sure pixels end up on the screen when they are suppose to.
Open GL ES and SGL are the graphics libraries of Android. Open GL ES is a 3D library that has a software implementation which is hardware accelerable if the device has 3D chip on it. The SGL graphics are for 2D graphics and that is used for most of the application drawing. One interesting thing about Android graphics platform is that you can combine 3D and 2D graphics in the same application.
Media framework was provided by packet videos which is one of the members of the open handset alliance and that contains all of the entire codecs that make up the code of the media experience. So, in their codecs we will find MPEG-4, H.264, MP3, AAC and the entire audio and video codecs you need to build for rich media experience. Free type is used to render fonts. SQLite is used as the core for most of the data storage. Browser is powered by web kit; the open source browser engine which is powering safari from apple.
Android Run Time
The main component in the Android run time is the dalvik virtual machine. The android runtime was designed specifically for android to meet the needs of running in an embedded environment where you have limited battery, limited memory, limited CPU. The dalvik virtual machine runs something called DEX files and these are byte codes that are the results of converting at built time .class and .jar files. These files when they are converted to .dex become a much more efficient byte code that can run very well on small processors. They use memory very efficiently and their data structures are designed to be shared across processes whenever possible and uses a highly CPU optimized byte code interpreter. The end result of it is possible to have multiple instances of the Dalvik virtual machine running on the device at the same time at one end of each of several processes
Core Libraries are built in java programming language and it contains all of the collection classes, utilities, IO and tools.
This is all written in java programming language and the application framework is the toolkit that all applications use. The applications include that one come with like Home application or phone application and applications includes written by Google or other developers.
Main Components of Application Framework
Activity Manager is what manages the life cycle of applications and it also maintains a common back stack so that applications running in different processes can have a smoothly integrated navigation.
Package Manager is what keeps track of which applications are installed on your device and if you download new applications or installed applications, it keeps tracks of what installed and what capabilities they have.
This manages windows and it's mostly a java programming language abstraction on top lower level services that are provided by surface manager.
This manager contains API's to build the phone application that central to phone experience.
Content Providers are unique piece of platform that's the framework that allows applications to sharing the data with other applications.
Resource Manager is used to store localized strings, bit maps, layout files description all of the external parts in applications.
View System contains things like buttons and building blocks for GUI. Other API's like Location Manager, Notification Manager & XMPP Service will allow the developers to create applications based on location and other things.
The basic applications like Home, Contacts, Phone, Browser are applications which ensure the basic functionality of a phone.
Applications Building Blocks
Activity UI components typically correspond to one screen.
IntentReceiver responds to notification or status changes. Intent receiver can wake up your process and start the applications. Services are used for the faceless tasks that run in the background.
ContentProvider enable applications to share data. And finally, there are the applications which are available through market place in android. These applications are what end users find valuable about Android. They can come preinstalled on the device or can be downloaded from one of the many Android markets.
An application is a single application package (APK) file. An APK file roughly has three main components. An API consists of the following major components:
Dalvik executable is the Java source code compiled down to a Dalvik executable. This is the code that runs the applications.
Resources are everything that is not code. The application may contain a number of images and audio/video clips, as well as numerous XML files describing layouts, language packs, and so on. Collectively, these items are the resources.
Optionally, application may include some native code, such as C/C++ libraries. These libraries could be packaged together with APK file.
Android applications must be signed before they can be installed on a device. However, when the application needs distribution commercially, they need to sign it with a key.
One way in which Android is quite different from other platforms is the distribution of its apps. On most other platforms, such as iPhone, a single vendor holds a monopoly over the distribution of applications. On Android, there are many different stores, or markets. Each market has its own set of policies with respect to what is allowed, how the revenue is split, and so on. As such, Android is much more of a free market space in which vendors compete for business.
In practice, the biggest market currently is Android Market, run by Google. It is unclear whether Google means to just seed the market space while other stores develop or plans to make it a profitable venture.
Applications can also be distributed via the Web. When you download an APK file from a website through the browser, the application represented by the APK file is installed automatically on your phone.
Android openness is very promising and it is supported by Open Handset Alliance and backed by Google. Though Google looks like the major player in promoting android, there are many hardware and software entities which are helping in promotion of Android. As per the current statistics, Android has surpassed IOS and android powered phones are more than iPhones which speaks the popularity of android. Though a major problem is non-uniform software updates among handset and telephone service providers which is affecting the availability of latest versions of Android. It seems that though Android 2.3 version is available in market for more than a year, still majority of phones devices are still working on 2.1. This is a major concern which needs answer immediately. The openness is the biggest promise which can be used by developers and manufacturers and drawing best of android.