十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我们知道,Android 基于Linux,是多用户操作系统,我们使用 adb 工具测试时,经常使用 root 身份。那么,我们日常开机使用时,登录的用户id是什么呢?可以通过如下方式获取到当前正在运行的用户。
创新互联服务项目包括绥宁网站建设、绥宁网站制作、绥宁网页制作以及绥宁网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,绥宁网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到绥宁省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
执行 adb shell pm list users 可以看到
其中 **0 ** 表示 user Id, 这条记录表示当前正在运行的帐号的 user id 是0,用户名是 name。
从 Android L(5.0)开始引入多用户 API。直到目前,基本上都是隐藏 api 或者需要系统签名才能持有”managed_user" 权限。
Android 的这个 “用户” 并不是等同于 linux 下的用户概念。Android 是基于 Linux 的 OS,Linux 下有一套自己的账户管理体系,而 Android 对此有一些封装和改动。同时,Android 也引进了自己的多用户功能。
Linux是多用户系统,每个用户都拥有一个uid,这个uid由系统和用户名做映射绑定。同时,为了便于用户管理(譬如管理文档权限),Linux引入了群组的概念,可以将多个用户归于一个群组。每一个群组拥有一个群组id(gid)。
以第三方应用为例做说明:
一个应用被安装后, 系统给分配唯一的 "Application ID", 简称" AppId "。同时系统中会有多个用户 (User), 每个用户也有一个唯一的 ID 值, 称为" UserId " 。
Android 这里的 "UserId" 跟 Linux 的 UserId 完全不是同一个东西。UserId 10000 + appId 才等于 Linux 下的 UserId, 即进程所属用户的概念, 在 Android 我们通常记做 " uid *",以下以微信为例作为说明:
可以看到微信创建了 2 个进程,其第一列 USER 字段均为 u0_a110,这个 u0_a110 就是 uid(有人也说a110是uid)。
这个字段这样拆解成 int 值:
uid 就对应 Linux 系统里 "进程所属用户的概念"
在 Android 系统里, 我们可以很容易发现:
可以通过 adb shell dumpsys package com.android.systemui | grep "uid" 简单的得到安装应用的uid
通过源码可以看到,UserHandle包含三种概念:userid、uid、appid
userid :就是有多少个实际的用户,即手机里的主机、访客等多用户。
uid :上文讲过他跟应用进程相关,除了shareduid的应用,每个用户的每个应用的uid不一样的。
appid :跟app相关,包名相同的appid都一样,即使是不同用户。
安卓用户即使用智能设备为安卓系统(android系统)的用户群。
当前市面上的智能设备产品最常用的是三个系统,分别为:安卓系统(由谷歌提供服务,涵盖各大手机厂家 比如三星,华为,小米等等,用户范围最广),IOS系统(苹果系列的电子数码产品),和WP8系统(原诺基亚团队开发,现由微软提供)。
Google公司开发的操作系统,Android(安卓系统)是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。
2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。