there are any number of reasons why google might reject your app. put it up there, and let google tell you what they have a problem with. you might have missed a permission, a privacy policy (as stated above), the purpose of your app might violate google's terms. they are beginning to get picky about what they will approve. it's hard for us to know what you may have done. when google tells you, you correct it.
you can't really "protect" your source. you can "obfuscate" some sensitive data of yours (eg, if you happen to have a developer key which must be included when using an sdk - like for google maps. read about it here: https://www.b4x.com/android/forum/threads/code-obfuscation.13773/
compiled code can be converted back to java, so what your app does and how it does it can be determined.