Как получить множество информации об установленном APK при помощи PackageManager?
С первой версии Android SDK у нас есть замечательный инструмент — класс PackageManager. Его метод getInstalledApplications вернет список установленных на устройстве приложений (ApplicationInfo), как системных, так и пользовательских. Зная установленные на устройстве приложения, можно оптимизировать рекламу. Например, не показывать рекламу тех, что уже есть. Или же можно просто собирать статистику по пользователям. Есть мнение, что кто-то за эту статистику платит, но мне таких пока не встречалось.
Класс ApplicationInfo содержит много полезной информации (имя пакета, путь до APK-файла, включено или отключено приложение и так далее). Но если ее оказалось мало, то вызови метод getPackageInfo() для нужного имени пакета приложения, и получишь еще больше данных в классе PackageInfo (версия, время установки, время последнего обновления и прочее).