Как обнаружить присутствие другого приложения? - PullRequest
2 голосов
/ 28 марта 2011

Это теоретическая ситуация:

  • Я пишу приложение для обнаружения присутствия другого на телефоне
  • Путь к классу, имя, имена действий и т. Д. Целевого приложения были рандомизированы, я не могу просто проверить, есть ли оно (оно семантически такое же, но синтаксически уникально ) * +1010 *
  • У меня есть root-доступ к телефону
  • Приложение с открытым исходным кодом, и (кроме имени пакета и имени приложения) я знаю о нем все.
  • Приложение не генерирует вывод журнала.

Я думал о том, как определить, присутствует ли на телефоне другое приложение (при условии, что оно время от времени запускается), возможны ли вообще следующие методы?

  • Периодически проверять наличие определенных классов в памяти
  • Поиск известных фрагментов скомпилированного кода в каждом установленном apk
  • Обнаружение запущенного приложения путем проверки памяти устройства через определенные промежутки времени и поиск шаблонов использования, соответствующих приложению

Существуют ли другие способы обнаружения другого приложения в этих условиях?

1 Ответ

1 голос
/ 28 марта 2011

Использование PackageManager . У него есть метод, возвращающий информацию обо всех приложениях, установленных в системе: getInstalledPackages().

...