• Like
  • Save
Android  Anatomy
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Android Anatomy

  • 6,410 views
Published

An Introduction to Google Android

An Introduction to Google Android

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Slide 11:Built on 2.6.24 -- this is not true....nexus one has 2.6.29
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
6,410
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
1
Likes
14

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
  • 03/06/10
  • IBM Confidential Instructor notes: Include an opportunity for participants to ask questions after presentation of key concepts, examples, and exercises.

Transcript

  • 1. Mobile Platform - Android - The Anatomy - IBM INDIA Bhavya Siddappa Android Evangelist
  • 2. Agenda
    • Mobile Eco-system
    • Entertainment
    • Android Overview
    • Challenges & Opportunities
    • What's for me ?
  • 3. Mobile Eco-System
  • 4. Smart Phone Market share
  • 5. What is Android ?
    • Fully customizable
    • On Linux kernel.
    • Set of software for mobile devices:
      • An operating system
      • Middleware &
      • Key mobile applications.
    • Rich set of APIs
    • Open source.
    • By Google and OHA
  • 6. Android Events
    • 5 th November, 2007 - Open Handset Alliance announced
    • 21 st October , 2008 - Android has been available as Open Source.
    • 22 nd October , 2008 - T Mobile G1 launched in USA.
    • 5 th January, 2010 – Nexus One Launched
  • 7.  
  • 8. What is OPEN?
    • Industry -
    • Open sourced under Apache 2.0 license
    • Source available after first handsets ship
    • Anyone will be able to build a system image
    • Developers -
    • No permission to ship an application
    • No hidden or privileged framework APIs
    • Can integrate, extend, and replace existing components
    • Users -
    • Control of their experience
    • Control what gets installed
    • Choose the defaults
  • 9. Android Features
    • Application framework - Reuse and replacement of components
    • Dalvik virtual machine - Optimized VM
    • Integrated browser - Open source WebKit
    • Optimized graphics - 2D graphics library; 3D graphics
    • SQLite - S tructured data storage
    • Media support - Audio, Video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
    • GSM Telephony - (hardware dependent)
    • Bluetooth, 3G, and WiFi - (hardware dependent)
    • Camera, GPS, compass, and accelerometer - (hardware dependent)
    • Rich development environment - Emulator, tools for debugging, memory and performance profiling, and a plug-in for the Eclipse IDE
  • 10. Android Architecture Overview
  • 11. Android Kernel- Linux
    • Android is build on Linux 2.6.24 kernel
    • It has a core capability like
      • Security
      • Memory management
      • Process management
      • Network stack
      • Driver model
    • Does not include the full set of standard Linux utilities
      • Display Driver
      • Camera Driver
      • Bluetooth Driver
      • Flash Memory Driver
      • USB Driver
      • Keypad Driver
      • WiFi Driver
      • Audio Driver
      • Power Management
  • 12. Android Kernel – Binder (IPC) Driver
      • Inter process Communication.
      • Every Applications and Services runs as a process.
      • Separate processes must communicate and share data.
      • Driver to facilitated inter-process communication (IPC)
      • Shared Memory Approach for IPC-High performance
      • Per-process thread pool for processing requests
      • Reference counting, and mapping of object references across processes.
      • Synchronous calls between processes
  • 13. Libraries
    • Native libraries.
    • Written in C/C++ internally
    • Called through Java interfaces.
    • Layer contains
      • Surface Manager (for compositing windows),
      • 2D and 3D graphics,
      • Media codecs (MPEG-4, H.264, MP3, etc.),
      • SQL database (SQLite) and
      • A native web browser engine (WebKit).
  • 14. Function Libraries- WebKit
    • Open source WebKit browser: http://webkit.org
    • Renders pages in full (desktop) view
    • Full CSS, Javascript, DOM, AJAX support
  • 15. SQLite
    • Serverless, zero-configuration, transactional SQL database engine.
    • Most widely deployed SQL database engine in the world.
    • Light-weight transactional data store
    • Back end for most platform data storage
    • Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.
    • Zero-configuration - no setup or administration needed.
    • A complete database is stored in a single cross-platform disk file.
    • Cross-platform: Unix (Linux and Mac OS X), OS/2, and Windows (Win32 and WinCE) supported.
  • 16. Dalvik Virtual Machine
    • Highly optimized VM, compiled byte is optimized for mobile devices
    • Register based NOT Stack based
    • NOT a JVM
    • End result is NOT the same byte code as Java,
    • dx in the sdk takes compiled Java class files and converts them into .dex
    • No JIT
    • Built with security and performances (battery life) in mind
  • 17. Core Libraries
  • 18. Application Framework
    • Provided by Google
    • Other parts are extensions or services that you write.
    • UI components - Lists, grids, text boxes, buttons, and even an embeddable web browser
    • Content Providers – access, store and share application data
    • Resource Manager - access to strings, graphics, and layout files
    • Notification Manager - Display custom alerts in the status bar
    • Activity Manager - Manages the lifecycle of applications
  • 19. Applications Layer
    • Top layer
    • Code will live here
    • Built-in applications such as the Phone and Web Browser.
    • Applications Google writes have to go through the same public API that you use.
    • You can even tell Android to make your application replace the standard applications, if you like.
    IBM Internal Use | March 6, 2010
  • 20. Android SDK
    • 15 tools for developing,,
      • Debugging,
      • Packaging
      • Installing applications on the emulator
    • Android Development Tools ADT plug-in for Eclipse
    • Android Emulator
    • Write application code & designing an application UI.
    • Documentation.
  • 21. Eclipse ADT Plugin
  • 22. Installed Application in Emulator IBM Internal Use | March 6, 2010
  • 23. Android Project Structure in Eclipse:
  • 24. Android Runtime
    • Android application == a process
    • A process == a instance of the Dalvik virtual machine.
    • Dalvik can run multiple VMs efficiently.
    • Executes classes compiled by a Java language compiler that have been transformed into the .dex format.
    • DVM executes files in the Dalvik Executable (.dex) format which is optimized.
  • 25. Application Building Blocks - Activity
    • Activity - UI component
    • One screen.
    • For example:
      • List of menu items users can choose.
      • Text messaging application
      • List of contacts to send messages
    • Each activity is independent of the others.
    • Each one is implemented as a subclass of the Activity base class.
  • 26. Application Building Blocks - Intent
    • IntentReceiver
    • Set and respond to notifications or status changes.
    • Can wake up your app.
    • Wakes up a predefined action through the external event.
    • For example:
      • Alarm notification, when the user receives email.
  • 27. Application Building Blocks - Service
    • Faceless task that runs in the background.
    • No visual user interface
    • Runs in the background
    • Certain period of time
    • For example:
    • Background music
    • Each service extends the Service base class.
  • 28. Application Building Blocks – Content Providers
    • Enable applications to share data.
    • Makes a specific set of the application's data available to other applications.
    • Date stored in the file system, in an SQLite database
    • Extends the ContentProvider base class
    • Enable other applications to retrieve and store data of the type it controls.
  • 29. What’s in an App ? (APK) Drawable Layouts Values Assets Android Manifest Default Activity Intents Content Providers Service Libraries Other Activities
  • 30. Get Started
    • SDK 
      • http://developer.android.com/sdk/index.html
    • Eclipse
      • > 3.5 Galileo
    • Eclipse Plug-in
      • > XP, Vista, Linux, x86 Mac 10.4.8 or later http://developer.android.com/sdk/eclipse-adt.html
    • Leave the emulator running!
  • 31. References
    • http://developer.android.com/
    • http://en.wikipedia.org/wiki/Google_Android
    • http://www.anddev.org/
    • http://www.ibm.com/developerworks/
  • 32. Questions and Answers IBM Internal Use | March 6, 2010
  • 33. IBMer [email_address] Android Evangelist bhavsidd@gmail.com Blogger www.bhavyavoice.blogspot.com Tweeter www.twitter.com/bhavis LinkedIn www.linkedin.com/in/bhavis Thank You !