Building Android Under Android


landley's picture

The most common type of computer in the world today is an Android phone, and so far all its software is cross compiled from PCs. But these days PCs are the new big iron, being kicked up into the server space ("The Cloud") like the mainframe and minicomputer before it.

How do we wean three billion Android devices off their dependence on half a billion old PCs? How do we make having an Android phone sufficient to be a full-fledged Android developer, up to and including modifying and rebuliding the operating system itself?

The hardware is already there (USB can add keyboard/mouse/video, or use bluetooth and chromecast), but the software is still in progress. Given Android's no GPL in userspace policy, what new tools need to be created to turn android into a full-fledged development environment out of the box?

The addition of toybox to the Android M base install (and corresponding upgrades to toybox and bionic libc since), and multi-window support to Android N, bring us closer to this goal but so far we're only about halfway there. The Android Open Source Project has a number of other build prequisites (llvm, cmake, repo, ninja...), and AOSP build itself needs to be broken apart into layers. There's a lot to do, but work is already underway.