位置: 编程技术 - 正文

个人applicationthread解惑(个人简历)

编辑:rootadmin
Android一个新应用程序启动与AMS交互过程——对ApplicationThread深入理解

推荐整理分享个人applicationthread解惑(个人简历),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:个人所得税缴纳标准,个人所得税app下载,个人所得税app正版官方下载,个人所得税缴纳标准,个人所得税,个人所得税,个人所得税缴纳标准,个人所得税缴纳标准,内容如对您有帮助,希望把文章链接给更多的朋友!

明白binder通信的原理,清楚BpXXXService或者XXXserviceProxy是BpBinder的代理类,均有对应的BnXXXService或XXXServiceNative.Stub。bpbinder和binder内核通信,是通过IPCThreadProcess实现,在服务端有一个单独的线程(也是IPCThreadProcess实现),监听发给自己的binder的消息,处理后,通过binder内核reply给client。binder机制实现了client端像本地调用一样,跨进程调用服务的方法。这部分知识有些绕,提醒自己多温习。 深入理解android IPCBinder机制可参考[老罗的android之旅] 这上下4篇文章

在laucher里面启动一个新的app时,流程参考老罗文章:

整个应用程序的启动过程要执行很多步骤,但是整体来看,主要分为以下五个阶段:

分析本人在理解这个过程中最大的疑点和解释

launcher启动新的app时(假设创建新的process),会调用AMS获取它的服务,告诉它我要启动一个新的activity,这时launcher通过调用activitymanagerproxy.startactivity();最终通过binder机制调用AMS的方法,创建activityrecord、新的task等操作后,AMS通过binder机制,通知launcher进入paused状态,大感不解,在我看来,launcher是应用程序,也就是client,怎么能像server一样,接受binder消息呢。那岂不成了服务了嘛,况且,就算成了服务,app也没有像server一样向sercicemanager注册啊

分析: Android应用程序框架层创建的应用程序进程天然支持Binder进程间通信机制,这是怎么理解[老罗这篇]

个人applicationthread解惑(个人简历)

考虑到每一个app启动创建新的进程时,都是ams调用process.start(),这里调用了通过socket的方式向zygote请求创建新的进程,viazygote,fork子进程,并

调用onZygoteInit(),可以监听和操作binder驱动了。

加载用户定义的activity类,即ActivityThread。并执行其main方法

通过1可以知道,这个app具有binder通信能力,但是其他应用若想能够给它发消息,必须知道它的binderproxy。哈哈,到了点子上了,每个app有一个activityThread成员mmainthread,activity有个成员,mappthread,它就是一个Binder对象!!!每次创建一个app,执行activitythread.main的时候,都要把mappthread(ApplicationThread类型),attach给ams,以后ams向和activity通信时只要通过这个binder就可以了。不需要像server一样,通过servicemanager获取binder的handle。 ams向activity发消息是必须的,比如通过applicationthread向activity的handler发消息,控制其生命周期。

我描述的很笼统,不对地方请指正。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android开发效率—Eclipse快捷键 转载自:

Android中使用ContentProvider进行跨进程方法调用 原文同时发表在我的博客点我进入还能看到更多需求背景最近接到这样一个需求,需要和别的App进行联动交互,比如下载器App和桌面App进行联动,桌面

Android布局中的位置控制属性 一、gravity属性和layout_gravity属性1、共有属性值属性值代表的含义top,bottom位于其容器的顶部,底部left,right位于其容器的左侧,右侧center,fill居中,填满

标签: 个人简历

本文链接地址:https://www.jiuchutong.com/biancheng/370921.html 转载请保留说明!

上一篇:Android中的Activity常见样式(android中的active_result)

下一篇:Android开发效率—Eclipse快捷键(android开发工具排行榜)

  • 税目是什么意思和内容
  • 资产总额是营业收入吗
  • 修缮服务开票项目一览表
  • 个税手机号码没有了怎么办
  • 增值税一般纳税人是什么意思
  • 公司为其他企业提供担保,担保对象可以是公司股东吗
  • 企业财产损失审批前后的账务处理
  • 土地增值税什么时候开始征收的
  • 劳务派遣用工的岗位只能在哪些工作岗位上实施
  • 直接减免的增值税属于财政性资金吗
  • 存货呆滞是什么意思
  • 向一般纳税人销售劳保专用物品
  • 结算本月应付职工薪酬,其中生产工人工资为18000
  • 开工程服务发票后怎么成本
  • 小规模纳税人没有成本票怎么做账
  • 三证合一后企业还有什么证照
  • 机票保险可以报销入账吗
  • 服务费主营业务收入会计分录
  • 苹果13promax哪个颜色最贵
  • 原始凭证和记账凭证各应具备哪些内容
  • 合并报表抵消分录实例
  • 被税务查了
  • win10老是错误
  • 微信公众号开发php源码
  • uniapp中的onload
  • linux中loop的含义
  • 增值税一般纳税人资格登记表
  • php字符转换成数字
  • 交通运输业成本构成比例
  • 资产负债表应付账款怎么填列
  • 生产企业一般贸易
  • 变动成本产品成本包括哪些
  • gpt 中文
  • Vue中 Vue-Baidu-Map基本使用
  • collection的属性
  • explorer.exe无响应桌面卡死是什么原因
  • php如何定义二维数组
  • 成本核算的五个要求
  • 2022年如何在股室工作中落实党风见证
  • 购买原材料的运输费计入什么科目
  • 股东投资的钱要还给他吗
  • 临过期产品
  • mysql备份导入
  • 企业残保金该什么时间交
  • 货到票未到的会计分录怎么做
  • 什么是日记账?
  • 出售无形资产和固定资产计入什么科目
  • 低值易耗品可以报废吗
  • 航天信息的发票以什么形式导入开票信息
  • 二手车会计怎么做的
  • 补交上年度的企业所得税税款计入什么科目
  • 公司购买的商品质量问题能用12315投诉吗
  • 已经认证的进项发票在哪里查询
  • 小微企业增值税起征点是多少
  • 公司的钱借给个人需要交什么税
  • 固定资产的特点有哪几个
  • 失控发票已补税及滞纳金后还有事吗
  • 小规模公司怎么做账
  • 建账固定资产的期初科目是什么
  • sql server怎么修改表中数据
  • mysql 5.7.17 winx64.zip安装配置方法图文教程
  • 微软安全公告
  • 微软推出windows1
  • win10周年版
  • 将IBM ServeRAID 8i卡的驱动整合到Win2003安装光盘里
  • 常见内存大小
  • win7怎么添加此电脑
  • win7系统运行在哪
  • win8系统打开浏览器
  • jquery实现ajax提交表单信息的简单方法(推荐)
  • javascript教程完整版
  • 浏览器兼容性问题是什么意思
  • bootstrap js插件
  • jquery 触发点击
  • 电子税务局开的发票怎么作废
  • 为什么医保名字不一样
  • 房屋维修基金会计分录处理
  • 出国海关申报单图片
  • 金三系统企业所得税如何变更所得税缴纳方式?
  • 关于切实加强建筑施工领域安全防范工作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设