Список установленных программ Андроид

В предыдущей статье был рассмотрен вопрос, как отрыть приложение Google Play на Android-устройстве. Для того, чтобы понимать, что уже установлено, (какие программы и приложения есть на устройстве), хорошо бы знать, есть ли такая возможность: посмотреть список установленных программ и приложений, а если есть, то как его открыть. Именно о том, как в Google Play посмотреть список установленных программ и приложений и будет рассказано ниже в этой статье.

Как открыть меню Google Play

Для того, чтобы посмотреть список установленных программ и приложений, нужно начать с того, что в Google Play есть своё меню. И ссылка на это меню находится в начале поисковой строки (как будет показано на рисунке ниже). Эта ссылка на меню выглядит как три горизонтальные линии, расположенные одна под другой и вписанные в квадрат. Для того, чтобы открыть меню Google Play нужно кликнуть по этой ссылке:

Как открыть меню Google Play

Как получить список всех установленных приложений на Android. О платных обзорах приложений

Меню Google Play

Если кликнуть по иконке, описанной выше, то откроется меню Google Play. Нас интересует список программ и приложений, установленных на нашем устройстве. Поэтому нам нужно выбрать пункт «Мои приложения и игры». Для того, чтобы попасть в этот раздел Google Play, нужно кликнуть по этому пункту меню:

Меню Google Play

«Мои приложения и игры» в Google Play

Как уже можно догадаться раздел «Мои приложения и игры» Google Play содержит интересующий нас список установленных на устройство программ и приложений. У кого-то это может быть совсем короткий список, у кого-то очень длинный (всё зависит от интересов владельца и доступной для установки приложений памяти устройства). Страница «Мои приложения и игры» в Google Play со списком установленных программ и приложений выглядит как-то так =)

«Мои приложения и игры» в Google Play

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Выберите, то, чем пользуетесь чаще всего:

Источник: mb4.ru

Получение списка приложений в Android

Android Tools

Android SDK предоставляет много средств для работы с системой. В том числе он позволяет получать список приложений, которые установлены на устройстве. Это может быть полезно, когда нужно получить сведения о сторонних приложениях (размер APK, путь до приложения, имя пакета и т.д.). Например, в наших приложениях получение списка, содержащего сторонние приложения, играет большую роль: в GreenBro с помощью этого списка выводятся сведения о приложениях, а также выполняются различные действия.

Читайте также:
Пример программы с оператором for

В Менеджере системных приложений и APK Extractor же список приложений необходим, чтобы удалять приложения и извлекать APK из приложений соответственно.

В этой статье мы рассмотрим, как можно получать список приложений, установленных на устройстве, а также как происходит установка приложений на устройство.

Класс PackageManager

PackageManager предоставляет API, который фактически управляет установкой, удалением и обновлением приложений. Когда мы устанавливаем файл APK, PackageManager анализирует этот APK и выводит результат.

Получить экземпляр класса PackageManager можно с помощью метода getPackageManager(). PackageManager предоставляет методы для запросов к установленным пакетам и соответствующим разрешениям.

Где хранятся файлы APK на Android?

В зависимости от типа данных, на Androiid файлы могут храниться в следующих местах:

  • Предустановленные и системные приложения (Камера, Браузер и т.д.) хранятся в /system/app/
  • Установленные пользователем приложения хранятся в /data/app/
  • PackageManager создаёт каталог /data/data// для хранения базы данных, файлов с предпочтениями, нативных библиотек и кеша.

Как PackageManager хранит информацию о приложении?

Менеджер пакетов хранит информацию о приложении в трёх файлах, расположенных в /data/system.

packages.xml

Этот XML-файл содержит список разрешений и пакетыприложения. Он хранит две вещи: разрешения и пакет. Например:

Разрешения хранятся в теге . Каждое разрешение имеет три атрибута: name, package и protection. Атрибут name это имя разрешения, которое мы используем в AndroidManifest.xml. Атрибут package указывает на пакет, которому принадлежит разрешение, в большинстве случаев это «android». Атрибут protection указывает на уровень безопасности.

Тег содержит 10 атрибутов и несколько подтегов.

Атрибут Описание
name Имя пакета
codePath Путь установки APK
nativeLibraryPath Нативная библиотека, расположенная по умолчанию в /data/data//lib
flag Хранит флаги ApplicationInfo
ft Время в шестнадцатtричном формате
lt Время установки в шестнадцатеричном формате
ut Время последнего обновления в шестнадцатеричном формате
version Код версии из AndroidManifest.xml
sharedUserId Идентификатор пользователя Linux, который будет использоваться совместно с другими приложениями.
userId Идентификатор пользователя Linux

Подтеги же здесь следующие:

  • представляет собой информацию о сигнатуре, атрибут count — количество тегов .
  • это ключ сертификата, атрибут index представляет собой глобальный индекс сертификата.
  • содержат разрешения, которые разработчик установил в AndroidManifest.xml

packages.list

Это простой текстовый файл, содержащий имя пакета, идентификатор пользователя, флаги и каталог data.

com.android.launcher 10013 0 /data/data/com.android.launcher com.android.quicksearchbox 10033 0 /data/data/com.android.quicksearchbox com.android.contacts 10001 0 /data/data/com.android.contacts com.android.inputmethod.latin 10006 0 /data/data/com.android.inputmethod.latin

package-stopped.xml

Этот файл содержит список пакетов, которые были остановлены. Остановленные приложения не могут принимать широковещательные сообщения.

Читайте также:
Как написать программу факториал на питоне

Получаем список приложений

Рассмотрим получение списка установленных приложений на примере GreenBro.

При запуске приложения запускается AsyncTask, внутри которого получаем экземпляр PackageManager и затем копируем в список List все данные об установленных приложениях.

final PackageManager pm = context.getPackageManager(); List apps = new ArrayList<>(); List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

Метод getInstalledApplications() принимает в качестве параметра флаг GET_META_DATA, который определяет, что нам нужные метаданные каждого пакета.

Результатом является список объектов ApplicationInfo для каждого установленного приложения. Класс ApplicationInfo предоставляет подробную информацию о пакете, собранную из тега в AndroidManifest.xml, нам оттуда нужны лишь самые важные данные.

Поэтому в цикле проверяем каждый объект из полученного списка и записывать данные в собственный класс AppInfo, чтобы затем использовать в основном потоке.

for (ApplicationInfo appInfo : packages) < PackageInfo packageInfo; try < packageInfo = pm.getPackageInfo(appInfo.packageName, 0); File file = new File(appInfo.publicSourceDir); String size = formatFileSize(context, file.length()); AppInfo newApp = new AppInfo(applicationLabel(context, appInfo), appInfo.packageName, appInfo.sourceDir, appInfo.publicSourceDir, packageInfo.versionName, packageInfo.versionCode, isSystemPackage(packageInfo), size, file.length(), appInfo.dataDir, appInfo.nativeLibraryDir, file.lastModified(), packageInfo.firstInstallTime, packageInfo.lastUpdateTime, appInfo.enabled); apps.add(newApp); publishProgress(newApp); >catch (PackageManager.NameNotFoundException e) < e.printStackTrace(); >>

Здесь с помощью метода getPackageInfo() класса PackageManager мы получаем общую информацию о приложении по заданному имени пакета. После эта информация объединяется с информацией, полученной от getInstalledApplications() и сохраняется в объекте AppInfo со следующими полями:

  • title — название приложения
  • packageName — имя пакета
  • sourceDir — полный путь до APK приложения
  • publicSourceDir — путь до общедоступных частей sourceDir
  • versionName — имя версии
  • isSystem — определяет, является ли приложение системным
  • size — размер приложения (в удобной форме)
  • longSize — размер приложения в long
  • dataDir — полный путь к каталогу data
  • nativeLibraryDir — путь до нативных библиотек
  • modified — дата последнего изменения
  • firstInstallTime — дата установки
  • lastUpdateTime — дата последнего обновления
  • enabled — определяет, включено ли приложение

Чтобы узнать название приложения, можно также воспользоваться PackageManager, как показано ниже.

private String applicationLabel(Context con, ApplicationInfo packageInfo)

Проверка же на то, является ли приложение системным, тоже достаточно проста и показана ниже.

private boolean isSystemPackage(PackageInfo pkgInfo)

В конце работы AsyncTask возвращает результат обратно в основной поток. Вот и всё, мы загрузили себе список всех установленных на устройстве приложений и можем продолжить с ним работу.

Раздел: Кодинг Метки: Android, aplication, apps, info, manager, permissions

Получение списка приложений в Android : 4 комментария

  1. Tim 03.08.2018 Подскажите пожалуйста, в конструкции:
    final PackageManager pm = context.getPackageManager();
    List apps = new ArrayList();
    List packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
    Чем является «context»?
  1. Владимир 03.08.2018 Это локальная переменная, Вы можете передавать контекст из активити или фрагмента
Читайте также:
Программа для автоматической настройки монитора

Источник: android-tools.ru

Как получить список всех установленных приложений на Android

В этом уроке узнаем, как получить список всех установленных приложений на Android. Но начать я его хочу с небольшого обзора полезного приложения – оно называется Hexlock, и позволяет блокировать доступ к выбранным приложениям на вашем устройстве, с помощью пароля или графического ключа. Я уже слышу ваши неодобрительные возгласы, но не спешите уходить – по ходу обзора расскажу вам одну историю, с этим приложением связанную.

Исходный код примера из урока – под видео:

Итак, получение списка всех android приложений, установленных на устройстве полезен, когда вы разрабатываете приложение для обмена apk файлов с другими устройствами, или когда вы разрабатываете приложение app локер, наподобие того, который я показал вам в начале урока.

Взгляните на код простого приложения, которое позволяет это делать. Макет главного сласса содержит список ListView, второй макет содержит разметку элемента списка. Он используется адаптером для представления сведения о приложении. Он показывает значок приложения, название приложения и пакет приложения.

Класс MainActivity наследуется от ListActivity. Это главный класс, который используется для инициализации списка установленных приложений.

Класс PackageManager используется для получения информации о пакетах приложений, которые в настоящее время установлены на устройстве. Получить экземпляр класса PackageManager можно методом getPackageManager(). PackageManager предоставляет методы для выполнения запросов об установленных пакетах и связанных разрешениях, и т.д. В этом примере мы получаем список установленных приложений в Android.

Так как получение списка приложений от PackageManager является продолжительной задачей, это делается в AsyncTask.

Метод packageManager.getInstalledApplications() возвращает список всех пакетов приложений, которые установлены на устройстве. Флаг GET_META_DATA позволяет извлекать любые мета данные, связанные с разрешениями. Если мы установим флаг GET_UNINSTALLED_PACKAGES, будет возвращен список всех приложений, включая те, которые удалены с признаком DONT_DELETE_DATA , то есть частично удалены, и после них остались папки данных.

Кроме того этот класс использует listadapter – объект пользовательского класса AppAdapter для ListView. Он унаследуется от ArrayAdapter.

Здесь мы объявляем список, контекст и packageManager.

В методе getView строим элемент списка. Получаем LayoutInflater методом контекста getSystemService(Class) для наполнения макета.

Затем в главном классе в методе onPostExecute выводим список. Метод setListAdapter предоставляет курсор для представления списка. На вход ему идет listadapter.

Вот так работает этот небольшой пример, выводится список всех установленных приложений, отображаются иконка, название приложения, а также имя пакета.

device-2015-11-12-171536

Приложение Applications Info: ссылка

Источник: www.fandroid.info

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru