• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Android Platform Architecture

Android Platform Architecture



Android Mobile Platform Architecture

Android Mobile Platform Architecture



Total Views
Views on SlideShare
Embed Views



1 Embed 6

http://www.linkedin.com 6


Upload Details

Uploaded via as Adobe PDF

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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Android Platform Architecture Android Platform Architecture Presentation Transcript

    • Android Platform Architecture By Naresh Chintalcheru
    • What is Android ? Android is an open source End-to-End mobile device platform.
    • End-to-End Android Platform Android is an open source End-to-End mobile device platform.
    • Open Handset Alliance Project ● Android platform is part of OHA Project ● Consortium of 80 companies led by Google ● OHA members include ○ Mobile Operators (Sprint, T-Mobile, Vodafone) ○ Semiconductor companies (Intel, Qualcomm, TI) ○ Software Companies (eBay, Accenture, Wipro) ○ Handset Manufacturers (Samsung, HTC, Sony, LG)
    • Android Devices Although Android usage is primarily focused on smartphones and tablets, there are many devices use the platform. ● GPS (Holux) ● Televisions (Sony Internet TV) ● DVD/Blue-Ray Player (Sony) ● Gaming Devices (OUYA Console) ● Vehicles (Chevy Volt) ● Robotics (iRobot Vacuum Cleaner) ● Fitness (Nike+ FuelBand)
    • Android Platform Architecture
    • Android Platform Architecture
    • Android Linux Kernel ● Android is designed to be compatible with wide array of hardware. This is achieved, in large part though Linux Kernel, which over the years evolved. ● Standard Linux 2.6.24 Kernel ● Every application in Android runs in its own Linux Process with new UserId UID and GroupId GIU. ● Patch of “kernel enhancements” to support
    • Why Linux Kernel • Great memory and process management • Permissions-based security model • Proven driver model • Support for shared libraries • Itʼs already open source!
    • Kernel Enhancements ● Power Management ● Low Memory Management ● Kernel Debugger ● Logger ● Alarm ● Binder
    • Android Platform Architecture
    • Android Libraries ● C/C++ libraries ● Interface through Java ● Surface manager – Handling UI Windows ● 2D and 3D graphics ● Media codecs, SQLite, Browser engine
    • Android Runtime Cheating Java & JVM ?
    • Android Runtime Android only uses Java Programming Language syntax. Does not use JVM, uses custom built virtual machine called Dalvik VM. Uses Apache Harmony for Java Core Library.
    • Android Runtime Does not use J2ME
    • J2ME Vs Android Android's JVM implementation, called Dalvik VM, uses a different instruction set from Sun's JVM. Substantial transformation has to be applied to the compiled Java byte-code. The result is a 'DEX' file, which can contain the transformed versions of multiple compiled .class files. Android applications may be allowed access to files, hardware, and network connections, while J2ME almost always prohibits resource access.
    • J2ME Vs Android J2ME Android Hello.class Hello.dex Hello.jar Hello.apk MIDLet Screen Activity Screen JVM DVM
    • J2ME Vs Android J2ME is platform independent. Android based Java programs are NOT platform independent and works only Android Platform.
    • J2ME Vs Android An uncompressed .dex file is typically a few percent smaller in size than a compressed .jar (Java Archive) derived from the same .class files Multiple classes are included in a single .dex file. Duplicate strings and other constants used in multiple class files are included only once in the . dex output to conserve space. Java bytecode is also converted into an alternative instruction set used by the Dalvik VM
    • DVM
    • Dalvik Virtual Machine ● Unlike Java VMs, which are stack machines, the Dalvik VM is a register-based architecture ● Supports multiple virtual machine processes per device ● Highly CPU-optimized bytecode interpreter ● Uses runtime memory very efficiently ● Runs optimized file format (.dex) and Dalvik bytecode ● Java .class / .jar files converted to .dex at build time
    • Dalvik Virtual Machine Every Android Application get its own copy of Dalvik VM
    • Android Platform Architecture
    • Application Frameworks API interface • Activity Manager • Package Manager • Window Manager • Resource Manager • Content Providers • View System
    • Android Platform Architecture
    • Built-in Applications •Built in and user apps •Can replace built in apps
    • Android Apps No Java main() method in Android platform.
    • Android Apps The four Application building blocks called components in Android are ... 1. Activity 2. Service 3. ContentProvider 4. Broadcast Receiver
    • Activities •Typically correspond to one UI screen •But, they can: –Be faceless –Be in a floating window –Return a value
    • Services •Faceless components that run in the background –E.g. music player, network download etc…
    • Content Providers •Enables sharing of data across applications –E.g. address book, photo gallery •Provides uniform APIs for: –querying –delete, update and insert. •Content is represented by URI and MIME type
    • Broadcast Receiver Platform Notification System A broadcast receiver is a component that responds to system-wide broadcast announcements. Many broadcasts originate from the system—for example, a broadcast announcing that the screen has turned off, the battery is low.
    • Intents Intents are objects used as Inter-Component signaling and Screen Navigations ‣ Starting the user interface for an application ‣ Sending a message between components ‣ Starting a background service
    • Android Security Model Permission-based Security Model
    • Android Security Model Android is a privilege-separated operating system, in which each application runs with a distinct system identity (Linux user ID and group ID) Protect the App code using code Obfuscation. Now ProGuard is included as part of Android development tool.
    • Android Security Model User Permissions in the AndroidManifest.xml <manifest xmlns:android="http://schemas.android. com/apk/res/android" package="com.android.app.myapp" > <uses-permission android:name="android.permission. RECEIVE_SMS" /> ... </manifest>
    • Android Security Model User Permissions in the AndroidManifest.xml android.permission.SEND_SMS android.permission.INTERNET android.permission.READ_CONTACTS
    • Thank You and Your Feedback is appreciated