位置: 编程技术 - 正文

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

  • 小规模纳税人和一般纳税人哪个划算
  • 通货膨胀有什么危害?
  • 更改开票信息需要多久
  • 小企业会计准则没有以前年度损益调整科目
  • 小规模纳税人增值税优惠政策2023
  • 企业所得税弥补亏损怎么算
  • 税控减免税结转怎么操作
  • 事业单位的房租上缴国库吗
  • 以旧换新要按商品价格吗
  • 水利建设专项收入
  • 增值税小规模纳税人申报表填表说明
  • 融资租赁的房产,按收取的租金从租计征房产税
  • 采购材料差旅费怎么入账
  • 计提附加税的会计分录怎么写
  • 审计的内容是什么
  • 两免三减半适用范围
  • 商品条码续展费怎么退
  • windows10如何开启wifi
  • 补发票需要什么东西
  • 预售房款预缴企税怎么算
  • 如何在win7系统中查看电脑基本信息
  • 施工项目费用明细表模板
  • win11新功能
  • 政府补助开票怎么申报增值税
  • 应扣未扣税款对纳税人的处理
  • php教程100
  • 分公司改为子公司的所得税业务处理?
  • 会计凭证出现的问题
  • 邮政电信卡
  • laravel启动流程
  • 进项发票认证后怎么做账
  • 黄喉蜂虎鸟是保护动物吗
  • php各个框架的优缺点
  • yarn安装路径
  • 开源项目网站
  • 酒类包装物押金的增值税处理规定
  • 现金流量表季报本月数是三个月的数据吗
  • 固定资产清理的借贷方向表示什么
  • 调整以前年度亏损
  • 银行账户维护费怎么做账
  • js在数组中查找指定元素
  • 如何分析现金利润情况
  • 二手房过户需要户口本吗
  • 销售防疫物资是什么意思
  • 勾稽关系怎么算
  • 服装类发票可以抵扣哪些
  • 应发工资包括岗位工资吗
  • 投资性房地产的后续计量
  • 进销存的原理
  • 代开专票上的税额比电子缴款凭证上的税额少怎么调整?
  • 个税是怎么扣除的?
  • 出口退税是先交税后退税吗
  • 小微企业有什么优惠政策
  • 电子商业承兑汇票的承兑有以下几种方式
  • 政府专项基金属于什么类
  • 利润是用含税价还是去税价
  • 员工入股会计分录
  • 税控抵税怎么做分录
  • 应收账款和应付账款属于什么科目
  • 公司注销帐务怎么处理
  • 记账联是哪一联
  • 企业对财会人员的要求
  • sql server233错误
  • 分页存储过程包括
  • Win10 RedStone 2预览版14936快速版开始推送
  • 怎么改windowsxp版本
  • windows7显示桌面的操作方法
  • 制作xp系统盘需要多大u盘
  • xp系统下载文件没有出现下载对话框让你选择保存的位置
  • 应用程序发生异常如何解决
  • win10mobile最新版本
  • win7电脑关机出现0xc0000142是什么原因
  • cocos creator 动画制作
  • jquery中checkbox使用方法简单实例演示
  • [置顶] 启动unity3d 提示“unity3d EditorWindow could not be loaded because the script is not found in the projec”
  • jquery序列化json
  • framework res.apk
  • javascript的基本语法
  • 如何判断python列表长度
  • 税务申报按季度申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设