Package Manager in Android

learner picture learner · Dec 1, 2011 · Viewed 37.2k times · Source

I am trying to understand the Android PackageManager (functionality and uses) and the new improvements in Ice Cream Sandwich for PackageManager over previous versions.

I have seen the following links and some old threads but still would appreciate if someone can provide me with more references or an explanation as very little is available on the internet.

PackageManager Android docs

Wikipedia - Package Manager

EDIT:

I wanted to broaden my understanding about PackageManager in android.

  1. How it works with APK's (Set of checks and steps that it follows for installation, updating and deletion).

  2. Android Play market acts as a repository for data. The interaction of PackageManager with market for downloading and updating.

  3. Is the installation process for 3rd party apps different to Play market apps, when using PackageManager?

There is very little documentation available on android developer site for PackageManager and hence your help is really appreciated.

Thanks :)

Answer

Nikolay Elenkov picture Nikolay Elenkov · Dec 1, 2011

This is way to general. Generally, PackageManager provides methods for querying and manipulating installed packages and related permissions, etc. Some methods are only allowed to the system user. Changes to API in ICS are here.

Those are questions about the actual implementation, and Stack Overflow may not be the best place for those. In general, you should read the Android source to get the full picture. Briefly:

  1. Installed packages info is stored in an XML file: /data/system/packages.xml. PackageManager parses and modifies this when installing or removing packages.
  2. The way the Android Market works is generally undisclosed.
  3. See 2. Android does keep track how a package was installed, so the Market app can tell which apps were installed from the Market and check for updates.