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




Код будет таким:
Process p = Runtime.getRuntime().exec("strace "+ /*rest of the command*/);
Затем вы можете прочитать вывод процесса InputStream. Вы можете получить это с помощью p.getInputStream().
Обратите внимание, что вам, вероятно, будет разрешено отслеживать только ваш собственный процесс. И если вы это сделаете, я бы побеспокоился, что каждое чтение из этого входного потока вызывает новое событие, которое позволяет вам читать, которое вызывает новое событие, которое позволяет вам читать, которое ... и так далее. Этого можно избежать, задав для strace правильные аргументы, чтобы он отфильтровывал чтения.
Могу ли я узнать, нужен ли другой способ мониторинга системного вызова для другого приложения Android?
AFAIK, вам нужно будет создать свой собственный ROM с этим. Я очень сомневаюсь, что вы сможете сделать это даже с root-доступом.
Я не думаю, что
straceобычно поставляется на пользовательские устройства Android. Вы можете попробовать включить свои собственные (или написать свою собственную функциональность сptraceв JNI), но я не уверен, что это будет хорошо работать даже тогда ...