android广播注册源码,android 广播源码简要分析-注册

android broadcast

1,广播注册

静态注册:

在系统服务启动时会添加PackageManagerService,在该类的构造方法中就会对各个应用安装目录的apk文件进行扫描解析

详细步骤

1,PackageManagerService初始化的时候,扫描系统目录下的文件

e26304737bea

image.png

2,遍历循环files文件

e26304737bea

image.png

3,最终会调用两个方法:PackageParser.parsePackage()方法;scanPakageLI()方法

e26304737bea

image.png

4,进入PackageParse类;看到类里面的静态变量,估计都会知道这货是干什么用的,解析AndroidManifest.xml文件

e26304737bea

image.png

5,PackageParse类:最终跳到这里,AssetManager new出来的,然后addAssetPath(apkPath),就可以后去apk里面的资源文件了(插件化方案);

e26304737bea

image.png

6,调用方法顺序分别为:parseBaseApk->parseBaseApkCommon->parseBaseApplication;在这个方法里面有一坨代码如下:解析xml,然后将解析出来的四大组件放到集合里

e26304737bea

image.png

7,再回到PackageManagerService;

PackageParser.Package pkg = pp.parsePackage(scanFile, parseFlags);pkg对象包含了当前包里面所有的数据;然后再调用scanPackageLI()->scanPackageDirtyLI();最后将pkg里面的四大组件又add到下面的IntentResolver的子类ActivityIntentResolver、ServiceIntentResolver、ProviderIntentResolver,ArrayMap对象里面

e26304737bea

image.png

动态注册:

1,调用ContextImpl类中的registerReceiver方法:(时序图比较靠谱,看起来比较清晰,但是本人比较懒)

调用Context实现类ContextImpl的注册方法

e26304737bea

image.png

2,getReceiverDispatcher方法中的map是以BroadcastReceiver对象r为key,以ReceiverDispatcher对象rd为value保存在一个ArrayMap中,而这个ArrayMap又以Context为key,自己为value保存在LoadedApk类中的成员变量mReceivers中。这样,只要给定Context和BroadcastReceiver就可以查看LoadedApk中是否已经存在相应的广播接收分发器ReceiverDispatcher了

e26304737bea

QQ截图20171017185143.png

e26304737bea

image.png

3,接下来调用AMS的registerReceiver方法

动态注册的广播都添加到mReceiverResolver中了

总结:静态广播和动态广播注册保存的位置不一样?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android盒子改造,【当贝市场】废旧手机改造成电视盒子详细教程

3.直接即可输出视频了,然后在手机上安装暴风影音等视频软件的tv版,即可开始观看。有人会说,旧手机电池不行,看一会儿就得没电,怎么办?首先,在你输出到电视时,你就可以给手机锁屏&…

android分辨率px跟dp,Android屏幕适配 px,dp,dpi及density的关系与深入理解

PX(pixel):即传统计算机语言中描述的像素,在Android则代表绝对像素。之所以Android中不推荐使用这种单位,正是因为不同生产厂商,不同品牌,不同屏幕的设备,其分辨率亦不一。举例来说,我们现在将某个Button的…

android onclick方法吗,Android中button的onClick事件几种方法

Android中button的onClick事件几种方法发布时间:2020-09-03 02:36:31来源:脚本之家阅读:100作者:水桶前辈Android中button的onClick事件几种方法利用三种方法,学习button的监听事件。方法一源码如下:packag…

android 播放器 反交错,反交错- 视频横纹处理

以下名词解释摘自维基百科反交错”(deinterlacing)是将交错式(即隔行扫描)(interlace)影像讯号转换为渐进式(逐行扫描)(progressive)影像讯号的一种方法。因为装置处理速度以及带宽的限制下,广播电视系统,例如NTSC或是PAL,都是使用交错式讯号…

android room表关联,如何在首次运行时填充Android Room数据库表?

我尝试了许多方法可以做到这一点,每个没有提供。首先,我尝试使用addMigrations方法向Room中添加Migration实现,但发现它只在数据库升级期间运行,但不在创建时运行。然后,我尝试使用openHelperFactory方法将SQLiteOpenH…

android webview简单使用,android WebView 简单使用Demo

activity配置文件:activity_main.xmlandroid:layout_width"match_parent"android:layout_height"match_parent"android:orientation"vertical" >android:layout_width"match_parent"android:layout_height"wrap_co…

android one x2,HTC One X 深度OS Android4.1.2 大气不失稳重 雍容华贵 流畅运行

您可能感兴趣的话题:rom刷机核心提示:注意事项:1. 本刷机教程需在windows操作系统下进行2. 刷机前确保手机电量不少于50%3. 为避免资料丢失,刷机前请先备份个人资料4. 本教程内容均来自于互联网并经N多网官方整理刷机前必看注意事…

升级鸿蒙3.0需要备份吗,升级鸿蒙OS3.0机型曝光!大哥,你是认真的吗?

鸿蒙OS系统,可真是“千呼万唤始出来”啊!自2017年华为开始研发鸿蒙内核1.0,2018年进展至鸿蒙内核2.0,2019年正式推出了鸿蒙OS1.0系统,并在发布会上预计2021年发布鸿蒙OS3.0系统。虽然在开发者大会上,华为宣…

android q全局夜间模式,安卓Q新功能全局夜间模式,网友:都9102年了,魅族Flyme早就有...

原标题:安卓Q新功能全局夜间模式,网友:都9102年了,魅族Flyme早就有目前市面上的智能手机系统基本是苹果的iOS和谷歌的安卓两分天下,其中,安卓系统的用户分布更加广泛。近日,安卓Q系列被正式曝光…

android 教程概要,Android精通教程-第一节Android入门简介

前言大家好,我是 Vic,今天给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢每日一句If life were predictable it would cease to be life, and be without flavor.--- Eleanor Roosevelt每日一句入门工具的安装第一步&a…

html支持的脚本语言,能不能让日志内容在支持html语言的同时支持一下脚本语言,拜托!拜托!...

日志里经常引用一个网站的歌,他们的歌曲网址有部分常改变,比如说dm1.hting.com/ht//部分,没准哪天就变成dm1.hting.com/as//。所以我想在内容模板里声明一个变量。比如说用zdy代替dm1.haoting.com/ht//。这样它那部分若变了,我就直接在内容模板里把zdy代表的字符串也…

des解码 android,DES解密出错

- 当前 Bug 的表现(可附上截图)执行crypto.TripleDES().decrypt 时,出现下面错误:VM5902:1 URIError: URI malformedat decodeURIComponent ()at Function.value (appservice.js:984)at toString (appservice.js:984)at t.onShow (binded.js? [sm]:123)…

2021年浙江省高考成绩查询时间,2021年浙江高考成绩什么时候出来 时间

2021年浙江高考成绩什么时候出来 时间浙江高考成绩公布时间预计在23日左右可查询成绩6月9日起,全省91.4万余份试卷将在省教育考试院集中扫描采集信息后,由经过严格选聘并培训的评卷教师们在全省共3个评卷点进行“背靠背”网上评卷。所有评卷教师都签订了…

计算机主机的主要包括,微型计算机的主机主要包括

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。微型计算机的主机主要包括CPU和内存储器。CPU包括运算器和控制器。内存储器包括ROM和RAM。微型计算机,是指由微处理器作为CPU的计算机。由大规模集成电路组成的、体积较小…

网络中的计算机之间的关系,有关服务器与主机之间的关系

局域网,是指“存在于某一个较小地理区域内的计算机网络”。通常把两台以上的电脑通过各种介质(比如双绞线、同轴电缆、电话线等等,空气也算是一种介质,这就是无线网络)连接起来,这就构成了计算机网络。专业的说法是一台电脑与一台…

计算机键盘打出来都是英语大写怎么办,电脑键盘上大小写怎么切换

按下电脑键盘上的"CAPS LOCK"键,提示灯就会亮,就可以输入大写,再按一下"CAPS LOCK"键,提示灯灭了,就输入的是小写。按键的位置和提示灯的位置就在下图红框内,不同厂家的键盘也稍微有些…

计算机逻辑判断函数函数知识点,计算机考点条件检测函数IF

出国留学网小编为你整理“2017计算机资格Excel2003考点条件检测函数IF”哦,介绍了计算机资格考试Excel2003等相关内容,欢迎广大网友前来学习,希望对你有所帮助!更多资讯关注本网站的更新吧!功能:IF函数具有判断的能力,…

html5 视频路径加密,HTML5视频路径混淆

这是一个奇怪的,与我一起裸露。HTML5视频路径混淆我一直在玩Video.js,并遇到了提供的示例问题。使用html5视频元素指定MP4(h264)视频时,会出现一些混淆。当我使用(绝对值):显示视频,没有问题。但是当我使用&#xff1a…

c语言编程题2^0+2^1+……+2e63,牛客网刷题33(2道题)

60.在其它数都出现k次的数组中找到只出现一次的数题目链接题目描述给定一个整型数组arr和一个大于1的整数k。已知arr中只有1个数出现了一次,其他的数出现k次,请返回出现了1次的数。输入描述输入包含两行,第一行包含两个整数n和k(1≤n≤105,1≤…

西昌学院计算机,西昌学院

西昌学院是2003年经教育部批准组建的省属全日制普通多科性本科院校。坐落在举世闻名的中国西昌航天城。这里四季如春,资源丰富,素有“月城”、“春城”的美誉。学院前身为1939年北洋工学院迁至西昌创建的国立西康技艺专科学校,距今已有70年的…