To facilitate our use of Android to teach OS, we created
an Android virtual lab where students learn about oper-
ating systems using both emulated and physical mobile de-
vices.We manage the complexity of device cross-compilation
and production kernel development tools by providing a vir-
tual appliance pre-congured with all the software tools nec-
essary to develop an Android Linux kernel. A virtual ap-
pliance can be readily deployed, downloaded and used by
students without the installation or conguration necessary
to deploy Android development tools natively on their per-
sonal computers. Additionally, our Android virtual lab uses
a distributed version control system and live demonstra-
tion infrastructure to develop, distribute, submit and grade
homework projects. Our use of the Android emulator in con-
613
junction with this infrastructure allows remote and distance
learning students to take full advantage of our Android vir-
tual lab, while also facilitating close collaboration with on-
campus students using physical mobile devices.