栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android Zygote随记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android Zygote随记

Android Binder随记_暮冬一十四的博客-CSDN博客

init进程
    由pid为0的Linux内核进程启动启动系统关键进程: 执行init.rc脚本,执行脚本中一行一行的Linux命令来启动进程守护系统关键进程:如蓝牙、铃声、接打电话、安装应用等进程名结尾带“d”的系统进程当守护的进程被杀死时,重启被杀死的进程当守护的进程无法被重启时,重启手机:如Zygote

Zygote
    由init进程执行zygote.rc脚本启动的最开始启动的时候名字并不是叫Zygote,而是app_process在app_main.cpp中当解析到命令中有“--zygote”时,将app_process的名字改为了Zygote(niceName=ZYGOTE_NICE_NAME,可能是感觉app_process不好听吧)Zygote是native进程:由c++代码启动的;Zygote创建一个Server端的Socket,实现与其他进程通信提前加载系统资源、系统类;从而让APP进程不用重复加载系统资源、系统类;如Activity的Class、系统主题等ZygoteInit.java还去fork出了SystemServer这个java进程启动App时,Zygote还负责fork出App进程
与Zygote进程通信为什么要用Socket,而不是Binder?
    Zygote它负责开进程Binder效率太高了,而开进程又比较慢,用Binder同时发多个启动进程请求时,会让内存瞬间暴涨; 安全方面:容易被Hook;Socket:请求串行,执行完一个开进程,再执行下一个;

Android Framwork源码-PMS随记_暮冬一十四的博客-CSDN博客

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/715853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号