android默认exported_android:exported 属性详解-阿里云开发者社区

昨天在用360扫描应用漏洞时,扫描结果,出来一个Android:exported属性,其实之前根本不知道这个属性,更不知道这个属性用来干嘛的,详情见下图:

因此,查了官方API,学习了一下这个属性!

android:exported 是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。

总体来说它的主要作用是:是否支持其它应用调用当前组件。

默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false。

下面来详细的了解一下四大组件中的这个属性:

1、先来看:Activity中的:

……

android:exported=["true" | "false"]

……

/>

意思如下:

在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。

如果被设置为了false,那么这个Activity将只会被当前Application或者拥有同样user ID的Application的组件调用。

exported 的默认值根据Activity中是否有intent filter 来定。没有任何的filter意味着这个Activity只有在详细的描述了他的class name后才能被唤醒 .这意味着这个Activity只能在应用内部使用,因为其它application并不知道这个class的存在。所以在这种情况下,它的默认值是false。从另一方面讲,如果Activity里面至少有一个filter的话,意味着这个Activity可以被其它应用从外部唤起,这个时候它的默认值是true。

其实,不只有这个属性可以指定Activity是否暴露给其它应用,也可以使用permission来限制外部实体唤醒当前Activity(详情见permission属性)

2、Service中的:

android:exported=["true" | "false"]

android:icon="drawable resource"

android:isolatedProcess=["true" | "false"]

android:label="string resource"

android:name="string"

android:permission="string"

android:process="string" >

. . .

意思如下:

该属性用来标示,其它应用的组件是否可以唤醒service或者和这个service进行交互:true可以,false不可以。如果为false,只有同一个应用的组件或者有着同样user ID的应用可以启动这个service或者绑定这个service。

默认值根据当前service是否有intent filter来定。如果没有任何filter意味着当前service只有在被详细的描述class name后才会被唤醒。这意味这当前service只能在应用内部使用(因为其它应用不知道这个class name).所以在这种情况下它的默认值为 false.从另一方面讲,如果至少有一个filter的话那么就意味着这个service可以被外部应用使用,这种情况下默认值为true。

其实,不只有这个属性可以指定service是否暴露给其它应用。你也可以使用permission来限制外部实体唤醒当前service(详情见permission属性)

3、Provider中的:

android:enabled=["true" | "false"]

android:exported=["true" | "false"]

android:grantUriPermissions=["true" | "false"]

android:icon="drawable resource"

android:initOrder="integer"

android:label="string resource"

android:multiprocess=["true" | "false"]

android:name="string"

android:permission="string"

android:writePermission="string" >

. . .

意思如下:

当前内容提供者是否会被其它应用使用:

true: 当前提供者可以被其它应用使用。任何应用可以使用Provider通过URI 来获得它,也可以通过相应的权限来使用Provider。

false:当前提供者不能被其它应用使用。设置Android:exported=“false”来限制其它应用获得你应用的Provider。只有拥有同样的user ID 的应用可以获得当前应用的Provider。

当Android sdk 的最小版本为16或者更低时他的默认值是true。如果是17和以上的版本默认值是false。

可以通过Android:exported=“fasle” 和 permission来限制当前应用Provider是否会被其它应用获取。

4、receiver中的:

android:exported=["true" | "false"]

android:icon="drawable resource"

android:label="string resource"

android:name="string"

android:permission="string"

android:process="string" >

. . .

意思如下:

当前broadcast Receiver 是否可以从当前应用外部获取Receiver message 。true,可以;false 不可以。如果为false ,当前broadcast Receiver 只能收到同一个应用或者拥有同一 user ID 应用发出广播。

默认值根据当前 broadcast Receiver 是否包含intent filter来定。如果没有任何的filter的话意味着只有在被详细的描述了class name的情况下才会被唤起。这意味着当前Receiver只能在应用内部被使用(因为其它应用不知道这个类的存在。)在这种情况下,默认值是false。如果至少包含一个filter意味着当前broadcast Receiver 将会收到来自系统或者其它应用的广播,所以这个时候默认值是true。

不只有这个属性可以指定broadcast Receiver 是否暴露给其它应用。你也可以使用permission来限制外部应用给他发送消息。

更正:

之前的默认值那块写错了,应该是:

默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false。

本文转自 一点点征服   博客园博客,原文链接:http://www.cnblogs.com/ldq2016/p/6249302.html,如需转载请自行联系原作者

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

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

相关文章

计算机科技新闻,新浪网_科技时代_计算机_新闻报道

分析:你的PC强壮吗?http://www.sina.com.cn 1999年6月29日 16:00综合自从计算机得到广泛应用之后,计算机的速度和功能一直是人们执着的追求对象,二者实际上也决定了一台计算机的价值。然而随着网络时代的来临,病毒开始…

银行界加强计算机病毒管理,银行计算机管理系统维护现状与对策研究(7.12).doc...

银行计算机管理系统维护现状与对策研究(7.12)银行计算机管理系统维护现状与对策研究[摘要]:随着计算机在银行应用范围的不断扩大和应用深度的不断拓展,传统手工业务处理逐步转变为计算机处理。与此同时,银行电子化的发展也给经营管理工作提出…

树莓派python3_【树莓派】给ubuntu18安装python3.7

准备工作 安装工具 sudo apt update sudo apt upgrade sudo apt install gcc sudo apt install g sudo apt-get install libffi-dev sudo apt install build-essential checkinstall sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-de…

c++mfc编写实验_零基础学Windows窗口图形界面编程(不用MFC),菜鸟学完变身高手,敢与专业媲美...

又一门新的计算机课上线啦!什么课?看下面视频(以下视频是本课第一讲)用什么语言我们声明一下(这个在我们课上也跟同学强调):不要为用什么语言掐架!那是初学者的行为,为高手所不为。第二,我们这门课讲的不是…

超级计算机阿波罗11,Apollo 8000推进超算科学发展

Apollo 8000推进超算科学发展超级计算技术将理论转移到模拟数字环境和计算机分析,一直被应用于加快科学和工程领域的突破。最新的高性能计算技术带来的创新让企业客户也能够访问这些程序和应用、强化研发能力并获得竞争优势。Apollo 8000推进超算科学发展作为散热媒…

python数据库教程_在Python中编写数据库模块的教程

在一个Web App中,所有数据,包括用户信息、发布的日志、评论等,都存储在数据库中。在awesome-python-app中,我们选择MySQL作为数据库。 Web App里面有很多地方都要访问数据库。访问数据库需要创建数据库连接、游标对象,…

找不到r低版本_R的多进程使用与改进

R的多进程使用与改进在R中需要使用多进程时,常见方案是使用foreach和doParallel的组合。foreachforeach包中最重要的是foreach函数,该函数创建一个foreach对象,随后串行或并行的执行表达式。library(foreach)?foreachout:foreach( ..., .c…

药品研发 计算机系统验证,基于验证的药品研发项目申报系统的设计

摘要:目前国家大力推进信息化与工业化深度融合,提倡"互联网"的概念,信息化已经是现今的一个热名词.计算机系统在各行各业中扮演越来越重要的角色,计算机信息化已经不仅用于信息的管理,更融入了我们日常生活的每一个角落,比如购物,支付等.对于处于制造行业…

html让图片移动到一定位置_百度移动搜索优化指南2.0

百度移动搜索优化指南 2.0前期准备工作【域名】与 PC 网站一样,域名是用户对一个网站的第一印象。一个好的移动域名,不仅容易记忆、易于输入,还能方便用户向其他人推荐。域名应尽量简短易懂,越短的域名记忆成本越低,越…

ddr5内存上市时间_DDR5内存即将开始量产!DDR4内存史低价重现

本月中旬,JEDEC协会正式公布了DDR5标准,起步4800Mbps,未来可以达到6400Mbps,是DDR4内存的两倍多,最高有望达到DDR5-8400的水平。01、DDR5内存要来了DDR5标准公布之后,全球三大DRAM工厂——三星、SK海力士及…

电大法学本科计算机考试题,2016年电大-电大法学本科计算机网考答案.doc

2016年电大-电大法学本科计算机网考答案"更改默认主页"是在Internet Explorer浏览器的选项卡中进行设置,这个选项卡是____。D、常规"美国信息交换标准代码"的缩写是______。 B、ASCII1994年4月20日我国被国际上正式承认为接入Internet的国家,所…

32位mysql安装包_关于Mysql的安装

在安装之前,为保证能够安装成功,请您尝试以下操作:1、卸载原有mysql;2、搜索C:盘中是否有残余的mysql文件,主要是log文件,全部删除;3、为保证能够正常连接服务器,尽量关闭电脑防火墙&#xff1b…

hive sqoop 分区导入_利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中

测试:利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中。需要注意的地方:1,要添加hive.metastore.uris这个参数。否则无法将数据加载到hive表中。并且,如果一个xml文本中有多个这种操作的话,每个…

山东初二计算机会考,2017山东莱芜初二会考科目时间安排:6月14日

考试科目初中学业考试科目、分值和考试时长分别为:语文、数学、英语三科满分均为120分,考试时长均为120分钟,均按原始得分计入总分;思想品德、化学、历史、地理、生物满分均为100分,考试时长均为90分钟,均按考试分数50…

安装 ubuntu18_Ubuntu18.04安装docker及nvidia docker

Ubuntu18.04安装docker及nvidia docker 2之前的时候记得安装完docker之后还需要安装单独的nvidia docker 2,现在的话只需要安装nvidia container toolkit即可1、docker安装官网上又详细的介绍Install Docker Engine on Ubuntu​docs.docker.com或者sudo apt-get upd…

google账号解除游戏绑定_成长守护平台解除实名认证 公众号解绑操作流程

微信成长守护平台是一款培养孩子健康游戏习惯的游戏管控工具,那么微信成长守护平台怎么解除王者荣耀防沉迷呢?接下来小编就给大家带来了解除实名认证方法介绍,一起来看看吧!先简单了解一下游戏成长守护平台,它的运作方…

微软云服务器怎么注销,Microsoft 账户删除及注销

您好,了解到您要取消与当前Microsoft账户的连接。设置-账户-你的账户中,看下有没有断开连接的选项。现在是在第一次开机后的配置界面直接输入了这个邮箱账户吗?如果是这样的话,最好使用重置功能,选择不保留个人文件进行…

如何把python文件发给别人没_python怎么将py文件弄成exe

pandas 生成一列是另一列的累加结果,怎么做与怪物战斗的人,应当小心自己不要成为怪物。当你远远凝视深渊时,深渊也在凝视你。 pandas绘图不显示python用pandas库的绘图语句绘图,如何看到图? left pd.DataFrame({可以显…

混凝土地坪机器人_地面整平机器人:精准又高效,轻松摆“平”混凝土

随着国内经济不断发展,工业厂房、大型广场、体育场、停车场等大面积场地的建设需求越来越多。这类场地大多使用混凝土现场浇筑地基,然后再覆盖地砖或地坪漆,因此对基础层的平整度提出了很高的要求。传统的混凝土地坪施工方法是人工找平&#…

大学计算机成绩统计表怎么做,wps怎么制作成绩表 wps设计成绩统计表的步骤方法...

当我们使用wps统计数据时,如果我们需要制作一个统计成绩的表格,可是怎么制作成绩表吗?其实方法非常的简单,下面教程之家网为大家分享wps设计成绩统计表的步骤方法,不会制作的朋友可以参考下面的步骤方法自己制作即可。wps怎么制作…