android杀掉指定包名的应用程序

#1. 利用反射调用forceStopPackage来结束进程

1.1 代码如下:

ActivityManager am = (ActivityManager) getSystemService(DemoActivity.this.ACTIVITY_SERVICE);
 Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);  
 forceStopPackage.setAccessible(true);  
 forceStopPackage.invoke(am, 你指定的包名);  

1.2 需要在manifest里加上shareduid定义

android:sharedUserId="android.uid.system"

1.3此外还要在manifest加上下面的权限:

<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"></uses-permission>  

2. 利用在程序中调用adb shell am force-stop <你指定的包名>来结束指定的应用程序

2.1 需要在manifest里加上shareduid定义

android:sharedUserId="android.uid.system"

##2.2 调用代码如下:

/**************************************************************************
    * @说明: 执行adb shell 命令的函数
    * @参数: 无
    * @返回: 无
    * @异常: 抛出RemoteException
    * @作者:
    * @时间: 2015- 12-12
    *************************************************************************/   
    private void doExec(String cmd) {
        List<String> cmds = new ArrayList<String>();
        cmds.add( "sh");
        cmds.add( "-c");
        cmds.add(cmd);
        ProcessBuilder pb = new ProcessBuilder(cmds);
         try {
            Process p = pb.start();
        } catch (IOException e) {
             // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
doExec("am force-stop 你的包名");

3. 使用kill -9 +pid(指定的应用的包名)

3.1 找到指定包名的pid用如下命令:

adb shell
ps | grep <你指定的包名>

3.2 接着执行如下命令:

kill -9 pid<上一步找到的指定包名的pid>

4. 如果结束自己写的程序的进程也可以使用如下方法:

4.1 在程序中直接调用如下方法:

1.finish();
2. 重写 onBackPressed();监听物理按钮back
3. 重写onKeyDown;监听物理按钮back

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值