1 / 12

Android

Android. Basic Architecture. Application Framework. Applications. Android Runtime. Libraries. Linux Kernel. H/W support. X86 for “Mobile Internet Devices” (MIDs) Nook Color/Tablet Kindle Fire Other tablets ARM for mobile phones. The Linux Kernel. Drivers Display Keypad Camera

kent
Download Presentation

Android

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Android

  2. Basic Architecture • Application Framework • Applications • Android Runtime • Libraries • Linux Kernel

  3. H/W support • X86 for “Mobile Internet Devices” (MIDs) • Nook Color/Tablet • Kindle Fire • Other tablets • ARM for mobile phones

  4. The Linux Kernel • Drivers • Display • Keypad • Camera • WiFi • Flash Memory • Audio • Binder • Power mgr

  5. Libraries • Surface mgr (access to UI) • Graphics (OpenGL | ES) • SGL (2D graphics engine) • Media framework (audio & video) • Freetype – bitmap & vector rendering • SSL (networking) • SQLite • WebKit (web browser) • Libc (known as “Bionic”) • 3D (OpenGL ES 1.0 APIs) h/w or s/w rasterizing

  6. Android Runtime • Core libraries • Functionality of the Java libraries • Dalvik VM (Android-specific) • Replaces the Java VM • Java →.class.dex (Dalvik executable bytecode) • Java bytecode ≠ Dalvikbytecode • Linux (2.6) provides threading & memory mgmt • Linux 2.6 is the hardware abstraction layer

  7. Application Framework • Package Mgr (app pkginfo storage) • Activity Mgr (application life-cycle) • Location Mgr (location & bearing) • Notification Mgr (custom status alerts) • View System (lists, grids, textboxes, etc.) • Content providers (cross-app data exchange) • Resource Mgr (localized strings, graphics, layouts) • Telephony Mgr

  8. What’s different - 1 • No swap space • Dalvik VM vs. JVM (no JIT compiler) • libcvs. glibc • JIT compiler (in Android 2.2) • Xlates .DEX-> machine code • Hardware: ARM (RISC-based, 32-bit) • + 2nd set of 16-bit inst’s (the thumb set) • Interleaved with 32-bit inst’s • Reduces program size (up to 30%)

  9. What’s different - 2 • Android solutions are NOT Linux solutions • Uses a non-standard Linux kernel • Based on (not equal to) Linux 2.6 • Enhancements include: • alarm driver (wakeup devices) • shared memory driver (ashmem) • binder (for IPC – not same as a linker), • power management (more aggressive than Linux) • low memory killer • kernel debugger and logger

  10. What’s different - 3 • Virtual memory limited to physical RAM size • A new lock type (need details) • Important user-space components omitted [3] • process shared mutexes • condition variables • IPC • Thread cancellation • multiple timers/thread • C++ exception support • /etc/passwd & /etc/groups eliminated

  11. Startup • Kernel->init • init Reads init.rc & init.device.rc(device specific) • Zygote process is started via init.rc • Loads core Java classes • Performs initialization • Idles, listening on socket

  12. references • http://www.differencebetween.net/technology/software-technology/difference-between-android-and-linux/ • http://www.kroah.com/log/linux/android-kernel-problems.html • A Survey on Android vs. Linux http://handycodeworks.com/wp-content/uploads/2011/02/linux_versus_android.pdf

More Related