Android : 通过pid获取app包名

2023-11-14

方法一:

这个方法用在app主线程的activity或service里,因为要有context获取am。

    private String getAppName(int pid)
    {
        String pkgName = "";
        ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
        //ActivityManager am = (ActivityManager)ServiceManager.getService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> mRunningProcess = am.getRunningAppProcesses();
        for (ActivityManager.RunningAppProcessInfo amProcess : mRunningProcess)
        {
            if(amProcess.pid == pid)
            {
         
              pkgName = amProcess.processName;
              break;
            }
        }
     
        return pkgName;
    }

 

方法二:

 这个方法可以用在主线程或任意子线程,即使没有context的线程也可以用,但app要用读取文件权限。

private String getAppName(int pid)                                                                                               
    {                                                                                                                                
        String pkgName = "";                                                                                                         
        File f = null;
        f = new File("/proc/"+pid+"/cmdline"); 
        if(pid != 0 && f != null && f.exists())
        {    
            BufferedReader br = null;         
            try {             
                    br = new BufferedReader(new FileReader("/proc/"+pid+"/cmdline"), 256);         
                    String line;              
                    if ((line = br.readLine()) != null) {                
                       pkgName = line.trim(); 
                    Log.i(TAG,"getAppName() ="+pkgName);                   
                }         
            } catch (FileNotFoundException e) {             
               e.printStackTrace();          
            } catch (IOException e) {             
               e.printStackTrace();          
            } finally {             
            if (br != null) {                 
                try {                     
                       br.close();                 
                    } catch (IOException e) {                     
                        e.printStackTrace();                  
                   }             
                }         
           }
       
        }        
                                                                                                                                    
        return pkgName;                                                                                                          
    }  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android : 通过pid获取app包名 的相关文章

  • 深入浅出PID控制算法(三)————增量式与位置式PID算法的C语言实现与电机控制经验总结

    前文对PID算法离散化和增量式PID算法原理进行来探索 之后又使用Matlab进行了仿真实验 对PID三个参数又有了更深入的认识 接下来我们来使用C语言进行PID算法实现 并且结合控制电机的项目来深入学习 1 PID 算法C 语言原代码 先
  • Eclipse ADT中的logcat不显示解决方法

    1 在Eclipse界面中找到DDMS 然后找到device选项卡 在这个选项卡中选择reset adb 如果不行尝试方法2 2 不用关闭eclipse和模拟器 在Android SDK的tools目录下有个 ddms bat 批处理文件
  • RxPermissions简单使用

    RxPermissions简单使用 描述 随着社会的发展人们也开始重视对隐私的保护 谷歌也在Android6 0 sdk 23 增加了动态权限申请来保护广大用户的隐私 使我们开发者实现起来会很繁琐 代码量也会增多 但是对于程序员来说永远都是
  • Android中 @id 与 @+id 区别

    Android 中的组件需要用一个int 类型的值来表示 这个值也就是组件标签中的id 属性值 id 属性只能接受资源类型的值 也就是必须以 开头的值 例如 id abc id xyz等 如果在 后面使用 表示当修改完某个布局文件并保存后
  • 如何获取生成的 java 进程的 PID

    我正在编写几个 java 程序 在完成我想做的任何事情后 需要在单独的 JVM 中杀死 清理 为此 我需要获取我正在创建的 java 进程的 PID jps l可在 Windows 和 Unix 上运行 您可以使用 java 程序调用此命令
  • 将手柄传递到管道中

    说我有 node foo js node bar js 有没有办法将 foo 的标准输入句柄传递给 bar js 我有一个罕见的情况 我想在管道中进行向后通信 至少我知道我可以发送node bar js的pidnode foo js 鉴于
  • C++ 在 Windows 中发送简单信号

    Windows 上是否有相当于kill 的函数 int kill pid t pid int sig 如果没有 是否可以根据进程的 PID 来测试进程是否正在运行 Thanks Windows 没有 Unix 意义上的信号 您可以使用Ope
  • 有没有办法确定 Linux PID 是否暂停?

    我有一个 python 脚本 它使用 SIGSTOP 和 SIGCONT 命令与 os kill 来暂停或恢复进程 有没有办法判断相关PID是处于暂停状态还是恢复状态 您可以从进程的 proc 目录 proc
  • 子进程和父进程ID

    只是与子进程块中的父 pid 值混淆了 我的程序如下 int main int argc char argv pid t pid pid fork if pid 1 perror fork failure exit EXIT FAILURE
  • 如何确定 Linux 上是否使用 Java 或 JRuby 运行不同的进程 ID?

    我需要查看给定的进程 ID 是否正在运行 并且它必须在 Java 或 JRuby 中工作 最好是 Ruby 解决方案 它可能取决于 Linux 系统 特别是 Debian 和 或 Ubuntu 我已经有了我要找的PID 只需要看看它当前是否
  • IIS应用程序池PID

    有谁熟悉获取与进程 ID 关联的应用程序池的方法吗 我正在使用 Win32 Process 查询 W3WP 服务并返回 PID 现在我正在尝试获取与其关联的应用程序池 在 Windows Server 2008 上 情况发生了变化 in s
  • 从命令行启动进程时如何捕获进程的 PID?

    有没有办法纯粹在 bat 文件中执行此操作 目的是推出iexplore exe 然后在完成时杀死该实例 这是我使用的 echo off rem there is a tab in the file at the end of the lin
  • 有没有办法链接linux的线程TID和pthread_t“线程ID”

    在 Linux 上 线程由pthread t或 TID 我正在寻找这两种线程 id 之间的桥梁 given a pthread t我可以得到它吗TID 显然 https stackoverflow com questions 558469
  • fork()返回0,但是子进程getpid()!=0。为什么?

    这是测试 fork 系统调用的 C 代码 include
  • 如何查看linux中特定进程每5秒的内存消耗情况

    我只是想知道如何找到特定进程在特定时间 比如5秒 的内存消耗 我是linux新手 因此 详细的步骤将不胜感激 Use top p PID其中 PID 是进程 ID 应显示有关进程的信息 包括使用的系统内存百分比 类型d以及一个以秒为单位的整
  • PID和TID的区别

    PID和TID有什么区别 标准答案是 PID 用于进程 而 TID 用于线程 然而 我发现有些命令可以互换使用它们 例如 htop有一个 PID 列 其中显示同一进程的线程的 PID 具有不同的值 那么PID什么时候代表线程或进程呢 这很复
  • mysql.server 启动时出现 PID 错误?

    我刚刚尝试使用自制程序 在 Mac OS X 10 6 上 安装 MySQL 但我在第一个障碍时遇到了问题 当尝试手动启动服务器 mysql server start 时 出现以下错误 ERROR Manager of pid file q
  • 如何通过VBA获取当前Excel实例的进程ID,而不使用标题?

    如何获取运行 VBA 代码的当前 Excel 实例的进程 ID 我不想通过标题中的名称来请求它 当我有两个或多个具有相同标题的 Excel 实例时 这会导致问题 您可以使用此方法来获取当前进程ID Declare Function GetC
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 如何从 Ruby 检查具有特定 pid 的进程是否正在运行?

    如果有多种方法 请列出 我只知道一个 但我想知道是否有一种更干净的 Ruby 方式 之间的区别Process getpgid and Process kill方法似乎是当 pid 存在但由另一个用户拥有时发生的情况 Process getp

随机推荐

  • 数据采集专家----4通道AD采集子卡推荐

    FMC136是一款4通道250MHz采样率16位AD采集FMC子卡 符合VITA57规范 可以作为一个理想的IO模块耦合至FPGA前端 4通道AD通过高带宽的FMC连接器 HPC 连接至FPGA从而大大降低了系统信号延迟 该板卡支持板上可编
  • Unity_Shader高级篇_16_Unity Shader入门精要_减少计算复杂度

    16 8 减少计算复杂度 16 8 1 Shader的LOD技术 和16 5 2提到的模型的LOD技术类似 Shader的LOD技术可以控制使用的Shader等级 它的原理是 只有Shader的LOD值小于某个设定的值 这个Shader才会
  • vue rsa对密码加密(jsencrypt)

    首先用npm命令下载jsencrypt npm install jsencrypt dep 在vue文件中引入jsencrypt import JSEncrypt from jsencrypt 对password加密 this encryp
  • vcglib 说明(转载)

    先来看看 VCGlib 能做什么 最基本的 它提供 Mesh triangular mesh tetrahedralmesh 三角网格或四面体网格 数据结构的定义 该数据结构支持对 Mesh数据的快速访问 拓扑信息 空间查询等 以及高效执行
  • Linux编译器-gcc 的使用以及 make/Makefile的用法

    文章目录 一 gcc 编译器 1 gcc 命令格式 gcc选项 2 完成过程 2 1预处理 2 2 编译 生成汇编 2 3 汇编 生成机器可识别代码 2 4 链接 生成可执行文件 二 make Makefile 1 简单介绍 2 示例代码
  • Scala高阶函数

    匿名函数 而在大量的spark中大都用的是匿名函数 不为函数命名 然后将其复制个一个变量 如 匿名函数格式 Val 变量名 参数 类型 gt 函数体 高阶函数 函数参数 1 将函数做参数传给另一个函数 如 首先我们定义了一个函数BigDat
  • 学习记录——matlab批量读取与存储

    要求文件名按照一定规律排列 如 代码 clc close all clear 设置目标文件夹的路径 folder C Users 26748 Desktop two saveFolder C Users 26748 Desktop two0
  • 手撕机器学习算法--一步步推导-------NFL(没有免费午餐定理)

    文章目录 前言 一 NFL是什么 二 表现形式 三 介绍 四 手动推导 前言 其实机器学习也好 深度学习也罢 在我看来 代码编程终究是不重要的 因为现成的库 其数学原理 其公式推导才是我们需要理解的地方 一 NFL是什么 没有免费的午餐定理
  • BLAS+BLACS+LAPACK+SCALAPACK安装

    最快的安装是用下面的scalapack installer 它将自动联网安装SCALAPACK以及所需要的BLAS BLACS LAPACK 下面是简短说明 INTRODUCTION The ScaLAPACK installer is a
  • 人脸识别打卡项目(4)

    目录 服务器打卡函数实现 签到验证检测 百度人脸识别复用 总结 服务器打卡函数实现 打卡函数的主要工作流程如图所示 当启动开始签到后 调用打卡签到响应函数 启动人脸采集设 备 然后与百度人脸库注册的人脸进行对比 如果用户存在 返回用户姓名
  • MATLAB之绘图基础

    第7部分 MATLAB的绘图基础 1 二维图形绘制 1 plot 函数 格式 plot x plot x y 图形绘制函数plot x 的格式说明 x内容 说明 实向量y 以y元素下标序号i为横坐标 元素y为纵坐标 绘制 I y 的有序集合
  • paddle在Edgeboard与安卓上部署

    Edgboard PaddleLite进行推理 支持Paddle模型的推理部署 不需要模型转化过程 支持c 和hpyton的接口 提供ZU3 ZU5 ZU9 推荐使用Paddlx进行模型训练 其训练出的模型会有API进行模型导出 图像前处理
  • NIO、AIO、BIO的区别(通俗理解)

    BIO 同步阻塞 服务端需要对客户端的每个请求处理完成后 才会继续接受客户端的请求 客户端也会等待服务端处理完请求后才会发送请求 通常会使用多线程去处理 因为BIO每个连接一个单独的线程 NIO 同步非阻塞 NIO使用单线程或者只使用少量的
  • 2021百度之星初赛三---网格路径(dfs+剪枝/dp方程+LGV定理)

    任意门 题意 思路 每一步只能向下走或者向右走 然后所构成的路径不能重叠 所以就尽可能的往下面走 然后给第二条更大的空间 解法1 dfs 剪枝 include
  • 微软常用运行库(持续更新中)

    一 什么是运行库 运行库就是支持大部分程序软件运行的基础 由于很多Windows系统的常用软件都是采用 Microsoft Visual Studio 编写的 如图1 1所示 所以这类软件的运行需要依赖微软Visual C 运行库 比如像
  • [VarifocalNet] VarifocalNet: An IoU-aware Dense Object Detector (CVPR. 2021oral)

    文章目录 1 Motivation 2 Contribution 3 Method 3 1 IACS IoU Aware Classification Score 3 2 Varifocal Loss 3 3 Star Shaped Box
  • 报错,props 不可重写,需要复制给data重新定义

    报错 Vue warn Avoid mutating a prop directly since the value will be overwritten whenever the parent component re renders
  • egg学习笔记

    安装egg 我们推荐直接使用脚手架 只需几条简单指令 即可快速生成项目 npm gt 6 1 0 mkdir egg example cd egg example npm init egg type simple npm i 启动项目 np
  • Java 检测类是否可加载

    检查类是否存在的一种常见方法是执行 Class forName my Class 您可以使用捕获 ClassNotFoundException 的 try catch 来包装它并决定要做什么 如果需要 您可以在具有 main 的包装类中执行
  • Android : 通过pid获取app包名

    方法一 这个方法用在app主线程的activity或service里 因为要有context获取am private String getAppName int pid String pkgName ActivityManager am A