Android (smartphone)
Besides, many other Eduzendium articles welcome your collaboration! |
Android is the name of an open software platform for mobile/Smartphones development. The Android project is a collaborative effort of the Open Handset Alliance. It includes an operating system, middleware, and critical applications. Android was built from the ground-up to enable developers to create compelling mobile applications that take full advantage of all a handset has to offer. It is built to be truly open. For example, an application could 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 is built on the open Linux Kernel. Furthermore, it utilizes a custom virtual machine that has been designed to optimize memory and hardware resources in a mobile environment. Android will be open source; it can be liberally extended to incorporate new cutting edge technologies as they emerge. The platform will continue to evolve as the developer community works together to build innovative mobile applications.
Features
- Video showcase of the Android features : Android Demo
- Application framework enabling reuse and replacement of components
- Dalvik virtual machine optimized for mobile devices
- Integrated browser based on the open source WebKit engine
- Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
- SQLite for structured data storage
- Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
- GSM Telephony (hardware dependent)
- Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
- Camera, GPS, compass, and accelerometer (hardware dependent)
- Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
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.
Android Application Design Philosophy
Android, being a mobile platform and a product that Google has fathered, 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.
Motivation
According to Andy Rubin, Google's Director of mobile platforms, Android is an attempt to accelerate innovation in the mobile world by incorporating ideas from the advancement of the internet.[1]The goal of Android is to provide an open handset platform with which developers can create their own applications.[2] Although Google's official position about subsidizing the cost of Android handsets by putting ads all over wireless is, "...thats crazy. The economics don't work.." .[1] critics view the development as an oppurtunity to expand their (Google's) internet advertising market to mobile internet devices. According to the critics, creating a platform, free to cell phone companies, will rapidly increase the demand for mobile internet advertising. Google also hopes to cripple the products of competitors, like Microsoft's Windows Mobile.[3] All speculation and hidden agendas aside, it is safe to say that Android is a new stage in the evolution of the smartphone - the balance of power has been shifted from the producer to the consumer.
Other Open Source Mobile Operating Systems
- Nokia Symbian OS
- LiMo
References
- ↑ 1.0 1.1 Rubin's Interview. Retrieved on 2008-08-09.
- ↑ 2.0 2.1 Openess of Android. Retrieved on 2008-08-05.
- ↑ Miguel Helft (2007-10-08). For Google, Advertising and Phones Go Together. Retrieved on 2008-08-06.
- ↑ What is Android?. Retrieved on 2008-07-24.