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 . . .