位置: 编程技术 - 正文

个人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开发工具排行榜)

  • 零售环节征收消费税标准
  • 公司去社保局开什么发票
  • 实际已缴纳所得税额不自动带出
  • 长期股权投资收回账务处理
  • 漏缴的印花税如何补交
  • 资产负债表本月期末余额怎么填
  • 国税地税电子钥匙价格
  • 发票与入库单明细不一致税务可以吗
  • 亏损 纳税
  • 纳税人少缴税款,税务机关发现之日怎么算
  • 叉车需要购置税吗
  • 过渡期损益会计分录
  • 小规模公司核定增收税可以公账直接打给法人吗?
  • 固定资产原值增加当月计提折旧吗
  • 期间费用年末有余额吗
  • 承包方收取分包方费用
  • 收银系统已入库怎么操作
  • 缴纳税费及工会经费
  • 上个月开的增值税发票这个月可以作废吗
  • 批发行业增值税税负率是多少呢
  • 临时工工资个税怎么算
  • 建筑企业无票支出如何处理
  • 转账支票背书是什么意思啊
  • 高铁票财务怎么报销
  • 企业接受非现金资产投资的账务处理
  • 净利润与毛利润那个会大一点
  • 制造费用包括哪些费用项目
  • 采购材料的运费怎么做分录
  • 简单介绍linux
  • 代开专票计提附加税吗
  • 长期股权投资凭证
  • php技巧
  • 圣克鲁斯群岛海战百度百科
  • 高新技术企业的研发费用加计扣除
  • 百香果的副作用及禁忌是哪些
  • 劳动法律法规包含哪些
  • php如何实现伪静态
  • 堡垒封印
  • 补计提去年所得税费用会计分录
  • 应收借方表示什么
  • php遍历结果集
  • MySQL高级查询
  • ChatGPT火爆来袭,携手参与为开源助力
  • 厂房没租出去要交税吗
  • 设置sql server的安全认证模式为混合认证模式
  • sql2008混合模式
  • mysql语句性能优化
  • 记账凭证基本内容口诀
  • 短期借款的账务处理例题
  • 合理损耗应计入成本吗
  • 实收资本什么情况下会增加
  • 银行代扣水电
  • 外贸企业进项税转出怎么申报
  • 装饰设计 工程
  • 服务行业进项税额加计扣除
  • 总公司可以开发票给分公司吗
  • 年末递延所得税资产的账面余额
  • 公司现金支票取现要缴税吗
  • 应收账款管理办法
  • sql server数据库恢复
  • win8系统如何分区
  • winxp怎么做系统
  • 怎么激活win7旗舰版系统
  • service5.exe - service5是什么进程 有什么用
  • windows7桌面右击
  • korok是什么文件
  • windows下打开注册表的命令是什么
  • windows8怎么去除广告
  • linux diff命令详解
  • jQuery Validate 数组 全部验证问题
  • unity连接数据库能做什么
  • 在dos下运行
  • android开发之apritag
  • 天龙3d畅游端下载
  • python 脚本编写
  • Android使用领域(移动端,PC,服务端)
  • 税源管理科是干什么的
  • 广州地税局官网办事点
  • 大走访 方案
  • 独立的法人企业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设