android uid 和 pid 的理解获取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android uid 和 pid 的理解获取相关的知识,希望对你有一定的参考价值。

参考技术A 1.理解

uid:uid 对于 应用来说其实就是指我们当前应用是在那个 group 组内
就是指这个shareuserid,一个组内的uid相同,,并且具有相同的uid的应用才能共享用户内存

pid:是指每个进程在liunx下的 进程的id 是唯一的。

2.获取

获取uid:

PackageManager pm = getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo("com.speedsoftware.rootexplorer", PackageManager.GET_ACTIVITIES);
Log.d("!!", "!!" + ai.uid);

获取pid:

ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);  List<ActivityManager.RunningAppProcessInfo> list = activityManager.getRunningAppProcesses();
for(ActivityManager.RunningAppProcessInfo runningAppProcessInfo : list)
if(runningAppProcessInfo.pid == pid)
processName = runningAppProcessInfo.processName;
           
       

如何查找Linux中一些特殊数据类型定义,比如pid_t和uid_t(转)

1.

查看man手册,找到pid_t,可以通过getpid函数来看

技术分享

 

2.

打开sys/types.h

技术分享

技术分享

 

3.

打开bits/types.h

 技术分享

技术分享

 

 4.

打开bits/typesizes.h

技术分享

找不到相关的头文件了

 

5.

回到bits/types.h

技术分享

找到了,为int类型

 

注:

1.

有时还要找这2个目录:

asm/和asm-generic/

 

2.

另外可通过查看Linux源码

 

以上是关于android uid 和 pid 的理解获取的主要内容,如果未能解决你的问题,请参考以下文章

Android应用的uid和pid

Android uid和pid安全机制

ADB命令获取Android UID

android:sharedUserId="android.uid.system" 从 SDCard 获取文件

getCallingUid/getCallingPid 在 Handler.handleMessage 中返回当前的 uid 和 pid

APP性能测试指标和测试方法