Google's Android Platform is hardware agnostic which means that in theory, Android should be able to run on Apple's iPhone just like Windows Vista strolls casually on Apple Macbook hardware.
And there are plenty of reasons why this could/should happen: Android could soon have a wealth of developers coding feverishly for the platform and Apple's iPhone is by far the most desirable smartphone available.
The iPhone uses a variant of the Mach Kernel found in the Mac OS X and runs with the help of a 3D accelerator from PowerVR. It is powered by a proper CPU, shouldered by 128MB memory and 16GB of hard disk space.
According to a 10-month old thread on Google's Android developers Group, this could be done providing that Google encourages Java application on Android so that developers can come up with an Android SDK for Java to iPhone port.
But this doesn't go as far as dumping Apple's iPhone software and substituting it with Google's Android; both share a number of similar features : support for multi touch, built in GPS and accelerometer as well as native support for 3G and web applications.
Linux is already running on the iPhone; this iPhone Linux project for example try to port the full Linux 2.6x kernel to the Apple iPhone and create a system whereby users can easily use Linux on their iPhone, as well as facilitating interoperability between Linux and Darwin/ARM.
But iPhone, unlike the Android platform, is closed by definition and any hacked version is very likely to attract Apple's ire - but if the iPhone JailBreak software is a testament to the hackers' ingenuity, then Android for the iPhone should appear quicker than one might believe.