I am developing an android app. Before releasing it to the market I had one doubt.
How does an android phone recognise an app?
There are 2 fields in the manifest file
package="test.mobile"
and the
android:label="App Name"
If 2 apps have the same package, but different names, then can I install them both on the same device?
If 2 apps have the same name but different package, then?
pls help.
From http://blog.javia.org/android-package-name/
The Application package is also unique on the Android Market — there
can’t be two apps with the same Application package on the Market.
On the other hand it is possible for two independent developers to
create two different apps with the same Application package. Of course
not both apps can be hosted on the Market — the Market would reject
the second one due to the “unique App package name across Market”
rule.
So conflict over the Application package with unforeseen third-party
apps is possible, and that’s why it is recommended to use the Java
package name convention (“com.mydomain.myapp”) for the Application
package name as it avoids conflict.
I think its safe to assume that two apps with the same name will be fine. :) The app package name is the unique identifier. However, I've also never seen two apps with exactly the same name on the app store, so it may be that Android likes you to differentiate.
If you have the apk then you cannot install it if it has the same namespace. Sometimes during android development I get an error telling me an app with package identifier com.tclayson.whatever is already installed and it instructs me to uninstall. I assume that it also checks the signing keys to see if they match.
However if you have the apk with a unique id and the name is the same this is fine. I've installed apps with the same name side by side before (again during development).
using package name when you see the app url in market you will clearly see the package name in the url.
For example https://market.android.com/details?id=com.skype.raider
where you can see the app id is the package name(com.skype.raider)