It all depends on the the level of sensitivity of the private/public key pair. I think, storing them in a sharedpreferences is not a bad idea. Your key pair is stored relative to the app directory and has system protection from external access. But, as the word "shared"Preferences implied, your key pair shared among your app components. So, if you need a better protection, consider storing the key pair in the KeyStore class instead . As of now, it is the best solution for key pair protection. It provides you password based key protection.
Update: There is a great article on android keystore and keychain usage here.