重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
uid 是user 用户id
创新互联提供高防服务器、云服务器、香港服务器、雅安机房托管等
Android 里的UID是基于应用程序,每一个程序都有一个UID,如果应用程序1和应用程序2的uid不同,则在default情况下,二者无法读取对方的数据,这样提升了应用的安全性。
当使用者安装了某一应用程序时,android系统就会赋予一个uid,用户可以在屏幕上的窗口里可以检视这个AndroidManifest.xml档案的内容,用户回了解这个应用程序的目的、权限等,并选择接受与不接受。
一些特殊情形下,两个应用程序是可以持有一样的UID。
例如,当需要推出新版本时,这两种版本的程序可以持有一样的UID, 才有权限将旧版程序的数据转移到新版软件里。
Pid 是 process 进程ID,Uid 是 user 用户ID,只是Android和计算机不一样。
计算机每个用户都具有一个Uid,而Android中每个程序都有一个Uid。
默认情况下,Android会给每个程序分配一个普通级别互不相同的 Uid,如果用互相调用,只能是Uid相同才行,这就使得共享数据具有了一定安全性。
每一个不同的 程序 都能有一个UId,但是一个应用里面可以有多个PId。
一个用户可以打开多个进程(Pid),并且这些进程的uid是一样的;
一个pid对应一个进程,每次打开时系统都会赋予不同的pid,但是uid是当你安装Apk时,系统赋予的,是不变的,除非你卸载了重装,又会重新赋予一个Uid;
参考: 认识Android的UID(Unix user ID)与权限
ANDROID 中UID与PID的作用与区别
一般android系统会自动为应用生成一个uid,并且每个应用会被分配不同的UID ,用于管理各个应用的权限以及数据共享。。。其次我查了一些资料。在AndroidMenifest.xml中 在manifest标签里面增加 android:sharedUserId="xxxx",“xxxx”就是你自定义的uid了。。
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); ListActivityManager.RunningAppProcessInfo list = activityManager.getRunningAppProcesses();
for(ActivityManager.RunningAppProcessInfo runningAppProcessInfo : list){
if(runningAppProcessInfo.pid == pid){
processName = runningAppProcessInfo.processName;
}
}
Android 里的 UID 是 跟随着「软件」(例如 Android 应用程序)。 由于每个应用程序都有个 UID,只有带着此 UID,才能存取该 UID 所涵盖的有关资料。就跟安装软件的附件一样吧。
不对,UID不是数字,PID才是,PID也没有你说的那种情况。应用程序的UID是app_#,#代表数字。而系统进程的UID是root或者system
连上android设备或者模拟器,进入adb shell,top就可以看到当前所有进程。