Android:杀戮(全部)前景运行App

时间:2011-07-18 13:04:48

标签: android c linux-kernel

我正在寻找一种方法从linux内核中杀死前景Dalvik App(主动运行)(使用它的进程ID)?

我怎样才能做到这一点?有任何想法吗?内核是否看到正在运行的应用程序的pid?

例如。 Android中的进程管理器/任务管理器实现了这个目标吗?

任何线索?

编辑:

我正在研究的问题是杀死“行为与预期不同”的应用程序。

这种“不同的行为”总是固定不变的。可以把它想象成向特定端口发送消息。

如何通过停留在应用程序之外并仍然拥有杀死它的权限来杀死它?这就是为什么我想知道如果不在内核中,我是否必须让这个模块位于框架上。

1 个答案:

答案 0 :(得分:3)

这将获取所有正在运行的进程并杀死具有指定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"/>