ANDROID 中UID与PID的作用与区别

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是为了不同的程序来使用共享的数据。

Pid是进程ID,Uid是用户ID,只是Android和计算机不一样,计算机每个用户都具有一个Uid,哪个用户start的程序,这个程序的Uid就是那个用户,而Android中每个程序都有一个Uid,默认情况下,Android会给每个程序分配一个普通级别互不相同的 Uid,如果用互相调用,只能是Uid相同才行,这就使得共享数据具有了一定安全性,每个软件之间是不能随意获得数据的。而同一个application 只有一个Uid,所以application下的Activity之间不存在访问权限的问题。

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 中要通过UID共享数据只需在程序a,b中的menifest配置即可,具体如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"          package="com.perseus.a"      android:versionCode="1"      android:versionName="1.0"          android:sharedUserId="com.share">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"          package="com.perseus.b"      android:versionCode="1"      android:versionName="1.0"          android:sharedUserId="com.share">

这样我们就可以在a程序中通过跳转activity的形式访问b中的数据了。

这样的话你也许会有疑问,如果让其他的开发这知道了我们的shareUserId知道了我们的ID,那我们的数据不是暴露了,放心吧google不会犯这样的低级错误的,我们要使不同的程序能够相互访问,还需要拥有相同的签名,每个公司或者开发者的签名是唯一的,这样我们就不用担心了,另外两者能够访问,别忘了权限

http://www.cnblogs.com/perseus/articles/2354173.html

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. 在android下出现乱码的问题(在网络中传输和获取数据时)
  3. Android(安卓)Dev Guide 中文版二 (原创,请注明出处)未完待续
  4. 安卓系统架构多年经验总结:《Android程序的编译,安装和运行》 | An
  5. Android通讯录开发之解决快速搜索联系人线程同步问题
  6. Android必备电源管理软件
  7. 浅析Android(安卓)4.0的通知系统(附Android(安卓)4.0设计指南全文
  8. [Android(安卓)数据通信] android cmwap接入点
  9. Android(安卓)native crash 日志分析

随机推荐

  1. TextView自定义跑马灯效果
  2. Appium的一点一滴:Android(安卓)KEYCODE
  3. android 中断点续传理解
  4. android的TextView在设置ellipsize可能显
  5. Android(安卓)双开沙箱 VirtualApp 源码
  6. Android手势滑动实现ImageView缩放图片大
  7. AOP编程_Android优雅权限框架(2)Demo完全
  8. popupWindow 使用
  9. Android(安卓)其他特效展示
  10. android 利用getIdentifier()获取资源