SlideShare a Scribd company logo
1 of 36
Download to read offline
Android Overview




            Tomi.Mickelsson@idean.com
            Senior Technology Specialist
              http://mobiledevcamp.fi/
          http://www.slideshare.net/atomi/
                     Feb 21, 2009

1 / 36
Agenda
•    Why Android?
•    What is it?
•    SDK and tools
•    UI and widgets
•    Resources, animation
•    Debugging, packaging
•    Market
•    Demo: Spin the Bottle app




2 / 36
What is Android?
• modern open-source mobile operating system
• full software stack
         – Linux kernel 2.6
         – Java middleware, framework
         – core applications
• Google & OHA




3 / 36
Why Android?
• open-source
         – apache license
         – cost
         – sets developers free
• solid foundation: Linux kernel
• good framework based on Java
• empower users
         – replace core apps
         – personalize
• Google stuff
• huge opportunity for vendors, developers, users
         – OS for free, innovate at app level
• not just for phones

4 / 36
Building blocks




5 / 36
Java Framework
• Java: reasonable choice
         – mainstream language
         – millions of developers
• J2SE, not J2ME
• Dalvik VM: fast register based VM
• modular app architecture
         – building screens and services, not monolithic black-boxes
         – loosely coupled, addressable parts
•   every app runs its own process
•   multitasking; background processes
•   JNI discouraged at this point
•   other frameworks possible


6 / 36
Quickstart
•    install JDK 1.5
•    install Android SDK
•    install eclipse
•    read SDK docs
•    learn about samples, API demos
•    get help from newsgroup
•    read sources for advanced stuff
•    test on G1 or dev phone
•    publish app in Market




7 / 36
SDK
• all platforms supported
         – linux, windows, mac
•   no installation, just unzip
•   81.4MB - ver1.1
•   clean and compact
•   good documentation
•   1.1 latest version




8 / 36
Eclipse Editor
• most popular
  Java editor
         –   tons of features
         –   refactoring
         –   debugging
         –   integrated help
• ADT: Android
  Development
  Tools plugin




9 / 36
Emulator




10 / 36
Emulator
• based on QEMU emulator for ARM processor
          – boots up real linux kernel
•    camera previews
•    easy networking
•    audio recording
•    switch orientation: CTRL+F12
•    install apps with browser or adb
•    market app not available
•    skins




11 / 36
Tools in SDK
• all tools available as cmdline
      – eclipse not required
• adb - Android Debug Bridge
      –   adb push - transfer files from/to emulator
      –   adb install - install app
      –   adb logcat - view debug log
      –   adb shell - linux shell access
•    aapt - Android Asset Packaging Tool
•    ddms
•    draw9patch
•    mksdcard
•    hierarchyviewer
•    sqlite
12 / 36
Tools - adb shell
• live shell access to emulator file system




13 / 36
Tools - cpuinfo




14 / 36
3rd party tools - UI builder
• http://www.droiddraw.org/
• create UI visually




15 / 36
3rd party tools - Sensor simulator
• http://code.google.com/p/openintents/wiki/SensorSimulator
• feed sensor data to emulator




16 / 36
Source code
•    quot;use the source, Luke!quot;
•    http://source.android.com/
•    GIT version control
•    whole package 2.1GB
•    just to peek at some files:
      – http://android.git.kernel.org/
      – http://www.google.com/codesearch
• sources for core apps: launcher,
  browser...
      – great for learning advanced stuff!




17 / 36
App Architecture
• Activity
      – visible screens
• Service
      – background services
• Content Provider
      – shared data
• Broadcast receivers
      – receive and react to broadcasted events
• Intent
      – activating components




18 / 36
UI
• rich Java UI API
      – layouts and widgets
• declarative programming ala XML
• customization features
      – inherit and override a base widget
      – combine existing widgets
      – fully draw yourself - View::onDraw(Canvas canvas)
• designed for touch right from start
      – padmode, touhmode
      – context menu with a long touch
• focus management
• OpenGL
• may not beat iPhone, but foundation ok for future

19 / 36
Layouts
•   container for widgets
•   XML party; similar to web's XHTML
•   widgets refered from code with IDs
•   relative layouts, fits in various screens
•   AbsoluteLayout discouraged




20 / 36
Widgets
• great number of
  widgets
• android.widgets.*




21 / 36
Widgets - ListView
• most common widget; the workhorse
      – learn well
•   scroll and fling
•   list fading at ends
•   scrollbar on off
•   cache optimization




22 / 36
Widgets - Webkit
•   embedded browser
•   fetch local or remote content
•   Javascript and AJAX supported
•   bridge for Java/Javascript communication




23 / 36
Widgets - MapView
• location-based apps will be hot
• maps built-in
• based on Google Maps




24 / 36
Resources
• images, audio, video, strings, layouts,
  themes, color values
• divided into logical dir hierarchy
• fetch from code
      –   drawables: Resources.getDrawable()
      –   XML: Resources.getXML()
      –   strings: Resources.getString()
      –   raw: Resources.openRawResource()
• intelligent resource matching
      –   values-en/, values-fr/
      –   drawable-land/
      –   drawable-nokeys/
      –   drawable-en-finger/
• XML all over
25 / 36
9-Patch Bitmaps
• image stretching for widgets
• embedded padding measurements




26 / 36
Animation
• in-built animation framework
• all views animable, View.StartAnimation()
• tweened anim
      – scale, alpha, transition, rotation
• frame-by-frame anim
      – list images




27 / 36
App Data
• sandboxed file system
      – adb push, pull
• preferences
• SQLite
• SDcard for bigger files




28 / 36
Debugging
• Eclipse & DDMS
      – DDMS: Dalvik Debug Monitor Server tool
• breakpoints and watches
• actual device debugged via USB




29 / 36
Security
• linux user account per app
• based on app permissions
• apps are signed by developer private key
      – no central authority
• why signing at all:
      – two sibling apps can share data (process and userid)
      – upgrade also smooth, same key




30 / 36
Delivery - APK
•    zip file
•    Java .class converted to .dex
•    XML-files compressed into binary form
•    manifest for app permissions
•    signed with developer private key
•    developer public key included
•    assets packaged as is




31 / 36
Market
• since Oct08, free apps only
• payment system for US/UK developers Feb09
      – Google Checkout system
• 25$ registration fee per developer
• developer gets 70%
• price range $0.99 - $200
      – quot;I'm rich!quot;-apps disallowed
•   over 13y of age
•   24h money-back
•   no explicit content
•   upgrade logic for apps
•   user ratings
•   uninstall percentage
32 / 36
Future
• new versions coming
      – SDK 1.1 just released
      – quot;cupcakequot; in the works
• new phones coming
      –   G2 from HTC
      –   Huawei 2H09
      –   Samsung 2H09
      –   O2: 6-8 phones 2H09?
      –   Dell, Acer?
• Innovations, cool apps




33 / 36
Demo - Spin the Bottle
•   experimental fun app, quot;turhakequot;
•   available in Android Market for free
•   10000 downloads in 44hours
•   22000 downloads in 10 days
•   rating 3.78/5




34 / 36
Why be a mobile developer?
• innovation hotspot
• 4B subscriptions in the world
• quot;mother of all marketsquot;




35 / 36
Thank you
• See you around at dev camp




36 / 36

More Related Content

What's hot

Android seminar report
Android seminar reportAndroid seminar report
Android seminar reportdgpune
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Shubham Pahune
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The BasicsMike Desjardins
 
Android Development Workshop
Android Development WorkshopAndroid Development Workshop
Android Development WorkshopPeter Robinett
 
android architecture
android architectureandroid architecture
android architectureAashita Gupta
 
Presentation2 android Os
Presentation2 android OsPresentation2 android Os
Presentation2 android Osganesh mate
 
Introduction to Android, Architecture & Components
Introduction to  Android, Architecture & ComponentsIntroduction to  Android, Architecture & Components
Introduction to Android, Architecture & ComponentsVijay Rastogi
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentationconnectshilpa
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development pptsaitej15
 
Android app development
Android app developmentAndroid app development
Android app developmentTanmoy Roy
 
Android Web app
Android Web app Android Web app
Android Web app Sumit Kumar
 

What's hot (20)

ANDROID
ANDROIDANDROID
ANDROID
 
Android seminar report
Android seminar reportAndroid seminar report
Android seminar report
 
Android My Seminar
Android My SeminarAndroid My Seminar
Android My Seminar
 
Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement Android Seminar || history || versions||application developement
Android Seminar || history || versions||application developement
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The Basics
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
Android Development Workshop
Android Development WorkshopAndroid Development Workshop
Android Development Workshop
 
Android overview
Android overviewAndroid overview
Android overview
 
Android ppt
 Android ppt Android ppt
Android ppt
 
android architecture
android architectureandroid architecture
android architecture
 
Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
Presentation2 android Os
Presentation2 android OsPresentation2 android Os
Presentation2 android Os
 
Introduction to Android, Architecture & Components
Introduction to  Android, Architecture & ComponentsIntroduction to  Android, Architecture & Components
Introduction to Android, Architecture & Components
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentation
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 
Android app development
Android app developmentAndroid app development
Android app development
 
Android Web app
Android Web app Android Web app
Android Web app
 

Similar to Android Overview

An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Androidnatdefreitas
 
Agil Eight Android
Agil Eight AndroidAgil Eight Android
Agil Eight Androidnagydani
 
Google Android @ AlphaCSP's JavaEdge
Google Android @ AlphaCSP's JavaEdgeGoogle Android @ AlphaCSP's JavaEdge
Google Android @ AlphaCSP's JavaEdgeyuvalb
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android DevelopmentHayi Nukman
 
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009sullis
 
Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014Opersys inc.
 
Open Social Summit Korea Overview
Open Social Summit Korea OverviewOpen Social Summit Korea Overview
Open Social Summit Korea OverviewChris Schalk
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIOpersys inc.
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvmdfages
 
Is Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VIs Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VOpersys inc.
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VOpersys inc.
 
Android Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start GuideAndroid Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start GuideSergii Zhuk
 
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008Vando Batista
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVOpersys inc.
 
01 introduction & setup - Android
01   introduction & setup - Android01   introduction & setup - Android
01 introduction & setup - AndroidWingston
 
Automatic image moderation in classifieds
Automatic image moderation in classifiedsAutomatic image moderation in classifieds
Automatic image moderation in classifiedsJaroslaw Szymczak
 
Automatic image moderation in classifieds, Jarosław Szymczak
Automatic image moderation in classifieds, Jarosław SzymczakAutomatic image moderation in classifieds, Jarosław Szymczak
Automatic image moderation in classifieds, Jarosław SzymczakPôle Systematic Paris-Region
 
Android best practices 2015
Android best practices 2015Android best practices 2015
Android best practices 2015Sean Katz
 

Similar to Android Overview (20)

An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
Agil Eight Android
Agil Eight AndroidAgil Eight Android
Agil Eight Android
 
Google Android @ AlphaCSP's JavaEdge
Google Android @ AlphaCSP's JavaEdgeGoogle Android @ AlphaCSP's JavaEdge
Google Android @ AlphaCSP's JavaEdge
 
Begining Android Development
Begining Android DevelopmentBegining Android Development
Begining Android Development
 
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009
 
Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014
 
Open Social Summit Korea Overview
Open Social Summit Korea OverviewOpen Social Summit Korea Overview
Open Social Summit Korea Overview
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VI
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
 
Is Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VIs Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon V
 
Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to Android
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon V
 
Android
Android Android
Android
 
Android Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start GuideAndroid Applications Development: A Quick Start Guide
Android Applications Development: A Quick Start Guide
 
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008"JavaME + Android in action" CCT-CEJUG Dezembro 2008
"JavaME + Android in action" CCT-CEJUG Dezembro 2008
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IV
 
01 introduction & setup - Android
01   introduction & setup - Android01   introduction & setup - Android
01 introduction & setup - Android
 
Automatic image moderation in classifieds
Automatic image moderation in classifiedsAutomatic image moderation in classifieds
Automatic image moderation in classifieds
 
Automatic image moderation in classifieds, Jarosław Szymczak
Automatic image moderation in classifieds, Jarosław SzymczakAutomatic image moderation in classifieds, Jarosław Szymczak
Automatic image moderation in classifieds, Jarosław Szymczak
 
Android best practices 2015
Android best practices 2015Android best practices 2015
Android best practices 2015
 

Recently uploaded

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Android Overview

  • 1. Android Overview Tomi.Mickelsson@idean.com Senior Technology Specialist http://mobiledevcamp.fi/ http://www.slideshare.net/atomi/ Feb 21, 2009 1 / 36
  • 2. Agenda • Why Android? • What is it? • SDK and tools • UI and widgets • Resources, animation • Debugging, packaging • Market • Demo: Spin the Bottle app 2 / 36
  • 3. What is Android? • modern open-source mobile operating system • full software stack – Linux kernel 2.6 – Java middleware, framework – core applications • Google & OHA 3 / 36
  • 4. Why Android? • open-source – apache license – cost – sets developers free • solid foundation: Linux kernel • good framework based on Java • empower users – replace core apps – personalize • Google stuff • huge opportunity for vendors, developers, users – OS for free, innovate at app level • not just for phones 4 / 36
  • 6. Java Framework • Java: reasonable choice – mainstream language – millions of developers • J2SE, not J2ME • Dalvik VM: fast register based VM • modular app architecture – building screens and services, not monolithic black-boxes – loosely coupled, addressable parts • every app runs its own process • multitasking; background processes • JNI discouraged at this point • other frameworks possible 6 / 36
  • 7. Quickstart • install JDK 1.5 • install Android SDK • install eclipse • read SDK docs • learn about samples, API demos • get help from newsgroup • read sources for advanced stuff • test on G1 or dev phone • publish app in Market 7 / 36
  • 8. SDK • all platforms supported – linux, windows, mac • no installation, just unzip • 81.4MB - ver1.1 • clean and compact • good documentation • 1.1 latest version 8 / 36
  • 9. Eclipse Editor • most popular Java editor – tons of features – refactoring – debugging – integrated help • ADT: Android Development Tools plugin 9 / 36
  • 11. Emulator • based on QEMU emulator for ARM processor – boots up real linux kernel • camera previews • easy networking • audio recording • switch orientation: CTRL+F12 • install apps with browser or adb • market app not available • skins 11 / 36
  • 12. Tools in SDK • all tools available as cmdline – eclipse not required • adb - Android Debug Bridge – adb push - transfer files from/to emulator – adb install - install app – adb logcat - view debug log – adb shell - linux shell access • aapt - Android Asset Packaging Tool • ddms • draw9patch • mksdcard • hierarchyviewer • sqlite 12 / 36
  • 13. Tools - adb shell • live shell access to emulator file system 13 / 36
  • 15. 3rd party tools - UI builder • http://www.droiddraw.org/ • create UI visually 15 / 36
  • 16. 3rd party tools - Sensor simulator • http://code.google.com/p/openintents/wiki/SensorSimulator • feed sensor data to emulator 16 / 36
  • 17. Source code • quot;use the source, Luke!quot; • http://source.android.com/ • GIT version control • whole package 2.1GB • just to peek at some files: – http://android.git.kernel.org/ – http://www.google.com/codesearch • sources for core apps: launcher, browser... – great for learning advanced stuff! 17 / 36
  • 18. App Architecture • Activity – visible screens • Service – background services • Content Provider – shared data • Broadcast receivers – receive and react to broadcasted events • Intent – activating components 18 / 36
  • 19. UI • rich Java UI API – layouts and widgets • declarative programming ala XML • customization features – inherit and override a base widget – combine existing widgets – fully draw yourself - View::onDraw(Canvas canvas) • designed for touch right from start – padmode, touhmode – context menu with a long touch • focus management • OpenGL • may not beat iPhone, but foundation ok for future 19 / 36
  • 20. Layouts • container for widgets • XML party; similar to web's XHTML • widgets refered from code with IDs • relative layouts, fits in various screens • AbsoluteLayout discouraged 20 / 36
  • 21. Widgets • great number of widgets • android.widgets.* 21 / 36
  • 22. Widgets - ListView • most common widget; the workhorse – learn well • scroll and fling • list fading at ends • scrollbar on off • cache optimization 22 / 36
  • 23. Widgets - Webkit • embedded browser • fetch local or remote content • Javascript and AJAX supported • bridge for Java/Javascript communication 23 / 36
  • 24. Widgets - MapView • location-based apps will be hot • maps built-in • based on Google Maps 24 / 36
  • 25. Resources • images, audio, video, strings, layouts, themes, color values • divided into logical dir hierarchy • fetch from code – drawables: Resources.getDrawable() – XML: Resources.getXML() – strings: Resources.getString() – raw: Resources.openRawResource() • intelligent resource matching – values-en/, values-fr/ – drawable-land/ – drawable-nokeys/ – drawable-en-finger/ • XML all over 25 / 36
  • 26. 9-Patch Bitmaps • image stretching for widgets • embedded padding measurements 26 / 36
  • 27. Animation • in-built animation framework • all views animable, View.StartAnimation() • tweened anim – scale, alpha, transition, rotation • frame-by-frame anim – list images 27 / 36
  • 28. App Data • sandboxed file system – adb push, pull • preferences • SQLite • SDcard for bigger files 28 / 36
  • 29. Debugging • Eclipse & DDMS – DDMS: Dalvik Debug Monitor Server tool • breakpoints and watches • actual device debugged via USB 29 / 36
  • 30. Security • linux user account per app • based on app permissions • apps are signed by developer private key – no central authority • why signing at all: – two sibling apps can share data (process and userid) – upgrade also smooth, same key 30 / 36
  • 31. Delivery - APK • zip file • Java .class converted to .dex • XML-files compressed into binary form • manifest for app permissions • signed with developer private key • developer public key included • assets packaged as is 31 / 36
  • 32. Market • since Oct08, free apps only • payment system for US/UK developers Feb09 – Google Checkout system • 25$ registration fee per developer • developer gets 70% • price range $0.99 - $200 – quot;I'm rich!quot;-apps disallowed • over 13y of age • 24h money-back • no explicit content • upgrade logic for apps • user ratings • uninstall percentage 32 / 36
  • 33. Future • new versions coming – SDK 1.1 just released – quot;cupcakequot; in the works • new phones coming – G2 from HTC – Huawei 2H09 – Samsung 2H09 – O2: 6-8 phones 2H09? – Dell, Acer? • Innovations, cool apps 33 / 36
  • 34. Demo - Spin the Bottle • experimental fun app, quot;turhakequot; • available in Android Market for free • 10000 downloads in 44hours • 22000 downloads in 10 days • rating 3.78/5 34 / 36
  • 35. Why be a mobile developer? • innovation hotspot • 4B subscriptions in the world • quot;mother of all marketsquot; 35 / 36
  • 36. Thank you • See you around at dev camp 36 / 36