Evolving the Android Core with Aspects

Porting android to a custom hardware platform requires significant changes to the AOSP code, especially if you’re targeting something different from the usual tablet or phone: an industrial control panel, a vending machine, a public-facing entertainment device, etc.
In this talk I’ll present a different way to customize and extend the android core, based on aspect-oriented technology. I’ll show how to integrate the AspectJ compiler in the android build system, and how to add a new feature without touching the AOSP code, using aspects to add methods and data members, intercept function calls, etc.
I’ll also show how using aspects allows straightforward traceability from user-level features to all the relevant changes (often spread around different core modules), and how keeping your custom code apart from the main AOSP code simplifies porting your changes to a newer android version, or remove them selectively (addressing for instance product families).
Along the talk, we’ll also touch on several aspect-oriented notions, get to see some actual AspectJ code, understand how to make aspects more robust, etc.
The talk is mostly directed at people working inside the android platform, but it’s also interesting for those who want to see a new programming paradigm applied to non-trivial problems. Adding a new language to the android build process is a small challenge in itself, and using aspects inside the android platform (as opposed to regular apps) has never been attempted before

AOSP & OS Customization
Location: Sala Parigi Date: 8 April 2016 Time: 15,20 - 16,10 Carlo-Pescio Carlo Pescio