Android Mobile Operating System
Android Mobile Operating System
Android is a software platform and operating system for mobile devices, based on the Linux kernel, and developed by Google and later the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries. Applications written in C Language and other languages can be compiled to ARM native code and run, but this development path isn't officially supported by Google. Android is available as open source. Google threw open the entire source code (including network and telephony stacks) that were not available previously, under an Apache license. Certain parts that relate to a specific hardware can't be made open and are not considered part of the Android platform. With Apache License, vendors are free to add proprietary extensions without submitting those back to the open source community. While Google's contributions to this platform are expected to remain open-sourced, the branches could explode using varieties of licenses.
Features of Android
Handset layouts Android can adapt to traditional smart phone layouts, as well other VGA, 2D, and 3D graphics libraries.
Storage Android uses SQLite to store all its junk-- I mean, information. Connectivity Android supports a wide variety of technologies, including Bluetooth, WiFi, GSM/EDGE, and EV-DO.
Messaging MMS and SMS are available for Android, as well as threaded text messaging. So you can send as many texties as you like.
Web Browser Android comes pre-loaded with the Web Kit 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 Byte codes (say that five times fast. I keep ending up with "Danish light bulb".) These can
then be put into a Dalvik Virtual Machine. Basically more robust applications are supported than on some other Mobile Operating Systems.
Media Support 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 touch screen 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.
Activity
Activities are the most common of the four Android building blocks. An activity is usually a single screen in your application. Each activity is implemented as a single class that extends the Activity base class. Your class will display a user interface composed of Views and respond to events. Most applications consist of multiple screens. For example, a text messaging application might have one screen that shows a list of contacts to send messages to, a second screen to write the message to the chosen contact, and other screens to review old messages or change settings. Each of these screens would be implemented as an activity. Moving to another screen is accomplished by a starting a new activity. In some cases and activity may return a value to the previous activity -- for example an activity that lets the user pick a photo would return the chosen photo to the caller.
Intent Filter
SERVICE
A Service is code that is long-lived and runs without a UI. A good example of this is a media player playing songs from a play list. In a media player application, there would probably be one or more activities that allow the user to choose songs and start playing them. However, the music playback itself should not be handled by an activity because the user will expect the music to keep playing even after navigating to a new screen. In this case, the media player activity could start a service using Context.startService () to run in the background to keep the music going. The system will then keep the music playback service running until it has finished. Note that you can connect to a service (and start it if it's not already running) with the Context.bindService () method. When connected to a service, you can communicate with it through an interface exposed by the service. For the music service, this might allow you to pause, rewind, etc.
CONTENT PROVIDER
Applications can store their data in files, an SQLite database, or any other mechanism that makes sense. A content provider, however, is useful if you want your application's data to be shared with other applications. A content provider is a class that implements a standard set of methods to let other applications store and retrieve the type of data that is handled by that content provider. Not every application needs to have all four, but your application will be written with some combination of these. All the components needed for android application should listed in an xml file called AndroidManifest.xml. This is an XML file where you declare the components of your application and what their capabilities and requirements are.
its data to other applications, and also how you can request data from other applications that expose their data. Android provides the following mechanisms for storing and retrieving data:
Preferences
A lightweight mechanism to store and retrieve key/value pairs of primitive data types. This is typically used to store application preferences.
Files
You can store your files on the device or on a removable storage medium. By default, other applications cannot access these files.
Databases
The Android APIs contain support for SQLite. Your application can create and use a private SQLite database. Each database is private to the package that creates it.
Content Providers
A content provider is a optional component of an application that exposes read/write access to an application's private data, subject to whatever restrictions it wants to impose. Content providers implement a standard request syntax for data, and a standard access mechanism for the returned data. Android supplies a number of content providers for standard data types, such as personal contacts.
Network
Don't forget that you can also use the network to store and retrieve data.
mechanism that enforces restrictions on the specific operations that a particular process can perform, and per-URI permissions for granting ad-hoc access to specific pieces of data.
System Architecture
A central design point of the Android security architecture is that no application, by default, has permission to perform any operations that would adversely impact other applications, the operating system, or the user. This includes reading or writing the user's private data such as contacts or e-mails, reading or writing another application's files, performing network access, keeping the device awake, etc. An application's process is a secure sandbox. It can't disrupt other applications, except by explicitly declaring the permissions it needs for additional capabilities not provided by the basic sandbox. These permissions it requests can be handled by the operating in various ways, typically by automatically allowing or disallowing based on certificates or by prompting the user. The permissions required by an application are declared statically in that application, so they can be known up-front at install time and will not change after that.
Application Signing
All Android applications (.apk files) must be signed with a certificate whose private key is held by their developer. This certificate identifies the author of the application. The certificate does not need to be signed by a certificate authority: it is perfectly allowable, and typical, for Android applications to use self-signed certificates. The certificate is used only to establish trust relationships between applications, not for wholesale control over whether an application can be installed. The most significant ways that signatures impact security is by determining who can access signature-based permissions and who can share user IDs.
Using Permissions
A basic Android application has no permissions associated with it, meaning it can not do anything that would adversely impact the user experience or any data on the device. To make use of protected features of the device, you must include in your AndroidManifest.xml one or more <uses-permission> tags declaring the permissions that your application needs. The permissions provided by the Android system can be found at Manifest. permission. Any application may also define and enforce its own permissions, so this is not a comprehensive list of all possible permissions. A particular permission may be enforced at a number of places during your program's operation:
yourself. It is preferred to use an existing group, as this simplifies the permission UI shown to the user. Note that both a label and description should be supplied for the permission. These are string resources that can be displayed to the user when they are viewing a list of permissions (android:label) or details on a single permission ( android:description). The label should be short, a few words describing the key piece of functionality the permission is protecting. The description should be a couple sentences describing what the permission allows a holder to do. Our convention for the description is two sentences, the first describing the permission, the second warning the user of what bad things can happen if an application is granted the permission.
In September 2008, Motorola confirmed that it was working on hardware products that would run Android.
Huawei Technologies is planning to launch smart phones that would run Android in Q1 2009.
Lenovo is working on an Android-based mobile phone that supports the Chinese 3G TD-SCDMA standard.
Sony Ericsson is planning to release an Android based handset in the summer of 2009.
Samsung plans to offer a phone based on Googles Android operating system in the second quarter of 2009.
GiiNii Movit Mini is a Internet device based on Google's Android operating system
Conclusion
Finally we concluded that the Androids platform which has been developed by Google is going to play major role in Mobile applications as it is an open source and it is also easy to
develop mobile applications using Android. Moreover to develop these applications all the APIs are available and these APIs are as same as java APIs which are easy to understand.
References
http://source.android.com/license.
http://www.openhandsetalliance.com/press_110507.html.