Chapter 1: Concurrency Model in Android
- 1.1: Coroutines as a Structured Concurrency Graph
- 1.2: Cancellation Propagation and Failure Modes
- 1.3: Dispatcher Starvation and Thread Contention
- 1.4: Race Conditions in Lifecycle Aware Components
- 1.5: Main Dispatcher, Choreographer, and Frame Coordination
- Conceptual Summary Diagram
- Next Chapter Preview: ART as a Runtime System
Chapter 2: ART as a Runtime System (Not a VM)
- 2.1 From Source Code to Execution: The Real Pipeline
- 2.2 JIT and AOT Are Not Opposites. They Are Partners
- 2.3 Baseline Profiles and Cloud Profiles
- 2.4 Garbage Collection Is About Behavior, Not Just Pauses
- 2.5 Heap Behavior and Fragmentation
- 2.6 Allocation Churn and Frame Performance
- 2.7 Method Dispatch and Warmup Effects
- 2.8 ART in the Larger System
- What Comes Next
Chapter 3: Power & Thermal Management (System-Level)
- 3.1: Doze Mode and App Standby
- 3.2: WakeLocks and System Suspend Control
- 3.3: JobScheduler and WorkManager Internals
- 3.4: Thermal Throttling and Sustained Performance
- System Interaction View (Power + Thermal + Scheduling)
- Key Mental Model
- Preview of Next Chapter: UI Performance at Scale
Chapter 4: End-to-End Performance Model (The Missing Mental Model)
- 4.1: The End-to-End Interaction Model
- 4.2: The Unified Performance Equation
- 4.3: Classification of Bottlenecks
- 4.4: Perfetto as a System-Level Debugger
- 4.5: Root Cause Thinking (Not Symptom Tracing)
- 4.6: A Mental Model for Engineering Decisions
- Next chapter
Chapter 5: UI Performance at Scale
- 5.1: Compose Recomposition Cost Model and View Invalidations
- 5.2: View System Pitfalls and Rendering Inefficiencies
- 5.3: Startup Performance and Cold Path Execution
- 5.4: Memory Churn in UI Systems
- Summary Mental Model
- Next Chapter Preview: System Jank Engineering
Chapter 6: System Jank Engineering
- 6.1 Frame pacing vs frame rendering
- 6.2 VSync alignment failures
- 6.3 Choreographer backlog
- 6.4 Render thread contention
- Summary mental model
- Next chapter preview: Advanced Debugging & Profiling
Chapter 7: Advanced Debugging & Profiling
- 7.1: Perfetto as a System Timeline Tool
- 7.2: Memory Profiling with heapprofd and Native Tools
- 7.3: Debugging Without Source Code
- 7.4: Native Crash Analysis and Symbol Resolution
- 7.5: Kernel-Level Debugging with ftrace and Scheduling Analysis
- Chapter Summary
- Next Chapter Preview: Custom ROMs and AOSP Mastery
Chapter 8: Custom ROMs & AOSP Mastery
- 8.1 Building for Real Devices and Device Trees
- 8.2 Modifying System Components and Extending the Platform
- 8.3 Build Variants and Their Impact on System Behavior
- 8.4 Flashing, Boot Chain, and Verification Systems
- 8.5 Over the Air Updates and Incremental System Evolution
- 8.6 Vendor Components and Project Treble Boundaries
- Chapter Continuation Context
- Next Chapter Preview: Modern Android Evolution and System Modularity
Chapter 9: Modern Android Evolution (Staying Relevant)
- 9.1: Project Treble and the Vendor Interface
- 9.2: Mainline Modules and Modular Android
- 9.3: Scoped Storage Evolution
- 9.4: ART Runtime Evolution
- 9.5: CTS, VTS, and System Compliance
- Chapter 9 Summary
- Next Chapter Preview: Chapter 10 Boot Flow as Dependency Injection System
Chapter 10: Capstone Projects (Choose One)
- 10.1: Port AOSP to an Older Unsupported Pixel Device
- 10.2: Add a Complete System Feature (End-to-End Android Subsystem)
- 10.3: Contribute a Non-Trivial Patch to AOSP or LineageOS
- System Integration View of All Capstones
- Final Debugging Reality Check
- Chapter 11 Preview: Open Source Contribution Workflow
Chapter 11: Open Source Contribution Workflow
- 11.1: Understanding the Contribution Landscape
- 11.2: Repository Structure and Working Model
- 11.3: Branching, Topics, and Change Isolation
- 11.4: Writing a Contribution (Commit Structure)
- 11.5: Code Review and Gerrit Lifecycle
- 11.6: Testing Expectations Before Submission
- 11.7: Common Contribution Patterns
- 11.8: Mental Model of Contribution Impact
- 11.9: Final Capstone Flow (How Real Contributions Happen)
- Chapter Preview: Next Phase of Mastery
Chapter 12: Final Debugging Challenge
- 12.1: The Problem Space of Real Android Failures
- 12.2: The Debugging Stack Model
- 12.3: Core Toolchain in a Unified Workflow
- 12.4: Case Study 1: ANR Caused by Hidden Binder Contention
- 12.5: Case Study 2: Boot Loop from Service Dependency Deadlock
- 12.6: Case Study 3: Frame Drops Under Thermal Pressure
- 12.7: Diagnostic Principles
- 12.8: Outcome of This Chapter
- Closing of Book 2