终端中应用获取地理位置信息的方法、电子设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及终端中应用获取地理位置信息的方法、电子设备及介质。
背景技术
随着移动网络技术的飞速发展,人们对于位置信息的需求越来越大,各种基于位置信息的应用广泛服务于人们生活的方方面面。目前,大多数基于位置信息的应用都是依赖于GPS定位来获取用户的地理位置信息,然而GPS定位在室内由于信号屏蔽等问题,有时会出现无法使用的问题。若GPS定位无法正常使用,则这些应用会因为缺少地理位置信息而无法为用户提供服务,影响用户的使用感受。
申请内容
本申请提供了一种终端中应用获取地理位置信息的方法、电子设备及介质,用以避免GPS定位无法使用导致应用无法为用户提供服务、用户体验差的问题。
本申请实施例采用下述技术方案:
本申请实施例提供一种终端中应用获取地理位置信息的方法,其特征在于,包括:
监测终端中的应用是否符合预设的定位需求策略;
若符合则获取终端扫描到的热点信息,将热点信息发送至服务端;
接收来自服务端的根据热点信息生成的地理位置信息。
优选地,根据监测终端中的应用是否符合预设的定位需求策略包括:
监测终端中的应用是否执行预定的动作。
优选地,预定的动作包括:
应用启动或应用发送定位请求。
优选地,获取终端扫描到的热点信息包括;
判断具有定位需求的应用是否具有预设的定位权限;
若有则获取终端扫描到的热点信息。
优选地,判断具有定位需求的应用是否具有预设的定位权限包括:
判断具有定位需求的应用是否属于白名单。
优选地,所述的方法还包括:
将生成的地理位置信息发送至具有定位权限的应用。
优选地,若应用没有预设的定位权限时,所述的方法还包括:
向具有定位需求的应用发送验证请求,验证请求用于供终端的用户确认是否允许定位;
接收来自具有定位需求的应用的与验证请求相对应的验证反馈;
判断验证反馈是否符合预设的验证策略,若符合则获取终端扫描到的热点信息。
优选地,地理位置信息为经度和纬度信息。
优选地,监测终端中的应用是否符合预设的定位需求策略;若符合则获取终端扫描到的热点信息,将热点信息发送至服务端包括:
定位应用监测终端中的应用是否符合预设的定位需求策略;
若符合则定位应用获取终端扫描到的热点信息,将热点信息发送至服务端。
优选地,定位应用为定位服务SDK。
本申请实施例提供一种终端中应用获取地理位置信息的方法,其特征在于,包括:
终端中的应用向定位服务发送定位请求;
接收定位服务响应定位请求的地理位置信息,地理位置信息为根据终端扫描到的热点信息生成的地理位置信息。
优选地,所述的方法还包括:
接收定位服务的验证请求,验证请求为定位服务判断应用不具有预设的定位权限时发送的,供终端的用户确认是否允许定位的验证请求;
将接收到的终端的用户对验证请求的反馈发送至定位服务。
优选地,地理位置信息为经度和纬度信息。
优选地,终端中的应用向定位服务发送定位请求;接收定位服务响应定位请求的地理位置信息,地理位置信息为根据终端扫描到的热点信息生成的地理位置信息包括:
终端中需要定位服务的应用向定位应用发送定位请求;
接收定位应用响应定位请求的地理位置信息,地理位置信息为服务端根据热点信息生成的地理位置信息,热点信息为定位应用获取的终端扫描到的热点信息。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令可被处理器执行以实现上述任一项的终端中应用获取地理位置信息的方法。
本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述任一项的终端中应用获取地理位置信息的方法。
由于本实施例中监测终端中的应用是否符合预设的定位需求策略;若符合则获取终端扫描到的热点信息,将热点信息发送至服务端;接收来自服务端的根据热点信息生成的地理位置信息,这样的定位方法在判断应用具有定位需求时获取利用热点信息进行定位,避免了GPS定位无法使用时应用缺少地理位置信息无法提供服务的问题,提高了用户的体验感受,同时由于可以对应用的定位需求进行判断,因此能够预先获取地理位置信息供应用使用,提高了应用提供服务的速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例1提供的终端中应用获取地理位置信息的方法的流程图。
图2为本申请实施例2提供的终端中应用获取地理位置信息的方法的流程图。
图3为本申请实施例3提供的终端中应用获取地理位置信息的方法的流程图。
图4为本申请实施例4提供的终端中应用获取地理位置信息的方法的流程图。
图5为本申请实施例5提供的终端中应用获取地理位置信息的系统的结构示意图。
图6为本申请实施例6提供的终端中应用获取地理位置信息的系统的结构示意图。
具体实施方式
本申请提供了一种终端中应用获取地理位置信息的方法、电子设备及介质,用以避免GPS定位无法使用时应用缺少地理位置信息无法提供服务的问题,提高了用户的体验感受。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下,参照附图对本申请的终端中应用获取地理位置信息的方法、电子设备及介质进行详细阐述。
本申请实施例1的执行主体为服务商提供的设置在终端中的定位应用,即设置在终端中能够实现本申请实施例1中所记载的技术方案中定位服务的应用。
图1为本申请实施例1提供的终端中应用获取地理位置信息的方法的流程图。
如图1所示,本实施例1中终端中应用获取地理位置信息的方法包括以下步骤:
步骤S1-1,监测终端中的应用是否符合预设的定位需求策略。
本实施例中,终端中的应用为终端中所有已安装的应用,这些应用由于提供服务的不同,需要不同的情况下获取终端的地理位置信息的,为满足这些应用的需求,需要判断应用何时具有定位需求,故监测终端中的应用,若应用符合预设的定位需求策略,则判断该应用具有定位需求。具体地,可以是监测终端中的应用是否执行预定的动作,其中,预定的动作为应用启动或应用发送定位请求。
例如,当应用为天气类应用时,监测到天气类应用启动时,可以判定应用具有定位需求,预先获取地理位置信息,以便应用在提供服务时可以直接根据该地理位置信息向用户展示相关的信息。当应用为打车类应用时,由于应用在提供服务的过程中会不断出现新的地理位置信息需求,故在监测到打车类应用发送定位请求时,判定应用具有定位需求,获取地理位置信息,供应用使用。
需要说明的是,监测到终端中的应用启动可以是对终端系统中的应用的启动进行监听,一旦监听到应用启动则判定应用具有定位需求。其中,应用的启动可以是在前台启动也可以是在后台启动。
还需要说明的是,监测终端中的应用是否执行预定的动作还可以是通过监测到应用执行的其他预定的动作判定应用判定应用具有定位需求,这些预定的动作可以根据具体应用场景的需要进行预设,此处不做具体限定。
通过应用执行预设的动作来确定应用符合预设的定位需求策略,进而判断应用是否具有定位需求,既可以提前获取地理位置信息供应用使用,也可以在应用调用时提供地理位置信息,使得定位服务的调用更加灵活,定位更为有效,很好地满足了各种不同应用的使用需求。
步骤S1-2,若符合则获取终端扫描到的热点信息,将热点信息发送至服务端。
具体地,当应用具有定位需求时,定位应用获取终端扫描到的热点信息。其中,热点信息可以为信号强度,SS I D、BSS I D、加密类型以及信道中的一种或多种。
本实施例中,终端可以是移动终端也可以是固定终端,当终端为移动终端时,应用在提供服务的过程中位置可能发生变化,为了能够使得提供的服务更为准确,可以采取不同的方式获取地理位置信息,以满足应用的需求。故在定位的过程中,获取终端扫描到的热点信息可以是根据获取策略获取终端扫描到的热点信息,具体地,可以是按照预定的时间间隔获取终端扫描到的热点信息。该时间间隔可以是相同的时长,也可以是不同的时长,根据具体应用场景的需要进行预设,此处不做具体限定。这样的热点信息获取方式,使得能够获在一段时间内进行多次定位,获得不同时段的地理位置信息,以满足应用的使用需求。
步骤S1-3,接收来自服务端的根据热点信息生成的地理位置信息。
需要说明的是,本实施例中使用热定信息进行定位,定位方法可以为根据获取到的热点信息从存储在服务端的热点位置信息数据库中匹配到对应的历史数据,根据历史数据生成该热点信息对应的地理位置信息。其中,历史数据信息中包括热点的热点信息以及地理位置信息,计算方法可以采用三角定位法、最强信号法、指纹法、最大似然法、TOA(time ofarr i va l)、TDOA(t imed i fference of arr i va l)以及AOA(ang l e of arri va l)中的一种或多种。优选地,本实施例中,获取到的热点信息后采用指纹法生成地理位置信息。
具体地,当将获取到的热点信息与热点位置信息数据库中的历史数据进行匹配,得到与该热定信息相对应的地理位置信息,可以采用KNN
(k-NearestNeighbor)以及神经网络等算法进行匹配。例如,获取终端扫描到的热点的信号强度和SS I D,采用KNN算法获取热点位置信息数据库中与扫描到的热点的信号强度和SS I D最接近的数据,将该数据对应的地理位置信息作为终端的地理位置信息。
由于本实施例中监测终端中的应用是否符合预设的定位需求策略;若符合则获取终端扫描到的热点信息,将热点信息发送至服务端;接收来自服务端的根据热点信息生成的地理位置信息,这样的定位方法在判断应用具有定位需求时获取利用热点信息进行定位,避免了GPS定位无法使用时应用缺少地理位置信息无法提供服务的问题,提高了用户的体验感受,同时由于可以对应用的定位需求进行判断,因此能够预先获取地理位置信息供应用使用,提高了应用提供服务的速度。
<实施例2>
在实施例2中,对于与实施例1中相同的方法,使用相同的符号并省略相同的说明。
本申请实施例2中提供的终端中应用获取地理位置信息的方法,是在实施例1的基础上,对判断出的具有定位需求的应用是否具有预设的定位权限调用定位服务进行判断。
图2为本申请实施例2提供的终端中应用获取地理位置信息的方法的流程图。
如图2所示,本申请实施例2中提供的终端中应用获取地理位置信息的方法,在实施例1的基础上,步骤S1-2中获取终端扫描到的热点信息还具有以下子步骤:
步骤S1-2-1,判断具有定位需求的应用是否具有预设的定位权限,若有则进入步骤S1-2-2,若没有则进入步骤S1-2-3。
本实施例中,预设的定位权限用于从具有定位需求的应用中筛选出允许调用定位服务的应用。例如,判断应用是否具有预设的定位权限可以使用黑名单进行确定也可以使用白名单进行确定,当使用黑名单时,判断具有定位需求的应用是否属于黑名单,属于黑明单则不允许调用定位服务;当使用白名单时,判断具有定位需求的应用是否属于白名单,属于白明单则允许调用定位服务,为该应用提供终端的地理位置信息。
优选地,本实施例中判断具有定位需求的应用是否具有预设的定位权限为判断具有定位需求的应用是否属于白名单。
具体地,判断判断具有定位需求的应用是否属于白名单包括:
获取具有定位需求的应用的识别信息;
判断识别信息是否属于白名单;
若属于则允许调用定位服务,若不属于则不允许调用定位服务。
本实施例中,应用的识别信息为用于将该应用与终端中其他应用区别开的信息,应用的识别信息可以为应用名称、包名、签名、服务商信息中的一种或多种。白名单由服务商定义,为允许调用定位服务的应用列表。该应用列表为包含应用的应用信息的条目列表。应用的应用信息包括名称、包名、签名、服务商信息中的一种或多种。
判断识别信息是否属于白名单可以是判断应用的识别信息与白名单中的应用信息是否匹配,若匹配则该应用属于白名单。例如,可以是判断应用的包名与签名是否与应用列表中的包名与签名是否匹配,也可以是判断应用的服务商信息与应用列表中的服务商信息是否匹配。
由于对应用的调用权限进行了限制,使得地理位置信息的使用更为安全,避免了地理位置信息的泄露和滥用,极大的保护了用户的隐私。
步骤S1-2-2,获取终端扫描到的热点信息,将热点信息发送至服务端。
步骤S1-2-3,向具有定位需求的应用发送验证请求,然后进入步骤S1-2-4。
当应用不具有预设的定位权限时,若应用获取了终端的地理位置信息存在滥用的风险,将会损害用户的利益,故需要提示用户存在风险,因此,需要向应用发送风险提示以及验证请求。其中,验证请求用于供所述终端的用户确认是否允许定位。
需要说明的是,本实施例中,风险提示可以在验证请求之前发送至应用,可以是验证请求同时发送至应用,此处不做具体限定。
步骤S1-2-4,接收来自具有定位需求的应用的与验证请求相对应的验证反馈,然后进入步骤S1-2-5。
本实施例中可以通过终端的用户反馈是否允许调用定位服务进行验证,也可以通过终端的用户反馈与验证请求相匹配的验证码进行验证。
当通过终端的用户反馈是否允许调用定位服务进行验证时,验证反馈为具有定位需求的应用接收到的终端的用户是否允许调用的验证反馈,具体为允许调用或不允许调用。
当通过终端的用户反馈与验证请求相匹配的验证码进行验证时,验证反馈为具有定位需求的应用接收到的终端的用户的验证码反馈。
需要说明的是,本实施例中的验证方式也可以是其他不同的验证方式,可根据具体应用场景的需要进行预设。
骤S1-2-5,判断验证反馈是否符合预设的验证策略,若符合则进入步骤S1-2-2。
本实施例中的验证策略根据验证方式进行设定,用于根据终端的用户的反馈判断不具有预设的定位权限的应用是否允许调用定位服务。
例如,当接收到的验证反馈为允许调用时,定位应用获取终端扫描到的热点信息,接收来自服务端的根据热点信息生成对应的地理位置信息。当接收到的验证反馈为不允许调用时,定位服务不接受调用,不获取终端的热点信息。
再如,当接收到的验证反馈为与验证请求相匹配的验证码时允许调用定位服务,当接收到的验证码与验证请求不匹配时,不允许调用。
本申请实施例2中提供的终端中应用获取地理位置信息的方法中还包括:步骤S1-4,将生成的地理位置信息发送至具有定位权限的应用。
其中,地理位置信息为经度和纬度信息。
在应用缺乏定位权限时,定位服务向用户发送验证请求和风险提示,在用户允许的情况下为应用提供定位服务,既保证了用户隐私不被泄露,又使得应用能够及时获取地理位置信息,为用户提供高效的服务。
<实施例3>
在实施例3中,对于与实施例2中相同的方法,使用相同的符号并省略相同的说明。
定位服务由设置在终端中的定位应用和服务端共同提供,其中服务端可以是定位服务器。
本申请实施例3中提供的终端中应用获取地理位置信息的方法,是在实施例1的基础上,通过设置在终端中的定位应用和定位服务器共同提供定位服务,其中定位应用可以为定位服务SDK。
本实施例中,定位服务SDK可以是集成在具有定位需求的应用中,也可以是作为独立的定位应用,还可以是应用需要获取地理位置信息时,调用另一个应用中的定位服务SDK进行定位。优选地,本实施例中,定位服务SDK集成在具有定位需求的应用中。
定位服务SDK中设置有供应用接入的定位接口,具有定位需求的应用调用定位服务SDK时定位服务SDK从定位接口接收来自具有定位需求的应用的调用请求或终端扫描到的热点信息,并将根据热点信息生成的地理位置信息通过定位接口发送至应用。定位服务SDK根据预定的通信协议与定位服务器进行数据通信,定位服务SDK将获取的终端热点信息发送至定位服务器,接收来自定位服务器的根据该热点信息生成的地理位置信息。其中,热点位置信息数据库设置在定位服务器中。
图3为本申请实施例3提供的终端中应用获取地理位置信息的方法的流程图。
如图3所示,本实施例中终端中应用获取地理位置信息的方法包括以下步骤:
步骤S2-1,定位服务SDK监测终端中的应用是否符合预设的定位需求策略,然后进入步骤S2-2。
步骤S2-2,若符合则定位服务SDK判断具有定位需求的应用是否具有预设的定位权限,若有则进入步骤S2-3,若没有则进入步骤S2-5。
步骤S2-3,定位服务SDK获取终端扫描到的热点信息,将热点信息发送至定位服务器,然后进入步骤S2-4。
步骤S2-4,定位服务SDK接收来自定位服务器的根据热点信息生成的地理位置信息,然后进入步骤S2-8。
步骤S2-5,定位服务SDK向具有定位需求的应用发送验证请求,然后进入步骤S2-6。
步骤S2-6,定位服务SDK接收来自具有定位需求的应用的与验证请求相对应的验证反馈,然后进入步骤S2-7。
步骤S2-7,定位服务SDK判断验证反馈是否符合预设的验证策略,若是则进入步骤S2-3,若否则进入结束状态。
步骤S2-8,定位服务SDK将接收到的地理位置信息发送至具有定位权限的应用,然后进入结束状态。
本实施例中定位服务SDK和定位服务器可以按照上述记载的方式获取终端地理位置信息,这里不再一一赘述。
需要说明的是,本实施例中,定位服务SDK获取终端的热点信息可以是从终端系统中获取扫描到的wif i列表,也可以是调用终端中的wifi管理类应用扫描获取终端的热点信息。
本实施例中的白名单可以设置于定位服务器中,也可以同时设置于定位服务SDK和定位服务器中。优选地,白名单可以同时设置于定位服务SDK和定位服务器中,定位服务SDK对应用进行判断时,直接读取白名单进行判断。当服务商对白名单进行更新时,定位服务器将更新后的白名单发送至定位服务SDK,定位服务SDK接收更新后的白名单,保存在终端中。
本实施例中的定位服务器可以设置有预设的服务器接口,具有定位权限的应用的服务端可以直接通过该服务器接口获取相关的地理位置信息。
还需要说明的是,本实施例中的定位服务SDK还可以用于热点地理位置的收集,将收集到的热点地理位置信息发送至定位服务器。
具体地,定位服务SDK收集热点地理位置的包括以下步骤:
步骤S3-1,当定位服务SDK接收到来自应用的定位请求,获取终端的热点信息时,向应用发送收集请求。
步骤S3-2,定位服务SDK接收到来自应用的收集反馈,若同意收集则获取终端的地理位置信息。
步骤S3-3,定位服务SDK将获取到的终端的热点信息和与热点信息对应的地理位置信息发送至定位服务器。
其中,收集请求可以为获取终端的定位权限的请求,用于调用终端的GPS定位,获取终端的经纬度信息。定位服务器根据接收到的终端的热点信息和与热点信息对应的地理位置信息计算出热点的地理位置信息,计算方法可以采用三角定位法、最强信号法、指纹法、最大似然法、TOA、TDOA以及AOA中的一种或多种。
采用设置在终端中的定位服务SDK与定位服务器共同提供定位服务,应用与定位服务SDK进行信息交互,使得应用能够更为简单便捷的使用定位服务,并且定位服务SDK设置在终端中,应用与定位服务SDK的交互能够更为高效快速。
<实施例4>
在实施例4中,对于与实施例3中相同的方法,使用相同的符号并省略相同的说明。
执行主体为终端中的应用,即能够实现本申请实施例4中所记载的技术方案的设置在终端中具有定位需求的应用。
定位服务可以由定位服务SDK和与该定位服务SDK相对应的定位服务器共同提供。
本申请实施例4中提供的终端中应用获取地理位置信息的方法,是在实施例1的基础上,以终端中具有定位需求的应用为执行主体,获取终端的地理位置信息用以提供服务。
图4为本申请实施例4提供的终端中应用获取地理位置信息的方法的流程图。
如图4所示,本实施例4中终端中应用获取地理位置信息的方法包括以下步骤:
步骤S4-1,终端中的应用向定位服务发送定位请求。
具体地,具有定位需求的应用向定位应用发送定位请求,其中定位应用为定位服务SDK。
步骤S4-2,接收定位服务响应所述定位请求的地理位置信息。
具体地,接收定位服务SDK响应定位请求的地理位置信息。
其中,地理位置信息为服务端根据终端扫描到的热点信息生成的地理位置信息,其中服务端为定位服务器。
定位服务SDK可以按照上述记载的方式获取终端的地理位置信息,这里不再一一赘述。
需要说明的是,本实施例中,当定位服务SDK接收到定位请求时判断应用是否属于白名单时,若是则应用具有预设的定位权限,若不是则步骤S4-2之后还包括以下步骤:
步骤S4-2-1,接收定位服务SDK的验证请求。
其中,验证请求为供终端的用户确认是否允许定位的验证请求。
步骤S4-2-2,将接收到的终端的用户对验证请求的反馈发送至定位服务SDK。
步骤S4-2-3,接收定位服务SDK响应定位请求的地理位置信息。
还需要说明的是,当验证反馈符合定位服务SDK中预设的验证策略时执行步骤S4-2-3,若验证反馈不符合则不执行步骤S4-2-3。
本实施例中,定位服务SDK的判断应用是否属于白名单以及验证应用是否允许定位的过程可以按照上述记载的方式进行,这里不再一一赘述。
应用通过调用定位服务获取终端的地理位置信息,避免了GPS定位无法使用时不能及时获取地理位置信息,造成无法为用户提供服务的问题,提高了用户的使用感受。
<实施例5>
图5为本申请实施例5提供的终端中应用获取地理位置信息的系统的结构示意图。
基于同一个申请构思,如图5所示,本实施例中的执行主体为设置在终端中的定位应用,即设置在终端中能够实现本申请实施例5中所记载的技术方案中定位服务的应用,具体为定位服务SDK。本申请实施例提供的终端中应用获取地理位置信息的系统,包括设置在终端的定位服务SDK1以及与该定位服务SDK1对应的定位服务器2。
定位服务SDK具有监测模块11、判断模块12、验证模块13、获取模块14以及通信模块15。其中,确定模块11用于监测终端中的应用是否执行预设的动作;判断模块12用于根据监测结果判断应用是否具有定位需求以及是否具有预设的定位权限;验证模块13用于对不具有预设的定位权限的应用进行验证;获取模块14用于获取终端扫描到的热点信息;通信模块15用于定位服务SDK1与终端中的应用及定位服务SDK1与定位服务器2之间的数据信息交换。
<实施例6>
图6为本申请实施例6提供的终端中应用获取地理位置信息的系统的结构示意图。
基于同一个申请构思,如图6所示,本申请实施例提供的终端中应用获取地理位置信息的系统,执行主体为终端中具有定位需求的应用。
定位服务由设置在终端的定位服务SDK和与该定位服务SDK相对应的定位服务器共同提供。
本申请实施例提供的获取终端地理位置信息系统,包括发送模块100以及接收模块200,其中,发送模块100用于将定位请求或验证反馈发送至定位服务SDK。接收模块200用于接收来自定位服务SDK的验证请求或终端的地理位置信息,该地理位置信息由定位服务器根据来自定位服务SDK的终端的热点信息生成。
基于同一个申请构思,本申请实施例提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行前述实施例1~6中任一实施例中所述的获取终端地理位置信息的方法中的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本申请实施例还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1~6中任一实施例所述的获取终端地理位置信息的方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本申请的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
基于同一个申请构思,本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例1~5中任一实施例所述的应用间进程调起的方法中的步骤。
在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,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。