具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书中的一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例保护的范围。
本说明书提供的一个或多个实施方案中,可以预先采集终端设备的硬件属性信息,然后构建分类模型,对真实的品牌型号进行识别(标识出真实的品牌和型号),能够有效的识别出篡改设备品牌、型号信息的行为。需要说明是的是,本申请实施例中所提及的设备识别模型识别出的真实设备型号信息是指设备识别模型响应于待识别设备的设备请求数据而输出的设备品牌、型号信息,最终输出结果的可靠性主要依赖于采用的模型算法和使用的训练数据。所述的“真实”设备型号信息可以允许与实际设备的真实品牌型号不同。
本说明书实施例中可以采用多种分类算法构建设备识别模型。例如一个实施例中可以采用GBM算法(Gradient Tree Boosting Algorithm,梯度树增强算法)进行模型训练,如图1所示的处理过程。当然也可以采用GBDT(Gradient Boosting Decision Tree,梯度提升决策树)或者xgboost(极端梯度上升Extreme Gradient Boosting)等基于boosting算法(用来提高弱分类算法准确度的方法)。或者,其他的实施例中也可以采用LR(Logistic,逻辑回归)、deep learning(深度学习)等算法构建模型。本说明书提供的实施方案在模型构建训练时采用的训练数据至少包括终端设备的设备硬件信息,使用已知可靠的硬件属性数据来训练设备识别模型,确定模型中的参数,然后线上使用,在接收到待识别设备的设备请求数据时可以标识出真实的设备品牌型号,有效识别出篡改品牌或型号信息的行为。
以手机品牌和型号的移动通信终端设备型号识别应用场景为例,在模型训练阶段,可以采集不同品牌和型号的手机的硬件设备属性信息。通常一个手机品牌下可以对应多个型号是手机,在训练数据采集过程中,可以设置每个品牌型号对应的设备最低设备数量,以保障训练数据的可靠性和输出结果的准确性。考虑到手机品牌和型号的种类分布和发展状况,在本申请的一个实施例中,可以设置每一个品牌对应的设备数量至少有100台,其中每个型号的设备数量至少有10台。经过实际实验效果对比,采用上述方式获取到的训练数据,既可以无需大量训练样本的数据采集,减少成本,同时又可以使得设备识别模型有较高识别准确性的结果输出。
设备识别模型使用的训练数据可以包括多种类型的数据信息,但至少包括一种设备硬件信息。所述的设备硬件信息可以包括终端设备上某个单元部件或部件组合的识别标识,如主板型号、国际移动设备身份码IMEI、MAC地址、ROM名称等。在实际场景中,所述的训练数据通常采用多个硬件设备信息,可以更加有效、可靠的识别出篡改其中一个或多个硬件设备信息的行为。当然,所述的训练数据还可以包括终端设备上其他软件或软件+硬件结合形成的标识信息,如国际移动用户识别码IMSI、设备***版本信息等。
使用训练数据对采用的设备识别模型进行训练后,可以线上进行使用。当需要对待识别设备的设备型号进行判识时,可以请求获取待识别设备的设备请求数据,然后处理器将该设备请求数据输入构建的设备识别模型中进行处理。设备识别模型可以基于获取的设备请求数据输出对应的品牌型号分类结果。一些实施场景中,在计算机处理能力运行的情况下,也可以在设备识别模型构建、训练的同时对待识别设备进行识别处理,即,本说明书提供的实施方式可以在设备识别模型线下训练完成后线上使用,也可以基于平台或云计算***等实时的构建或训练设备识别模型,用于对待识别设备的设备请求数据进行处理。或者,所述的设备识别模型也可以线上更新、维护,或者线上***(服务器、服务器集群或分布式服务器)有多个类型的设备识别模型,可以先分析处理设备请求数据,然后匹配与设备请求数据对应的最优(根据实际获取的设备请求数据包括的数据信息来选择最适用的设备识别模型)的设备识别模型进行处理。
下面以一个具体的手机品牌型号应用场景为例对本说明书实施方案进行说明。具体的,图2是本说明书提供的所述一种设备型号识别方法实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
当然,下述实施例的描述并不对基于本说明书的其他可扩展到的技术方案构成限制。例如其他的实施场景中,本说明书提供的实施方案同样可以应用到非移动终端设备型号识别的实施场景中,如PC终端、共享车辆设备、其他专用设备等。具体的一种实施例如图2所示,本说明书提供的一种设备型号识别方法可以包括:
S0:获取待识别设备的设备请求数据,所述设备请求数据至少包括设备硬件信息;
S2:利用构建的设备识别模型对所述设备请求数据进行识别处理,得到所述待识别设备的真实设备型号,所述设备识别模型采用至少包括所述设备硬件信息的训练数据进行训练、输出设备品牌型号的分类算法。
本实施例提供的方法可以用于服务器一侧。所说的服务器可以包括单独的服务器、服务器集群、分布式***服务器或者处理设备请求数据的服务器与其他相关联数据处理的***服务器组合(如识别待处理设备的服务器与训练构建设备识别模型的服务器)。服务器可以获取待识别设备的设备请求数据,当然,所述的设备请求数据可以包括设备硬件信息。一些应用场景中,在进行设备型号识别处理中,通常可以指定终端设备上传预定的多种设备硬件信息,但由于权项或其他原因,终端设备上传的设备信息中可能包括部分预定的设备请求数据,甚至设备信息中无设备硬件信息。此时可以下发相应的提示信息请求开放硬件设备信息获取权限或者因为无设备硬件信息而执行其他的处理,具体的可以根据实际应用场景制定相应的策略。
如前所述,本说明书实施例所述的方法中,模型训练所使用的训练数据可以包括类型的设备硬件以及软件的数据信息。本说明书提供的一个实施例中,所述训练数据可以至少包括下属中的一种:
国际移动设备身份码IMEI、国际移动用户识别码IMSI、有线/无线媒体访问控制地址MAC/WIFI-MAC、蓝牙地址Bluetooth,、分辨率、主板型号、只读存储器rom名称。
当然,除上述所述外,还可以包括其他的硬件数据信息构成的训练数据。在上述的训练数据中,IMEI通常包括下述的数据字段:
TAC=Type Approval Code(first 2digits=country code)设备型号核准号码;
FAC=Final Assembly Code(For Nokia phones FAC=51)最后装配号;
SNR=Serial Number序列号;
SP=Spare(always SP=0)备用号码。
一般的,IMSI号码采用E.212格式,号码总长度为16位,它由MCC+MNC+MSIN三部分组成,其中:
MCC:移动国家码,三个数字,如中国为460;
MNC:移动网号,两个数字,如***的MNC为00(联通是01,移动159新号段是02),可以有效针对终端绑定移动通信运营商的设备进行识别。
MSIN:移动客户识别号,如在某一PLMN(Public Land Mobile Network,公共陆地移动网络)中移动台的唯一识别码,MSIN=H0H1H2H3(S)XXXXXX(共11位)。
使用IMEI、IMSI训练数据时,可以通过把IMEI、IMSI切分成成上述部分,通过识别其中的一些字段信息可以一定程序上反应手机品牌相关的信息。
当然,还可以包括有线或无线的MAC地址、手机屏幕分辨率、使用的主板厂商和型号等。因此,本说明书提供的所述方法的另一个实施例中,所述训练数据可以至少包括下述中的一种:
国际移动设备身份码、国际移动用户识别码、有线/无线媒体访问控制地址、蓝牙地址、分辨率、主板型号、只读存储器名称。
这样,既可以保障数据采集的有效性,同时也可以减少终端数据采集种类和网络开销。
需要说明是的,设备识别模型输出的所述的设备型号可以包括设备名称、型号名称、品牌名称等中的一个或多个,如输出的结果可以为品牌信息“小米”,也可以为“小米-note2”,甚至,在一些应用场景中也可以仅输出型号信息(适用于不同的品牌名下的型号信息均不相同的情况)。为便于统一描述,本说明书的一些实施例中可以将设备识别模型输出的结果统一称为设备型号信息,但并不限定一定是包括设备、品牌、型号中的一种信息。
图3是本说明书提供的一种基于GBM算法进行手机终端的品牌和型号识别的处理过程示意图。在图3中,可以基于主动获取或设备上报的型号属性数据生成训练标签,标签数据具体的可以为“xiaomi note2”、“oppo r9”、“vivo x7”等。在GBM算法中,可以通过对上一次树残差的学习,构建新的子树。权重值优化可以参考经典人adaboosting等算法。树的构建过程主要为标准的树生成算法。模型计算完后,可以对每个样本,计算出每个分类的概率,取最大的概率作为预测分类,然后跟真实分类进行对照,进而可以确定准确率,覆盖率等指标。通过相关指标可以对模型效果进行评估、参数调整、优化等。对于待识别设备,可以提取对应的设备信息,获取设备请求数据。然后利用学习得到的GBM模型对设备请求数据进行打分,得分最高的分类作为真实的品牌型号。
本说明书提供的所述方法的另一个实施例中,可以进一步对训练数据进行过滤和筛选,使用设备原始、真实的硬件数据信息。具体的,所述方法的另一个实施例中,所述的训练数据至少经过下述之一的筛选处理:
删除获取***最高权限操作(root)的训练数据;
删除经过钩子机制(hook)截获后的消息中包含的训练数据。
经过hook和root的设备信息可能包含虚假数据,所以在本实施例中可以滤掉这些虚假数据。其中,hook(钩子)实际上是一个处理消息的程序段,通过***调用,把它挂入***。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。本实施例中执行root和hook的设备请求数据的过滤,可以进一步提升模型训练精度和输出结果的可靠性。当然,实际的训练数据采集可以设置数据种类或数量可以设置相应的采集要求,例如至少三种硬件信息、一个品牌对应的设备数至少到100台。采集完成后对训练数据进行筛选或者在采集的过程中采用一定的策略识别数据是否经过root或hook修改。
如前所述,本说明书一个或多个实施例中,所述的设备识别模型,可以采用离线预先构建的方式生成,可以采用训练数据进行训练打标后再在线上使用。本说明书不排除所述设备识别模型采用在线构建或更新/维护的方式,在计算机能力足够的情况下,可以在线构建出设备识别模型。当然,在计算机性能允许的情况下,也可以通过实时流引擎实时计算获得硬件设备可以同步在线使用,识别设备品牌型号。
一些实施例中,设备识别模型基于设备请求数据可以计算出多个设备型号的分类标签,每个分类标签可以有对应的概率取值或者分值(分值的高低也可以认为是概率大小的一种)。一些可选的实施例中,计算得到的分类标签可以全部或者部分输出,由用户人工或者进一步判断真实品牌型号。本说明书提供的所述方法的另一个实施例中,可以设定一个概率取值范围,将符合概率取值范围内的分类标签作为识别出的真实设备型号。具体的,所述得到所述待识别设备的真实设备型号可以包括:
基于所述设备请求数据计算所述待识别设备对应于所述设备识别模型相应分类标签的概率取值;
将预定概率取值范围对应的分类标签作为所述待识别设备的真实设备型号。
这样,在一些情况下,可以输出两个或者更多识别出的待识别设备所属的真实设备型号信息。若所有的识别结果均不符合预定概率取值,则可以判定为无法识别或设备信息数据无效,或者其他的处理方式。当然,另一些实施例中,设备请求数据对应多个分类标签时,可以将打分最高或概率值最高的对应的分类标签作为待识别设备的真实设备型号。
本说明书提供的另一个实施例中,输出的所述真实设备型号还可以包括所述待识别设备属于所述分类标签的可靠性评估数据,所述可靠性评估数据基于所述分类标签对应的概率取值确定。如输出手机型号的同时,还输出手机是这个型号的可靠性评估数据,例如基于上传的设备请求数据识别为输出为xiaomi note2,但评分仅为41分(或概率取值为0.41),可以作为是否将该模型得到真实设备型号的输出结果作为实际真实的型号的参考依据,为设备的识别提供更多的数据支持,方便用户决策。
具体的分类标签可以根据实际应用场景确定。在本说明书的一些手机真实品牌型号识别的应用场景中,分类标签可以包括终端设备的品牌名称、对应于品牌名称的型号。本实施例中可以包括品牌名称缺省或型号名称缺省的任意一种情况。这样,在手机品牌型号识别的实施场景中,可以更加直观输出的品牌和型号信息,以及对应的打分(或概率),便于用户决策,提高用户使用体验。
本说明书实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图4是本发明实施例的一种识别车辆受损部件的服务器的硬件结构框图。如图4所示,服务器10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图4中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存,或者具有与图4所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的搜索方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述导航交互界面内容展示的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
基于上述所述的设备型号识别方法,本说明书还提供一种设备型号识别装置。所述的装置可以包括使用了本说明书实施例所述方法的***(包括分布式***)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的设备装置。基于同一创新构思,本说明书提供的一种实施例中的处理装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的处理装置的实施可以参见前述方法的实施,重复之处不再赘述。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。具体的,如图5所示,图5是本说明书提供的可以用于服务器一侧的一种设备型号识别装置实施例的模块结构示意图,具体的可以包括:
设备数据获取模块101,可以用于获取待识别设备的设备请求数据,所述设备请求数据至少包括设备硬件信息;
识别模型处理模块102,可以利用构建的设备识别模型对所述设备请求数据进行识别处理,得到所述待识别设备的真实设备型号,所述设备识别模型采用至少包括所述设备硬件信息的训练数据进行训练、输出设备品牌型号的分类算法。
所述的设备识别模型可以采用离线预先构建的方式生成,可以采用训练数据进行训练打标后再在线上使用。本说明书不排除所述设备识别模型采用在线构建或更新/维护的方式,在计算机能力足够的情况下,可以在线构建出设备识别模型。当然,在计算机性能允许的情况下,也可以通过实时流引擎实时计算获得硬件设备可以同步在线使用,识别设备品牌型号。
一种实施例中,所述识别处理模块102中构建所述设备识别模型所使用的训练数据至少包括下述中的一种:
国际移动设备身份码、国际移动用户识别码、有线/无线媒体访问控制地址、蓝牙地址、分辨率、主板型号、只读存储器名称。
另一种实施例中,所述的训练数据至少经过下述之一的筛选处理:
删除获取***最高权限操作的训练数据;
删除经过钩子机制截获后的消息中包含的训练数据。
另一种实施例中,所述识别处理模块102得到的所述待识别设备的真实设备型号可以包括:
基于所述设备请求数据计算所述待识别设备对应于所述设备识别模型相应分类标签的概率取值;
将预定概率取值范围对应的分类标签作为所述待识别设备的真实设备型号。
所述的预定概率范围可以是一个区间,也可以是最大的概率取值。
所述装置的另一个实施例中,不仅可以输出待识别设备的真实设备型号,还可以输出对应该输出结果相应的概率值或分值。因此,所述真实设备型号还可以包括所述待识别设备属于所述分类标签的可靠性评估数据,所述可靠性评估数据基于所述分类标签对应的概率取值确定。
所述装置具体的一个手机品牌型号识别应用场景的一个实施例中,所述分类标签包括终端设备的品牌名称、对应品牌名称的型号。
上述实施例所述的装置具体的实施可以参照相关方法实施例的描述,在此不做赘述。
本说明书实施例提供的设备型号识别方法可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作***的c++语言在PC端或服务器端实现,或其他例如Linux、***相对应的应用设计语言集合必要的硬件实现,或者基于量子计算机的处理逻辑实现等。具体的,本说明书提供的一种识别设备型号的处理设备实现上述方法的实施例中,所述处理设备可以包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取待识别设备的设备请求数据,所述设备请求数据至少包括设备硬件信息;
利用构建的设备识别模型对所述设备请求数据进行识别处理,得到所述待识别设备的真实设备型号,所述设备识别模型采用至少包括所述设备硬件信息的训练数据进行训练、输出设备品牌型号的分类算法。
上述的指令可以存储在多种计算机可读存储介质中。所述计算机可读存储介质可以包括用于存储信息的物理装置,可以将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。本实施例所述的计算机可读存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。上述所述的装置或服务器或客户端或处理设备中的所涉及的指令同上描述。
需要说明的是,本说明书实施例上述所述的装置、处理设备,根据相关方法实施例的描述还可以包括其他的实施方式,如删除获取***最高权限操作的训练数据,或者删除经过钩子机制截获后的消息中包含的训练数据。具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或***服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
尽管本说明书实施例内容中提到利用GBM算法进行模型训练、IMEI和MAC的硬件设备信息、离线或在线构建模型、训练数据采集要求和筛选处理等之类的数据获取、存储、交互、计算、判断等操作和数据描述,但是,本说明书实施例并不局限于必须是符合行业通信标准、标准分类模型处理、通信协议和标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的处理设备、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。