Получение дампа Hprof для других процессов из кода приложения - PullRequest
1 голос
/ 16 июня 2010

В моем приложении у меня есть возможность перехватить дамп hprof. я б

android.os.Debug.dumpHprofData (строковое имя файла)

Первоначально я, хотя данные hprof, сгенерированные описанным выше методом, предназначены для все устройство, что не так. Сгенерированные данные hprof только для моего процесса.

Теперь я пытаюсь сгенерировать данные hprof и для другого процесса. я необходимо получить дамп Hprof для всех запущенных процессов из код приложения.

из оболочки adb я пробовал "kill -10", эта команда сгенерирует файл hprof для соответствующего процесса в папке data / misc.

Теперь проблема в том, что эта команда отлично работает с ADB приглашение оболочки, но я не могу встроить команду в mycode.

Мой код похож на

Runtime.getRuntime (). Exec ("chmod 777 / data / misc") Runtime.getRunTime (). Exec ("kill -10")

Нет исключений, но почему-то это не работает. Такой же код выше захватывает дамп Hprof для моего процесса, когда я даю свой ID процесса.

Я пробовал с "android.os.Process.sendSignal (int pid, android.os.Process.SIGNAL_USR1); "также. Получение той же проблемы. захватить дамп Hprof для моего процесса. Для других процессов это не работа.

Нужно ли нам какое-либо специальное разрешение, чтобы убить другой процесс из наш процесс? Или это сложный вопрос? Можете ли вы предложить некоторые возможный способ получить дамп Hprof для других процессов из приложения код

Спасибо

1 Ответ

0 голосов
/ 16 июня 2010

Должны ли мы иметь какие-либо специальные разрешение убить другой процесс из наш процесс?

Да, как и в любой другой системе Linux.

Не могли бы вы предложить несколько возможных способ получить свалку Hprof для других процессы из кода приложения?

Root ваш телефон.

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

...