I can't go further without the Binder IPC system. It's an important piece of software in Android because almost all the public application framework relies on it to find and use services (window manager, audio, input methods, ...)
There is a temporary hack to replace the IPC system (for the graphical part only):
I started a port of MIDPath on the iPhone a few weeks ago. It was a bit easier than I expected.
First I had to understand how to use iPhone APIs from Java. Markus Heberlings from the MicroEmulator project helped me a lot in this task. I used Markus's library (straptease) to write a simple backend for MIDPath.
Next I added a directional pad to give a chance to people with large fingers to navigate through complex user interfaces.
Finally, I improved overall performances by compiling native backends for rasterization and SVG rendering.
Currently MIDPath runs on top of JamVM 1.5.1/Classpath and performances are correct for productivity applications. It should be faster when the iPhone backend will use OpenGL ES.
Full support of the MIDP2 widgets (LCDUI)
JSR75/File Connection API
In the video below, you can see a few midlets running on the iPhone: