安卓获取当前正在运行进程信息以及所有第三方正在运行进程信息

1. 获取当前应用进程信息:

ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

for (ActivityManager.RunningAppProcessInfo info : manager.getRunningAppProcesses()){
            Log.e("ProcessUtil", "processName=" + info.processName +
                    " uid=" + info.uid + " pid=" + info.pid
                    + " pkgList=" + Arrays.toString(info.pkgList));
        }

说明

至安卓5.0(api-21)开始,getRunningAppProcesses()就只能获取应用自己进程信息

可通过获取 pkgList 信息来获取当前应用所运行的所有包名.

2.获取所有第三方正在运行的进程信息:

PackageManager pm = context.getPackageManager();
for (PackageInfo lp : pm.getInstalledPackages(0)){

     if (((ApplicationInfo.FLAG_SYSTEM & lp.applicationInfo.flags) == 0)
            && ((ApplicationInfo.FLAG_UPDATED_SYSTEM_APP & lp.applicationInfo.flags) == 0)
            && ((ApplicationInfo.FLAG_STOPPED & lp.applicationInfo.flags) == 0)) {

                // 第三方正在运行的 app 进程信息  更多信息查询 PackageInfo 类
                Log.e("ProcessUtil", "packageName=" + lp.packageName 
                  + "  processName=" + lp.applicationInfo.processName);
            }
        }

说明:

a. (ApplicationInfo.FLAG_SYSTEM & lp.applicationInfo.flags):值为 1 则为系统应用, 0 则为第三方应用

b.  (ApplicationInfo.FLAG_UPDATED_SYSTEM_APP & lp.applicationInfo.flags): 值为 1 则为系统经更新后变为第三方的应用, 0 则为其他应用

c.  (ApplicationInfo.FLAG_STOPPED & lp.applicationInfo.flags): 值为 1 则此应用程序的包处于停止状态, 0 则此应用程序处于运行状态

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fly_caizh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值