位置: 编程技术 - 正文

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

  • 一般纳税人提供服务税率
  • 生产成本怎么计算
  • 没有发票的房租如何入账
  • 水利基金应税项和减除项
  • 个体工商户是否家庭经营的区别
  • 工商登记执照号码怎么查询
  • 专票红冲后还需重新开票吗
  • 有限合伙企业分红避税
  • 代付其他公司货款会计分录
  • 海关进口增值税计算公式
  • 已抵扣进项税额的购进货物或者应税劳务
  • 商品混凝土的增值税费率
  • 外地项目预缴个人所得税
  • 预缴所得税会计分录怎么做
  • 无形资产盘盈
  • 小企业 企业所得税
  • 集体房产证如何分割
  • 供应商返点抵应怎么做账
  • 金蝶kis云专业版原材料数量怎么录入
  • 专家费怎么做账没发票
  • 购买原材料的运费属于什么费用
  • 系统更新没有推送
  • 建账时的库存怎么做账
  • mac怎么把文件发给别人
  • 公司收到政府科技创新奖
  • 收到员工的罚款的会计科目
  • php 文件操作
  • php自学教程
  • 2020工资计税基数怎么算
  • shwiconem.exe - shwiconem是什么进程 有什么用
  • 最小全画幅的数值是多少
  • 银行同业利息 水利基金
  • 福克兰群岛属于哪国
  • 接受捐赠旧的固定资产以什么价格入帐
  • 劳务外包会计分录最新
  • 工会经费和残保金怎么做账
  • 前端file对象
  • vue设置宽度
  • 无票收入怎么计算1%税率
  • php while true
  • 毕业设计基础
  • c++ array
  • pytorch基础
  • ntpd命令
  • 计提支付公积金
  • 2022年最新公务接待用餐标准
  • 关于实收资本的表述中,不正确的是
  • 税收优惠与政府补助对于企业研发来说哪个优惠力度大
  • 织梦痣铃表情太到位
  • 福利费要分部门吗
  • 更正申报多交的增值税查账么
  • 用友t3系统功能怎么用
  • 企业欠缴税款违法吗
  • 一次性用品可以做什么东西
  • 认缴制和实缴制的法律责任
  • 核定征收企业可以享受研发费用加计扣除
  • 固定资产清理是资产类的备抵科目吗
  • 预算收入包括增值税吗
  • 货已经收到未收到怎么办
  • 外币财务报表的折算
  • 车船税没发票只交可以吗
  • 待摊费用和预提费用的区别
  • sqlserver性能优化5种方式
  • Ubuntu keylin 14.04 怎么使用root用户登录?
  • 苹pp助手
  • 如何解决笔记本电脑温度过高 蓝屏
  • 苹果系统安装系统
  • win10在哪里更改用户名
  • win7如何打开windows功能
  • win7右键没有
  • win7系统怎么将新建资料保存到文件夹
  • 批量win10激活码怎么弄
  • ajax动态加载json数据
  • nodejs require 路径查找
  • asp.net runat
  • 安卓中adapter
  • js 设计模式
  • 可以抵扣的消费税有哪些
  • 每月个人所得税扣除标准
  • 退回多扣的个人所得税会计分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设