Android Unveiled
                (I)

Daniel Romero
dani.romero@gmail.com
Background
Past: 
    Mobile phones were just that, phones
    Increasingly including new hardware
Not-so-distant past
   ...
What is Android?
Open platform for mobile development
A combination of three components
    Free & open-source OS for mobi...
Some Features
 
    No fees (licensing, distribution, development)
    No approval process
    Full hardware access
    Ba...
Some Statistics


Year              2008     2009       2010
Devices           1 (G1)    18    40 (confirmed)
Manufacturer...
Why develop for mobile?
 
    New multifunction devices
    Number of phones > Number computers
    Flatrates - Affordable...
Why Android?
Based on the reality of modern devices
Simple & powerful SDK
No certification - No approval process
Unique fe...
The Development Framework (I)
 
    Java programming language
    Dalvik VM
    Architecture
        Each app runs a separ...
The Development Framework (II)
 

    Android Software Stack
       Linux 2.6 Kernel
       C/C++ Libraries: libc, SSL, me...
Android Architecture
Dalvik Virtual Machine (I)
 
    Designed by to run efficiently multiple instances on a single device
    Not strictly a J...
Dalvik Virtual Machine (II)
 
    Compilation
       Dx tool converts .java classes into .dex format
       One .dex files...
Application Architecture
 
    Main services:
        Activity Manager: controls the life cycle of the Activities
        ...
Main Releases (I)
Android 1.5 -April 2009
    Performance:
         Camera start-up and image capture
         Adquisition...
Main Releases (II)
Android 1.6 - September 2009
     New features
         Quick search box
         Camera, camcorder and...
Main Releases (III)
Android 2.0 - January 2010
     New features
         Multiple contacts and accounts
         Combined...
Main Releases (IV)
Android 2.2 - May 2010
    New features
         Multiple home screen configurations
         Portable ...
Developing Android Apps
 

                 
                 
      "Android Unveiled (II)" 
    coming soon to theatres....
Sources
 
    Professional Android 2 Application Development - Reto Meier - 2010
    http://developer.android.com/sdk/
   ...
Upcoming SlideShare
Loading in …5
×

Android unveiled (I)

2,357 views
2,308 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,357
On SlideShare
0
From Embeds
0
Number of Embeds
131
Actions
Shares
0
Downloads
78
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Android unveiled (I)

  1. 1. Android Unveiled (I) Daniel Romero dani.romero@gmail.com
  2. 2. Background Past:  Mobile phones were just that, phones Increasingly including new hardware Not-so-distant past Programmers had to know the specific hardware (C,C++) Some abstractions: Symbian, Java... Present & Future Operating systems designed for mobile hardware Propietary: Windows, Apple, Palm Open Source: Android, Maemo
  3. 3. What is Android? Open platform for mobile development A combination of three components Free & open-source OS for mobile devices Open-source development platform for mobile applications Devices that run the OS & apps
  4. 4. Some Features   No fees (licensing, distribution, development) No approval process Full hardware access Background apps and processes SQLite or Data Storage Native Google Maps, Geocoding and Location-Based services Shared data and interapplication communication Widgets Support for 2D and 3D graphics Optimized memory & process management Support for large variety of hardware
  5. 5. Some Statistics Year 2008 2009 2010 Devices 1 (G1) 18 40 (confirmed) Manufacturers 1 (HTC) 8 14
  6. 6. Why develop for mobile?   New multifunction devices Number of phones > Number computers Flatrates - Affordable data plans Phone user installs more apps
  7. 7. Why Android? Based on the reality of modern devices Simple & powerful SDK No certification - No approval process Unique features: Google Maps integration Background services & applications -> Multitasking Shared data & interprocess communication Equality between apps Total access to phone resources 
  8. 8. The Development Framework (I)   Java programming language Dalvik VM Architecture Each app runs a separated VM Android runtime manages resources Both sit on top of a Linux kernel -> Low-level hardware interaction API provides access to: services, features and hardware SDK Android APIs Development tools Virtual Device Manager and Emulator Documentation + Sample Code + Online Support
  9. 9. The Development Framework (II)   Android Software Stack Linux 2.6 Kernel C/C++ Libraries: libc, SSL, media, graphics, SQLite, Webkit... Android Runtime Core Libraries Dalvik virtual machine Application Framework Application Layer
  10. 10. Android Architecture
  11. 11. Dalvik Virtual Machine (I)   Designed by to run efficiently multiple instances on a single device Not strictly a JVM: runs its own bytecode Optimized for low memory requirements  Features: Dalvik bytecode Registered-based architecture  From Android 2.2 -> Just-in-time compiler Optimizations VM was slimmed down to use less space Constant pool uses only 32-bit indexes to simplify the interpreter Own bytecode Apache Harmony open source class library implementation
  12. 12. Dalvik Virtual Machine (II)   Compilation Dx tool converts .java classes into .dex format One .dex files contains several .java classes .dex file is optimized to use less space .dex file < .jar file for the same group of classes Java bytecode converted into specific instruction set used by Dalvik VM  Executables modified during installation process Byte order may be changed Function libraries and data structures may be inlined
  13. 13. Application Architecture   Main services: Activity Manager: controls the life cycle of the Activities Views: Used to construct the user interfaces Notification Manager: mechanism to signal the users Content Providers: Share data between apps Resource Manager: Support for non-code resources
  14. 14. Main Releases (I) Android 1.5 -April 2009 Performance: Camera start-up and image capture Adquisition of GPS location Page scrolling and Gmail list scrolling On-screen soft keyboard  Widgets & Live folders Video recording & playback Improved bluetooth, browser and contacts app System New Linux Kernel (2.6.27) SD card filesystem auto-checking and repair SIM Application Toolkit 1.0
  15. 15. Main Releases (II) Android 1.6 - September 2009  New features Quick search box Camera, camcorder and gallery VPN, 802.1x support Battery usage indicator Accessibility framework Android Market updates New technologies Search framework Text-to-speech engine Gestures Expanded support for screen densities and resolutions More: CDMA, OpenCore, Linux Kernel upgrade... 
  16. 16. Main Releases (III) Android 2.0 - January 2010  New features Multiple contacts and accounts Combined email and Exchange support Improved messaging Camera: flash, digital zoom, scene mode... Improved virtual keyboard Improved browser Improved calendar New technologies Bluetooth 2.1 New framework API 2.0
  17. 17. Main Releases (IV) Android 2.2 - May 2010 New features Multiple home screen configurations Portable WIFI hotspot Multiple keyboard languages (at the same time) Performance V8 engine: faster Javascript Dalvik Performance Boost: 2x-5x speedup over 2.1 with Dalvik JIT Kernel Memory Management Boost: improved memory reclaim by 20x New technologies New media framework: Stagefright Kernel upgrade 2.6.32 New Developer APIs
  18. 18. Developing Android Apps       "Android Unveiled (II)"  coming soon to theatres...
  19. 19. Sources   Professional Android 2 Application Development - Reto Meier - 2010 http://developer.android.com/sdk/ http://www.android.com/ http://www.androphones.com http://www.dalvikvm.com/ http://sites.google.com/site/io/dalvik-vm-internals  http://en.wikipedia.org/wiki/Dalvik_%28software%29

×