Introduction to Android-Ravi Vyas
History of Android - Origins Android, Inc. was founded in Palo Alto, California, United States in October, 2003
Google acquired Android Inc. in August, 2005
On the November 5, 2007 the Open Handset Alliance(OHA), a consortium of several companies unveiled itself.History of Android - Growth Market share has been growing at an incredible pace.
Market share jumped from 4.7% in Q42009 to 33% in Q42010
As of March 2011 Android Market Share Now 1 of Every 3 US Phones.
Android Device activations grew from 60,000 device activations/day in Feb 2010 to 350,000 device activations/day in March 2011.
Android is now the world's second largest OS after windowsHistory of Android - Version1.0 : Released 23 September 2008
1.1 :On 9 February 2009, Android 1.1 update for Android was released for T-Mobile G1
1.5 (Cupcake) : 30 April 2009. Ability to record and watch videos through camcorder mode,New widgets and folders that can populate the Home screens.
1.6 (Donut) : 15 September 2009 . Support for WVGA screen resolutions. Google free turn-by-turn navigation.
2.1 (Eclair) : 26 October 2009. New Browser UI and HTML5 support. Exchange ActiveSync 2.5 support. Live Wallpapers
2.2 (Froyo) : 20 May 2010. USB tethering and Wi-Fi hotspot functionality, Adobe Flash support.
2.3 (Gingerbread) : Native support for SIP VoIP telephony, NFC.
3.0 (Honeycomb) : 22 February 2011. Tablet support.History of Android - Market Growth 
Android - What is Android?“Android is a [open source] 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.”
Android - What Android is not?Android is not Linux.Android does not have a windowing system.Does not have all the Linux utilities.
Android – Sourcesource.android.com/source/download.html [bit.ly/SrcAnd]License :  Apache 2.0 & GPL v2Git repositories.
Android - Technical OverviewFeatures:GSM Telephony (hardware dependent)Bluetooth, EDGE, 3G, and WiFi (hardware dependent)Camera, GPS, compass, and accelerometer (hardware dependent)Integrated browser based on the open source WebKit engineOptimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
Android - Technical OverviewFeatures:Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDEApplication framework enabling reuse and replacement of componentsDalvik virtual machine optimized for mobile devicesSQLite for structured data storage
Android - Architecture
Android – Dalvik VMIt is a virtual machine to…run on a slow CPU
with relatively little RAM

Android

  • 1.
  • 2.
    History of Android- Origins Android, Inc. was founded in Palo Alto, California, United States in October, 2003
  • 3.
    Google acquired AndroidInc. in August, 2005
  • 4.
    On the November5, 2007 the Open Handset Alliance(OHA), a consortium of several companies unveiled itself.History of Android - Growth Market share has been growing at an incredible pace.
  • 5.
    Market share jumpedfrom 4.7% in Q42009 to 33% in Q42010
  • 6.
    As of March2011 Android Market Share Now 1 of Every 3 US Phones.
  • 7.
    Android Device activationsgrew from 60,000 device activations/day in Feb 2010 to 350,000 device activations/day in March 2011.
  • 8.
    Android is nowthe world's second largest OS after windowsHistory of Android - Version1.0 : Released 23 September 2008
  • 9.
    1.1 :On 9February 2009, Android 1.1 update for Android was released for T-Mobile G1
  • 10.
    1.5 (Cupcake) :30 April 2009. Ability to record and watch videos through camcorder mode,New widgets and folders that can populate the Home screens.
  • 11.
    1.6 (Donut) :15 September 2009 . Support for WVGA screen resolutions. Google free turn-by-turn navigation.
  • 12.
    2.1 (Eclair) :26 October 2009. New Browser UI and HTML5 support. Exchange ActiveSync 2.5 support. Live Wallpapers
  • 13.
    2.2 (Froyo) :20 May 2010. USB tethering and Wi-Fi hotspot functionality, Adobe Flash support.
  • 14.
    2.3 (Gingerbread) :Native support for SIP VoIP telephony, NFC.
  • 15.
    3.0 (Honeycomb) :22 February 2011. Tablet support.History of Android - Market Growth 
  • 16.
    Android - Whatis Android?“Android is a [open source] 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.”
  • 17.
    Android - WhatAndroid is not?Android is not Linux.Android does not have a windowing system.Does not have all the Linux utilities.
  • 18.
    Android – Sourcesource.android.com/source/download.html[bit.ly/SrcAnd]License :  Apache 2.0 & GPL v2Git repositories.
  • 19.
    Android - TechnicalOverviewFeatures:GSM Telephony (hardware dependent)Bluetooth, EDGE, 3G, and WiFi (hardware dependent)Camera, GPS, compass, and accelerometer (hardware dependent)Integrated browser based on the open source WebKit engineOptimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • 20.
    Android - TechnicalOverviewFeatures:Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDEApplication framework enabling reuse and replacement of componentsDalvik virtual machine optimized for mobile devicesSQLite for structured data storage
  • 21.
  • 22.
    Android – DalvikVMIt is a virtual machine to…run on a slow CPU
  • 23.

Editor's Notes

  • #7 Answer from Google , my addition – opensourceAdvantage of open source : better understanding , better code , more & better reuse - I extended an AsyncTask Class to make it a Async HTTP Class which handled all the network interaction
  • #9 Answer from Google , my addition – opensourceAdvantage of open source : better understanding , better code , more & better reuse - I extended an AsyncTask Class to make it a Async HTTP Class which handled all the network interactionmajority of the Android software is licensed with Apache 2.0. there may be exceptions which will be handled on a case-by-case basis. For example, the Linux kernel patches are under the GPLv2 license with system exceptions, which can be found on kernel.org.The Apache License requires preservation of the copyright notice and disclaimer, but it is not a copyleft license — it allows use of the source code for the development of proprietary software as well as free and open source software. The GPL is the first copyleft license for general use, which means that derived works can only be distributed under the same license terms.Repo is a tool that Google built on top of Git. Repo helps us manage the many Git repositories
  • #10 Answer from Google
  • #11 SQLite is an ACID-compliant embedded relational database management system contained in a relatively small (~275 kB)[4] C programming library. The source code for SQLite is in the public domain[1][5] and implements most of the SQL standard. In contrast to other databases, SQLite is not a separate process that is accessed from the client application, but an integral part of it.SQLite uses a dynamically and weakly typed SQL syntax that does not guarantee the domain integrity. SQLite is a multitasking database concerning reads. Writes can be done only one-at-a-time. It is a popular choice for local/client storage on web browsers. It has many bindings to programming languages. It is arguably the most widely used database engine, as it is used today by several widespread browsers, operating systems, embedded systems among others.[6]
  • #12 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 browserContent Providers that enable applications to access data from other applications (such as Contacts), or to share their own dataA Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout filesA Notification Manager that enables all applications to display custom alerts in the status barAn 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. Some of the core libraries are listed below:System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devicesMedia Libraries - based on PacketVideo'sOpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNGSurface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applicationsLibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web viewSGL - the underlying 2D graphics engine3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizerFreeType - bitmap and vector font renderingSQLite - a powerful and lightweight relational database engine available to all applications:::Runtime:::Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.::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. Why Linux kernel? : Great memory and process management , permission based security model ( each android app has its own userID) , Already open source
  • #13 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.Own instance = added security , sandboxingThe Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
  • #14 That is, each application, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission.
  • #15 That is, each application, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission.
  • #16 On the Java platform, a manifest file is a specific file contained within a JAR archive[1]. It is used to define extension and package related data. It is a metadata file that contains name-value pairs organized in different sections. If a JAR file is intended to be used as an executable file, the manifest file specifies the main class of the application. The manifest file is named MANIFEST.MF.
  • #17 On the Java platform, a manifest file is a specific file contained within a JAR archive[1]. It is used to define extension and package related data. It is a metadata file that contains name-value pairs organized in different sections. If a JAR file is intended to be used as an executable file, the manifest file specifies the main class of the application. The manifest file is named MANIFEST.MF.
  • #20 Everything is free 
  • #21 Live demoLoad eclipse Create new projectCreate new AVDRun project
  • #22 Blrdroid holds regular meetups and hands on sessions.
  • #23 Blrdroid holds regular meetups and hands on sessions.
  • #24 Blrdroid holds regular meetups and hands on sessions.