如何从Android系统应用程序中杀死其他应用程序

时间:2016-04-17 06:05:34

标签: android linux

我已根植我的手机,并通过授予所需权限将我的应用程序作为系统应用程序。现在,我尝试过使用:

@api_view(['GET'])
def messages(request, event_id):
    JSON_RESPONSE = {STATUS: None, DATA: None, MESSAGE: None}
    messages = Message.objects.filter(event=event_id)
    serializer = GetMessageSerializer(messages, many=True)
    JSON_RESPONSE[STATUS] = SUCCESS
    JSON_RESPONSE[DATA] = serializer.data
    return Response(JSON_RESPONSE, status=status.HTTP_200_OK)

@api_view(['POST'])
def saveMessage(request):
    JSON_RESPONSE = {STATUS: None, DATA: None, MESSAGE: None}
    serializer = SaveMessageSerializer(data=request.data)
    if serializer.is_valid():
        JSON_RESPONSE[STATUS] = SUCCESS
        JSON_RESPONSE[MESSAGE] = "Saved" 
        serializer.save()
        return Response(JSON_RESPONSE, status=status.HTTP_201_CREATED)
    else:
        JSON_RESPONSE[STATUS] = FAIL
        JSON_RESPONSE[MESSAGE] = serializer.errors

通过授予权限:

activityManager.killBackgroundProcesses(packageName);
android.os.Process.killProcess(pid);

我的应用程序仍然无法关闭其他应用程序。我试过从我的应用程序中关闭应用程序的应用程序。上面的代码正在执行而没有任何错误。虽然我的应用程序是一个系统应用程序(我也尝试过我的应用程序作为用户应用程序),但Linux内核仍然忽略了杀死其他应用程序的调用。

我知道从我们自己的应用程序中删除其他应用程序并不好,但我想知道还需要做些什么来杀死其他应用程序。

1 个答案:

答案 0 :(得分:1)

请注意, android.os.Process.killProcess(PID); 允许系统根据其PID请求杀死任何进程,内核仍然会对您实际可以杀死的PID施加标准限制。通常,这意味着只有运行调用者的包/应用程序的进程以及该应用程序创建的任何其他进程;

您可以尝试通过命令行终止第三方应用:

adb shell am force-stop com.my.app.package

当然你也可以从java运行这个命令。