监测应用的方法、装置、移动终端及系统技术领域
本发明涉及软件监测领域,尤其涉及监测应用的方法、装置、移动终端及系统。
背景技术
随着移动互联网技术的发展,移动终端的APP被大量开发。用户也越来越习惯于通
过移动终端的APP进行信息浏览、购物或者办公等各种活动。移动终端APP的性能对用户体
验度有重大影响。
目前,对于移动终端APP的监控而言,CPU消耗、内存消耗等性能有客观的衡量指标
用于分析。然而,APP的卡顿监测和崩溃定位是目前的监测技术所欠缺的。
因此,本发明提出了一种新的监测应用的技术。
发明内容
为此,本发明提供一种新的监测应用的方案,有效的解决了上面至少一个问题。
根据本发明的一个方面,提供一种监测应用的装置,适于驻留在移动终端中。该装
置包括监测单元、替换单元和通信单元。监测单元适于确定被监测的应用中一个或多个第
一目标对象相关联的第一操作指示。其中,每个第一目标对象适于响应于接收到用户输入
而根据相关联的第一操作指示执行相应操作。替换单元适于将每个第一目标对象相关联的
第一操作指示替换为包含该第一操作指示和相应的第一监测指示的第二操作指示。这样被
监测的应用能够根据相应的第一监测指示采集关于第一目标对象的监控信息。通信单元适
于获取所采集的监控信息并传输到监控服务器。
可选地,在根据发明的监测应用的装置中,第一目标对象包括下述中至少一种:适
于与用户交互的控件对象、视图控制器和应用委托对象。控件对象包括下述中至少一种:
UIButton、UIDatePicker、UIPageControl、UISegmentedContorl、UISlider、UIStepper、
UISwitch和UIStoryboardSegue。应用委托对象包括UIApplicationDelegate。视图控制器
包括UIViewController。
可选地,在根据发明的监测应用的装置中,监测单元还适于监测一个或多个第二
目标对象中指向相关联的第三操作指示的参数信息。在监测单元监测到一个或多个第二目
标对象中一个的参数信息更新时,替换单元还适于将更新后的参数信息所指向的第三操作
指示替换为包含该第三操作指示和相应的第二监测指示的第四操作指示。这样,该被监测
的应用能够根据相应的第二监测指示采集关于这个第二目标对象的监控信息。
可选地,在根据发明的监测应用的装置中,监测单元适于根据下述方式监测一个
或多个第二目标对象中指向相关联的第三操作指示的参数信息:指示替换单元在每个第二
目标对象中插入适于监测参数信息的第三监测指示。这样,第二目标对象根据该第三监测
指示监测参数信息,并在参数信息发生变化时通知监测单元。第二目标对象包括下述中至
少一种:UITableView、UICollectionView、UIPickerView、UITextField和UITextView。
可选地,在根据发明的监测应用的装置中,监测单元还适于监测一个或多个第三
目标对象中每个所要执行的第五操作指示的记录。该装置还包括配置单元,适于为每个第
三目标对象,配置一个存放关于所要执行的第五操作指示的记录的列表。替换单元还适于
将每个第三目标对象关联的列表中每个记录所指向的第五操作指示替换为包含这个第五
操作指示和相应的第四监测指示的第六操作指示。这样,被监测的应用根据该相应的第四
监测指示采集关于第三目标对象的监控信息。第三目标对象包括UIGestureRecognizer。
根据本发明又一个方面,提供一种监测应用的方法,适于在移动终端中执行。该方
法包括下述步骤。确定被监测的应用中一个或多个第一目标对象相关联的第一操作指示。
其中,每个第一目标对象适于响应于接收到用户输入而根据相关联的第一操作指示执行相
应操作。将每个第一目标对象相关联的第一操作指示替换为包含该第一操作指示和相应的
第一监测指示的第二操作指示。这样,该被监测的应用根据相应的第一监测指示采集关于
第一目标对象的监控信息。获取所采集的监控信息并传输到监控服务器。
根据本发明又一个方面,提供一种移动终端,包括一个或多个驻留有监测应用的
装置的应用。
根据本发明又一个方面,提供一种应用监测系统,包括:一个或多个根据本发明的
移动终端和监测服务器。监测服务器适于获取来自该移动终端的关于应用的监控数据。
根据本发明的监测移动终端中应用的技术方案,可以对应用运行过程中所涉及的
目标对象(即视图对象和与视图对象相关的各种控制器)进行监测,以获取关于应用运行过
程的监控信息(例如交互轨迹)。特别是,本发明的监控方案,可以动态监测应用中一些目标
对象关联的操作指示的变化(例如,增加、删除或替换操作指示),并将变化后的操作指示替
换为包裹有监测代码的指示。这样,本发明的监测方案可以获取到能够精确定位应用崩溃
和卡顿的监控信息。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方
面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面
旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述
以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的
部件或元素。
图1示出了根据本发明一些实施列的移动终端100的结构框图;
图2示出了根据本发明一些实施例的监测应用的装置200的示意图;
图3A示出了根据本发明一个实施例中第一目标对象在执行第一操作指示的执行
流程;
图3B示出了根据本发明一个实施例中第一目标对象在执行第二操作指示的执行
流程;
图4A示出了根据本发明一个实施例的第二目标对象在被监控之前的执行环境示
意图;
图4B示出了根据本发明一个实施例的第二目标对象在被监控之后的执行环境示
意图;
图5示出了根据本发明一些实施例的监测应用的装置500的示意图;
图6示出了根据本发明一些实施例的监测应用的方法600的流程图;以及
图7示出了根据本发明又一些实施例的监测应用的方法700的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开
的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例
所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围
完整的传达给本领域的技术人员。
图1是移动终端100的结构框图。移动终端100可以包括存储器接口102、一个或多
个数据处理器、图像处理器和/或中央处理单元104,以及外围接口106。
存储器接口102、一个或多个处理器104和/或外围接口106既可以是分立元件,也
可以集成在一个或多个集成电路中。在移动终端100中,各种元件可以通过一条或多条通信
总线或信号线来耦合。传感器、设备和子系统可以耦合到外围接口106,以便帮助实现多种
功能。
例如,运动传感器110、光线传感器112和距离传感器114可以耦合到外围接口106,
以方便定向、照明和测距等功能。其他传感器116同样可以与外围接口106相连,例如定位系
统(例如GPS接收机)、温度传感器、生物测定传感器或其他感测设备,由此可以帮助实施相
关的功能。
相机子系统120和光学传感器122可以用于方便诸如记录照片和视频剪辑的相机
功能的实现,其中所述相机子系统和光学传感器例如可以是电荷耦合器件(CCD)或互补金
属氧化物半导体(CMOS)光学传感器。可以通过一个或多个无线通信子系统124来帮助实现
通信功能,其中无线通信子系统可以包括射频接收机和发射机和/或光(例如红外)接收机
和发射机。无线通信子系统124的特定设计和实施方式可以取决于移动终端100所支持的一
个或多个通信网络。例如,移动终端100可以包括被设计成支持LTE、3G、GSM网络、GPRS网络、
EDGE网络、Wi-Fi或WiMax网络以及BlueboothTM网络的通信子系统124。
音频子系统126可以与扬声器128以及麦克风130相耦合,以便帮助实施启用语音
的功能,例如语音识别、语音复制、数字记录和电话功能。I/O子系统140可以包括触摸屏控
制器142和/或一个或多个其他输入控制器144。触摸屏控制器142可以耦合到触摸屏146。举
例来说,该触摸屏146和触摸屏控制器142可以使用多种触摸感测技术中的任何一种来检测
与之进行的接触和移动或是暂停,其中感测技术包括但不局限于电容性、电阻性、红外和表
面声波技术。一个或多个其他输入控制器144可以耦合到其他输入/控制设备148,例如一个
或多个按钮、摇杆开关、拇指旋轮、红外端口、USB端口、和/或指示笔之类的指点设备。所述
一个或多个按钮(未显示)可以包括用于控制扬声器128和/或麦克风130音量的向上/向下
按钮。
存储器接口102可以与存储器150相耦合。该存储器150可以包括高速随机存取存
储器和/或非易失性存储器,例如一个或多个磁盘存储设备,一个或多个光学存储设备,和/
或闪存存储器(例如NAND,NOR)。存储器150可以存储操作系统172,例如Android、iOS或是
Windows Phone之类的操作系统。该操作系统172可以包括用于处理基本系统服务以及执行
依赖于硬件的任务的指令。存储器150还可以存储应用174。在移动设备运行时,会从存储器
150中加载操作系统172,并且由处理器104执行。应用174在运行时,也会从存储器150中加
载,并由处理器104执行。应用174运行在操作系统172之上,利用操作系统172以及底层硬件
提供的接口实现各种用户期望的功能,如即时通信、网页浏览、图片管理等。应用174可以是
独立于操作系统提供的,也可以是操作系统自带的。
一般而言,应用174中每个应用的崩溃(crash)和卡顿会在很大程度上影响用户体
验度。本发明提出了一种监测应用技术方案,即在需要被监测的应用中集成一个监测装置
(也可以称这个装置为探针,agent)。例如,图1中示出的被监测的应用中驻留有一个监测应
用的装置200。本发明的装置200被配置为采集被监测的应用在执行过程中的各种性能数
据。例如,装置200可以采集关于应用与用户的交互过程和交互过程中执行的操作的监控数
据。这里,与用户的交互过程和交互过程中执行的操作可以统称为交互轨迹。交互轨迹可以
包括各种用户输入。用户输入例如可以包括触摸事件(手势)、晃动事件和实体按钮事件等。
触摸事件例如可以包括:按键按压、按键按压保持、按压释放、滑动手势、捏合手势和双击手
势等,但不限于此。
另外,在被监测的应用的工作期间,该应用中生成有一系列的用户界面。每个用户
界面可以包括一个或多个视图对象(例如各种UIview)。取决于被监测应用的具体配置,一
部分视图对象可以关联有相应的控制对象(例如,各种Viewcontroller)。控制对象可以响
应于与视图对象相关联的用户输入(也可以称之为响应于视图对象被命中)而执行一个或
多个操作指示。在被执行之前,操作指示可以被表示为一段加载在内存中的资源代码(资源
代码也可以称之为可以被调用并执行的方法)。与视图对象关联的控制对象可以被认为是
视图对象的一部分。除了上文中提到的一部分视图对象在被激活(命中)时通过与其关联的
控制对象执行操作指示以外,另一部分视图对象(例如按钮或开关等)也可以直接响应于用
户输入而直接执行相关联的操作指示。为了简化描述,下文中将各种视图对象、控制对象等
交互对象统称为目标对象,而不再进行具体区分。
相应地,装置200所采集的监控数据例如可以包括各种用户输入、目标对象执行操
作指示期间所引起的各种状态变化和操作结果等。下面结合图2对监测应用的装置200进一
步示例性说明。
图2示出了根据本发明一些实施例的监测应用的装置200的示意图。该装置适于驻
留在被监测应用中。换言之,装置200可以被认为是被监测应用的组件。
如图2所示,装置200可以包括监测单元210、替换单元220和通信单元230。
监测单元210适于确定被监测的应用中一个或多个第一目标对象相关联的第一操
作指示。其中,每个第一目标对象适于响应于接收到用户输入而根据相关联的第一操作指
示执行相应操作。这里,第一目标对象包括下述中至少一种:适于与用户交互的控件对象、
视图控制器和应用委托对象。控件对象包括下述中至少一种:UIButton、UIDatePicker、
UIPageControl、UISegmentedContorl、UISlider、UIStepper、UISwitch和
UIStoryboardSegue。应用委托对象包括UIApplicationDelegate;视图控制器包括
UIViewController。这里,第一操作指示可以被配置为属于第一目标对象,或者被配置为第
一目标对象的代理(delegate)操作,本发明对此不做过多限制。
对于每个第一目标对象相关联的第一操作指示,替换单元220适于将其替换为、包
含该第一操作指示和相应的第一监测指示的第二操作指示。这样,该被监测的应用根据相
应的第一监测指示采集关于第一目标对象的监控信息。需要说明的是,上文中第一目标对
象通常是被监测的应用在创建用户界面时实例化的。在根据本发明的一个实施例中,监测
单元210确定第一操作指示的方式是,通过确定第一目标对象的父类(父类相关代码信息可
以用于第一目标对象的实例化),进而确定第一操作指示对应的代码信息。在此基础上,替
换单元220可以对第一操作指示执行替换操作。替换单元220执行替换操作的代码示例如
下:
IMP class_replaceMethod(Class cls,SEL name,IMP imp,const char*types)
这里,第一目标对象的父类例如是UIControl,第一操作指示对应的方法名称为
sendAction:to:forEvent:,但不限于此。又例如,第一目标对象为UIViewController。相应
地,第一操作指示对应的方法名称为viewDidAppear:。
在又一个例子中,第一目标对象为手机摇动控制对象。待替换第一操作指示对应
的方法名称为motionEnded:withEvent:。在又一个例子中,第一目标对象类型为打开应用、
结束应用、切换应用到后台或者改变屏幕方向的控制对象。相应地,第一操作指示对应的方
法名称为UIApplicationDelegate中application:didFinishLaunchingWithOption:、
application:handleOpenURL:、application:openURL:sourceApplication:annotation:、
applicationDidBecomeActive:、applicationWillTerminate:、
applicationDidEnterBackground:或者application:didChangeStatusBarOrientation:。
这样,在第一目标对象响应于用户输入而执行的操作是经过替换的第二操作指
示。被监测的应用在根据第二操作指示执行操作时,可以执行第一操作指示,还可以通过执
行第一监测指示而实现监测功能。需要说明的是,取决于第一目标对象的具体类型,执行第
一监测指示而采集的监控数据可以包括与第一目标对象相关的交互轨迹。应当理解,本发
明的实施例可以根据具体采集目标而配置相应的第一监测指示,本发明对此不做过多限
制。为了更形象说明第一目标对象相关联的操作指示在替换前后的执行情况,下面以图3A
和图3B为例,对第一操作指示和第二操作指示的执行流程进行示例性说明。图3A示出了根
据本发明一个实施例中第一目标对象在执行第一操作指示的执行流程。图3B示出了根据本
发明一个实施例中第一目标对象在执行替换后第二操作指示的执行流程。如图3A所示,步
骤S33为根据第一操作指示执行的操作。如图3B所示,在执行S33之前,执行采集交互数据的
步骤S34。根据第二操作指示执行的步骤包括S33和S34。应注意,S33和S34的执行顺序并不
限于图3B所示。
另外,通信单元230可以从被监测的应用获取所采集的监控信息并传输到监测服
务器。这样,监测服务器可以获取多个移动终端中所采集的监控信息,并对被监测应用的性
能进行分析。例如,监测服务器通过所获取的交互轨迹,定位崩溃和分析应用卡顿状况,但
不限于此。
可选地,根据本发明的监测单元210还可以监测一个或多个第二目标对象中指向
相关联的第三操作指示的参数信息。这里,第二目标对象例如可以是UITableView、
UICollectionView、UIPickerView、UITextField或UITextView,但不限于此。在根据本发明
一个实施例中,监测单元210可以指示替换单元220在每个第二目标对象中插入适于监测参
数信息的第三监测指示。这样,第二目标对象可以根据该第三监测指示监测参数信息并在
参数信息发生变化时通知监测单元210。这里,监测单元210是在第二目标对象初始化(即第
二目标对象被创建,也可以称之为被实例化)时,指示替换单元220实施插入第三监测指示
的操作。以UITextField为例,第二目标对象可以根据第三监测指示监测代理(delegate)属
性(即,参数信息)的变化。这样,在UITextField 相关联的代理方法的属性变化时,可以通
知监测单元210。
在监测单元210监测到一个或多个第二目标对象中一个的参数信息更新时,替换
单元220可以将更新后的参数信息所指向的第三操作指示替换为包含该第三操作指示和相
应的第二监测指示的第四操作指示。这样,被监测的应用可以根据第二监测指示采集关于
这个第二目标对象的监控信息。本发明的具体实施例可以根据具体采集目标而配置相应的
第二监测指示,本发明对此不做过多限制。综上,本发明的装置200可以对相关联操作指示
动态变化的第二目标对象进行实时动态监测,从而获取到与第二目标对象相关的监控信息
(例如交互轨迹,但不限于此)。为了更形象地示例,下面结合图4A和图4B对第二目标对象的
监控实现进行说明。图4A示出了根据本发明一个实施例的第二目标对象在被监控之前的执
行环境示意图。图4B示出了根据本发明一个实施例的第二目标对象在被监控之后的执行环
境示意图。如图4A所示,第二目标对象相关的步骤包括S41、S42、S43和S44。其中,S41为初始
化该第二目标对象。S42配置相关代理属性。代理属性指向S43中所执行的第三操作指示。
S44销毁这个第二目标对象。相比而言,图4B中监测应用的装置会通过步骤S45添加监测代
理属性的操作指示到第二目标对象。第二目标对通过执行步骤S46,可以监测到步骤S47,并
通过步骤S48通知监测应用的装置。监测应用的装置可以通过S49替换第二操作指示为第四
操作指示。被监测的应用根据第四操作指示执行步骤S410和S43。应注意,根据第四操作指
示执行的操作不限于图4B所示。
图5示出了根据本发明一些实施例的监测应用的装置500的示意图。如图5所示,装
置500包括监测单元510、替换单元520、通信单元530和配置单元540。这里,监测单元510、替
换单元520和通信单元530被配置为可以实现监测单元210、替换单元220和通信单元230的
结构和功能,这里对此不再赘述。
另外,监测单元510还可以获取关于一个或多个第三目标对象中每个所要执行的
第五操作指示的记录。这里,第三目标对象例如为UIGestureRecognizer(手势识别器),但
不限于此。以手势识别器为例,通常而言在应用界面中一个视图对象(view)可以被分配有
一个或多个手势识别器。这样,在这个视图对象被命中(例如被单击手势等用户输入激活)
时,手势识别器可以根据与其相关联的第五操作指示执行相应操作。这里,第五操作指示可
以包括一个或多个子操作指示。为了存放关于第五操作指示的记录。下面以
UIGestureRecognizer对应的代码格式为例,对第三目标对象和第三操作指示进行说明。
UIGestureRecognizer其从属于一个视图对象,该视图对象对应代码示例:
UIView view=UIView();
UIGestureRecognizer的实例的对应代码:
UITapGestureRecognizer tap=UITapGestureRecognizer();
第三操作指示包括la子操作指示、lb子操作指示和lc子操作指示。相关代码示例
为:
LogicA la=LogicA();
LogicB lb=LogicB();
LogicC lc=LogicC();
tap.add(la,“functionXXX”);//开发者添加la的方法functionXXX
tap.add(lb,“functionXXX”);//开发者添加lb的方法functionXXX
tap.add(lc,“functionXXX”);//开发者添加lc的方法functionXXX
配置单元540可以为每个第三目标对象,配置一个存放关于第五操作指示的记录
的列表。每个列表项为对一个子操作指示的记录项。需要说明的是,监测单元510监测第三
目标对象的方式可以被实施为指示替换单元520为第三目标对象添加(关联)一个监测指
示。通过执行监测指示,第三目标对象响应于接收到对第三操作指示的修改输入指示(该修
改例如为增加、替换或删除第三操作指示中子操作指示),将该修改输入指示通知到监测单
元510。在此基础上,监测单元510可以根据该修改输入指示更新相应的列表。另外,替换单
元520还可以将每个第三目标对象关联的列表中每个记录所指向的第五操作指示替换为包
含这个第五操作指示和相应的第四监测指示的第六操作指示。这样,被监测的应用可以根
据第四监测指示采集关于第三目标对象的监控信息。通信单元530还可以获取关于第三目
标对象的监控信息并传输到监测服务器。
图6示出了根据本发明一些实施例的监测应用的方法600的流程图。方法600适于
在移动终端(100)中执行,更具体是在被监测的应用中执行。如图6所示,方法600始于步骤
S610。一般而言,S610是在被监测应用被启动时执行的。
在步骤S610中,确定被监测的应用中一个或多个第一目标对象相关联的第一操作
指示。这里,第一目标对象包括下述中至少一种:适于与用户交互的控件对象、视图控制器
和应用委托对象。控件对象包括下述中至少一种:UIButton、UIDatePicker、
UIPageControl、UISegmentedContorl、UISlider、UIStepper、UISwitch和
UIStoryboardSegue。应用委托对象包括UIApplicationDelegate。视图控制器包括
UIViewController。其中,每个第一目标对象适于响应于接收到用户输入而根据相关联的
第一操作指示执行相应操作。步骤S610更具体的实施方式与上文中监测单元210一致,这里
不再赘述。
对于步骤S610所确定的每个第一目标对象相关联的第一操作指示,方法600执行
步骤S620。在步骤S620中,将每个第一目标对象相关联的第一操作指示替换为、包含该第一
操作指示和相应的第一监测指示的第二操作指示。这样,被监测的应用可以根据相应的第
一监测指示采集关于第一目标对象的监控信息。步骤S620更具体的实施方式与替换单元
220一致,这里不再赘述。另外,方法600还包括步骤S630,获取所采集的监控信息并传输到
监控服务器。
图7示出了根据本发明又一些实施例的监测应用的方法700的流程图。
方法700包括步骤S710和S720。步骤S710-S720分别与步骤S610-S620一致,这里不
再赘述。
另外,方法700还包括步骤S730,监测一个或多个第二目标对象中指向相关联的第
三操作指示的参数信息。这里,第二目标对象例如可以包括下述中至少一种:UITableView、
UICollectionView、UIPickerView、UITextField和UITextView。根据本发明一个实施例,步
骤S730可以在每个第二目标对象中插入适于监测参数信息的第三监测指示。这样,第二目
标对象根据该第三监测指示监测参数信息并在参数信息发生变化时发出通知。步骤S730更
具体的实施方式请参见监测单元210,这里不再赘述。
在监测到一个或多个第二目标对象中一个的参数信息更新时,方法700 执行步骤
S740。在步骤S740中,将更新后的参数信息所指向的第三操作指示替换为包含该第三操作
指示和相应的第二监测指示的第四操作指示。这样,被监测的应用可以根据相应的第二监
测指示采集关于这个第二目标对象的监控信息。步骤S740更具体的实施方式请参见替换单
元220,这里不再赘述。
可选地,方法700还可以执行步骤S750,监测一个或多个第三目标对象中每个所要
执行的第五操作指示的记录。这里,第三目标对象例如可以是UIGestureRecognizer,但不
限于此。步骤S750更具体的实施方式请参见监测单元510,这里不再赘述。
对于每个第三目标对象,方法700执行步骤S760,为其配置一个存放关于所要执行
的第五操作指示的记录的列表。步骤S760更详细的实施方式请参见配置单元S540,这里不
再赘述。
另外,方法700还执行步骤S770。在步骤S770中,将每个第三目标对象关联的列表
中每个记录所指向的第五操作指示替换为包含这个第五操作指示和相应的第四监测指示
的第六操作指示。这样,被监测的应用可以根据相应的第四监测指示采集关于第三目标对
象的监控信息。步骤S770更具体的实施方式请参见替换单元520,这里不再赘述。另外方法
700还包括步骤S780。步骤S780与上文中步骤S630一致,这里不再赘述。
A9、如A8所述的装置,其中所述第一目标对象包括下述中至少一种:适于与用户交
互的控件对象、视图控制器和应用委托对象;控件对象包括下述中至少一种:UIButton、
UIDatePicker、UIPageControl、UISegmentedContorl、UISlider、UIStepper、UISwitch和
UIStoryboardSegue;应用委托对象包括UIApplicationDelegate;视图控制器包括
UIViewController。A10、如A8或A9所述的方法,还包括:监测一个或多个第二目标对象中指
向相关联的第三操作指示的参数信息;在监测到一个或多个第二目标对象中一个的参数信
息更新时,将更新后的参数信息所指向的第三操作指示替换为包含该第三操作指示和相应
的第二监测指示的第四操作指示,以便该被监测的应用根据相应的第二监测指示采集关于
这个第二目标对象的监控信息。A11、如A10所述的方法,其中,所述监测一个或多个第二目
标对象中指向相关联的第三操作指示的参数信息的步骤包括:在每个第二目标对象中插入
适于监测所述参数信息的第三监测指示,以便第二目标对象根据该第三监测指示监测所述
参数信息并在参数信息发生变化时发出通知。A12、如A10或A11所述的方法,其中,所述第二
目标对象包括下述中至少一种:UITableView、UICollectionView、UIPickerView、
UITextField和UITextView。A13、如A8-A12中任一项所述的方法,还包括:监测一个或多个
第三目标对象中每个所要执行的第五操作指示的记录;为每个第三目标对象,配置一个存
放关于所要执行的第五操作指示的记录的列表;将每个第三目标对象关联的列表中每个记
录所指向的第五操作指示替换为包含这个第五操作指示和相应的第四监测指示的第六操
作指示,以便被监测的应用根据该相应的第四监测指示采集关于第三目标对象的监控信
息。A14、如A13所述的装置,其中,所述第三目标对象包括下述中任一种:
UIGestureRecognizer。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施
例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结
构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在
上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施
例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保
护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的
权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵
循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都
作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组
件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备
不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个
子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地
改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单
元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或
子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何
组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任
何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权
利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代
替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例
中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的
范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任
意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行
所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法
元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在
此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行
的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来
描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必
须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域
内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,
本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限
定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本
技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本
发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。