Getting Started With Android
History of Android
 In 2007, a group of manufacturers, wireless
  carriers & software developers formed the “Open
  Handset Alliance”
 Some of these include
   Broadcom Corporation
   HTC
   Intel
   LG
   Motorola
   Samsung
   T-Mobile
   Google
History of Android
 The goal was to develop the next generation of
    wireless platform
   The new platform would be nonproprietary & based
    on open standards
   This would lead to lower development costs &
    increases profits
   RIM Blackberry & Apple iOS were proprietary
    platforms, so the mobile development community
    eagerly waited for this new potential platform
   In 2008, the OHA announces the Android platform
    and launched a beta program for developers.
History of Android
 Several pre-release versions of the Android SDK
  were released
 The first Android handset (T-Mobile G1) began
  shipping in late 2008
History of Android
 Almost all major manufacturers have Android
  based handsets
 The following companies do not have Android
  Phones
   Apple
   RIM
   Nokia
Easy Development
 Android breaks the proprietary concept of mobile
    development
   Unlike with other mobile platforms, there are
    virtually no costs to developing Android
    Applications
   The Android SDK and tools are freely available
    on the Android developer website
   http://developer.android.com
   The freely available Eclipse is the most popular
    IDE for Android Development
   So basically the setup itself is very cheap
Easy Development
 The best part is the development language
 Android applications are written in Java
  Language
 Java being the popular language among the
  developer community
 The learning curve for developers is quite less
  since they already know Java
 The main thing that they have to understand is
  the SDK and Tools for development
Some pre-requisites for Android
 Java Language
 XML
 Eclipse IDE
 SDK
What is Android?
 Android is a software stack for mobile devices
 that includes
   an operating system
   Middleware
   key applications
 The Android SDK provides the tools and APIs
 necessary to begin developing applications.
Features of Android
 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
Features of Android
 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
Applications
 Android provides 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
 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 & much more
 Developers have full access to the same
 framework APIs used by the core applications
Application Framework
 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
 This same mechanism allows components to be
  replaced by the user
Application Framework
 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
Libraries
 Android includes a set of 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:
   Media Libraries - 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 PNG
   LibWebCore - a modern web browser engine which
    powers both the Android browser and an embeddable
    web view
   3D libraries - an implementation based on OpenGL ES
    1.0 APIs;
   FreeType - bitmap and vector font rendering
Android Runtime
 Every Android application runs in its own process,
  with its own instance of the Dalvik virtual machine
  (DVM)
 Dalvik has been written so that a device can run
  multiple VMs efficiently.
 The Dalvik VM executes files which are optimized
  for minimal memory footprint.
 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
Android Development Tools
Plugin
 ADT Plugin is available for Eclipse
 It provides the following:-
   Android project wizard
   Android specific resource editors
   Android SDK & AVD (Android Virtual Device) Manager
   DDMS (Dalvik Debug Monitor Service) perspective for
    debugging/monitoring apps
   Integration with Android LogCat Logging
   Automated builds & application deployment to Android
    emulators and handsets
   Application packaging and code signing tools for
    release deployment
Eclipse ?
 Is Eclipse Necessary for development?
   NO
 Developers can develop Android apps without
  using the Eclipse IDE
 However by doing so, they are missing the ease
  of development that Eclipse provides
Remember…
 When developing any mobile application, always
 remember:
   Screen Size is small
   Processing power is less
   Resources should be managed properly

Getting started with android

  • 1.
  • 2.
    History of Android In 2007, a group of manufacturers, wireless carriers & software developers formed the “Open Handset Alliance”  Some of these include  Broadcom Corporation  HTC  Intel  LG  Motorola  Samsung  T-Mobile  Google
  • 3.
    History of Android The goal was to develop the next generation of wireless platform  The new platform would be nonproprietary & based on open standards  This would lead to lower development costs & increases profits  RIM Blackberry & Apple iOS were proprietary platforms, so the mobile development community eagerly waited for this new potential platform  In 2008, the OHA announces the Android platform and launched a beta program for developers.
  • 4.
    History of Android Several pre-release versions of the Android SDK were released  The first Android handset (T-Mobile G1) began shipping in late 2008
  • 5.
    History of Android Almost all major manufacturers have Android based handsets  The following companies do not have Android Phones  Apple  RIM  Nokia
  • 6.
    Easy Development  Androidbreaks the proprietary concept of mobile development  Unlike with other mobile platforms, there are virtually no costs to developing Android Applications  The Android SDK and tools are freely available on the Android developer website  http://developer.android.com  The freely available Eclipse is the most popular IDE for Android Development  So basically the setup itself is very cheap
  • 7.
    Easy Development  Thebest part is the development language  Android applications are written in Java Language  Java being the popular language among the developer community  The learning curve for developers is quite less since they already know Java  The main thing that they have to understand is the SDK and Tools for development
  • 8.
    Some pre-requisites forAndroid  Java Language  XML  Eclipse IDE  SDK
  • 9.
    What is Android? Android is a software stack for mobile devices that includes  an operating system  Middleware  key applications  The Android SDK provides the tools and APIs necessary to begin developing applications.
  • 10.
    Features of Android 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
  • 11.
    Features of Android 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
  • 12.
  • 13.
    Applications  Android providesa 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.
  • 14.
    Application Framework  Androidoffers 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 & much more  Developers have full access to the same framework APIs used by the core applications
  • 15.
    Application Framework  Theapplication 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  This same mechanism allows components to be replaced by the user
  • 16.
    Application Framework  Underlyingall 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
  • 17.
    Libraries  Android includesa set of 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:  Media Libraries - 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 PNG  LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view  3D libraries - an implementation based on OpenGL ES 1.0 APIs;  FreeType - bitmap and vector font rendering
  • 18.
    Android Runtime  EveryAndroid application runs in its own process, with its own instance of the Dalvik virtual machine (DVM)  Dalvik has been written so that a device can run multiple VMs efficiently.  The Dalvik VM executes files which are optimized for minimal memory footprint.  The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
  • 19.
    Linux Kernel  Androidrelies 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
  • 20.
    Android Development Tools Plugin ADT Plugin is available for Eclipse  It provides the following:-  Android project wizard  Android specific resource editors  Android SDK & AVD (Android Virtual Device) Manager  DDMS (Dalvik Debug Monitor Service) perspective for debugging/monitoring apps  Integration with Android LogCat Logging  Automated builds & application deployment to Android emulators and handsets  Application packaging and code signing tools for release deployment
  • 21.
    Eclipse ?  IsEclipse Necessary for development?  NO  Developers can develop Android apps without using the Eclipse IDE  However by doing so, they are missing the ease of development that Eclipse provides
  • 22.
    Remember…  When developingany mobile application, always remember:  Screen Size is small  Processing power is less  Resources should be managed properly