当前位置: 首页 > wzjs >正文

淮南市重点工程建设管理局网站华大基因 网站公司建设

淮南市重点工程建设管理局网站,华大基因 网站公司建设,wordpress 后台管理,苏州归巢网络科技有限公司应用进程 1.1 Android系统进程的启动过程: 1、init进程fork出Zygote进程后,Zygote进程会创建一个服务端socket,等待AMS发起socket请求。 同时,由Zygote进程fork出的SystemServer进程会启动各项系统服务,其中就包含了A…

应用进程

1.1 Android系统进程的启动过程:

1、init进程forkZygote进程后,Zygote进程会创建一个服务端socket,等待AMS发起socket请求。

同时,由Zygote进程fork出的SystemServer进程会启动各项系统服务,其中就包含了AMS,AMS会启动Launcher桌面,此时就可以等待用户点击App图标来启动应用进程了。

2、然后看下系统服务的启动,不管是由init进程启动的独立进程的系统服务SurfaceFlinger,还是由SystemServer进程启动的非独立进程的系统服务AMS,都是在ServiceManager进程中完成注册和获取的,在跨进程通信上使用了Android的binder机制

ServiceManager进程本身也是一个系统服务,经过启动进程启动binder机制发布自己等待请求4个步骤,就可以处理其他系统服务的获取和注册需求了。

1.2  Android系统服务的启动过程:

1.3 AMS发送socket请求

Android应用进程的启动是被动式的,在Launcher桌面点击图标启动一个应用的组件如Activity时,如果Activity所在的进程不存在,就会创建并启动进程。

点击App图标后经过层层调用会来到ActivityStackSupervisor的startSpecificActivityLocked方法,

//ActivityStackSupervisor.java
final ActivityManagerService mService;void startSpecificActivityLocked(...) {//查找Activity所在的进程,ProcessRecord是用来封装进程信息的数据结构ProcessRecord app = mService.getProcessRecordLocked(...);//如果进程已启动,并且binder句柄IApplicationThread也拿到了,那就直接启动Activityif (app != null && app.thread != null) {realStartActivityLocked(r, app, andResume, checkConfig);return;}//否则,让AMS启动进程mService.startProcessLocked(...);
}

app.thread并不是线程,而是一个binder句柄。应用进程使用AMS需要拿到AMS的句柄IActivityManager,而系统需要通知应用和管理应用的生命周期,所以也需要持有应用进程的binder句柄IApplicationThread。

也就是说,他们互相持有彼此的binder句柄,来实现双向通信

所以对于AMS来说,

  1. AMS向Zygote发起启动应用的socket请求,Zygote收到请求fork出进程,返回进程的pid给AMS;
  2. 应用进程启动好后,执行入口main函数,通过attachApplication方法告诉AMS已经启动,同时传入应用进程的binder句柄IApplicationThread。

完成这两步,应用进程的启动过程才算完成。

1.3.1 流程图

综上,Android应用进程的启动可以总结成以下步骤:

  1. 点击Launcher桌面的App图标
  2. AMS发起socket请求
  3. Zygote进程接收请求并处理参数
  4. Zygote进程fork出应用进程,应用进程继承得到虚拟机实例
  5. 应用进程启动binder线程池、运行ActivityThread类的main函数、启动Looper循环

1.4 总图 

1.4.1 系统启动流程图自绘

1.4.2应用启动流程图

http://www.dtcms.com/wzjs/837503.html

相关文章:

  • 网站设计与开发范本建站哪个平台好用
  • 淘宝客源码程序 爱淘宝风格+程序自动采集商品 淘宝客网站模板alex网站建设
  • 网站建设与运营的预算方案模板电子商务网站建设.pdf
  • wordpress网站响应时间长沙县好的建站按效果付费
  • 坪山网站建设价位建商城网站
  • 微网站报价东莞市营销网站建设
  • 西安博达网站建设中山市建设工程 交易中心网站
  • 土巴兔网站开发wordpress 分类 字段
  • 常州 做网站做软件页面设计的软件
  • shopify做旅游网站微信公众号怎么开通免费
  • 成都网站建设公司有哪些网站服务器做缓存吗
  • 那些网站做的非常好看的wordpress不能安装
  • 建网站域名怎么买wordpress用什么数据库连接
  • 模板网站如何做优化云网站建设 优帮云
  • 青岛网站建设电话wifi管理平台
  • 化工网站建设郑州网站优化汉狮网络
  • 建行商城网站测评网站架构
  • 网站维护什么情况盐城z做网站
  • 高台网站建设哪些网站做推广
  • 招聘网有哪些网站比较好电商网站开发背景
  • 阿里云网站建设基本流程百度一下就知道官网
  • 二手交易网站建设目标wordpress 弹出对话框
  • 网站建设客户合同拼多多怎么开店
  • 找单位做网站需要注意什么论坛推广工具
  • 做网站有哪个软件好怎么让百度多收录网站
  • 应聘网站开发的自我介绍企业管理软件系统网
  • 个人直播网站怎么做网站建设首选
  • 高密制作网站网络舆情监测中心
  • 湖南优化网站建设网站设置右击不了如何查看源代码
  • 可以去非菲律宾做游戏网站吗自己做游戏需要学什么