Android Internals::TOC

Android Internals - A Confectioner's CookBook

Volume II: The Developer View - Coming soon!

  1. Anatomy of an an Android Application Break down and detail of APK and application components
    • Android Packages (APKs)
      • APK Components
        • AndroidManifest.xml
        • classes.dex
        • resources.arsc
        • Digital signatures on apps
      • Building an APK
      • Installing an APK - Step by Step
    • Application Components
      • Activities
      • Services
      • Broadcast Receivers
      • Content Providers
    • JNI
      • The need for native code
      • Compiling JNI code
      • Houdini - Briding the ARM/Intel divide
    • Decompiling applications
  2. Android IPC, in depth
    • The Developer view: Intents and filters
    • AIDL compilation
    • The Dalvik view: Parcels
    • The System view: Binder Internals
  3. A tour of Android Services Android framework services (via system_server), in detail
    • More on system_server
    • Power Management Services (excerpt)
    • Diagnostics Services
    • Activity Manager, at a glance
  4. Application Internals Break down and detail the nooks of crannies of starting an app, and maintaining its lifecycle
    • Runtime Primitives
      • Looper
      • Handler
      • MessageQueue
    • Zygote explained
    • Accessing services from native code
    • Activity Manager in depth
    • Behind the scenes of the application lifecycle


  5. Dalvik Internals The inner workings of Android's Virtual Machine and bytecode format
    • Dalvik vs. Java
    • DEX, demystified
    • Running DEX apps
    • Dalvik's JNI implementation
    • Alternative Dalvik Implementations
  6. Android RunTime Internals
    • ART - An alternative to Dalvik
    • The file formats: OAT and ART
    • The runtime
      • Setup and initialization
      • Support threads
    • Memory allocators and Garbage Collection
  7. Devices: Interfacing from native level
    • The Hardware Abstraction Layer
    • The camera HAL
    • copy bit
    • gralloc
    • sensors
    • GPS
    • Implementing a custom HAL module
  8. The Android Input Architecture
  9. The Audio Architecture
    • Audio at the Linux Kernel level
    • The Audio HAL
      • Audio modules
      • Audio policy modules
      • Audio Effects
    • AudioFlinger
    • Media Player
    • The Dalvik APIs
  10. The Android Graphics Architecture
    • Android Graphics Architecture
    • Graphics at the Linux Kernel Level
    • Graphics at the Native Level
      • SKIA
      • OpenGLES
      • RenderScript
      • MinUI
    • SurfaceFlinger
    • StageFright
  11. Connectivity
    • Radio interface layer (phone)
    • BlueTooth
    • Android Beam & NFC
    • Wi-Fi & Wi-Fi Direct
      • wpa_supplicant
      • WifiMonitor
      • WifiNative
      • WifiConfigStore
      • WifiStateMachine
    • VPN (Racoon and MTPd)
    • Tethering and Mobile Access Point
      • Kernel Layer: NetFilter
      • User Mode support
        • hostapd
        • dnsmasq
    • Detecting Network State
    • Monitoring Data Usage
  12. Android and USB
    • Android as a USB Target
      • Framework USB Target Support
      • The Linux Gadget Driver
      • ADB
        • Authenticated ADB
      • MTP/PTP
      • Mass Storage Device
      • RNDIS (USB Tethering)
    • Android as a USB host
      • Framework USB Host Support

Volume I : The Power User's View - Out Now


ISBN: 978-0-9910555-2-4
  1. About this book
    • Overview and Reading Suggestion
    • The AOSP
    • Experiments
    • Tools
    • Conventions Used in this Book
    • The Companion WebSite
  2. Introduction and evolution of the Android Architecture A technical overview of the Android architecture, evolution of its features, and forked derivatives
    • Android Versions - From Cupcake to KitKat, and beyond
    • The Android Architecture
    • Android vs. Linux: Notable differences
      • Bionic vs. glibc
      • User management model
      • Configuration files
    • Android Derivatives
      • FireOS, FireTV
      • Android Wear
      • Google Glass
      • Headless Android
    • Pondering the way ahead
  3. Partitions & Filesystems Examining Android storage types and partitions, as well a detailed breakdown of directories and files in /system and /data.
  4. The Android boot process Tweaking and customizing the Android boot sequence, with an emphasis on updates and recovery
    • System Images
      • The Boot Loader
      • Boot Images
      • The Kernel
      • The Device Tree (ARM)
      • The RAM disk
    • The Boot Process
      • Firmware Boot
        • The Fastboot Protocol
      • Kernel Boot
      • User mode
    • System Recovery and Updates
      • The OTA Update Process
    • Customizing ROMs
      • Prerequisite: Boot Loader Locking
      • Do-it-Yourself
      • Cyanogenmod, AOKP, and others
  5. init
  6. The Android Runtime services: Native Services The Android runtime services and processes, in detail
    • Core Services
      • adbd
      • healthd
      • L: lmkd
      • L: logd (excerpt)
    • Network Services
      • netd
      • mdnsd
      • mtpd
      • rild
    • Graphics and Media Services
      • surfaceflinger
      • bootanimation
      • mediaserver
      • drmserver
    • Other System Daemons
      • rild
      • system_server
      • zygote
      • keystore
      • debuggerd
      • sdcard
      • servicemanager
      • installd
  7. The Android Service Architecture
    • Service Manager, revisited
    • The Service call pattern
    • The system_server architecture
    • Service APIs from native code
  8. Android Applications through Linux Lens Monitoring and viewing Applications through the Linux command line
    • Application during runtime (with /proc/task/..)
    • Processes and threads in Android (and Linux)
    • User mode memory management
    • USS, PSS, RSS, VSS, etc
    • procrank, librank, and /proc/../smaps
    • Native binaries, libraries and ELF Tools
    • Optimizations in Android native and Dalvik apps
  9. Android Security Also available as a preview download!
    • Security at the Linux level
      • SetUID/SetGID
      • Capabilities
      • SELinux
    • Security at the Dalvik level
      • Binder security
      • Dalvik Permissions
    • User-Level Security
      • The Lock Screen
      • Multi-User Support
    • Certificate and Keystore Management
      • Root Certificates
      • Certificate Pinning
    • Full Disk Encryption (dm-crypt)
    • Disk verification with dm-verity (4.4)
    • Rooting Android
      • Boot-to-Root method
      • Exploit (one-click) methods
      • Security Implications of rooting