Java 获取有关所有正在运行的进程的信息

Java 获取有关所有正在运行的进程的信息,java,android,taskmanager,Java,Android,Taskmanager,我想为android制作任务管理器。有人能告诉我如何在android中运行当前运行的所有进程吗 使用下面的代码,您可以获得正在运行的进程列表:- ActivityManager actvityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE ); List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses

我想为android制作任务管理器。有人能告诉我如何在android中运行当前运行的所有进程吗

使用下面的代码,您可以获得正在运行的进程列表:-

ActivityManager actvityManager = (ActivityManager)
this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();

for(RunningAppProcessInfo runningProInfo:procInfos){

        Log.d("Running Processes", "()()"+runningProInfo.processName);
}
要根据PID获取应用程序名称,请使用:-

最后检查应用程序是否为系统应用程序:-


你不能。通过读取
ps,
的输出,您可以获得所有正在运行的进程,但您无法管理它们,除非执行其他程序,已经存在。此问题的可能重复项是menifest?@zaidiqbal
android中提到的任何权限。权限。获取任务
@zaidiqbal然后请签出
getRunningAppProcesses()
返回设备上运行的应用程序进程列表,同时
getRecentTasks(int maxNum,int标志)
返回用户最近启动的任务列表,最新的任务是按顺序启动的第一个任务和之后的较旧任务。此处
maxNum
是列表中要返回的最大条目数。实际返回的数字可能更小,这取决于用户已启动的任务数量和系统可记住的最大数量。请注意,从API 29,常规应用程序无法访问其他进程的列表。
final PackageManager pkgmgr = getApplicationContext().getPackageManager();
ApplicationInfo appinfo;
try {
    appinfo = pkgmgr.getApplicationInfo( this.getPackageName(), 0);
} catch (final NameNotFoundException e) {
    appinfo = null;
}
final String applicationName = (String) (appinfo != null ? pkgmgr.getApplicationLabel(appinfo) : "(unknown)");
public static String getAppNameByPID(Context context, int pid){
    ActivityManager manager 
               = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

    for(RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()){
        if(processInfo.pid == pid){
            return processInfo.processName;
        }
    }
    return "";
}
private boolean isSystemPackage(PackageInfo pkgInfo) {
        return (pkgInfo.applicationInfo.flags & 
                ApplicationInfo.FLAG_SYSTEM) != 0;
    }