Используйте команду Linux Strace внутри программы Java

Я хотел вызвать команду Linux «Strace» для отслеживания системных вызовов для операционной системы anroid. есть ли способ вызвать команду Strace внутри Java-программы для разработки мобильных приложений Andorid.

Я не думаю, что strace обычно поставляется на пользовательские устройства Android. Вы можете попробовать включить свои собственные (или написать свою собственную функциональность с ptrace в JNI), но я не уверен, что это будет хорошо работать даже тогда ...

Snild Dolkow 01.10.2018 19:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
261
1

Ответы 1

Код будет таким:

Process p = Runtime.getRuntime().exec("strace "+ /*rest of the command*/);

Затем вы можете прочитать вывод процесса InputStream. Вы можете получить это с помощью p.getInputStream().

Обратите внимание, что вам, вероятно, будет разрешено отслеживать только ваш собственный процесс. И если вы это сделаете, я бы побеспокоился, что каждое чтение из этого входного потока вызывает новое событие, которое позволяет вам читать, которое вызывает новое событие, которое позволяет вам читать, которое ... и так далее. Этого можно избежать, задав для strace правильные аргументы, чтобы он отфильтровывал чтения.

Snild Dolkow 01.10.2018 19:00

Могу ли я узнать, нужен ли другой способ мониторинга системного вызова для другого приложения Android?

user6751235 08.10.2018 12:40

AFAIK, вам нужно будет создать свой собственный ROM с этим. Я очень сомневаюсь, что вы сможете сделать это даже с root-доступом.

Susmit Agrawal 08.10.2018 16:21

Другие вопросы по теме