You are on page 1of 6

What is Android?

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.

Features

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

Android Architecture
The following diagram shows the major components of the Android operating system. Each section is described in more detail below.

Applications
Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.

Application Framework
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. Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components; any application can publish its capabilities and any other application may then make use of those capabilities (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user. Underlying all applications is a set of services and systems, including:

A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files A Notification Manager that enables all applications to display custom alerts in the status bar An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack

Libraries
Android includes 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.

Android Runtime
Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language. Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes 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.

Linux Kernel
Android relies on Linux version 2.6 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.

Application Fundamentals

Android applications are composed of one or more application components (activities, services, content providers, and broadcast receivers) Each component performs a different role in the overall application behavior, and each one can be activated individually (even by other applications) The manifest file must declare all components in the application and should also declare all application requirements, such as the minimum version of Android required and any hardware configurations required Non-code application resources (images, strings, layout files, etc.) should include alternatives for different device configurations (such as different strings for different languages and different layouts for different screen sizes).

Developing applications for Android devices is facilitated by a group of tools that are provided with the SDK. You can access these tools through an Eclipse plugin called ADT (Android Development Tools) or from the command line. Developing with Eclipse is the preferred method because it can directly invoke the tools that you need while developing applications. However, you may choose to develop with another IDE or a simple text editor and invoke the tools on the command line or with scripts. This is a less streamlined way to develop because you will sometimes have to call command line tools manually, but you will have access to the same number of features that you would have in Eclipse. Before beginning developing Android applications, we have to download all necessary components from android sdk site. All necessary versions for android has to be downloaded and setting of preferences in Eclipse IDE for android development.

The basic steps for developing applications with or without Eclipse are the same: 1. Set up Android Virtual Devices or hardware devices. You need to create Android Virtual Devices (AVD) or connect hardware devices on which you will install your applications.
2. Create an Android project.

An Android project contains all source code and resource files for your application. It is built into an .apk package that you can install on Android devices.
3. Build and run your application.

If you are using Eclipse, builds are generated each time you save changes and you can install your application on a device by clicking Run.
4. Debug your application with the SDK debugging and logging tools.

Debugging your application involves using a JDWP-compliant debugger along with the debugging and logging tools that are provided with the Android SDK. Eclipse already comes packaged with a compatible debugger.
5. Test your application with the Testing and Instrumentation framework.

The Android SDK provides a testing and instrumnetation framework to help you set up and run tests within an emulator or device.

Android Applications Suite

1. Privacy based applications demonstration


1. Class diagram Main User username(strin g) password(string ) saveUserName( ) Private Numbers name (string) number (string) saveName() saveNumber() checkNumber() Message Log name(string) number(string) date(datetime) message text(string) type(integer) saveMessageData( )

2. Use case diagram

Make settings for private numbers which to hide Start service to watch on messages

View hided messages

3. Sequence diagram U: USER S: SERVICE MANAGER D: DATA MANAGER


Save settings of private numbers Start service to watch and hide messages

Save messages from private numbers

View hidden messages

2. Education content based applications


Android became most popular and user friendly mobile technology in recent times. It not only attracting business professionals and techno savvy users but also attracting students. So with the help of its popularity we can make education content for each individual education stream like science, engineering, medical, business and even for schools. With the help innovative features and look n feel of android mobile devices we can implement education based content in attractive way. For implementing useful and easy to understand applications we will use multimedia features of android mobile device. Multimedia based content will provide better education for students. E.g. we can implement education content for subjects like engineering graphics, data structures algorithms etc.

3. Fun applications
6 3 4 7 2 8 1 5

As mobile device is used for fun purposes, with the help of artificial intelligence concepts we can implement games as shown in figure. In this game user has to arrange numbered tiles in sequential manner. For arranging it we are giving one empty tile for adjusting it in sequence.

4. Spy utility based applications


Android becomes most popular in smart phone mobile industry because it not only providing common mobile phone features but providing enhancing features in multimedia, networking, various applications in categories like education, security, medical, games, information sharing. So in spy based applications we can use enhanced features supported for multimedia. We can access microphone of the phone for recording confidential discussions in disguised way and we can do this without knowing other people. Similar type of logic can be designed for recording videos in disguised way and also taking photos without knowing other. With the help programming interface provided by android technology we can use video, audio, image taking functions can be utilised. This type of applications can be used in investigation, detective firms for taking comprehensive steps to do the tasks related to investigation and criminal detectives. This type of application can be useful for media for recording confidential videos, speeches, evidences. And even for individual to recording coffee, fun evidences and discussions.

You might also like