Note: I reread andrea's earlier response and he said my question was best asked on bitcoinj, somehow I had read it as "has been asked". I say this to explain my confusing response: "I'll search through the list for the resource you're referring to".
Private keys are a wallet-internal thing. They are created and used on the fly. If you're trying to organize your own backup based on single private keys you will almost inevitably loose Bitcoins. This is one of the reasons why the app doesn't support key export. Use the backup/restore facility of the app!
As far as I can tell, backup/restore facility won't be helping me if my android device goes down and I don't have another android device to install your app on. If I need to restore to another software solution, it seems that I'll be missing any bitcoins associated with the change addresses for which I can't get a private key from the backup.
In re "inevitably losing bitcoins", I take you at face value when you include the GPL v3 sections 15 and 16 "disclaimer of warranty" and "limitation of liability". Therefore you have nothing to worry about and I'm responsible for my own actions (and my own bitcoins). Nevertheless, I appreciate your friendly warning. I have said this recently in another thread talking with btchris but I think it may bear repeating here: I like to take things apart to see how they work. This is a fundamental part of how I learn. I'm enjoying bitcoin software in this way, looking under the hood and experimenting and learning. I don't keep any serious amounts of bitcoin in the wallets that I play with in this way. This is for my educational purposes only!
This is an open source tool that will extract the HD seed from a wallet backup file:
https://github.com/gurnec/decrypt_bitcoinj_seed (please note that this tool is not endorsed by anyone.... but me -- and it's none too wise to download and run stuff like this from strangers).
Indeed but since it's a python script I can just look through the code myself before running anything (or reimplement it in my own way if any section seems fishy).
EDIT: just began looking more closely at the program, seems it's a gui clicky thing. I may indeed pull out the actual method here and set it up to run on the command line as it's what I'm more comfortable with.
Given the seed, you can use tools such as this one to derive addresses and keys from it:
https://dcpos.github.io/bip39/. Use the "Hive Wallet" derivation path for external addresses/keys. Use "BIP32" with a derivation path of "m/0'/1" for your internal/change addresses/keys.
You can also use the seed with a compatible wallet (MultiBit HD, Hive web or mobile, or breadwallet).
Yes, fun, thanks btchris. I'll be checking this out and it sounds like what I'm looking for. I'm just not really comfortable with using bitcoin addresses for change that I can't in some way get the privkeys of.
And thanks also Andreas, for your wonderfully useful, open-source android wallet. I've been using it happily for several years now.