Я ищу способ убить приложение Dalvik для Android (активно работает) из ядра linux (используя его идентификатор процесса)?
Как я могу это достичь? есть идеи? Ядро видит pid запущенного приложения?
Как, например, диспетчер процессов/диспетчер задач в Android?
Любые вести?
Отредактировано:
Проблема, которую я ищу, - это способ убить приложение, которое "ведет себя иначе, чем предполагалось".
Это "различное поведение" всегда фиксируется. Подумайте, как отправить сообщение на конкретный порт.
Как я могу убить приложение, оставаясь вне его и все еще имея разрешения убить его? Вот почему мне было интересно, должен ли я включить этот модуль в фреймворк, если не правильно в ядре.
Это вызовет все запущенные процессы и убьет их с указанным pid:
ArrayList<Integer> pids = new ArrayList<Integer>();
ActivityManager manager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> listOfProcesses = manager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo process : listOfProcesses)
{
if (pids.contains(process.pid))
{
// Ends the app
manager.restartPackage(process.processName);
}
}
Для этого вам понадобятся следующие разрешения:
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>