今日要闻

安卓应用程序渗透测试(五)

2018-09-25 19:09 来源:laishu.com 作者:Laishu
导读: Android组件四种组件类型中的三种:活动,服务和广播receiver。由一个称为Intent的异步消息激活(Intent是一种系统级别的消息传递机制)。激活组件Intents在...

Android组件

四种组件类型中的三种:活动,服务和广播receiver。由一个称为Intent的异步消息激活(Intent是一种系统级别的消息传递机制)。

激活组件

Intents在运行时将各个组件彼此绑定(你可以将它们视为从其他组件请求操作的信使),不管这个组件是属于你的应用还是属于其他应用。

广播接收器

广播接收器不显示用户界面,他们可以创建状态栏通知,在广播事件发生时警告用户。

系统事件

应用程序可以被注册用来接收系统事件产生的广播,系统事件包括BOOT COMPLETE,SMS RECEIVED,BATTERY LOW等。当应用程序注册为SMS RECEIVED事件时,它的receiver在每次收到新的SMS消息时都将被触发。

自定义广播

除了系统产生的事件之外,应用程序还可以生成自定义广播Intents,我们可以为其注册receiver。

不过,更常见的是,广播receiver只是其他组件的“网关”,它的目的是完成非常少量的工作。

例如,它可以基于该事件启动一个服务来执行一些工作。例如,应用程序可以为电量低消息注册receiver,并基于该信息改变其行为。

示例

广播接收器“MyBroadCastReceiver”在AndroidManifest.xml文件中注册。广播接收器通常以下面的格式注册。由于receiver是导出的,所以代码似乎不安全,如图所示:

服务

服务是在后台运行的组件,以首席执行官时间运行的操作或执行远程进程的工作。

服务不提供用户界面,任何组件(例如活动)都不能启动服务并让它运行或绑定到服务以与之交互。

例如,当用户在使用其他应用程序时,服务可能在后台播放音乐,或者它可能正在通过网络获取数据而不影响用户与活动的交互。

三种不同类型的服务

·scheduled -当一个API,比如Job Scheduler启动一个服务时,该服务就会定时启动。这个Job Scheduler是在Android 5.0中引入的(API level 21)。

·Started - 当应用程序组件(例如活动)调用start Service()时,将启动服务。

·Bound - 当应用程序组件通过调用bind Service()绑定到服务时,该服务就被绑定了。

清单中的服务,声明了应用程序manifest文件中的所有服务,就像活动和其他组件一样,如图:

Activity(活动)

简单来说,一个活动代表着具有用户界面的单个屏幕。例如,一个登陆活动和一个登陆成功后的活动。

活动的作用是用户与应用程序交互的入口点,也是用户在应用程序内或不同应用程序之间导航的关键。

Activity类提供了许多回调函数,这样可以让活动知道某个状态的变化:例如系统正在创建,停止或恢复活动,或者破坏活动所在的进程。

Content Provider(内容提供商)

Content Provider组件根据请求将数据从一个应用程序提供给其他应用程。

你可以将数据存储在文件系统,Sq-Lite数据库,Web上,或者任何其他可以持久存储的位置,应用程序可以访问到就行。

通过content provider,其他应用程序可以查询甚至修改数据(如果内容提供商允许的话)。

当一个APP想要与其他APP共享数据时,Content Provider必不可少。





声明: 凡注明为其他媒体来源的信息,均为转载自其他媒体,转载并不代表本网赞同其观点,也不代表本网对其真实性负责。如系原创文章,转载请注明出处; 您若对该稿件内容有任何疑问或质疑,请即联系,本网将迅速给您回应并做处理。邮箱:mail@laishu.com

为您推荐

今日要闻

潮鞋品牌

风水知识

健康知识

母婴知识

膳食指南

星座解读

命理运势

养生保健

美食资讯

热点资讯

体育新闻

综合资讯