About Me• Cross Platform Enterprise Mobility Consultant with SAP & Sybase• International Corporate Trainer • Android • iOS • Sybase Unwired Platform-SAP Mobility • Blackberry • Symbian• More @ http://about.me/mayurdharukiya
Goals of Session• Help you understand what Android is• Learn about the Tools to develop Android applications• Introduction to ICS• ICS Features• App level changes in ICS• Walkthrough of developing a simple Android application using Android 4.0 (Ice-cream Sandwich)
What is Android?• A software stack for mobile devices• Includes Linux Kernel, OS Middleware, Application Framework & Applications.• Provides SDK for developers• From Google• Open Source and provided to Handset manufacturers• http://www.android.com• http://developer.android.com
Android Application Development• An open source Linux based OS for mobile device.• A software stack which has its own OS, Middleware and Key Applications.• The main platform of android is Java, it uses java library and applications are coded in java, C++ and C (core) programming language.• It’s the only application which has more than 700,000 apps and many more are released daily.• A leading industry in android market, which as higher growth.• It is used in smart phones, tablets, iPad, watch, TV, MP3, DVR, etc.,
History of Android• Android was developed by Open Handset Alliance led by Google.• The Open Handset Alliance includes nearly 86 hardware, software and telecommunications companies.• The initial developer of android was Android Inc., and later Google purchased it.• The Android code was released open source under Apache License.• It was founded in Palo Alto, California, US, in October 2003 by Andy Rubin, Rich Miner, Nick Sears and Chris White.• The Android Open Source Project (AOSP) is also led by Google and is tasked for the maintenance and development of android.
Android - HistoryOS Version Name API Level DateBeta, 1.0 , 1.1 - -, 1 , 2 Nov 2007, Sep 2008, Feb 2009 2011-20121.5 Cupcake 3 April 20091.6 Donut 4 September 20092.1 Eclair 7 October 20092.2 Froyo 8 May 20102.3 Gingerbread 10 December 20103.0 Honeycomb 11 February 20113.1.x, 3.2 Honeycomb 12,134.0, 4.0.1, 4.0.2 Icecream Sandwich 14 October 20114.0.3 Icecream Sandwich 15 December 2011 8
Version History1.5 Cupcake 30 April 2009 Based on linux kernel 2.6.271.6 DonutSDK Based on linux kernel 2.6.29 15 September 20092.0 EclairSDK Based on linux kernel 2.6.29 October 2009 2.2 Froyo Based on linux kernel 2.6.32 20 May 2010 2.3Gingerbread Released on 6 December 2010 3.0Honeycomb Released on 10 May 20114.0 IceCream Released on 18 October 2011 Sandwich
Why Android?• Android has garnered more than 40% of the current market share in Smartphones• Android Application Development has become biggest and highest growing revenue generating market• Android by its nature is available across various devices (Phone, Tablet, TV, Navigation Devices, etc)• Support from major Handset manufacturers. Open Handset Alliance > 50 vendors• Open Source (http://git.android.com)• Good set of Developer Tools
Applications• All applications are written using the java programming language.• Core applications include – • Email client • SMS program • calendar • Maps • Browser • Contacts etc.
Application Framework• Underlying all applications is a set of services and systems, including: • Views • Content providers • Resource manager • Notification manager • Activity manager
APPLICATION FRAMEWORK• Activity Manager -Controls the lifecycle of your Activities• Views -Used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser• 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 back stack• Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data
LIBRARIES• System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux- based devices• A media library for playback of audio and video media• A surface manager to provide display management• Graphics libraries that include SGL and Open GL for 2D and 3D graphics
LIBRARIES• SQLite for native database support• SSL and Webkit for integrated Web browser and Internet Security• FreeType - bitmap and vector font rendering
Android Runtime• Every android application runs in its own process, with its own instance of the Dalvik Runtime machine.• Dalvik has been written so that a device can run multiple VMs efficiently.
DALVIK VIRTUAL MACHINE• The Dalvik VM is a register-based architecture.• A tool called dx is used to convert some (but not all) Java .class files into the .dex format• Multiple classes are included in a single .dex file• Duplicate strings and other constants used in multiple class files are included only once in the .dex output to conserve space• Java byte code is also converted into an alternative instruction set used by the Dalvik VM
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.
What makes android different??• Android operating system is open source. Therefore, it is legal and possible for you to modify the entire Operating System to work the way you want it to.• However, to call it different from others because of “openness” can be debatable.
Android Market• http://play.google.com• Single marketplace for eBooks, Music, Videos and Android Applications• Website + Android application• Developers pay a one-time registration fee of $25 and can list their free & paid applications• Consumers can download/purchase applications directly• Market features – Buy/Sell/Rate/Comment/Publish/Search• 400,000+ applications
Android Developer Tools• Java SDK• Eclipse• Android SDK• Android Emulator• Command Line Tools• Documentation + Samples• Platform Libraries• Android Development Tools (ADT) for Eclipse (Recommended to begin with)
Tools Needed• Java SDK• Download from http://www.oracle.com/technetwork/java/javase/downloads/ index.html• Eclipse• Download from http://www.eclipse.org/downloads• Android SDK• Download from http://developer.android.com/sdk/index.html• Android Development Tools (ADT) for Eclipse (Recommended to begin with)• Download from http://developer.android.com/sdk/eclipse- adt.html
Android Virtual Device• SDK includes an Emulator - a virtual mobile device• Emulator helps you test your applications without a physical device• It mirrors the System Image and functionality as closely as possible• You need to create an Android Virtual Device for the Android OS that you wish to target. E.g. 2.2 , 2.3, etc.
Android Emulator• Mimics a Normal Android Device• Use it to get familiar with the functions
Introduction to Android 4.0 ICS• As officially announced during the 2011 Google I/O, the upcoming version of Android is called Ice Cream Sandwich, a combination of Gingerbread and Honeycomb into a "cohesive whole". Google is targeting an official release in Q4 2011. Android engineer Mike Claren called it the company’s “most ambitious release to date.” Android 3.2 will be still considered part of Honeycomb and not part of Ice Cream Sandwich. It will be the last major android release prior to Ice Cream Sandwich.
• Gingerbread and Honeycomb Unite The Google Android market is currently comprised of two major players, Gingerbread and Honeycomb, and Android 4.0 is set to merge the best of those two worlds by bringing the best features of Honeycomb and Gingerbread to Ice Cream Sandwich. If youve fallen in love with Honeycomb and Gingerbread features like sliding widgets, the new task launcher, and the awesome holographic interface, expect to see them and more in the new Android 4.0 operating system.
Better MultitaskingIceCream Sandwich will bring multitasking to the Android platform like none before it and will not only enhance the apps already featured in the marketplace, but will also make new things possible like the new Virtual Camera Operator thatll automatically detect which person is talking in a multi-video chat and automatically switch to the individual thats talking.
One OS to Rule Them AllOne of the current issues with the Android platform is that its not unified enough; Gingerbread is made to work on smartphones and Honeycomb works only with tablets. When Ice Cream Sandwich drops in Q4 2011, itll do so to unify smartphones and tablets once and for all -- and will work on both device types. With one Android OS system to "rule them all", Ice Cream Sandwich will make the Android platform better for users and developers alike.
Better Development SupportAs of right now there are over 200,000 Androidapps available in the Android Market and over100 million Android devices being used all overthe world and with that much support for theAndroid platform, developers can use any helpthat they can get. In addition to uniting tabletsand smartphones -- making developers lives a loteasier - the new Android 4.0 will also work tomake Android developers lives better byproviding new tools thatll help them design appsthat will work better with multiple device typesamongst other things.
The latest version is 4.0.3Icecream sandwich.• It combines the best of the android 2x phone interface with android 3x phone interface.• Easy multitasking, customizable home screens, customizable widgets.
Introducing Android 4.0• Android 4.0 delivers a refined, unified UI for phones and tablets and introduces innovative features for users and developers. This document provides a glimpse of the many new features and technologies that make Android 4.0 simple, beautiful, and beyond smart.
Android 4.0 for Users• Refined, evolved UI• Multitasking
Android 4.0 for Users• Resizable widgets• New lock screen actions
Android 4.0 for Users• Home screen folders and favorites tray
Android 4.0 for Users• Improved text input and spell-checking• Powerful voice input engine
Android 4.0 for Users• Control over network data
Android 4.0 for Users-Innovation• Android Beam for NFC-based sharing• Wi-Fi Direct and Bluetooth HDP
Android 4.0 for Developers• Unified UI framework for phones, tablets, and more• New input types and text services • Stylus input, button support, hover events • Text services API for integrating spelling checkers• New UI components and capabilities • Layout enhancements • OpenGL ES texture views • Hardware-accelerated 2D drawing• New types of connectivity • Wi-Fi Direct • Bluetooth Health Device Profile (HDP)
Android 4.0 for Developers• New media capabilities • Low-level streaming multimedia • New camera capabilities • Media effects for transforming images and video • Audio remote controls • New media codecs and containers• Communication and sharing • Social API • Calendar API • Visual voicemail API • Android Beam • Modular sharing widget