Activity组件是用户唯一能看见的组件,作为软件所有功能的显示载体,其安全性不言而喻。针对Activity组件安全,作为一个安卓开发者来讲需要在日常开发过程中注意两点:-Activity访问权限的控制-Activity被劫持
本篇文章将分享Activity访问权限控制方面的安全问题,首先科普下基础知识
研发基础知识Activity分类Activity类型和使用方式决定了其风险和防御方式,故将Activity分类如下:Privat、Public、Partr、In-hous
Intnt简介Android中提供了Intnt机制来协助应用间的交互与通讯,Intnt负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intnt的描述,负责找到对应的组件,将Intnt传递给调用的组件,并完成组件的调用。Intnt不仅可用于应用程序之间,也可用于应用程序内部的Activity/Srvic之间的交互。因此,Intnt在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在SDK中给出了Intnt作用的表现形式为:
通过Contxt.startActivity()orActivity.startActivityForRsult()启动一个Activity;
通过Contxt.startSrvic()启动一个服务,或者通过Contxt.bindSrvic()和后台服务交互;
通过广播方法(比如Contxt.sndBroadcast(),Contxt.sndOrdrdBroadcast(),Contxt.sndStickyBroadcast())发给broadcastrcivrs。
Intnt可分为隐式(implicitly)和显式(xplicitly)两种:
(1)显式Intnt即在构造Intnt对象时就指定接收者,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的,如下:
Intntintnt=nwIntnt(MainActivit.this,NwActivity.class);startActivity(intnt);
上面那个intnt中,直接指明了接收者:NwActivity
(2)隐式Intnt即Intnt的发送者在构造Intnt对象时,并不知道也不关心接收者是谁,有利于降低发送者和接收者之间的耦合,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间,如下:
Intntintnt=nwIntnt();intnt.stAction("怎样治好白癜风北京看白癜风专业医院