I need to detect my application is installed from google play or other market, how could I get this information?
The PackageManager
class supplies the getInstallerPackageName method that will tell you the package name of whatever installed the package you specify. Side-loaded apps will not contain a value.
EDIT: Note @mttmllns' answer below regarding the Amazon app store.