Android Binder——数据传输限制(二十三)

devtools/2024/11/13 9:10:30/

        在前面的学习中,我们了解到在创建用户和内核的虚拟空间的时候,会开辟 1M-8K 的内存空间,用于当前进程与 Binder 驱动进行传递数据,但是在实际传输过程中,其实并不能达到1M-8k的数据。这里我们就来分析一下 Binder 通信数据传输的限制。

一、Linux系统启动

        Linux 系统在启动的时候,会有 init 进程创建 Zygote 进程和 ServiceManager 进程。ServceManager 进程主要是用来注册和查询系统 Service,主要和 system_server 进程进行跨进程通信。Android 的其他进程都是有 Zygote 进程 fork 出来的,在 Zygote 进程完成初始化进行功能加载(即执行 ZygoteInit.main())的时候,会完成 fork 出 system_server 进程和建立与 AMS 能够 socket 通信的 ZygoteServer。

        在 system_server 进程完成初始化进行功能加载(即 SystemServer.main())的时候,在通过 startBootstrapService() 加载 ActivityManagerService,在 startOtherServices() 启动其他 Service 之后,会调用到 mActivityManagerService.systemReady() 来启动 Launcher。

        此时完成整个系统的启动。

二、APP进程的创建

        在 APP 进程创建或者 AIDL 服务进程在创建的时候,AMS 就会通知 Zygote 进程 fork 一个 APP 进程,在 Zygote 进程中初始化该 APP 进程的时候,会调用到 Native 层的 app_main.cpp 中的 onZygoteInit


http://www.ppmy.cn/devtools/12588.html

相关文章

酷开科技逐步为用户构建健全的智慧家庭生活场景

大规模与精细化人群技术则是通过大量的计算能力和精细化的运营能力,建立用户专属数据储存区域,使得用户在使用不同电视的观影偏好和兴趣能够能够得以延续。 不拘泥于自有品牌终端数量,酷开系统除了集成在创维电视上,还服务于飞利…

✯✯✯宁波ISO45001认证:保障员工健康与安全✯✯✯

🌈🌈🌈最近,我们公司🥰通过了ISO 45001认证,🤠这让我感到非常😎兴奋和自豪!🤹作为一个在🏙️宁波工作的员工,🤓我深深地感…

安全中级-初开始

一、网络基础 重要点:TTL值(防环,linux64.Windows128 ),IP数据包包头格式字节(20) 标识标志偏移量起到什么作用(数据超过1500会分片) wireshack抓包会有一个MSS&#x…

[图解敏捷口号]普天之下皆我妈-01-新手一次走两步

0 00:00:00,830 --> 00:00:03,750 今天我们来看一句敏捷口号 1 00:00:04,030 --> 00:00:05,660 后面我们会 2 00:00:06,300 --> 00:00:09,570 列一些比较幼稚的口号 3 00:00:09,970 --> 00:00:11,145 一句一句 4 00:00:11,145 --> 00:00:12,790 我们来剖析一…

深度学习和强化学习的区别

深度学习和强化学习是机器学习领域中两个非常重要的研究方向,它们有着不同的应用、原理和目标。虽然这两者可以结合使用(例如在深度强化学习中),但它们的基本概念和方法有着根本的区别。 深度学习(Deep Learning&…

在Spring boot中指定随机可用的端口

​ 正常情况下每个spring boot启动都有固定的端口,也就是8080,如果启动多个项目,很容易出现端口冲突,那么怎么解决这个问题呢? 解决方案1: random 随机端口 ​ 在spring boot中,可以通过${ran…

蓝桥杯2024年第十五届省赛真题-小球反弹

以下两个解法感觉都靠谱&#xff0c;并且网上的题解每个人答案都不一样&#xff0c;目前无法判断哪个是正确答案。 方法一&#xff1a;模拟 代码参考博客 #include <iostream> #include <cmath> #include <vector>using namespace std;int main() {const i…

StartAI智能绘图软件出现“缺少Python运行库”怎么办?

StartAI做为一款国产AI界的新秀&#xff0c;是一款贴合AIGC新手的智能绘图软件。新手安装遇见“缺少Python运行库”怎么办”&#xff1f;小编一招搞定~ 解决方法&#xff1a;手动下载【resource文件】&#xff0c;将文件添加到安装目录下。 点击链接进行手动下载噢~ 确保 Star…