位置: 编程技术 - 正文

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

  • 租赁收入缴纳个人所得税
  • 被告承担诉讼费用
  • 收到外境来电
  • 公司往来借款在现金流量表哪里填写
  • 支出和成本的关系和区别
  • 收到境外汇款怎么处理
  • 企业所得税汇算清缴退税分录
  • 税务局代增值税专用发票冲红,如何重新申报退税
  • 事业单位人员租房有补助吗
  • 土地使用权入账价值包括哪些
  • 购货发票属于什么科目
  • 长期股权投资的账面价值怎么计算
  • 计划成本法委托加工物资例题
  • 电子承兑到期怎样兑现
  • 研发准备金的计提比例是多少
  • 企业装载机管理制度
  • 无形资产进项税计入成本吗?
  • 坏账准备税务处理办法
  • 南方建筑主编
  • 什么情况下可以收取现金
  • 存货的损失计入什么科目
  • 公司账户转入另一个公司的投资款怎么做账?
  • 固定资产维修费率
  • 小企业财务报表不包括
  • 业绩补偿协议
  • 全额抵免的计算
  • 电脑重启后分辨率没有1920x1080
  • 电脑管家怎么检测
  • 王者荣耀中牛魔王的技能
  • 销售人员报销差旅费怎么报税
  • 结转收入怎么计算
  • linux系统中的文件访问权限包括几种
  • php实验步骤
  • 克罗地亚佩列沙茨
  • win10错误代码0xc0000001
  • 在windows 7中
  • gradle视频教程
  • 固定资产核销程序
  • php 配置
  • 应付票据到期会计分录怎么做
  • 拉尔韦橡
  • 税务没给核印花税,企业用交吗
  • uni-app是干嘛的
  • 小微企业免征增值税报表填写
  • 安装sql server 2005,安装不成功怎么设置
  • 企业接管的方式有
  • 以前年度差旅费退回
  • 出纳需要填写会计凭证吗
  • 购买理财产品如何防诈骗
  • 递延所得税负债大白话解释
  • 应交税费期末余额在借方怎样处理
  • 确认应付职工薪酬是什么意思
  • 负数发票作废后对原发票有影响吗
  • 企业资产负债表怎么做
  • 打样费入什么科目
  • 交上年企业所得税怎么做会计分录
  • 小微企业和小规模纳税人的区别
  • 固定资产清理如何填写增值税申报表
  • 获取sqlserver密码
  • php的每条语句以什么结尾
  • windows u盘制作
  • windows8whql
  • linux怎么和window系统共用
  • win7系统电脑开不了机
  • win10右键菜单快捷键
  • win8.1 安装
  • kui血条插件设置
  • linux压缩tar文件命令
  • 跨浏览器跨终端的前端开发
  • unity控制组件开关
  • python中字典怎么用
  • javascript flash下fromCharCode和charCodeAt方法使用说明
  • js根据name取值
  • 常见python函数
  • javascript中array的正确写法
  • JAVASCRIPT THIS详解 面向对象
  • android java编程
  • 新车交了购置税后给什么凭证
  • 税务上门核查要看什么
  • 城市维护建设税的计税依据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设