I've been doing a little work on the Android XMPP client I mentioned. I'm using asmack for the XMPP bits. All of the interaction with the XMPP server happens in a service. The UI binds to the service using AIDL to get roster updates, send messages, etc. So far I've got a working roster and the ability to start chat with a specific user and send them messages. Receiving messages will hopefully be done sometime tonight.

It's all very unpolished right now, of course. Server info is hard coded for google chat, username and password can be entered but cannot be saved, it's just buttons and text boxes on a black screen, etc. That's all easy enough to add after the more complicated bits are working.