This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
This structured document purpose is to explain in a brief and understandable manner, two of the newest mobile platforms that are currently on the market. To contrast each one of the platforms, and to compare, features, pros and cons, based on referenced information, as proof of statement. The "Bold italic" fragments inside the sections may be statements quoted as source of information, to thoughtfully explain, in the most comprehensive, basic and brief manner on words of the author, of such redaction (this document), even if the proof of statements of quoted information is not referenced directly, still such info may be or not mark as reference, but not necessarily.
NOTICE:* No information, was exploited or appropriated as credited as owner, nor author from the original sources or original authors, but merely referenced as facts, proof of statements and aid to conduct and develop this research document.
The structure of such document is as follows:
The actual players of the game, A brief introduction
What is android?
What is Windows Phone 7?
Similarities and Differences?
The actual players of the game, A brief introduction
The game right now is the mobile market, now, more than never companies are moving from traditional-standard computer or desktop platform environment into a new and formidable era of "on the Go" lifestyle. For sure it is not the first time mobile platforms are introduced, but now is the time than never has been, unique and special, a whole new type of level between consumers and this all new set of features this movement has brought us. It is truth that, anyone would actually "kill" to be on the top of the game, or at least have bigger and better sales revenues the last and the beginning of this year. With that being said, we can be sure that Android, inc didn't though twice before making a big leap on the market and taking the best decision of all; By signing with Google and later on the OHA (Open Handset Alliance), a consortium, form up of popular telephony companies, with the purpose of developing an open standards for mobile devices. Actually, It was the first product from the OHA, Android, a platform for mobile devices build on the Linux Kernel 2.6, developed by Google.
The other contender, Windows Phone 7, a platform developed by Microsoft based on Microsoft Windows CE 6.0. Most of this platform purpose it is intended for consumers in general, rather than the business corps audience, like previous versions from the windows mobile predecessor. The surely are more competitors, but for the purity of this redaction, I simply cannot go into details of such other mobile platforms in the market.
II. What is Android?
On Monday, November 12, 2007, Google released Android, Android is a software platform for mobile devices created by Android, inc. and supported by Google, as company sales market and development. The OAH(Open Alliance handset) and Google worked in the development of Android and its release, from the earliest moments, The first commercially available phone to run the Android operating system was the HTC Dream, released on 22 October 2008.
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
This actual and formal definition of android from the dev website, coexist with present developers, rather than general consumers, but, we as dynamic users, has to see it from both ways or even more.
So, for general users, android it is just another "phone", that's what they will be thinking when they decide to buy it, or it is just simply another OS, which they can use and have same or even better user-experience than other platforms in other devices, no matter what the general users think what is it, the fact is that, Android is an OS, open, free, versatile and it was made by developers for everyone, what we, the devs, or the people who actually want to try out the development of the platform I, it is quite more than just another "phone" like general users may think.
Android it is certainly not build up in top of two empty cookie jars, but rather in top of a Linux kernel, version 2.6 to be precisely; bet for sure that it is composed by components, which made up the Operating System itself, but also the development platform. So, now we know it is build up from ground with a Linux Kernel and that also have a specific an organized Architecture where it contains these components which made up the whole platform. The architecture it is the structure of the Operating System, it consist of a software stack and a framework, (build on Linux Kernel) each layer of the stack group, supports specific and detailed os functions.
In continuation you will contemplate this OS structure, from the bottom to the top, displaying the major components that make the platform work by layers, and also an explanation of each level or layer, to describe the purpose or at least the contents of the layers. This may be a pretty basic diagram of the Android OS structure, but it only may encompass the major components at glance or single look, for the most basic or simplistic representation of the concept itself. Basically, Android systems consist of Applications made in Java running on DRE (Dalvik Runtime Engine), system libraries written on C and C++ and the Kernel based on Linux.
You seen already what Android is, briefly, but you had seen something...Now you need to know what's capable of ? What feature withholds?
Android can adapt to traditional smart phone layouts, as well other VGA, 2D, and 3D graphics libraries.
This mean that it can be run on many mobile devices, such as tablets, cellphones(smartphones), even laptops or PC/Desktops... Perhaps on any device which a Linux kernel can be run in it...
Android uses SQLite to store all its junk-- I mean, information.
Like it says there, it is a locally, micro or even better, a enough relational Database, to store data and information from any application/service that runs on the platform.
Android supports a wide variety of technologies, including Bluetooth, WiFi, GSM/EDGE, and EV-DO.
Since is a Cellphone, it bears to have some sort of telephony technology on it, still other on the air to air, techs like Wireless Connectivity, Bluetooth for hand-frees, earphones, pc, wireless keyboards; and also includes Data Plan connectivity with EDGE or 3G.
MMS and SMS are available for Android, as well as threaded text messaging. So you can send as many texties as you like.
Android comes pre-loaded with the WebKit application. Remember, if you don't like it, you can always switch it out for something else later on thanks to the open source nature of the Google Android backend.
Java Virtual Machine
Software you write in Java can be compiled in Dalvik Bytecodes (say that five times fast. I keep ending up with "Danish lightbulb".) These can then be put into a Dalvik Virtual Machine. Basically more robust applications are supported than on some other Mobile Operating Systems.
The VM is register-based, meaning that it is specially for Android platform, and therefore, it is optimized to use less space, meaning less instruction set, faster and more reliable than the traditional-based VM.
Android supports a wide range of audio, video, media, and still formats. MPEG-4, OGG, and AAC are just a few of these. Unfortunately the Media Player as its known right now is pretty basic, although more robust offerings on are the horizon from 3rd Party developers.
Additional Hardware Support
Got a touchscreen you want to put to its full use? No problem. Android is capable of utilizing outside hardware like GPS, accelerometers, and all that other fun stuff.
Android OS Architecture
Layers & Components:
-kernel: Android relies on Linux version 2.6.24 kernel for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.
So, basically the kernel, is the base of the OS, and the middle-ware or intermediate between the Software stacks layers from above and the hardware of such device. We could say that here is where the drivers of such hardware of the device it is stored, which enable the use of any capability build on-device hardware to be controlled , using commands or program/
-System Libraries: Android is composed by a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework.
This means that most of system libraries on Android are build on C and C++, making these library reliable and fast, since these work on top of the Linux kernel, bunches of drivers and libraries can be bended to any vendor's or developer requirement.
The basic System Library list: (core libraries)
System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
SGL - the underlying 2D graphics engine
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
FreeType - bitmap and vector font rendering
SQLite - a powerful and lightweight relational database engine available to all applications.
This are just some of the libraries Android has as default, from the dev. Site but still are enough to simply show the concept needed here. Of course there's a bunch more of libraries, standard ones and user-defined ones, that listing all of them here, would take up enough space to finish this document, but then won't be about what it is, it would be a long list repertory of libraries, which certainly, that's what we have the Internet gits and repositories, lol.
Here are some links of some sites with some Androids Tools & Libraries:
The Android runtime environment consists of a set of core libraries and virtual machine. The core libraries provide most of the functionality available in the core libraries of the Java programming language.
Traditional computer software runs directly on the operating system kernel but Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a mobile device can run multiple instances of it in an efficient and fast way. Dalvik is not a JVM though it's very similar. The Dalvik VM runs files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool. The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more.
This means as developers, we have have the full access to the API's used by the core apps, Android is so well designed, that any app you make, it is distinctive by its capabilities, also other applications can also use those capabilities, still there's some security restrictions, but anyways is still is a nice to have.
The Android Framework, consist of several components, or services, if you may call them like that:
Core Platform Services = Services that are essential to the Android platform, behind the scenes - applications typically don't access them directly.
Provide access to lower-level hardware APIs, typically accessed through local Manager object.
For more information about these services individually, as I just made a list of them here, it would be too crowded to define each here, go to:
At last, the layer that withholds, the a set of core applications that most of the mobile os should have as default, standard, build-in on the phone. It consist, just basically with: Email client, Phone, Calendar, Maps, Browser, Contacts and others. All of the apps are written in the Java Programming language. So if an dev. Does an app, then is makes it part of this layer. Android does use reusability of components from an app. to be used by another app., if permission is granted. That means that android apps. Do not have a single entry point, but rather they are compose of these application components, when they need to used other's applications components, they just simply start up that piece of the app. with the component needed. All applications consist of at least four fundamental types of components:
Activities: "An activity presents a visual user interface for one focused endeavor the user can undertake".
Services: "A service does not have a visual user interface that the user can
interact with, but rather runs in the background for an unlimited period of time".
Broadcast receivers: "A broadcast receiver is a component that does nothing but receives and reacts to broadcast announcements"
Content providers: "A content provider makes a specific set of the application's data available to other applications." Every content provider extends the ContentProvider base class and is responsible to control a specific type of data. The data can be stored in different formats like a file system or an SQLLite database.
The Android SDK, it is a set of tools for developing applications for the Android Platform. Like most of the SDKs, it includes a debugger, libraries and an emulator of an Android phone, based on QUEMU. The supported platforms for the Android SDK are: Microsoft Windows Xp, 7; Apple Mac and Linux.
The official IDE for this SDK, is Eclipse, with the help of the ADT Plugin (Android Development Tools plugin). Also a Dev. Could use any text editor, to code in java and XML, the use CLI tools to MAKE the build and then debug apps, as well as manage connected Android Devices. There are also several SDK Components Packages, since the first release, back in 2007, still now more than never those are public, free and well documented for everyone who needs them.Š
For more information about the Android SDK : http://developer.android.com/sdk/index.html
III. What is windows phone 7?
So now is the time for Window to show his "Gunz" in the mobile scene, although I will make it as brief as possible, as like in our previous platform Š, No, but seriously Let's stick with just the essentials and cut down some cumbersome details, would we?
So what is this Windows Phone 7? Based on the formal information, Windows Phone 7 is:
A mobile operating system developed by Microsoft, and is the successor to its previous platform, Windows Mobile Phone.
The first public instances of this whole new OS were, as formal info claims:
It is aimed at the consumer market instead of the enterprise market like its predecessor.
So now is more than a centric-audience there in the big rooftops, but rather to the main consumer market, the people from the world Š
It launched in Europe, Singapore and Australia on October 21, 2010, and in the US and Canada on November 8, 2010, Mexico on November 24, 2010, with Asia to follow in 2011.
Being that said, that what it is, but that just more for the general-consumer audience, it doesn't mean that does not applies, for the Devs. But still there's a broader and development oriented definition for Developers and Techiesâ€¦
It is more like a Mobile Application Platform, that let the Devs. Make apps based on a set of Microsoft Tools and technologies, already in the market and used by the big community, the Devs. Of course. Windows always looks for making it easier to follow approach, with TuT's and Presentations, Tools, and pretty well documented and handy community of Devs. For the sake of new developers or even existing ones, they assure that if you knew already their toolset or kind of, it will be second to none for you to start developing apps for the windows phone 7. So Microsoft made up a pretty well suited Tool Set of technologies, integrated structure with already used Tools and Technologies, by instance the Windows Phone Application Platform Architecture.
According to the Application Platform Overview for Windows Phone , the windows phone architecture is made up of four main components:
Runtime-On "Screen" - Silverlight and the XNA Framework, along with Windows Phone specific features, combine to provide a mature environment on which to build secure, graphically-rich applications.
Tools - Visual Studio and Expression Blend, and their related tools and documentation, create a complete developer experience for quickly creating, debugging, deploying, and updating applications.
Cloud Services - Windows Azure, Xbox LIVE Services, Notifications services, Location services, along with a variety of other web services allow developers to share data across the cloud and benefits consumers by providing a seamless experience across whatever device they are using. Connections to 3rd party web services are also fully supported.
Portal Services - The Windows Phone Marketplace provide robust services that allow developers to register, certify, and market their applications.
So, basically it is divided in "Screen" and "Cloud", then there's 4 areas separated, 2 Screen Section and 2 Cloud Services. The Screen part includes The Runtime and a Tool Set; The cloud part has, the Cloud Services and Portal Services.
This is the Two Windows Phone 7 Frameworks, Silverlight for rich app UI experience and the XNA Framework, for developing games. Also is build up on top of some Core Libraries for Hardware abstraction. The Sensors, can retrieve and return data for apps regarding to that nature or just for Testing purposes of gathering reaction data by the Dev. The Data inside the Phone, or the Platform in the Phone, is in the Isolated Storage that is kind of a Sandboxed Virtual Folder, for the apps that need to make, erase data or simply manage it.
The Windows Phone Platform Development Environment is Visual Studio 2010 for Core Coding App Development and management. The Designer will stick together with Expression Blend, to create Rich UI apps design using Silverlight, using XAML. Any Tester should have a device to test their app, on the Mobile platform, well look again, the Windows Application Platform brings up, and Windows Phone Emulator, which any Dev. Using VS 2010 can test, and debug any app on the emulator, just like it was in the real mobile device. Other tools, like XNA Game Studio, for Game development are available for designated Developers wanting to code games, videogames for arcade XBOX 360, Zune or Windows Phone 7. As always, Microsoft wants the Devs to be happy, and there we got it, Community with Sample, documentation and guides for any level, from beginner to expert or just a free-lancer can actually learn in a steep learning curve, the basics, the facts, the concepts and much more about Windows Phone 7 Platform and how to design apps, and also summit them to the App Marketplace to share it for free or just with a fee Š
The Cloud Services are always on, are more scalable, can contain more functionality, and are not dependent on battery life. Services built on Azure or 3rd party web services can be accessed to bring data to the phone. The Windows Phone Marketplace provides a means for developers to certify and distribute their applications to consumers.
This is Microsoft response to fast and reliable mobile platform, with most of the data in the Cloud, everything goes fast as light and since the device would most of the times be connected to the Network (Internet), there's no fat chance that, for sure the user would be satisfied with the features below:
The Windows Phone Marketplace provides a centralized location for developers to submit and certify their applications. Consumers have a centralized location from which to buy or update their applications
For more information, please refer to this page:
The Windows Phone 7 SDK and .NET Framework, currently in version 4 comes with the necessary documentation, samples, libraries, and tools that you need to develop applications to run on Windows Phone 7. To build and run applications, any developer must have the latest SDK installed. This SDK is compatible with Visual Studio 2010 including Visual Studio Express Editions, for freebies, which are available for anyone at no cost at all.
Currently the Windows Phone 7 SDK comes in the Windows Phone Developer Tools and was latest updated in January of this year (2011).
Windows Phone Emulator Update - Exposes copy/paste functionality in the Windows Phone 7 emulator.
Windows Phone Developer Resources Update - Fixes a text selection bug in pivot and panorama controls.
Windows Phone Capability Detection Tool - Detects the phone capabilities used by your application.
Windows Phone Connect Tool - Allows you to connect your phone to a PC when Zune software is not running and debug applications that use media APIs.
Updated Bing Maps Silverlight Control - Includes improvements to gesture performance when using Bingâ„¢ Maps Silverlight Control.
For more information about the SDK and tools look at:
IV.Windows Phone 7 vs Android:
-Both Platforms have a Homescreen where apps rely, but Windows Phone doesn't use Icons, it use "TILES" and "HUBS" that have animations and stuffâ€¦
-The Android Platform Architecture seems more broad and takes time to understand it, but it is well prepared, I could say even more complete than the Windows Platform Architecture.
-The Windows Phone 7 Application development process may be seem easier because of all the wizards and tutorials, still that easiness may cause some restrictions. Still the Android Application Development, from what I seen, you need to have more serious skills, since is just arriving to the new rea of mobile phones.
-Windows Phone 7 is proprietary from Microsoft, therefore , there is company licensing Disclosure Agreement, what I am trying to say that it is not Openâ€¦
-Android it is OpenSource, free to develop and do whatever you feel like it, except destroy Google :p
-Win7 uses Visual Studio 2010 with Windows Phone Development Tools (free), IDE not free. It has a Great Visual Designer, but it is HUGE, takes lot of space in the HDD.
-Android uses Eclipse with ADT plugin for free development. It is Free, Lightweight, fast and responsive but it doesn't have a visual designer, although you could use DroidDraw for visual design, but still would be left out short compared to the one in VS2010â€¦ Œ
There's probably lots of more comparisons, but I think those above are just fine.
V.References: (Google Search, White Papers, keynames)
"The Android Runtime Environment (8801.pdf)"
"Formal Specificcation of Selected Android Core Applications Library Functions"
"Application Platform Overview for Windows" http://msdn.microsoft.com/en-us/library/ff402531(v=VS.92).aspx
"Windows Phone 7 VS Android" http://mail2web.com/blog/2011/01/windows-phone-7-android/
"Android Vs WP7 for Developers - A case Study" http://www.nilzorblog.com/2011/01/android-vs-wp7-for-developers-case.html
Hey Microsoft, Don't F*ck Up Windows Phone 7
12."Windows Phone 7" http://en.wikipedia.org/wiki/Windows_Phone_7#cite_note-86
"Mobile World COngrless 2010: Q & A Mocrosoft on Windows 7 Phhone 7 Series"