Android Development Notes

  • Zach Introduction
    • Android Platform tech lead
    • Comes from Qualcomm as kernel lead
    • Android experience integrating platform
  • Core Software and Core Communication
    • All other cores run proprietary firmware
      • Typically developed by various companies, on contract, or from IP owner
    • Communicate with these cores through RPC or shared memory
      • Buffers passed by physical address through the control mechanism
    • Userspace drivers to talk to mmaped registers
      • Kernel shims to communicate with these drivers
    • Cores need large contiguous buffers
      • Allocation cannot fail (so allocated at boot-time)
      • Pointers passed around
      • Mappers see memory differently (cached and uncached, for instance)
    • IOMMUs are meant to solve this problem
      • No standard solution in the kernel, and DMA doesn't solve the problem
    • Openmax IL
      • Passing around pointers that can be dereferenced at any time
      • Done because system relies on that property
      • Hard to build and tear down chains
        • Don't need huge stack to solve simpler problems
        • Just want to play a Youtube video
      • Tunneled mode limits use; XXX: why?
  • Binaries everywhere
    • Linux is just the control plane
    • Presence in an Android system is very limited
    • Binaries prevent open-source innovation
  • Opencore Packetvideo in 2.2.
  • Stagefright only in 2.3
    • Concurrent garbage collector
    • Audio/Video/Stills API
  • Surfaceflinger
  • Audioflinger
    • Handles audio routing and input/output device management
    • May use proprietary driver or ALSA
  • Android is the real HAL
    • High-level Java API to application developers
    • Less focus on low-level APIs and functionality; greater
      • abstraction gives developers access to what they want
    • Jim: Will there be an Android video conferencing API?
      • Specs suggest there will be in next releases
      • Video analytics another place for innovation
  • 3 month mobile platform cycles
    • Hack away to get to a product
    • Lack of presence upstream will cause long-term problems
  • Jim: asks about how do we work with Android when they won't release
    • source code early on -- Honeycomb for instance
      • Significant pieces of plumbing will be open source and/or
        • discussed early on (examples: tinyalsa/UCM work, EGL Sink, the kernel itself)
  • Zach talks about LEBs; difficulties around pulling together code to
    • actually get a running platform
      • ACTION: Tack on "managing binary drivers" discussion on want list

Events/2011-06-MMWG/AndroidDevOverview (last modified 2011-06-13 21:52:00)