How Android Uses Data Structures Behind the Scenes

Whether you graduated with a computer science degree or studied data structures while preparing for developer interviews, you’ve likely encountered concepts like LinkedList, Disjoint Set, B-Tree, and Red-Black Tree at least once. But have you ever considered actually applying these data structure concepts when building real Android apps? In fact, these data structures are often used behind the scenes in the Android framework and its libraries—even though you may never need to interact with them directly. In this presentation, we’ll explore how data structure knowledge is employed within the Android framework and key libraries, and explain why it’s important for us to understand these concepts. Introduction: Have you ever leveraged knowledge of data structures when developing Android applications? - If so, are the data structures we learn actually used in real Android development? 1. The Layout Tree (Composable Tree) for rendering the screen - About the Tree data structure - Why the Tree was the inevitable choice—considering traversal time complexity (efficiency) - Based on this, how is the screen rendered and updated efficiently? 2. Dependency Injection Tools (Graph/Directed Acyclic Graph) - About the Directed Acyclic Graph data structure - Why Dagger chooses a graph data structure for dependency injection - How to detect and resolve circular dependencies using this data structure Conclusion: Data structure knowledge is being used in ways you might not realize If time allows: 3. The Handler mechanism for processing Runnables - About Priority Queues - Why priority queues are an efficient choice 4. Image caching (LruCache)

  • HyunWoo Lee Android/React Native Engineer, Toss


Summary

  • Dates 2025.09.12 / 12:20 ~ 13:00 (40min)
  • Place Meerkat
  • Language English (Japanese interpretation available)

Intended audience

- People who have wondered how the Android framework and libraries work under the hood and why certain design decisions were made - Those who feel disillusioned that their computer science knowledge doesn’t seem to be applied in their development work or are curious about how computer science concepts are used in Android development - Anyone interested in making informed decisions to build high-performance apps

Android is a trademark of Google LLC. The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. Android, Google Play and the Google Play logo are trademarks of Google LLC.

© 2014- DroidKaigi Committee