Background: internal structure of Android

The Android software stack has been put together with quite a clean design:

  • Vendor adaptation: linux kernel and in selected user space libraries and processes
  • Android "core": a C/C++ set of libraries and applications for startup, communications, media, graphics processing
  • Android "middleware": provide a rich set of services for Dalvik applications
  • Zygote system process: includes both shared system services for applications as well as window manager functionality

Can we put a different application/user interface framework on the Android middleware?

By cutting the Android s/w stack below the Dalvik layer, we enable other projects to experiment with non-Dalvik approaches to constructing user applications.
To do this, the following steps are performed:

Why are we doing this?

Structure of a klaatu platform

Klaatu is a minimal linux system containing AOS kernel, HAL and low level daemons. With other AOS systems, several services depended on the Java engine (Dalvik). As the Klaatu system contains no Java engine, some additional services (daemons) are required to create a fully functional system.

Service daemon functionality is accessed via binder interfaces. One of several reference UI’s may be used to demonstrate the system:

Example UI (Webkit, OpenGLES or headless
HAL libs/daemons (hw support)
Linux kernel (hw support)

Basic Klaatu architecture

Software build

User Interface Frameworks

Debug and Maintenance