android源码探索----多用户下phone进程问题

Android 8.0 PhoneAccount全面解析 转载请注明出处:https://blog.youkuaiyun.com/turtlejj/article/details/81567426,谢谢~ 最近由于碰到了一个CTS的问题,涉及到了PhoneAccount,然而之前并没有接触过相关的内容。因此想在网上找些资料来看,结果发现并没有特别详细介绍PhoneAccount的文章,于是萌生了自己写一篇的想法。 废话不多说,现在就开始... 阅读详情

     android4.2增加了多用户功能,终于在迟迟之后与linux保持了一致。但是手机上的多用户其实是相当鸡肋的,试想手机这种移动设备基本上就是每一个人的唯一id,所以基本上不存在多用户共用设备的情况。也正因为此以及专利的原因,所以电话上的多用户功能是关闭的,只有平板上的多用户是打开的。但还是要感谢谷歌开发人员引入多用户机制,这样可以帮助开发一些安全系统有极大帮助。

    但打开多用户之后,有一个比较蛋疼的地方是无法在多用户中打电话发短信。查看源码的知,这是android对于电话通信这一块根本没有做多用户兼容性适配。只是在PhoneApp中简单粗暴的做了一个单用户判断if (UserHandle.myUserId() == UserInfo.ROOT_USER_ID ),在其它用户中根本无法使用电话和短信。而平板上又无这种通信需求,所以谷歌开发人员根本没在这块做代码适配。唉,无奈我们公司项目需要这方面的功能,即在多用户下也要能打电话发短信。所以只能硬这头皮上了,去做谷歌人员未竟的工作。这个过程是痛苦的前期后后后找了好几个phone方面比较熟悉的兄弟帮忙分析代码,加起来有快10天的工作量,终于初步满足了需求,能打电话发短信了。下面是将这一过程中遇到的问题,做个摘录以备忘。

   首先理解多用户原理,就算多用户到底是一个什么东西以及是一个什么样的实现机制。多用户固名思意,就是在同一台设备上隔离出另一个用户空间,这个空间里面运行的程序与普通空间运行的程序是隔离的,完全是在两个进程中,当然数据的存储,比如数据库也完全是独立的。最直观的感受就是,两个用户中装上同一个应用,那么这两个应用的导航页是需要走两遍的。当然这里面涉及到很多隔离,比如install,锁屏,某些设置等,所以在看4.2之后的源代码,会发现基本上所有的模块都涉及到多用户的判断,这说明android在加多用户这个功能的时候,谷歌开发人员也做了一个海量的工作啊,这里表示钦佩和感激。

    好了,闲话少说,继续说多用户下phone进程问题。

   一。首先创建多用户之后,该用户下会有一个com.android.phone进程,但是该进程是完全没有东西的,因为在进程入口PhoneApp中已经做了判断:

       public void onCreate() {
        if (UserHandle.myUserId() == 0) {
            // We are running as the primary user, so should bring up the
            // global phone state.
            if (MSimTelephonyManager.getDefault().isMultiSimEnable

Windows Phone模拟器WPR Alpha部署与XAP应用运行实战指南 在移动应用开发领域,模拟器是开发者测试与调试应用的核心工具,其原理在于通过软件模拟目标设备的硬件环境与操作系统行为。对于已退市的Windows Phone平台,官方支持虽已终止,但社区驱动的模拟器项目如WPR(Windows Phone Runner)应运而生,旨在解决遗留WP应用与XNA游戏的兼容性运行问题。这类项目通过构建API兼容层与运行时环境,实现了对原生.xap应用包的加载与执行,其技术价值在于为数字遗产保存与特定场景下的应用维护提供了可行路径。本文聚焦WPR Alpha 0.0.1这一早期版本, 阅读详情

相关推荐

从AOSP源码到AS模拟器:手把手教你打包一个‘可运行’的SDK系统镜像(附Android 12实战)

本文详细介绍了如何从AOSP源码编译生成Android Studio模拟器专用的标准化SDK系统镜像,涵盖环境配置、源码获取、编译优化、镜像打包及AS集成全流程。特别针对Android 12实战,提供解决常见编译问题的技巧,帮助开发者高效构建定制化模拟器环境,提升团队协作效率。

weixin_30292745的博客 423

Android 11 上获取设备序列号的另类思路:绕过权限限制的实战探索

本文深入探讨了在Android 11上获取设备序列号的创新方法,包括系统属性直读、代理服务白名单等解决方案。针对权限限制问题,提供了从源码分析到工业级实践的全面指南,帮助开发者在隐私保护政策下实现设备标识获取。

weixin_30915951的博客 245

探索Android聊天应用源代码及其实战应用

在当今这个信息时代,即时通讯已成为人们日常沟通不可或缺的一部分。Android平台凭借其开源性和广泛的应用覆盖,成为开发聊天应用的热门选择。本章将为读者简要介绍Android平台聊天应用开发的基本概念,包括开发流程、核心技术和面临的挑战。作为一款成功的聊天应用,不仅要提供基本的文本消息功能,还需要支持多媒体消息发送、实时通信状态显示以及安全性措施等高级特性。我们将逐步深入探索这些主题,为开发高效、安全、用户友好的Android聊天应用奠定基础。

weixin_36431145的博客 826

Android bindservice失败解决方法

主要介绍了Android bindservice失败解决方法的相关资料,希望通过本文能帮助大家解决这样的问题,需要的朋友可以参考下

Yolov5实现道路裂缝检测

Yolov5实现道路裂缝检测 参考代码链接 Github代码链接 基于Pytorch的Yolov5道路裂缝检测程序运行说明。大家可以结合我的说明和原文说明使用,有问题欢迎询问。 文章目录Yolov5实现道路裂缝检测环境要求测试训练自己的数据集1.创建dataset.yaml文件2.创建标签文件3.组织文件路径4.选择模型5.开始训练 环境要求 Python 3.8或之后的版本 还要安装requirements.txt文件中所有依赖包,包括1.7及以上版本的torch $ pip install -r req

qq_26751379的博客 2万+

SAP FICO 银企直联实战:从配置到异常处理的全流程解析

本文详细解析了SAP FICO银企直联的实战配置与异常处理全流程,涵盖银行主数据搭建、支付类配置、银行接口适配等关键步骤。通过实际案例分享,帮助用户掌握实时付款、余额监控和自动对账等核心功能,提升企业财务效率与安全性。特别针对常见问题如凭证重复付款、前置机UUID冲突等提供了实用解决方案。

weixin_29215815的博客 663

Charles 抓包工具下载安装及基础使用

本篇内容主讲关于Charles抓包工具,从下载安装以及配置信息,证书的下载安装以及PC端设置代理配置和移动端设备配置代理,阐述关于Charles抓包工具面板的基础使用以及如何进行抓包和设置断点,对于软件测试以及对抓包感兴趣的读者可以翻阅!感谢大家的支持!!!

灵魂学者的博客 2958

Win11专业版破解RDP限制:实现多用户远程桌面协同办公

本文详细介绍了如何在Windows 11专业版上破解RDP限制,实现多用户远程桌面协同办公。通过使用RDPWrap工具,用户可以绕过微软的授权限制,允许多个用户同时登录同一台电脑,提高硬件利用率和团队协作效率。文章包含详细的安装配置步骤、性能优化技巧及常见问题解决方案,适用于需要远程协作的办公场景。

weixin_33806300的博客 466

【毕设】基于LoRa的物联网控制器:从原理图到PCB的完整硬件设计指南

本文提供了一份完整的基于LoRa的物联网控制器硬件设计指南,涵盖从系统框图、原理图设计到PCB布局布线的全流程。详细讲解了电源电路、单片机最小系统、信号接口以及LoRa无线模块等核心模块的设计要点与抗干扰技巧,并分享了实用的调试心得,旨在帮助电子、物联网专业学生顺利完成毕业设计,掌握低功耗远距离物联网节点的硬件开发实践。

weixin_42126677的博客 306

Python 爬虫实战:爬取知乎问答与评论数据并分析

摘要:本文以Python为核心工具,系统讲解知乎问答与评论数据爬取的技术方案。通过分析知乎API接口结构,详细阐述Requests库结合正则表达式的数据获取方法,涵盖请求头构造、鉴权参数处理等关键技术。文章对比了HTML解析、API调用和Selenium模拟三种爬取方案的优劣,提供完整的代码实现,包括问题信息获取、回答列表爬取和评论数据提取。同时介绍了数据存储(JSON/Excel)和基础文本分析(词云生成)方法,并给出合规使用建议和技术优化方向,为开发者提供了一套可落地的知乎数据爬取与分析解决方案。

2503_91057718的博客 1820

14 硬件工程师笔面试高频考点真题解析——逻辑门

逻辑门是数字电路的基本单元,实现布尔运算(如与、或、非、异或等)。OC门(集电极开路)和OD门(漏极开路)需外接上拉电阻,支持“线与”逻辑,适用于I2C总线等场景,避免推挽输出并联导致的短路问题。三态门具有高、低、高阻三种状态,用于总线分时复用。推挽输出因内置上下管,禁止并联,否则会引发电源短路。三者区别在于:推挽驱动强但不可并联;OC/OD需上拉,支持线与;三态门通过使能控制实现高阻隔离,适用于共享总线设计。

XU157303764的博客 1902

Carla运行显示The following component(s) are required to run this program:DirectX Runtime |nvapi64.dll没有被

Carla运行显示The following component(s) are required to run this p 参考: 【1】EPIC 启动游戏提示The following component(s) are required to run this program:... - 『悬赏问答区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cnhttps://www.52pojie.cn/thread-1485651-1-1.html ...

anananajiushiwo的博客 5万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 终于可以make了
下一篇: 位运算的性质
宇宙小生命
博客等级 码龄15年 21粉丝 36原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值