There has been a lot of hype regarding the piracy of Android apps of late, and although much of this is unjustified, piracy is a real problem and one that will probably get worse, not better, as the market grows larger.
Android now provide both a licensing service and a licence verification library to developers, which between them go a long way towards protecting their intellectual property but are not wholly bulletproof. Here's a quick look at the other methods being employed by programmers to keep the pirates at bay.
Reverse engineering an apk file is not an easy task but once its done the original source is laid as bare as the day it was written (minus any comments). Now, programmers are taught, at programming school, to give their functions and variables clearly understood names. This helps them follow their code if they revisit it later. Sadly it also helps the pirates, so developers have taken to obfuscating their code. I know, its a great word, isn't it? Obfuscation is just a way to remove clarity by turning neat little routines like displayMyStats() to something like v2f4he(). Again this won't necessarily stop pirates but it will definitely hack them off.
Another clever trick developers deploy is to add little bits of code to the licence libraries in such a way that it still works but not in the way a pirate might predict. Remember all this code is open source so even bad people can get their hands on it.
For apps that use the web, developers have an almost invulnerable defence available to them in the form of remote web servers. Verification code stored on a server can be almost impossible for the wrong person to get at. Note that I say almost impossible.
Overall Google provide developers with most of the tools they need to protect their work – and so they should – but we can help too, by not buying pirated apps. They only cost pennies after all – its not like console games or PC software – and developers work hard to bring us everything from the downright useful to the sublimely ridiculous and without them our phones would be very dull machines indeed.
If you'd like to know more, check out the Android Developer Blog which is not as daunting as it might sound.