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

在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不会犯这样的低级错误的,我们要使不同的程序能够相互访问,还需要拥有相同的签名,每个公司或者开发者的签名是唯一的,这样我们就不用担心了,另外两者能够访问,别忘了权限

ANDROID 中UID与PID的作用与区别相关推荐

  1. android raw文件作用,Android 中raw和assets文件夹的区别

    Android 中raw和assets文件夹的区别 发布时间:2020-09-25 08:40:41 来源:脚本之家 阅读:103 作者:lqh Android 中raw和assets文件夹的区别 以 ...

  2. Spring中SmartLifecycle和Lifecycle的作用和区别

    欢迎关注方志朋的博客,回复"666"获面试宝典 本文基于SpringBoot 2.5.0-M2讲解Spring中Lifecycle和SmartLifecycle的作用和区别,以及如 ...

  3. c语言 long和short区别,5分钟读懂Android 中的toast short 和long的区别

    android 中的toast short 和long的区别,在Android源码中的NotificationManagerService.java这个类中定义了两个静态变量,分别对应Toast.LE ...

  4. linux中export和source的作用和区别

    linux中export和source的作用和区别 2013-11-12 12:36 1039人阅读 评论(0) 收藏 举报 分类: linux(82) shell与export命令 用户登录到Lin ...

  5. Android中UID、GID和PID的讲解

    一.概述 在实际的开发中经常会碰到各种ID,这是由于在计算机的发展过程中,需要对程序执行的每一步做标记,通过这些标记的关联便于系统的统一管理.像PID.UID.GID.和EUID等,其实对于这些ID不 ...

  6. Android 之UID and PID

    转自http://www.cnblogs.com/awkflf11/articles/5232275.html 在开发中遇到这样一个问题: 安装任意第三方的一个apk,恢复出厂设置,再次安装相同的ap ...

  7. android中获取context的多种方法的区别(this,getbascontext(),getApplicationcontext())

    本文转自:http://www.eoeandroid.com/thread-171104-1-1.html 原文转自:http://stackoverflow.com/questions/102697 ...

  8. Python中3种引号的作用与区别

    简介: 本文主要介绍Python中,单引号,双引号,3个引号这3种引号的作用与区别. 1.简单介绍 单引号字符串:'python' 双引号字符串:"python" 三引号字符串:' ...

  9. Android中singleTask模式没起作用!!

    看了这篇文章后终于找到了原因所在http://blog.csdn.net/luoshengyang/article/details/6714543 原来需要给不同的singleTask指定不同的tas ...

最新文章

  1. python数据分析及展示(一)
  2. FCN全连接卷积网络(4)--Fully Convolutional Networks for Semantic Segmentation阅读(引言部分)
  3. C#远程访问linux(ubuntu)或windows的mysql数据库
  4. 设计模式-责任链模型
  5. reactor p java_Java反应式框架Reactor中的Mono和Flux
  6. 多边多面形成体_Nature Comm | 中科院分子植物卓越中心巫永睿团队揭示类胡萝卜素影响玉米硬质胚乳形成的新机制...
  7. Spring Boot集成thymeleaf异步刷新页面
  8. vue控制台报错Duplicate keys detected: 'xxxxx'. This may cause an update error.解决方案
  9. C语言字符串函数(strcpy,strlen,strcat,stsstr,strchr,strcmp,memcpy,memmove)
  10. Laravel配置DingoAPI和JWT
  11. java session 超时_Javaweb项目session超时解决方案
  12. java excel批量导入数据库数据_java把excel数据批量导入到数据库
  13. Python数据分析案例篇(一)泰坦尼克号数据分析
  14. 关于df -h卡住和系统磁盘被占满的问题
  15. mysql8.0.21官网安装步骤_MySQL8.0.21安装步骤及出现问题解决方案
  16. C#【EF Core框架】使用乐观锁处理并发冲突
  17. quartz简单入门
  18. oracle修改用户system密码忘记,Oracle System密码忘记 密码修改、删除账号锁定lock (转) - mano...
  19. PRML(3)--Chapter2(上)-概率分布-二元变量、多项式变量、高斯分布、指数族分布
  20. 常用软件官网下载大总结

热门文章

  1. mysql数据库有几种连接方法_几种常见的数据库连接方法
  2. oracle 云服务器cpu升级,Oracle 10g RAC 升级(CPU Update)之--升级CRS
  3. android sco通信,android – startBluetoothSco()在ICS上抛出安全异常(BROADCAST_STICKY)
  4. C++知识点40——运算符的重载概念与分数类实现(中)
  5. #pragma指令与#ifndef指令
  6. java数据结构二叉树遍历_java数据结构 之 二叉树的遍历(1)
  7. spring mvc mysql配置_spring mvc配置数据库连接
  8. php请求接口数据,php curl请求接口并获取数据的示例代码
  9. Kubernetes的共享GPU集群调度
  10. JXLS导出Excel(模板导出)