~/talk

Producer-Consumer Linking at the Bytecode Level

Talkat droidcon New York 2025 · 2025-06-25..06-26· [android]
name:Junyu Yue
links:none on file
links:none on file
slides:none on file

A dependency injection tool called Need modifies compiled bytecode to link producers and consumers directly instead of generating source, cutting build time by about 10%, reducing ANRs by ~400k/month, and shrinking APKs ~1 MB. It injects with property delegates, uses double‑checked locking for lazy singletons, supports multibindings, ViewModel injection, interface injection and flexible, composable component graphs, and handles parameterized providers. Limitations: Kotlin‑only, not JSR‑compatible, and bytecode transforms require dumps for debugging; repository is open source.

AI-written summary · about

  1. 0:00Introduction
  2. 1:14Hilt challenges in TikTok
  3. 2:40Hilt component hierarchy limits
  4. 5:54Runtime issues and package size
  5. 7:20Ideal DI framework traits
  6. 8:24Need’s core principle
  7. 9:29Need’s bytecode linking
  8. 10:30Need basic example
  9. 13:18Parent component dependency
  10. 14:46Flexible component hierarchy
  11. 15:49Circular dependencies handling
  12. 16:11Interface injection in Need
  13. 17:15Need advanced features
  14. 19:51Performance after migration
  15. 20:34Need vs Hilt processing
  16. 22:03Runtime benefits of Need
  17. 23:28Need limitations and compatibility
  18. 25:54Why Need fits TikTok
  19. 26:14Future plans for Need
  20. 28:02Need is open source
  21. 28:30Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.