Here's a link for you to check out answering a very similar question.
How can I use different certificates on specific connections?
The simple answer is: There's nothing wrong with giving the certificate to another individual so they can include this in their list of "trusted" entities when opening secure connections.
Anytime a client connects to a server via SSL or TLS, the client must look at the server's certificate in order to decide if it trusts it or not (based on who signed it).
As far as cracking, any certificate is vulnerable to that, but you increase the length of the cert (to like 2048 bits or 4096 bits) in order to make cracking take so long that it is no longer beneficial to even try.
What you dont want to do is give the Android developer your private key. The flow is generally:
- Private key uniquely identifies your system and should never be shared
- Private key is used to create certificate signing request (CSR)
- CSR is sent to a trusted certification authority (CA) (in the case if self-signed, you assume this role yourself)
- CA sends back a trusted, signed certificate, based on your private key/CSR