Your SlideShare is downloading. ×
Android Overview
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Android Overview

5,291

Published on

This short presentation was given during a Xebia internal event. It makes a technical overview of the Android technology.

This short presentation was given during a Xebia internal event. It makes a technical overview of the Android technology.

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

No Downloads
Views
Total Views
5,291
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1
Comments
0
Likes
13
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • TODO sommaire
  • Transcript

    • 1. Android http://www.xebia.fr | http://blog.xebia.fr Erwan Alliaume ealliaume (*AT*) xebia (*DOT*) fr (XKE – Mars 2009)
    • 2. History
      • August 2005
        • Google acquires Android
      • November 2007
        • Open Handset Alliance announcement
        • Android SDK avaible
      • September 2008
        • HTC and T-Mobile announce G1
      • October 2008
        • Android SDK 1.0
        • Android Market goes live
        • G1 available in retail stores in USA
      • March 2009 (today!)
        • Android G1 is available in France via Orange
      Nokia buy Symbian JavaFX goes mobile… Iphone is out in US
    • 3. Android is Hot !
    • 4. Android
      • Google … but not only …
        • Open handset alliance: 47 vendors
      • Open source
        • Apache license
        • http://git.android.com
      • Solid foundation
        • Based on Linux Kernel 2.6 - Android is not Linux 
      • Good framework based on Java
      • Empower User
        • Replace core apps / Personalize as you want
      • Google Stuffs
      • Huge opportunity for vendors, developers, users
      • Not just for phones
    • 5. Dalvik Virtual Machine
      • No native windowing ! No glibc !
      • Dalvik - Custom VM implementation
        • Provides application portability
        • Run optimized file format (.dex)
        • Java .class / .jar converted to .dex at build time
        • Support multi processes per VM
        • Slimmed down to use less space
        • No Just-in-time compiler
        • Constant pool has been modified to use only 32-bit indexes
        • Uses its own bytecode , not Java bytecode.
      .java .class .dex Dan Bornstein , has named it after going to the fishing village of Dalvík  in  Iceland , where some of his ancestors live.
    • 6. What is Android? Display Driver Keyboard Driver Camera Driver WiFi Driver Flash Memory Audio Driver Binder Driver Power Management Linux Kernel SGL OpenGL Surface Manager SSL FreeType Media Framework Libc Webkit SQLite Libraries Android Runtime Dalvik VM Core Libraries Package Manager Telephony Manager Resource Manager Location Manager Notification Manager Application Framework Activity Manager Window Manager Content providers View System Applications … Browser Contact Phone
    • 7. What is an application?
      • Application package file : myapp.apk
      • Composed by one or more activities
        • Usually a single screen in your application
        • Can be faceless
        • It is an entry point for your application
      • AndroidManifest.xml
      • Activities
        • Visible screens
      • Views
        • Object who know how to draw itself on the screen
        • ListView, DatePicker, MapView
        • Equivalent to JavaSwing Components
      • Layouts
        • Positions : use relative / absolute discouraged
      • Intents & IntentReceivers
        • Declare to the OS that you want to do something
        • Predefined actions : VIEW (url / contact / pictures) PICK, EDIT, DIAL, …
      • Permissions
        • Low level access to features (GSM, SMS, GPS, Internet …
        • Declared by the developer at creation time
        • User prompt on the market at installation
      • Services
        • Background services
      • Notifications
        • Receive and react to broadcasted events
      • ContentProviders
        • Shared data
    • 8. What is an application?
      • All features of the Hardware are accessible to the developer
      Drawable Layouts Values Assets Android Manifest Default Activity Other Activities Other Activities Other Activities Libraries Services Content Providers Intents
    • 9. Hardware / First Phone
      • Google G1
        • Telephony
        • Location (GPS + phone)
        • Bluetooth / Wifi
        • USB
        • Sensors
          • Compass
          • Movement
    • 10. UI Development (1/2)
      • Two ways
        • Declarative XML
        • Full Java Code
      • Rich Java UI API
        • Layouts & widgets : android.widgets*  about 80 widgets
      • Customization
        • Inherit and override a base widget
        • Combine existing widgets
        • Fully draw yourself
      • OpenGL
      • May not beat iPhone, but foundation of for future
      • Edition Tools
        • Official Eclipse Plugin sux (preview)
        • 3 rd party tool : UI Builder (editor) – http://droiddraw.org
      XML Java Code XML Java code or Both
    • 11. UI Development (2/2)
      • 9-Patch Bitmaps
        • Image stretching for widgets
        • Embedded padding measurement
      • Animation
        • In-built animation framework
        • All view are animable - View.strartAnimation()
        • Tweened animation
          • Scale, alpha, transition, rotation
        • Frame-by-frame animation
          • List image
    • 12. Deal with data!
      • Store data
        • Sandbox file system
          • Adb push, pull
        • Sdcard for big files
        • Preferences
          • Out-of-the-box application preferences screen
        • SQLite
      • Networking: apache HttpClient is available
      • For XML calls
        • 3 parsers included
          • SAX
          • DOM
          • XmlPull
        • Xstream works
    • 13. Use resources
      • Images, audio, video, strings, layouts, themes, …
      • Divided into logical directories
      • 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/
    • 14. 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
    • 15. Easiest way to code?
      • Java SDK
      • Android SDK
        • Android Emulator – Windows, Mac & Linux
        • Command Line Tools
          • Aapt : Android asset packaging tool
          • Adb : Android debug bridge
          • Aidl : Android IDL compiler
          • Emulator : Android emulator
        • Documentation
        • Example applications
      • Eclipse
      • Eclipse Plugin
    • 16. Application API’s
      • Java
        • java .util.*
        • java.io.*
        • java.lang.*
      • UI
        • android.widgets.*
        • android.views.*
        • android.graphics.*
      • Telephony
        • android.telephony.*
      • SMS
        • android.telephony.gsm.SmsManager
      • Web
        • android.webkit.WebView
      • Camera
        • android.hardware.CameraDevice
      • Local database
        • android.database.*
      • Maps
        • Com.google.android.maps.MapView
      • Location
        • Android.location.LocationManager
      • Multimedia
        • android.media.MediaPlayer
      • HTTP
        • org.apache.http.client*
    • 17. WTF?
      • Richard Miner, Android’s Chief Developer : “No business model”
      • From 1,18 billon potential users (web users) to 2.7 billion (mobile phone users)
      • Emulator Mac, Windows & Linux !
      • “ A lot of things work, but some don't”
        • Default libraries from apache harmony
        • Older DOM API can be an issue
    • 18. IPhone?
      • Objective-C vs. Java
      • Multitouch controversy
      • Open vs. not-so-much
      • G1 isn't sexy

    ×