Because @Pearson covered almost all things except one thing that I like to cover.
On Android, you cannot install an unsigned application in any way on your developer's phone / emulator. You must sign your application either by debugging or by your own certificate.
After installing the Android SDK, it generates a “debug” signing certificate for you in a key store called debug.keystore. The debug certificate is valid for 365 days only.
So, when you install the application through any Eclipse / Android Studio IDE, the IDE also signs the application using a debug certificate.
Update
My question is why we need to use a signed apk. we cannot post unsigned apk. what's wrong with it?
You need to sign the application with your own keystore certificate, since you cannot publish the application signed with the debug certificate, because
One reason is that the debug certificate expires within a year, after which you cannot release the update of your application. Your debugging certificate has expired, so why Google’s reason doesn’t allow is another serious security issue.
The second reason is that the Android system uses the certificate as a means of identifying the author of the application and establishing trust between applications.
Ajay s
source share