User:Eric Clevinger/Sandbox/droiddraft: Difference between revisions
imported>Eric Clevinger (removed unneeded images) |
imported>Eric Clevinger No edit summary |
||
Line 24: | Line 24: | ||
==== '''HIGHLIGHTS''' ==== | ==== '''HIGHLIGHTS''' ==== | ||
(redo this) | |||
==Developing Applications== | ==Developing Applications== | ||
Line 55: | Line 45: | ||
A Service is quite like the media player the user may invoke but once he/she does so and navigates to a different screen the music (or in this case, the Service) shouldn't stop. Last but not least the Content Provider block makes it possible for different applications to access the same data - standardized methods of storage and retrieval. This was an oversimplification of the Android application model and interested readers should definitely visit: [http://code.google.com/android/intro/anatomy.html Android Innards] for more information. One of the major advantages of the Android platform is the ease of development and a very good demonstration of that can be found in the following [http://www.youtube.com/watch?v=I6ObTqIiYfE Hello World] link. | A Service is quite like the media player the user may invoke but once he/she does so and navigates to a different screen the music (or in this case, the Service) shouldn't stop. Last but not least the Content Provider block makes it possible for different applications to access the same data - standardized methods of storage and retrieval. This was an oversimplification of the Android application model and interested readers should definitely visit: [http://code.google.com/android/intro/anatomy.html Android Innards] for more information. One of the major advantages of the Android platform is the ease of development and a very good demonstration of that can be found in the following [http://www.youtube.com/watch?v=I6ObTqIiYfE Hello World] link. | ||
==Competition with iPhone== | |||
Redoing this. | |||
== | |||
==Drawbacks and Criticisms== | ==Drawbacks and Criticisms== | ||
Line 71: | Line 59: | ||
==References== | ==References== | ||
<redo this> | <redo this> | ||
</references> |
Revision as of 15:46, 2 December 2011
MY DRAFT ARTICLE!!!
Android (also known as Droid) is a mobile operating system for smartphones and tablets, developed by the Open Handset Alliance and led by Google.[1] As of 2011, Android is one of the leading mobile platforms, holding over a 40% share of the smartphone market. [2] Android is open source, based on linux, and was built from the ground-up to be a high-functioning, innovative, and comfortable experience for users, while allowing developers to create powerful and convenient applications.
One of Android's key strengths is its openness, in terms of both the operating system itself and how applications communicate with it. For example, an application can call upon any of the phone's 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 has, and will be, liberally extended to incorporate new cutting edge technologies as they emerge.
In the U.S., Android-based smartphones are available on most major carriers (including AT&T, Sprint, T-Mobile, and Verizon), and are made by several manufacturers, including HTC, LG, Motorola, and Samsung.
History
In October 2003, Android, Inc. was founded in Palo Alto, CA, by developers Andy Rubin, Rich Miner, Nick Sears and Chris White, with the goal of developing an open source mobile platform. This got the attention of Google, which is also based in Palo Alto. In 2005, Google acquired Android, giving them a web-centric mobile platform to compete with Microsoft and Apple, and make their applications openly available to mobile users. Before the acquisition, Google was having its apps (such as mobile Picasa) shot down by carriers who wanted to charge users to do the same thing Google offered for free. But by having Android as an open network, they would not have to pay any royalty for providing services over networks, resulting in a more competitive mobile internet industry than what was available at the time, where telecoms often overcharged customers for various services.
In 2007, Google joined with several other technology and mobile companies to form the Open Handset Alliance, a consortium group dedicated to developing and implementing Android. It was not until 2008 where the first consumer device running Android was released, the HTC Dream (also known as the T-Mobile G1). More devices soon followed. In December 2009, Android held 3.9% of the worldwide market share, but just one year later this rose to 17%, and continued rising rapidly in 2011, and is now believe to be over 40%. [1]. Reasons: carrier selection, hardware selection, alternative to iphone, and GOOD PHONES. edit later. gawd im tired.
Features
Android has a complete set of application programming interfaces available for everything from user-interface components to accessing location information. The goal is to allow for new and innovative applications that either can't be done on existing platforms or simply haven't been allowed. This openness extends beyond simply providing access to the data on the handset. Included applications can be customized or even replaced entirely. For example, a corporation could replace the messaging application with one that only allowed secure messaging through the company's servers or a user could replace the included photo viewer with one of their choosing.
The Android APIs are extensive and modern. In addition to the typical APIs for screen drawing, user input, and network access, you'll find APIs for storage, media, graphics, and even direct hardware access. Media APIs are available for both playback and recording of audio, video, and still images. For storage, developers aren't limited to file-based APIs. SQLite is available for relational data storage, a preferences API is available for simple setting storage, and applications can extend the data storage mechanisms available. OpenGL ES, with optional hardware acceleration, is available for 3D graphics applications. Lastly, there will be a set of low-level APIs for direct access to the hardware, such as WiFi or Bluetooth. Most mobile platforms don't allow low-level access to the hardware, but Android allows developers to extend the hardware on a given handset. For instance, it might be possible to add support for Bluetooth profiles that weren't provided out-of-the-box.
Security is essential with such an open development environment. Therefore, a tight security model is built into Android. Applications are only granted required permissions (data access, APIs used, and so forth) at installation time and cannot change their permissions later. So, an application can't remotely add a new feature to, say, read a user's location with or without the user's permission. This is a big step towards preventing malware and easing privacy and safety concerns for users of the platform.
Android is built on the open Linux Kernel. Furthermore, it utilizes a custom virtual machine called 'Dalvik' that has been designed to optimize memory and hardware resources in a mobile environment.
HIGHLIGHTS
(redo this)
Developing Applications
Applications for Android can be developed using a Java-based Android SDK. The SDK or Software Development Kit has detailed instructions - right from installing the Androind plugin for your eclipse development environment to creating complicated applications that exploit powerful Google APIs. Applications will be supported on a wide range of phones, right from a regular 12 key mobile to a high end touch sensitive device.
Android Application Design Philosophy
Android, being a mobile platform and a product that was nurtured by Google, puts primary emphasis on user experience. According to the Android philosophy
an outstanding mobile user experience is one that is fast, responsive and seamless.
Detailed descriptions of these three rubrics that measure the excellence of an Android application can be found here. However, as any developer can gather from his/her experiences - one must learn how a tool CAN be used before he/she learns how it SHOULD be used. Therefore in the section that follows there is a very brief introduction to the anatomy of an Android application.
Building Blocks of an Application
An Android application is a combination of any or all of the following base classes:
- Activity
- Intent Receiver
- Service
- Content Provider
Very briefly, an Activity in Android terminology usually means a single screen in an application. For example, the first screen with a list of contact names and numbers on your phone would be an Activity. The second block - Intent Receiver - is related to the concept of an Intent. An Intent is any action the user takes to nagivate between the screens of your application. VIEW, PICK, EDIT are all examples of actions that would qualify for Intent.
A Service is quite like the media player the user may invoke but once he/she does so and navigates to a different screen the music (or in this case, the Service) shouldn't stop. Last but not least the Content Provider block makes it possible for different applications to access the same data - standardized methods of storage and retrieval. This was an oversimplification of the Android application model and interested readers should definitely visit: Android Innards for more information. One of the major advantages of the Android platform is the ease of development and a very good demonstration of that can be found in the following Hello World link.
Competition with iPhone
Redoing this.
Drawbacks and Criticisms
(ovrhaul this) Android is a very flexible platform for handset manufacturers and wireless operators alike. It is also very flexible for custom use within enterprises of all sizes. Unfortunately, this flexibility comes at a cost, much of which falls on the developer. Not all Android handsets will have the same features or capabilities, support the same APIs, or have the same hardware specifications.This device fragmentation is common on other mobile platforms, though, and is seen as largely unavoidable in today's market.
Other Open Source Mobile Operating Systems
References
<redo this> </references>