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

        在前面的学习中,我们了解到在创建用户和内核的虚拟空间的时候,会开辟 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

相关推荐

  1. Android Binder——数据传输限制

    2024-04-25 16:52:02       16 阅读
  2. 每天一个数据分析题(

    2024-04-25 16:52:02       23 阅读
  3. Android Binder——数据传递载体(一)

    2024-04-25 16:52:02       14 阅读
  4. 每天一个数据分析题(一)

    2024-04-25 16:52:02       20 阅读
  5. 每天一个数据分析题(七)

    2024-04-25 16:52:02       20 阅读
  6. 每天一个数据分析题(百六

    2024-04-25 16:52:02       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-25 16:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-25 16:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-25 16:52:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-25 16:52:02       20 阅读

热门阅读

  1. Hive安装与配置实战指南

    2024-04-25 16:52:02       14 阅读
  2. 自動重啟Debian

    2024-04-25 16:52:02       15 阅读
  3. 国内知名五款大模型

    2024-04-25 16:52:02       15 阅读
  4. PageHelper实现分页查询

    2024-04-25 16:52:02       16 阅读
  5. MongoDB聚合运算符:$setDifference

    2024-04-25 16:52:02       15 阅读
  6. android 解决webView底部留白问题

    2024-04-25 16:52:02       12 阅读
  7. C语言中的动态内存管理

    2024-04-25 16:52:02       14 阅读