Android's PackageManager class has currentToCanonicalPackageNames() and canonicalToCurrentPackageNames() methods. What exactly is canonical package name? Where is it used (what's its purpose)? When does it differ from a current package name?
For example, on my Nexus S the current package name for browser app is "com.google.android.browser", and its canonical name is the same "com.google.android.browser". For some other applications I've checked I also get same current and canonical package names. Neither developer.android.com, nor source code gives me an explanation of what exactly is canonical package name. Hope this helps to better understand what I'm asking above.