Lawrence D'Oliveiro gives an introduction to Android development:
-
Using Android: UI conventions, vendor customization
-
Structure of Android: Linux kernel, use of processes and user IDs, Toolbox Shell
-
Programming Android: app (APK) structure, Java & Dalvik, Bionic runtime, privilege model, SDK, NDK (for C/C++ code), platform APIs, OpenGL-ES
-
Hacking Android: AOSP, alternative ROMs