Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

Google Android OS

VIEWS: 3 PAGES: 24

									Android OS

 Kesav Kaliyaperumal
kesav.kaliyaperumal@gmail.com
           Yummy Desserts!
•   Cupcake
•   Donuts
•   Éclair
•   Frozen Yoghurt (Froyo)
•   Gingerbread
•   Honeycomb

    What do these have in common?
            Smartphone OS
•   Symbian
•   Windows Mobile
•   RIM Blackberry OS
•   Apple iOS
•   Google Android
•   Palm WebOS
•   Windows Phone 7
             Android OS
• Fastest growing mobile OS
• Over 300,000 Android activations a day
• Android overtook iOS as the dominant OS
  in US during 2H 2010
• First phone launched HTC G1 in 2008
• Currently an OS of choice for Motorola,
  HTC, Samsung, Sony Ericsson, among
  others
• Software updates every few months
              Android – what is it?
• software stack for mobile devices
    – incl. OS, middleware and key applications
•   Open source – source code is open and contributions are welcome
•   application framework enabling reuse/replacement of apps
•   Dalvik virtual machine optimized for mobile
•   integrated browser based on webkit
•   Optimized graphics – 2D graphics library, 3D based on OPEN GL
    ES
•   SQLite for data storage
•   Media support (MPEG4, H.264, MP3, AAC, JPG, PNG,…)
•   Support for radio interfaces, Bluetooth, WiFi, Camera, GPS,
    accelerometer
•   Software Development Kit (SDK)
•   Preinstalled applications from Google (GMS)
    – Gmail, Maps, Search, Voice Search, Youtube
            Software Stack
• Linux kernel
• Libraries
• Android run time
  – core libraries
  – Dalvik virtual machine
• application layer
• application protocol
Android Architecture
                      Android
• Google Maps and other GMS applications
• Background services and applications
  – allows multi tasking of applications
• Shared Data and interprocess communication
• All applications are equal
  – does not discriminate between native and non-native
    applications
  – allows any applications to be enhanced/reused
• p2p interdevice application messaging
                 Dalvik VM
• All applications written in Java and converted to
  the dalvik executable .dex
• Every android app runs its own process, with its
  own instance of the dalvik virtual machine
• Not a traditional JVM, but a custom VM
  designed to run multiple instances efficiently on
  a single device
• VM uses linux kernel to handle low-level
  functionality incl. security, threading, process
  and memory management
       Application Framework
• Rich, extensible set of Views
  – apps can inclused lists, grids, text boxes, buttons,
    web browser
• Content Providers
  – allows data access from other applications or share
    own data
• Resource Manager
  – access to localized strings, graphics, layout files
• Notification Manager
  – enables custom alerts to be displayed in status bar
• Activity Manager
  – Manages lifecycle of applications and provides
    navigation backstack
         Application Fundamentals
•   Activities
     – application presentation layer
•   Services
     – invisible components, update data sources, visible activities, trigger notifications
     – perform regular processing even when app is not active or invisible
•   Content Providers
     – shareable data store
•   Intents
     – message passing framework
     – broadcase messages system wide, for an action to be performed
•   Broadcast receivers
     – consume intent broadcasts
     – lets app listen for intents matching a specific criteria like location
•   Notifications
     – Toast notification
     – Status Bar Notification
     – Dialog notification
                Applications
• All apps (native and 3rd party) are written using
  the same APIs and run on the same run time
  executable
• All apps have APIs for hardware access,
  location-based services, support for background
  services, map-based activities, 2D and 3D
  graphics.
• App Widgets are miniature app views that can
  be embedded in other apps like Home Screen
     App Priority and Processes
Android apps do not have control over their own
  life cycles
Aggressively manages resources to ensure device
  responsiveness and kills process/apps when
  needed

•   Active Process – critical priority
•   Visible Process – high priority
•   Started Service Process
•   Background Process – low priority
•   Empty process
                  Client apps
• Developed using the Android SDK and installed
  on user devices
• Compiled Java code, with data and resource –
  bundled by Android Asset Packaging tool
  (AAPT) into Android package or .apk
• All applications have Android Manifest file in its
  root directory
   – provides essential information about app
• Could be installed directly on phone, but
  necessary to be distributed thru Market
              Web Apps
• An alternative to standalone apps
• Developed using web standards and
  accessed through browser – nothing to
  install on devices
• Mixing client and web apps is also
  possible – Client apps can embed web
  pages using “Webview” in Android app
                             SDK
• Android APIs, Full Documentation and Sample code
• Development tools
   – Dalvik Debug Monitor Service (DDMS)
   – Android Debug Bridge (ADB)
   – Android Emulator
• Online support and blog
• Native Development Kit also available
   – allows developers to implement parts of apps in native-code
     languages like C/C++
   – Plug in available to use Eclipse integrated development
     environment
• Developer forums and developer phones from Google,
  MOTO Dev studio from Motorola
                  Android Market
• Google Market - Part of GMS apps
• 3rd party apps submitted to Google, approved and distributed
  through Market
• Both Free and Paid apps
• Apps now limited to 50 MB; updates possible through Market
• Monetization through ads available
• Available in many countries, not all countries have support for paid
  apps
• Other Market place applications available – Amazon has announced
  its own Android Market place
• App searches filtered based on Manifest file (eg. if a device does not
  have trackball, apps using trackball will be filtered out)
• Every app publishes a list of components the app will access and
  permissions need to be granted before installation
• Apps installed on device and SD card (SD Card from Froyo)
                  Search
• Core feature in android
• User should be able to search any data on
  device or internet
• Usually one of the android buttons
• Search suggestions based on recent queries
• Provide custom search suggestions that match
  actual results in application data
• system side Quick Search Box
• Voice Search available and enhanced in recent
  releases
          Locations & Maps
• Compelling and most popular apps for
  mobile devices
• Google Maps provides free navigation
• applications allowed access to location
  services supported by device
• Google provides Maps external library
  – allows built-in downloading, rendering and
    caching of Maps tiles, and other display
    options and controls
       Device Administration
• Froyo introduces support for enterprise
  applications with Device Administraion API
• allows to create security-aware
  applications to control employee devices
• Apps might include
  – Email clients
  – remote wipe
  – device management services and apps
       Android Software Updates
• Android 1.0 – G1
• 1.5 – Cupcake
• 1.6 – Donuts (CDMA support)
• 2.0 – Éclair (Droid introduced with Éclair)
• 2.2 – Froyo
• 2.3 Gingerbread (SDK released 2 weeks ago and source
  will follow soon)
• API Levels used by apps to identify software version on
  the device
• Android apps are generally forward compatible with
  newer version, but not necessarily backwards
  compatible
                  Compatibility
• Why?
   – Allow customizable devices
   – Create Common eco system
• Android compatibility is free and easy
   – Obtain Android source code
   – Comply with Android Compatibility Definition (ACD) doc
      • List requirements that need to be met for devices to be compatible
        with a particular version on Android
   – Pass the Compatibility Test Suite (CTS)
      • Automated test harness running on desktop, manages test
        exectuion
      • Test cases written, packaged as .apk to run on actual device or
        emulator
• Porting guide available for bringing up Android on
  custom HW
         Other possibilities
• Google TV - a new platform based on
  Android
• Tablets – Samsung Galaxy tab introduced
  in Oct 2010
• eBook reader – Latest Barnes and Noble
  Nook is an Android tablet
              Resources
• http://www.android.com
• http://http://android-
  developers.blogspot.com
• http://developer.motorola.com/

								
To top