Zygote
Learning path · Never written an app

The Curious Beginner

No code required. Draw the architecture from memory, follow one tap through every layer, then learn how the phone boots and how security actually works.

pages
13
estimated
144 min
0%

0 of 13 pages read

144 minutes in total.

Start with “Welcome to Zygote” →
  1. Welcome to Zygote

    Android is a phone-shaped stack of about twenty layers, and almost nobody sees all of it at once. This site does. Start here.

    11 minbeginnerstart
  2. The four layers of every topic

    Every page on Zygote moves through the same four stages: visualise, understand, get curious, build. This page explains why that order, and how to use each stage.

    8 minbeginnerstart
  3. The layered stack

    Android is seven layers deep. Each one has its own language, its own process model and its own update story — and each boundary between them is an interface someone deliberately designed.

    11 minbeginnerbig-picture
  4. Processes and UIDs: an app is a Linux user

    The single decision that makes Android's security model work: every app gets its own Linux user identity, its own process, and its own sandbox. Everything else follows from that.

    10 minbeginnerbig-picture
  5. What happens when you tap an icon

    The whole platform, in thirty seconds. A tap on the launcher becomes a process, a window, a frame and a photon — and every module on this site is one line of this story.

    10 minbeginnerbig-picture
  6. AOSP vs GMS vs OEM: why Android is four products

    "Android" names at least four different things — an open-source project, a Google app suite, a vendor stack and a shipping phone. Confusing them explains most of the platform's politics and half its bugs.

    8 minbeginnerbig-picture
  7. The boot sequence

    From a press of the power button to the first frame of the home screen: eight stages, four signed handoffs, and a device that has to prove what it is running before it is allowed to run it.

    14 minintermediateboot
  8. Zygote: the mother of processes

    Every app and system_server is a fork of one warm process. Zygote is why an app can start in a few hundred milliseconds despite having no main() of its own.

    12 minbeginnerruntime
  9. The security model

    Android security is not one feature but a set of boundaries, each of which assumes the one outside it has already failed. Read them as rings and the design starts to make sense.

    11 minbeginnersecurity
  10. The app sandbox

    Every Android app is a Linux process with its own UID, its own data directory and its own SELinux domain. That single design decision is why installing a stranger's app is a reasonable thing to do.

    11 minintermediatesecurity
  11. The privacy timeline

    Android's privacy model changed from a single install-time gate to a per-capability, per-duration, per-accuracy negotiation. Each release removed a specific capability that apps had been abusing.

    13 minintermediateprivacy
  12. The evolution of notifications

    Notifications went from one ticker line to a structured, permissioned, per-channel surface that the user controls category by category. Each change was about who gets to interrupt whom.

    12 minintermediatenotifications
  13. How Android evolves

    Android changes on a schedule, not a whim: an annual release train, three independent modularity seams, and feature flags that let one codebase produce many releases. Learn the machinery and the version history stops looking like a list of surprises.

    13 minintermediateevolution