我正在寻找一种方法从linux内核中杀死前景Dalvik App(主动运行)(使用它的进程ID)?
我怎样才能做到这一点?有任何想法吗?内核是否看到正在运行的应用程序的pid?
例如。 Android中的进程管理器/任务管理器实现了这个目标吗?
任何线索?
编辑:
我正在研究的问题是杀死“行为与预期不同”的应用程序。
这种“不同的行为”总是固定不变的。可以把它想象成向特定端口发送消息。
如何通过停留在应用程序之外并仍然拥有杀死它的权限来杀死它?这就是为什么我想知道如果不在内核中,我是否必须让这个模块位于框架上。
答案 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"/>