Android tutorial - About Android | Introduction to Android - android app development - android studio - android development tutorial
- Android is an operating system for mobile devices such as smartphones and tablet computers.
- It is developed by the Open Handset Alliance led by Google.
- It's is built on a Linux foundation.
- Google purchased the initial developer of the software, Android Inc., in 2005.
- By providing developers a new level of openness that enables them to work more collaboratively, Android will accelerate the pace at which new and compelling mobile services are made available to consumers.
- Android is often symbolized by the green robot to the right.
![learn android - android tutorial - android development tutorial - android examples - android - android script - android program - android download - android samples - android scripts](https://mail.wikitechy.com/cdn/tutorials/android/android-tutorial.gif)
![android features high resolution](https://mail.wikitechy.com/cdn/tutorials/android/android-features-high-resolution.png)
![learn android - android tutorial - android development tutorial - android examples - android - android script - android program - android download - android samples - android scripts](https://mail.wikitechy.com/cdn/tutorials/android/how-android-works.gif)
Versions of Android / History of android
Platform Version | API Level | VERSION_CODE | |
---|---|---|---|
Android 6.0 | 23 | MARSHMALLOW | |
Android 5.1 | 22 | LOLLIPOP_MR1 | |
Android 5.0 | 21 | LOLLIPOP | |
Android 4.4W | 20 | KITKAT_WATCH | KitKat for Wearables Only |
Android 4.4 | 19 | KITKAT | |
Android 4.3 | 18 | JELLY_BEAN_MR2 | |
Android 4.2, 4.2.2 | 17 | JELLY_BEAN_MR1 | |
Android 4.1, 4.1.1 | 16 | JELLY_BEAN | |
Android 4.0.3, 4.0.4 | 15 | ICE_CREAM_SANDWICH_MR1 | |
Android 4.0, 4.0.1, 4.0.2 | 14 | ICE_CREAM_SANDWICH | |
Android 3.2 | 13 | HONEYCOMB_MR2 | |
Android 3.1.x | 12 | HONEYCOMB_MR1 | |
Android 3.0.x | 11 | HONEYCOMB | |
Android 2.3.4 Android 2.3.3 |
10 | GINGERBREAD_MR1 | |
Android 2.3.2 Android 2.3.1 Android 2.3 |
9 | GINGERBREAD | |
Android 2.2.x | 8 | FROYO | |
Android 2.1.x | 7 | ECLAIR_MR1 | |
Android 2.0.1 | 6 | ECLAIR_0_1 | |
Android 2.0 | 5 | ECLAIR | |
Android 1.6 | 4 | DONUT | |
Android 1.5 | 3 | CUPCAKE | |
Android 1.1 | 2 | BASE_1_1 | |
Android 1.0 | 1 | BASE |
Features & Specifications
- Android is a powerful Operating System supporting many applications in Smart Phones.
- These applications make life more comfortable and advanced for the users.
- Hardware’s that support Android are mainly based on ARM architecture platform.
- Some of the current features and specifications of android are:
![learn android - android tutorial - android development tutorial - android examples - android - android script - android program - android download - android samples - android scripts](https://mail.wikitechy.com/cdn/tutorials/android/android-architecture-and-android-tutorials.gif)
![features and specification](https://mail.wikitechy.com/cdn/tutorials/android/features-and-specification.png)
Applications
- These are the basics of Android applications:
- 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)
Android Architecture
- Android is architected in the form of a software stack comprising applications, an operating system, run-time environment, middleware, services and libraries.
- Each layer of the stack, and the corresponding elements within each layer, are tightly integrated and carefully tuned to provide the optimal application development and execution environment for mobile devices.
![android architecture](https://mail.wikitechy.com/cdn/tutorials/android/android-architecture.png)
The Linux Kernel
- Positioned at the bottom of the Android software stack, the Linux Kernel provides a level of abstraction between the device hardware and the upper layers of the Android software stack.
- Based on Linux version 2.6, the kernel provides preemptive multitasking, low-level core system services such as
- memory,
- process and
- power management in addition to providing a network stack and device drivers for hardware such as the device display, Wi-Fi and audio.
Android Runtime - Dalvik Virtual Machine
- the Linux kernel provides a multitasking execution environment allowing multiple processes to execute concurrently.
- Each application running on an Android device does so within its own instance of the Dalvik virtual machine (VM).
- Running applications in virtual machines provides a number of advantages.
- Firstly, applications are essentially sandboxed, in that they cannot detrimentally interfere (intentionally or otherwise) with the operating system or other applications, nor can they directly access the device hardware.
- Secondly, this enforced level of abstraction makes applications platform neutral in that they are never tied to any specific hardware.
- The Dalvik virtual machine was developed by Google and relies on the underlying Linux kernel for low-level functionality.
- It is more efficient than the standard Java VM in terms of memory usage, and specifically designed to allow multiple instances to run efficiently within the resource constraints of a mobile device.
- In order to execute within a Dalvik VM, application code must be transformed from standard Java class files to the Dalvik executable (.dex) format, which has a 50% smaller memory footprint than standard Java bytecode.
- Standard Java class files can usually (though not always) be converted to Dex format using the dx tool included with the Android SDK.
Java Interoperability Libraries
- Android applications are predominantly developed using the Java programming language.
- The Standard Java development environment includes a vast array of classes that are contained in the core Java runtime libraries.
- These libraries provide support for tasks such as string handling, networking and file manipulation (to name but a few) and are both familiar to, and widely used by Java developers regardless of platform.
- The Java Interoperability Libraries are an open source implementation (based on the Apache Harmony project) of a subset of the Standard Java core libraries that have been adapted and transformed for use by applications running within a Dalvik VM.
Android Libraries
A summary of some key core Android libraries available to the Android developer is as follows:
- android.app - Provides access to the application model and is the cornerstone of all Android applications.
- android.content - Facilitates content access, publishing and messaging between applications and application components.
- android.database - Used to access data published by content providers and includes SQLite database management classes.
- android.graphics - A low-level 2D graphics drawing API including colors, points, filters, rectangles and canvases.
- android.hardware - Presents an API providing access to hardware such as the accelerometer and light sensor.
- android.opengl - A Java interface to the OpenGL ES 3D graphics rendering API.
- android.os - Provides applications with access to standard operating system services including messages, system services and inter-process communication.
- android.media - Provides classes to enable playback of audio and video.
- android.net - A set of APIs providing access to the network stack. Includes android.net.wifi, which provides access to the device’s wireless stack.
- android.provider - A set of convenience classes that provide access to standard Android content provider databases such as those maintained by the calendar and contact applications.
- android.text - Used to render and manipulate text on a device display.
- android.util - A set of utility classes for performing tasks such as string and number conversion, XML handling and date and time manipulation.
- android.view - The fundamental building blocks of application user interfaces.
- android.widget - A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.
- android.webkit - A set of classes intended to allow web-browsing capabilities to be built into applications.
Application Framework
- The Application Framework is a set of services that collectively form the environment in which Android applications run and are managed. This framework implements the concept that Android applications are constructed from
- reusable,
- interchangeable and
- replaceable components.
- This concept is taken a step further in that an application is also able to publish its capabilities along with any corresponding data so that they can be found and reused by other applications.
- Activity Manager - Controls all aspects of the application lifecycle and activity stack.
- Content Providers - Allows applications to publish and share data with other applications.
- Resource Manager - Provides access to non-code embedded resources such as strings, color settings and user interface layouts.
- Notifications Manager - Allows applications to display alerts and notifications to the user.
- View System - An extensible set of views used to create application user interfaces.
- Package Manager - The system by which applications are able to find out information about other applications currently installed on the device.
- Telephony Manager - Provides information to the application about the telephony services available on the device such as status and subscriber information.
- Location Manager - Provides access to the location services allowing an application to receive updates about location changes.