A long time ago I used Crypto++ for the C++ which worked well for me and has support for many different algorithms.
For android the KeyAgreement class can be used on some JavaVM, it is initialized with a String to choose the algorithm. You could try to instantiate it with "DiffieHellman" and see if you get an instance.
According to Java7 docs, http://docs.oracle.com/javase/7/docs/api/javax/crypto/KeyAgreement.html - "Every implementation of the Java platform is required to support the following standard KeyAgreement algorithm: DiffieHellman"
Test it and see if that includes dalvik or not.