• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Android  Anatomy
 

Android Anatomy

on

  • 7,089 views

An Introduction to Google Android

An Introduction to Google Android

Statistics

Views

Total Views
7,089
Views on SlideShare
7,032
Embed Views
57

Actions

Likes
14
Downloads
0
Comments
1

6 Embeds 57

http://www.slideshare.net 37
http://www.linkedin.com 13
http://bhavyavoice.blogspot.com 2
http://jisi.dreamblog.jp 2
http://www.slashdocs.com 2
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 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
    Processing…
Post Comment
Edit your comment
  • 03/06/10
  • IBM Confidential Instructor notes: Include an opportunity for participants to ask questions after presentation of key concepts, examples, and exercises.

Android  Anatomy Android Anatomy Presentation Transcript

  • Mobile Platform - Android - The Anatomy - IBM INDIA Bhavya Siddappa Android Evangelist
  • Agenda
    • Mobile Eco-system
    • Entertainment
    • Android Overview
    • Challenges & Opportunities
    • What's for me ?
  • Mobile Eco-System
  • Smart Phone Market share
  • 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
  • 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
  •  
  • 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
  • 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
  • Android Architecture Overview
  • 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
  • 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
  • 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).
  • Function Libraries- WebKit
    • Open source WebKit browser: http://webkit.org
    • Renders pages in full (desktop) view
    • Full CSS, Javascript, DOM, AJAX support
  • 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.
  • 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
  • Core Libraries
  • 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
  • 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
  • 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.
  • Eclipse ADT Plugin
  • Installed Application in Emulator IBM Internal Use | March 6, 2010
  • Android Project Structure in Eclipse:
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • What’s in an App ? (APK) Drawable Layouts Values Assets Android Manifest Default Activity Intents Content Providers Service Libraries Other Activities
  • 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!
  • References
    • http://developer.android.com/
    • http://en.wikipedia.org/wiki/Google_Android
    • http://www.anddev.org/
    • http://www.ibm.com/developerworks/
  • Questions and Answers IBM Internal Use | March 6, 2010
  • 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 !