pid 是process进程id , uid 是user 用户id;
如果你是root,那么你的uid就是0,0为最高权限;
可以通过pid找到这个进程的uid,没有试过通过Uid找到所有Pid,大家可以试一下;
每一个不同的程序都能有一个UId,但是一个应用里面可以有多个PId;
一个用户可以打开多个进程(Pid),并且这些进程的uid是一样的;
一个pid对应一个进程,每次打开时系统都会赋予不同的pid,但是uid是当你安装Apk时,系统赋予的,是不变的,除非你卸载了重装,又会赋予一个Uid;

Tid(thead id)可以理解为线程的Id,这个更容易理解

比如下面两句话:android.os.Process.killProcess(android.os.Process.myPid());拿到当前进程,杀死。不走生命周期方法。强制杀死进程

可以在Application中拿到主线程的Tid。android.os.Process.myTid();

获取PID:

Android | 复制

1

android.os.Process.myPid();

获取TID:

Android | 复制

1

android.os.Process.myTid();

获取UID:

Android | 复制

1

android.os.Process.myUid();

 

PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大。UID:一般理解为User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理。而在android 中又有所不同,因为android为单用户系统,这时UID 便被赋予了新的使命,数据共享,为了实现数据共享,android为每个应用几乎都分配了不同的UID,不像传统的linux,每个用户相同就为之分配相同的UID。(当然这也就表明了一个问题,android只能时单用户系统,在设计之初就被他们的工程师给阉割了多用户),使之成了数据共享的工具。因此在android中PID,和UID都是用来识别应用程序的身份的,但UID是为了不同的程序来使用共享的数据。在android 中要通过UID共享数据只需在程序a,b中的menifest配置即可,具体如下:这样我们就可以在a程序中通过跳转activity的形式访问b中的数据了。   这样的话你也许会有疑问,如果让其他的开发这知道了我们的shareUserId知道了我们的ID,那我们的数据不是暴露了,放心吧google不会犯这样的低级错误的,我们要使不同的程序能够相互访问,还需要拥有相同的签名,每个公司或者开发者的签名是唯一的,这样我们就不用担心了,另外两者能够访问,别忘了权限

 

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. Android(安卓)Mosby MVP的使用
  3. 让你大开眼界的10款Android界面设计
  4. Android获取root权限的利弊关系
  5. ListView分页加载数据
  6. 10个最佳Android新闻应用模板
  7. Android(安卓)SQLite 数据库详细介绍
  8. Android加载Bitmap出现OutofMemoryError的原因(官方译文)
  9. Android应用程序的开机自启动

随机推荐

  1. 【小白笔记】Elastic Search核心概念以及
  2. 从入门到入土:MySQL完整学习指南,包教包会!
  3. 分布式系统架构中高可用方案技术选型:Hyst
  4. 入门级应急响应小贴士
  5. RocketMQ入门到入土(六)发消息的时候选择qu
  6. Django 配置MySQL作为后端数据库
  7. RocketMQ入门到入土(二)事务消息&顺序消息
  8. 为了做服务注册迁移,我提前准备了这些东西
  9. Django 使用Celery处理异步任务
  10. Go语言个人学习笔记(Pythonista)