位置: 编程技术 - 正文

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

  • 个人工程款收入不纳税
  • 印花税都有啥
  • 公司的纳税人识别号怎么查询
  • 金税财务是干什么的
  • 税捷财税官网
  • 个人独资 所得税
  • 记账凭证附单据是有哪些
  • 房地产可抵扣的税有哪些
  • 增值税进项抵扣怎么做账
  • 残疾人就业保障金
  • 发票丢失说明怎么填写
  • 土地使用税为什么不计入存货成本
  • 小规模应纳税额怎么算
  • 渔业专业合作社简介
  • 查验发票真伪新旧有哪些网站?
  • 携税宝可以不买吗
  • 汇算清缴截止
  • 什么情况下要办居住证
  • 金融服务手续费可以抵扣进项税吗
  • 公司为员工承担房租
  • 种子销售公司
  • 固定资产发生非正常损失相关题目
  • 特殊性税务处理弥补亏损限额
  • 电子账册需要缴纳印花税的规定是怎么说?
  • 营运资金投资额计算公式
  • 个税免税收入和不征税收入
  • 减免税附报需要哪些资料?
  • 利息支出的会计科目
  • .exe文件怎么打不开
  • php怎么创建数据表
  • 财务会计制度
  • 股权转让合同怎么解除
  • 公司多缴税款了怎么办?可以退吗?
  • 工业企业汽车发生费用处理
  • php ftp功能
  • 单位银行结算账户属于活期存款账户
  • 枇杷叶的功效与作用及副作用
  • 结转出租包装物因不能使用而报废的残料价值
  • vue组件继承并重写属性方法
  • 阿里云jar包
  • 佛法戒律论
  • 小微企业城建税及附加减免优惠
  • framework4.0怎么打开
  • 如何用php做到页数显示
  • 小规模拍卖公司怎么开票
  • cookie什么意思啊
  • 简述php操作mysql数据库的基本步骤
  • 数据库如何迁移数据库表
  • 土地作为无形资产摊销年限
  • 企业所得税没有交
  • 销售货物免税
  • 申报表跟账不一致,如何调整账
  • 缴纳的税费怎么计算
  • 机关事业单位体育协会举办体育赛事活动应当
  • 哪些属于政府机关单位
  • 小企业会计准则和一般企业会计准则的区别
  • 一般纳税人报税时间每月的多少号
  • 全额计提的坏账怎么做账
  • 销售单位收入和税收
  • 应付账款增值税如何挂账
  • 每月摊销的金额怎么算
  • 投资性房地产处置的账务处理
  • 新成立的公司都是小微企业吗
  • xp系统可以双屏吗
  • Win10 Mobile 10572预览版新增了哪些功能? 更新内容汇总
  • win7系统如何卸载office2007
  • gain_trickler_3202.exe 进程查询 gain_trickler_3202进程是什么文件
  • hyper安装win7
  • win10声卡驱动正常但没声音怎么解决
  • shell脚本判断字符串是否为空
  • python2网络编程
  • js基础知识
  • jquery插件怎么写
  • java中线程池原理
  • 安卓中的多线程
  • 怎么在移动官网上复机
  • 商场销售高档化妆品需要缴纳消费税吗
  • 单位车辆购置税怎么申报缴纳
  • 不动产租赁如何征税
  • 徐州市哪些区域有疫情
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设