"If you are doing something with an .APK file then that means you are using Android which is part of the OpenSource project. If you are using opensource then you should know already that OpenSource means your code is Open for Sourcing. It is free for anyone to use. Blocking your code would Violate the android open source project TOS and your app would be removed and blocked from the market.Play store. You either support OpenSource or you don't. If you don't then go buy an iPhone."
Then why encryption, decryption, password protection etc. come in to picture? you have to secure your sensitive data in the application.
Yes may be my above comment is not proper answer of your comment. but in future it will help to enhance the platform. :( that is what research will go on............ :)
If you are looking to stop extracting the apk on a non rooted phone using application like "Astro File Manager" , then while you publish the application on play store there is a check box which say "Dont allow the application to be copied". Please select the same.
On a rooted phone unfortunately we cannot do any thing to stop this.However following some of these will definitely make it more secure
- Best way is to use Pro guard
- Store critical data in the native code and create a SO file for it.
How ever from Android Version Jelly Bean and on wards, each apk that encrypted using a unique key that is specific to the device before getting downloaded on to you phone.Hence going forward from version's Jelly beans reverse engineering will be quite difficult.