Roadmap and practice repo for becoming interview-ready as an Android Framework Engineer (Automotive), targeting a JD that spans 7 specializations: Network, Media/USB/Camera, Tuner/DAB, System Stability, Power/STR, Communication Middleware, and Vehicle Control.
Strategy: Broad foundation → survey all 7 tracks → specialize in 2 → interview prep. Timeline: 6 months.
- AOSP build system (Soong
Android.bp, Make legacy, Bazel migration,lunch/m/mm, repo tooling) - HAL architecture (legacy HAL → HIDL → AIDL, Project Treble, VINTF)
- Binder IPC internals (transaction model, ServiceManager, oneway vs blocking, death recipients)
- Process model (Zygote,
init.rc, SELinux contexts) - C/C++ + JNI fluency for reading framework/HAL source
- Debugging toolkit (Perfetto/systrace,
strace, tombstone analysis,dumpsys)
Resources:
- source.android.com — Treble + HAL docs
- Android Internals — Jonathan Levin
- Embedded Android — Karim Yaghmour
~4 days per track. Goal: find aptitude/interest before committing to deep dives.
| # | Track | Status | Core Components | Mini Lab |
|---|---|---|---|---|
| 1 | Network | [ ] | ConnectivityService, netd, wpa_supplicant, RIL, IpSecService, VpnService |
Minimal VpnService app; trace netd socket commands |
| 2 | Media/USB/Camera | [ ] | MediaCodec/Codec2, Camera HAL3 (AIDL), libstagefright, UsbManager/usbd |
Camera2 capture app calling into HAL; simple encode/decode pipeline |
| 3 | Tuner/DAB | [ ] | android.hardware.broadcastradio, android.hardware.tv.tuner AIDL, ETSI DAB/DAB+ spec |
Read Tuner HAL AIDL defs; mock HAL if no hardware available |
| 4 | System Stability | [ ] | ActivityManagerService, PackageManagerService, WindowManagerService, LMKD, ANR/tombstone pipeline |
Reproduce an ANR, analyze tombstone, find jank via Perfetto |
| 5 | Power/STR | [ ] | PowerManagerService, WakeLock internals, Doze, SystemSuspend HAL, kernel /sys/power/state |
App holding wakelocks; observe via dumpsys power; trace suspend/resume |
| 6 | Comm Middleware | [ ] | Binder perf, vsomeip (SOME/IP), FastDDS, MQTT, cross-domain gateway services | Stand up vsomeip example; bridge a signal into Android via JNI service |
| 7 | Vehicle Control | [ ] | android.hardware.automotive.vehicle (VHAL AIDL), CarService, CarPropertyManager |
Extend VHAL reference impl on Cuttlefish car emulator; add custom property |
Checkpoint at end of Month 2: Pick top 2 tracks based on:
- Aptitude/interest from the sprints above
- Market demand (HCMC automotive Android roles)
- Leverage from existing experience (WLAN driver debugging → Network edge; Bazel/build-system fluency → helps everywhere, especially System Stability)
Chosen tracks for deep dive:
________________________________________
~6 weeks per chosen track. For each:
- Read the full service implementation source, top to bottom
- Build a non-trivial lab project touching a real HAL boundary (not a toy app)
- Be able to explain a design trade-off in the subsystem from memory
- Document findings in the track's
README.md
- Mock interviews: AOSP source-reading (walk through unfamiliar framework code / stack traces)
- System-design questions specific to chosen tracks (e.g., "design WakeLock arbitration for a multi-display automotive system")
- Polish repo as portfolio — push all labs, notes, and writeups
- Resume tailored to chosen tracks
- Apply
android-full-stack/
├── README.md # this file — roadmap + progress tracker
├── 00-foundation/
│ ├── build-system/
│ ├── binder-ipc/
│ ├── hal-architecture/
│ └── debugging-toolkit/
├── 01-network/
├── 02-media-usb-camera/
├── 03-tuner-dab/
├── 04-system-stability/
├── 05-power-str/
├── 06-comm-middleware/
├── 07-vehicle-control/
└── interview-prep/
Each track folder contains:
README.md— theory notes + AOSP source pointerslabs/— hands-on practice projects
- Update the checkboxes above as you progress — this file is the single source of truth for the roadmap.
- Each track's own
README.mdshould link back here.