美文网首页Android
Android获取进程名

Android获取进程名

作者: 眼角的伤痕 | 来源:发表于2019-02-11 15:41 被阅读1次

由于项目中涉及到多进程的原因,需要判断当前所属的进程,因此需要获取进程名,在网上搜罗了好多种获取进程名的方法,试了一下有以下两种能够正确获取当前进程的进程名:

  • 利用Linux系统获取进程名
 public static String getCurrentProcessName() {
        FileInputStream in = null;
        try {
            String fn = "/proc/self/cmdline";
            in = new FileInputStream(fn);
            byte[] buffer = new byte[256];
            int len = 0;
            int b;
            while ((b = in.read()) > 0 && len < buffer.length) {
                buffer[len++] = (byte) b;
            }
            if (len > 0) {
                String s = new String(buffer, 0, len, "UTF-8");
                return s;
            }
        } catch (Throwable e) {
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }
  • 利用Android系统获取进程名
   public static String getProcessName(Context cxt) {
        int pid = android.os.Process.myPid();
        ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
        if (runningApps == null) {
            return null;
        }
        for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) {
            if (procInfo.pid == pid) {
                return procInfo.processName;
            }
        }
        return null;
    }

以上这两种方法能够正确获取当前进程名,还有一种通过反射获取进程名的方法,我试了一下,没有成功获取进程名。

   public static String getProcessName(Context cxt) {
        int pid = android.os.Process.myPid();
        ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
        if (runningApps == null) {
            return null;
        }
        for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) {
            if (procInfo.pid == pid) {
                return procInfo.processName;
            }
        }
        return null;
    }

相关文章

  • Android获取进程名

    由于项目中涉及到多进程的原因,需要判断当前所属的进程,因此需要获取进程名,在网上搜罗了好多种获取进程名的方法,试了...

  • android中获取进程名

    最近项目中需要获取android应用的进程名,这种知道是获取系统服务,但具体是哪个系统服务却不记得了。查了...

  • android获取processId

    获取当前进程id 根据包名获取进程id

  • 获取前台进程方法

    相关链接 Android获取前台进程

  • 获取进程名并杀死进程

    1. 通过进程名字得到进程id。 pid_t getProcessPidbyName(char *name) { ...

  • shell脚本

    交互式 Bash Shell 获取进程 pid 在已知进程名(name)的前提下,交互式 Shell 获取进程 p...

  • IPC、Binder机制

    开启进程的方式:使用 android:process 。进程名以":"开头的进程属于当前应用的私有进程。 多进程会...

  • 2018-01-24获得当前执行文件路径

    //获取当前进程的完整路径,包含文件名(进程名)。 string str = this.GetType().Ass...

  • APP性能测试-流量

    获取流量数据的方法: 1、先获取进程ID:adb shell ps | grep com.android.brow...

  • 图解 | 一图摸清Android系统服务

    一图摸清Android系统服务的获取和注册流程~ 大纲: 获取系统服务 注册系统服务独立进程的服务非独立进程的服务...

网友评论

    本文标题:Android获取进程名

    本文链接:https://www.haomeiwen.com/subject/nryqeqtx.html