SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
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
    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
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
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
Some Statistics


Year              2008     2009       2010
Devices           1 (G1)    18    40 (confirmed)
Manufacturers    1 (HTC)    8          14
Why develop for mobile?
 
    New multifunction devices
    Number of phones > Number computers
    Flatrates - Affordable data plans
    Phone user installs more apps
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 
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
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
Android Architecture
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
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
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
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
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... 
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
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
Developing Android Apps
 

                 
                 
      "Android Unveiled (II)" 
    coming soon to theatres...
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

Weitere ähnliche Inhalte

Was ist angesagt?

Android Architecture
Android ArchitectureAndroid Architecture
Android Architecturedeepakshare
 
Windows Phone 7 Architecture Overview
Windows Phone 7 Architecture OverviewWindows Phone 7 Architecture Overview
Windows Phone 7 Architecture OverviewBhavya Siddappa
 
Android For Java Developers
Android For Java DevelopersAndroid For Java Developers
Android For Java DevelopersMike Wolfson
 
android architecture
android architectureandroid architecture
android architectureAashita Gupta
 
Ch1 hello, android
Ch1 hello, androidCh1 hello, android
Ch1 hello, androidJehad2012
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & ComponentsAkash Bisariya
 
BruceRamsland_Resume_12282015
BruceRamsland_Resume_12282015BruceRamsland_Resume_12282015
BruceRamsland_Resume_12282015Bruce Ramsland
 
Android for Java Developers
Android for Java DevelopersAndroid for Java Developers
Android for Java DevelopersMarko Gargenta
 
Windows 8 & Phone 8 - an Architectural Battle Plan
Windows 8 & Phone 8 - an Architectural Battle PlanWindows 8 & Phone 8 - an Architectural Battle Plan
Windows 8 & Phone 8 - an Architectural Battle PlanCaleb Jenkins
 
Android 1-intro n architecture
Android 1-intro n architectureAndroid 1-intro n architecture
Android 1-intro n architectureDilip Singh
 
Android Workshop Session 1
Android Workshop Session 1Android Workshop Session 1
Android Workshop Session 1NAILBITER
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorialmaster760
 

Was ist angesagt? (20)

Android Architecture
Android ArchitectureAndroid Architecture
Android Architecture
 
Android By Vipin
Android By VipinAndroid By Vipin
Android By Vipin
 
Android Architecture
Android ArchitectureAndroid Architecture
Android Architecture
 
Windows Phone 7 Architecture Overview
Windows Phone 7 Architecture OverviewWindows Phone 7 Architecture Overview
Windows Phone 7 Architecture Overview
 
Android For Java Developers
Android For Java DevelopersAndroid For Java Developers
Android For Java Developers
 
android architecture
android architectureandroid architecture
android architecture
 
Ch1 hello, android
Ch1 hello, androidCh1 hello, android
Ch1 hello, android
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & Components
 
BruceRamsland_Resume_12282015
BruceRamsland_Resume_12282015BruceRamsland_Resume_12282015
BruceRamsland_Resume_12282015
 
Android architechture
Android architechtureAndroid architechture
Android architechture
 
Android for Java Developers
Android for Java DevelopersAndroid for Java Developers
Android for Java Developers
 
Windows 8 & Phone 8 - an Architectural Battle Plan
Windows 8 & Phone 8 - an Architectural Battle PlanWindows 8 & Phone 8 - an Architectural Battle Plan
Windows 8 & Phone 8 - an Architectural Battle Plan
 
Android 1-intro n architecture
Android 1-intro n architectureAndroid 1-intro n architecture
Android 1-intro n architecture
 
Android Workshop Session 1
Android Workshop Session 1Android Workshop Session 1
Android Workshop Session 1
 
Android Deep Dive
Android Deep DiveAndroid Deep Dive
Android Deep Dive
 
06 gui 08
06 gui 0806 gui 08
06 gui 08
 
Wifi sharing
Wifi sharingWifi sharing
Wifi sharing
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
01 03 - introduction to android
01  03 - introduction to android01  03 - introduction to android
01 03 - introduction to android
 
My androidpresentation
My androidpresentationMy androidpresentation
My androidpresentation
 

Andere mochten auch

Partycypator Toruński. Społeczna koncepcja zagospodarowania lasku na skarpie...
 Partycypator Toruński. Społeczna koncepcja zagospodarowania lasku na skarpie... Partycypator Toruński. Społeczna koncepcja zagospodarowania lasku na skarpie...
Partycypator Toruński. Społeczna koncepcja zagospodarowania lasku na skarpie...pzr
 
Sweat prize 1
Sweat prize 1Sweat prize 1
Sweat prize 1Xcenda
 
Rex mobile 2
Rex mobile 2Rex mobile 2
Rex mobile 2Xcenda
 
Rewitalizacja obszarów śródmiejskich w bydgoszczy
Rewitalizacja obszarów śródmiejskich w bydgoszczyRewitalizacja obszarów śródmiejskich w bydgoszczy
Rewitalizacja obszarów śródmiejskich w bydgoszczypzr
 
Rewitalizacja w RPO WKP 2014 2020
Rewitalizacja w RPO WKP 2014 2020Rewitalizacja w RPO WKP 2014 2020
Rewitalizacja w RPO WKP 2014 2020pzr
 
Game Diffusion on Social Networks
Game Diffusion on Social NetworksGame Diffusion on Social Networks
Game Diffusion on Social Networksdnooney
 

Andere mochten auch (7)

Partycypator Toruński. Społeczna koncepcja zagospodarowania lasku na skarpie...
 Partycypator Toruński. Społeczna koncepcja zagospodarowania lasku na skarpie... Partycypator Toruński. Społeczna koncepcja zagospodarowania lasku na skarpie...
Partycypator Toruński. Społeczna koncepcja zagospodarowania lasku na skarpie...
 
Rukosuev
RukosuevRukosuev
Rukosuev
 
Sweat prize 1
Sweat prize 1Sweat prize 1
Sweat prize 1
 
Rex mobile 2
Rex mobile 2Rex mobile 2
Rex mobile 2
 
Rewitalizacja obszarów śródmiejskich w bydgoszczy
Rewitalizacja obszarów śródmiejskich w bydgoszczyRewitalizacja obszarów śródmiejskich w bydgoszczy
Rewitalizacja obszarów śródmiejskich w bydgoszczy
 
Rewitalizacja w RPO WKP 2014 2020
Rewitalizacja w RPO WKP 2014 2020Rewitalizacja w RPO WKP 2014 2020
Rewitalizacja w RPO WKP 2014 2020
 
Game Diffusion on Social Networks
Game Diffusion on Social NetworksGame Diffusion on Social Networks
Game Diffusion on Social Networks
 

Ähnlich wie Android unveiled (I) (20)

Android OS
Android OSAndroid OS
Android OS
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 
Android Anatomy
Android  AnatomyAndroid  Anatomy
Android Anatomy
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Android understanding
Android understandingAndroid understanding
Android understanding
 
An introduction to Android
An introduction to AndroidAn introduction to Android
An introduction to Android
 
2011 android
2011 android2011 android
2011 android
 
Android
Android Android
Android
 
1 introduction of android
1 introduction of android1 introduction of android
1 introduction of android
 
Android seminar-report-body.doc
Android seminar-report-body.docAndroid seminar-report-body.doc
Android seminar-report-body.doc
 
Android : Revolutionizing Mobile Devices
Android : Revolutionizing Mobile DevicesAndroid : Revolutionizing Mobile Devices
Android : Revolutionizing Mobile Devices
 
Android complete basic Guide
Android complete basic GuideAndroid complete basic Guide
Android complete basic Guide
 
Android
Android Android
Android
 
Android My Seminar
Android My SeminarAndroid My Seminar
Android My Seminar
 
Android and android phones
Android and android phonesAndroid and android phones
Android and android phones
 
Android..overwiew
Android..overwiewAndroid..overwiew
Android..overwiew
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
Android Handheld Systems
Android Handheld SystemsAndroid Handheld Systems
Android Handheld Systems
 

Kürzlich hochgeladen

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Kürzlich hochgeladen (20)

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

Android unveiled (I)

  • 1. Android Unveiled (I) Daniel Romero dani.romero@gmail.com
  • 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. 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. 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. Some Statistics Year 2008 2009 2010 Devices 1 (G1) 18 40 (confirmed) Manufacturers 1 (HTC) 8 14
  • 6. Why develop for mobile?   New multifunction devices Number of phones > Number computers Flatrates - Affordable data plans Phone user installs more apps
  • 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. 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. 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
  • 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. 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. 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. 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. 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. 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. 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. Developing Android Apps       "Android Unveiled (II)"  coming soon to theatres...
  • 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