Android Platform Code – Turtles Most of the Way Down

Guest Blog for Black Duck Software

Part 1 – Hidden Complexity

This week Android application developers from around the world are gathering in San Mateo at AnDevCon – the Android Developers Conference. While they are soaking up tutorials on UI haptics and building apps with Ruby and HTML5, I find myself pondering the particulars of the Android platform.

A quick glance at the conference curriculum (and Gingerbread documentation) reveals Android as ever more resource-rich, with a growing repertoire of APIs and capabilities to leverage emerging hardware (like the barometer on the Motorola XOOM) and to meet developer community requirements.  In providing the underpinnings for its burgeoning app portfolio (approaching 300,000 – AndroLib.com), Google and its Open Handset Alliance (OHA) partners have created an increasingly complex mobile applications platform.

A Daunting Integration Task

The underlying complexity of Android platform code can be daunting to developers, especially to software teams at chipset suppliers, device manufacturers (OEMs) and integrators.   Anyone needing to integrate Android platform code with hardware and system software will be concerned about

  • Managing the 165 different packages that comprise the Android GIT repository
  • Tracking changes in over 80,000 source code files
  • Integrating Android internal system code, device drivers, Dalvik code, middleware and applications with myriad external repositories
  • Maintaining, integrating and QAing company-specific additions to the platform (e.g., UI customizations and Dalvik performance enhancements)
  • Reconciling the rights and obligations represented in at least 19 different licenses
  • Repeating this exercise every 3-4 months (hello Gingerbread and Android 3.0!)

Read more . . .

Advertisements
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: