How to upload ready HEX file using processing or java?

No, it's just a proof of concerns that compiled sketch can be uploaded via Bluetooth too. Let's leave the question about transport: usb, serial, bluetooth, ethernet - anyway.
The goal is to "talk with bootloader". So the question is "is there smth useful that can be used in java (Android to be exact) to help to do it".

One idea suggested was to use avrdude and it has few drawbacks like arch-dependency. And it's pretty difficult to integrate it into java app as Process.exec() is not supported in Android.
So it will be necessary to change avrdude code to use streams instead of file input and serial output. Does anyone want to do it?

Another idea is to implement stk500 in pure java code by myself.

Any suggestions, anyone?