发布信息

一种驱动程序控制方法和装置与流程

作者:admin      2022-07-30 13:20:25     752



计算;推算;计数设备的制造及其应用技术1.本发明涉及服务器技术领域,特别涉及一种驱动程序控制方法和装置。背景技术:2.设备驱动程序是进入linux内核世界的大门,并在linux内核中扮演着特殊的角色。设备驱动程序是操作系统中某个特定的硬件内部编程接口,同时完全隐藏设备的工作细节。现代操作系统中,设备驱动程序代码所占比例高于70%。3.硬件故障可能导致系统运行异常,而绝大多数硬件故障是短暂的,硬件设备可能由于各种原因出现短暂性错误。例如:电磁干扰或射线等。硬件设备生产商的报告指出:大多数被退回的设备经检测均正常。如果硬件设备执行一个命令发生了故障,多数情况下重新执行同一命令就会恢复正常。4.当设备驱动执行一条命令发生了硬件设备故障导致设备驱动出现异常时,如果能及时将设备驱动恢复到执行该命令前的状态,再让设备驱动重新请求硬件设备执行该命令,在多数情况下都可以维持系统的正常运行。这样,硬件设备发生的故障不会被应用程序和操作系统察觉,从而实现了对硬件故障的容错,提升了系统的可靠性。5.因此,亟需一种驱动程序控制方法,在设备驱动程序执行一条命令,发生了硬件设备故障导致设备驱动出现异常时,及时控制设备驱动恢复到执行该命令前的状态,再控制设备驱动重新请求硬件设备执行该命令,得到正确的结果,从而解决硬件设备的短暂性故障导致系统运行异常的问题。技术实现要素:6.为了解决现有技术的问题,本发明实施例提供了一种驱动程序控制方法和装置,以克服现有技术中硬件设备因短暂性故障导致系统运行异常的问题。7.为了解决上述的一个或多个技术问题,本发明采用的技术方案如下:8.第一方面,提供一种驱动程序控制方法,包括:9.监测第一驱动程序并判断第一驱动程序是否异常,其中第一驱动程序用于驱动第一设备;10.当第一驱动程序出现异常时,中止第一驱动程序以及第二驱动程序的运行,其中第二驱动程序用于驱动第二设备;11.将第二驱动程序的驱动对象由第二设备转换为第一设备,并将第一驱动程序的驱动对象由第一设备转换为第二设备;12.更新第一驱动程序和第一设备,并向更新后的第一驱动程序和第二驱动程序同步发送操作指令,其中,操作指令分别用于驱动第二设备和更新后的第一设备。13.进一步地,将第二驱动程序的驱动对象由第二设备转换为第一设备,并将第一驱动程序的驱动对象由第一设备转换为第二设备包括:14.更改管理设备驱动数据结构体中的预设数据项,使第二驱动程序的驱动对象由第二设备转换为第一设备,同时使第一驱动程序的驱动对象由第一设备转换为第二设备。15.进一步地,更新第一驱动程序和第一设备包括:16.复制第二设备的寄存器中的指令状态值和数据值,覆盖第一驱动程序相应的指令状态值和数据值;17.将第二驱动程序携带的指令状态值和数据值拷贝至第一设备的寄存器中的相应位置。18.进一步地,监测第一驱动程序并判断第一驱动程序是否异常之前还包括:19.统计第一驱动程序的异常情况,获得历史异常统计结果;20.根据历史异常统计结果,及异常监控策略判断是否启用驱动程序控制方法;21.若“是”,则启用驱动程序控制方法;22.若“否”,则不启用驱动程序控制方法。23.进一步地,统计第一驱动程序的异常情况,获得历史异常统计结果包括:24.将驱动程序的异常情况至少分为:第一异常情况,第二异常情况;25.在驱动程序的异常情况中,统计属于第一异常情况发生的数量得到第一异常数量;26.在驱动程序的异常情况中,统计属于第二异常情况发生的数量得到第二异常数量;27.历史异常统计结果包括:第一异常情况及其对应的第一异常情况数量,以及第二异常情况及其对应的第二异常情况数量。28.进一步地,根据历史异常统计结果,及异常监控策略判断是否启用驱动程序控制方法包括:29.若第一异常数量超过第一阈值,或第二异常数量超过第二阈值,则判断是否启用驱动程序控制方法的结果为“是”;30.若第一异常数量未超过第一阈值,且第二异常数量未超过第二阈值,则判断是否启用驱动程序控制方法的结果为“否”;31.其中,异常监控策略至少包括:与第一异常情况相对应的第一阈值,以及与第二异常情况相对应的第二阈值。32.进一步地,统计第一驱动程序的异常情况,获得历史异常统计结果之前还包括:33.向第一驱动程序和第二驱动程序同步发送操作指令。34.进一步地,向第一驱动程序和第二驱动程序同步发送操作指令包括:35.获取操作指令后,将操作指令进行拷贝,将其中一份操作指令发送至第一驱动程序,并将另一份指令发送给第二驱动程序;36.将第二设备执行操作指令后产生的指令状态值和数据值保存至第二设备的寄存器中;37.接收第一设备和第二设备执行操作指令后产生的回传数据,并且只将第一设备的回传数据用于外部数据交换。38.进一步地,一种驱动程序控制方法还包括:记录系统运行日志,用于优化异常监控策略;39.其中,系统运行日志至少包括:执行方法的次数,执行方法的时刻。40.第二方面,一种驱动程序控制装置,包括:异常监测模块,驱动中止模块,驱动转换模块,驱动更新模块;41.异常监测模块,用于监测第一驱动程序并判断第一驱动程序是否异常;42.驱动中止模块,用于中止第一驱动程序以及第二驱动程序的运行;43.驱动转换模块,用于将第二驱动程序的驱动对象由第二设备转换为第一设备,并将第一驱动程序的驱动对象由第一设备转换为第二设备;44.驱动更新模块,用于更新第一驱动程序和第一设备,并向更新后的第一驱动程序和第二驱动程序同步发送操作指令。45.本发明实施例提供的技术方案带来的有益效果是:46.1.通过实施本发明公开的一种驱动程序控制方法,能够及时纠正硬件设备的短暂性故障,提高了系统的容错率和可靠性,特别适用于稳定性要求高的系统;47.2.第二设备的寄存器中存储了与第一设备相同的指令和执行数据,当第一驱动程序异常时,能够及时恢复程序异常;48.3.及时解决设备短暂性故障,降低因硬件设备短暂性故障未能及时解决而返厂维修导致的硬件维护成本。附图说明49.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。50.图1是本发明实施例提供的一种驱动程序控制方法示意图;51.图2是本发明实施例提供的一种驱动程序控制装置示意图。具体实施方式52.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。53.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。说明书附图中的编号,仅表示对各个功能部件或模块的区分,不表示部件或模块之间的逻辑关系。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。54.下面,将参照附图详细描述根据本公开的各个实施例。需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。55.针对服务器系统中的硬件设备因暂时性故障导致系统运行异常的问题,本发明实施例公开一种驱动程序控制方法和装置,及时排除硬件设备暂时性故障并修复相应设备的驱动程序,以保障系统的正常运行,具体的技术方案如下:56.在一个实施例中,如图1所示,一种驱动程序控制方法包括:57.步骤s100:监测第一驱动程序并判断第一驱动程序是否异常,其中第一驱动程序用于驱动第一设备;58.步骤s200:当第一驱动程序出现异常时,中止第一驱动程序以及第二驱动程序的运行,其中第二驱动程序用于驱动第二设备;59.步骤s300:将第二驱动程序的驱动对象由第二设备转换为第一设备,并将第一驱动程序的驱动对象由第一设备转换为第二设备;60.步骤s400:更新第一驱动程序和第一设备,并向更新后的第一驱动程序和第二驱动程序同步发送操作指令,其中,操作指令分别用于驱动第二设备和更新后的第一设备。61.步骤s100:监测第一驱动程序并判断第一驱动程序是否异常。62.具体地,控制器检测第一驱动程序是否出现了因硬件设备故障造成的驱动程序异常。常见的因硬件设备故障造成的驱动程序异常主要包括:函数参数错误,函数返回值错误,指针引用错误,除零错误,访问非法内存页,释放已经释放的内存,解锁已经解锁的自旋锁等。63.第一设备指真实的硬件设备,如真实的网卡、显卡、声卡等;64.第一驱动程序是工作在审视硬件设备上的设备驱动程序。65.步骤s200:当第一驱动程序出现异常时,中止第一驱动程序以及第二驱动程序的运行,其中第二驱动程序用于驱动第二设备。66.具体地,当控制器监测到第一驱动程序出现上述异常时。控制器立刻中止第一驱动程序以及第二驱动程序的运行。67.第二设备指根据硬件设备规范编写的模拟设备;68.第二驱动程序是工作在真实硬件设备上设备驱动的备份,备份驱动工作在模拟设备上。69.中止第一驱动程序以及第二驱动程序,可选择地,采用控制器向驱动程序发送中止标识的方式实现。第一驱动程序以及第二驱动程序一旦接收到操作指令中包含的中止标识,立即暂停运行。进而,第一驱动程序暂停运行,将导致第一设备暂停执行当前操作指令包含的动作;第二驱动程序暂停运行,将导致第二设备暂停执行当前操作指令包含的动作。同时,指令状态值、中止标识、数据值(包括但不限于相应设备的当前状态数据)将被保存在相应设备的寄存器中。即第一设备的寄存器中将保存第一驱动程序的指令状态值、中止标识、数据值;第二设备的寄存器中将保存第二驱动程序的指令状态值、中止标识、数据值。70.步骤s300:将第二驱动程序的驱动对象由第二设备转换为第一设备,并将第一驱动程序的驱动对象由第一设备转换为第二设备。71.具体地,包括:控制器更改管理设备驱动数据结构体中的预设数据项,使第二驱动程序的驱动对象由第二设备转换为第一设备,同时使第一驱动程序的驱动对象由第一设备转换为第二设备。72.优选地,在linux操作系统内核对设备驱动进行管理的主要数据结构体中添加一个数据项,控制器通过对该数据项进行修改就可以控制驱动程序工作于第一设备或第二设备上。对应地,通过更改管理第一驱动程序的数据结构体中的这一数据项可以控制第一驱动程序工作在第一设备或第二设备上;通过更改管理第二驱动程序的数据结构体中的这一数据项可以控制第二驱动程序工作在第二设备或第一设备上。73.通过这种方法可以在降低设备驱动修改的代码量,减少设备驱动和硬件设备性能的影响。此外,该数据项还可以用于识别驱动程序是第一驱动程序还是第二驱动程序。74.步骤s400:更新第一驱动程序和第一设备,并向更新后的第一驱动程序和第二驱动程序同步发送操作指令,其中,操作指令分别用于驱动第二设备和更新后的第一设备。75.具体地,更新第一驱动程序和第一设备包括:76.复制第二设备的寄存器中的指令状态值和数据值,覆盖第一驱动程序相应的指令状态值和数据值;77.将第二驱动程序携带的指令状态值和数据值拷贝至第一设备的寄存器中的相应位置。78.此时,控制器刷新第一驱动程序,使第一驱动程序与第二驱动程序同步;并且,控制器根据第二设备寄存器中的指令状态值和数据值,将第一设备的运行状态恢复至正常状态。79.由于第二设备的寄存器中保存有正确的指令状态值和数据值。刷新第一驱动程序使其与第二驱动程序具有同步的状态就是控制器将第二设备的寄存器中的指令状态值和数据值复制并覆盖第一驱动程序相应的指令状态值和数据值。80.而将第一设备的运行状态恢复至正常状态,控制器将第二驱动程序携带的指令状态值和数据值拷贝至第一设备的寄存器中的相应位置。81.这一过程可以理解为:控制器分别使用第二设备和第二驱动程序对第一驱动程序和第一设备进行初始化。而初始化的参数即为第一设备出现故障导致第一驱动程序出现异常时,第二设备和第二驱动程序正确记录的指令状态值和数据值。82.更新完成后,控制器将接收驱动程序发出的操作指令请求;接收到操作指令请求后,控制器则向第一驱动程序和第二驱动程序同步发送操作指令,该操作指令分别用于驱动第二设备和更新后的第一设备。83.步骤s100:监测第一驱动程序并判断第一驱动程序是否异常之前还包括:84.步骤s010:统计第一驱动程序的异常情况,获得历史异常统计结果。85.具体地,统计第一驱动程序的异常情况,获得历史异常统计结果包括:86.将驱动程序的异常情况至少分为:第一异常情况,第二异常情况;87.在驱动程序的异常情况中,统计属于第一异常情况发生的数量得到第一异常数量;88.在驱动程序的异常情况中,统计属于第二异常情况发生的数量得到第二异常数量;89.历史异常统计结果包括:第一异常情况及其对应的第一异常情况数量,以及第二异常情况及其对应的第二异常情况数量。90.步骤s011:根据历史异常统计结果,及异常监控策略判断是否启用驱动程序控制方法。91.具体地,根据历史异常统计结果,及异常监控策略判断是否启用驱动程序控制方法包括:92.若第一异常数量超过第一阈值,或第二异常数量超过第二阈值,则判断是否启用驱动程序控制方法的结果为“是”;93.若第一异常数量未超过第一阈值,且第二异常数量未超过第二阈值,则判断是否启用驱动程序控制方法的结果为“否”;94.其中,异常监控策略至少包括:与第一异常情况相对应的第一阈值,以及与第二异常情况相对应的第二阈值。95.步骤s012:若“是”,则启用上述驱动程序控制方法;96.步骤s012′:若“否”,则不启用上述驱动程序控制方法。97.通过以上步骤的执行,控制器可以根据异常监控策略,在系统运行过程中,错误累计至临界条件时,自动选择气筒该驱动程序控制方法。98.步骤s010:统计第一驱动程序的异常情况,获得历史异常统计结果之前还包括:99.步骤s001:向第一驱动程序和第二驱动程序同步发送操作指令。100.具体地,向第一驱动程序和第二驱动程序同步发送操作指令包括:101.获取操作指令后,将操作指令进行拷贝,将其中一份操作指令发送至第一驱动程序,并将另一份指令发送给第二驱动程序;102.将第二设备执行操作指令后产生的指令状态值和数据值保存至第二设备的寄存器中;103.接收第一设备和第二设备执行操作指令后产生的回传数据,并且只将第一设备的回传数据用于外部数据交换。104.以此,保证两个设备在相同的操作指令下,正常运行是能够获得相同的指令状态值和数据值,并保存在各自的寄存器中。105.只将第一设备的回传数据(例如:返回值)用于外部数据交换,能够使系统不识别第二设备,以降低系统同时搭载两套驱动、设备所需要修改的代码量。106.一种驱动程序控制方法还包括:107.步骤s5:记录系统运行日志。108.具体地,记录系统运行日志,用于优化异常监控策略。109.系统运行日志至少包括:执行上述方法的次数,执行上述方法的时刻。110.可作为选择地,系统运行日志还可以包括:全局唯一的序号、时间戳、异常类型等参数;亦可以用于采集每天、某一时段内某一错误类型发生的次数等。111.以日志的形式进行记录,对发生的错误、切换的次数/时间进行记录,通过对错误数、错误占比、切换次数等不同维度的分析,得知硬件设备、设备驱动错误的分布情况,用于进一步优化异常监控策略。112.在另一个实施例中,如图2所示,一种驱动程序控制装置包括:异常监测模块10,驱动中止模块20,驱动转换模块30,驱动更新模块40;113.异常监测模块10,用于监测第一驱动程序并判断第一驱动程序是否异常;114.驱动中止模块20,用于中止第一驱动程序以及第二驱动程序的运行;115.驱动转换模块30,用于将第二驱动程序的驱动对象由第二设备转换为第一设备,并将第一驱动程序的驱动对象由第一设备转换为第二设备;116.驱动更新模块40,用于更新第一驱动程序和第一设备,并向更新后的第一驱动程序和第二驱动程序同步发送操作指令。117.上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。118.实施例一119.本实施例公开一种驱动程序控制方法,包括:120.步骤s001:向第一驱动程序和第二驱动程序同步发送操作指令。121.获取操作指令后,将操作指令进行拷贝,将其中一份操作指令发送至第一驱动程序,并将另一份指令发送给第二驱动程序;122.将第二设备执行操作指令后产生的指令状态值和数据值保存至第二设备的寄存器中;123.接收第一设备和第二设备执行操作指令后产生的回传数据,并且只将第一设备的回传数据用于外部数据交换。124.步骤s010:统计第一驱动程序的异常情况,获得历史异常统计结果。125.将驱动程序的异常情况至少分为:第一异常情况,第二异常情况;126.在驱动程序的异常情况中,统计属于第一异常情况发生的数量得到第一异常数量;127.在驱动程序的异常情况中,统计属于第二异常情况发生的数量得到第二异常数量;128.历史异常统计结果包括:第一异常情况及其对应的第一异常情况数量,以及第二异常情况及其对应的第二异常情况数量。129.步骤s011:根据历史异常统计结果,及异常监控策略判断是否启用驱动程序控制方法。130.若第一异常数量超过第一阈值,或第二异常数量超过第二阈值,则判断是否启用驱动程序控制方法的结果为“是”;131.若第一异常数量未超过第一阈值,且第二异常数量未超过第二阈值,则判断是否启用驱动程序控制方法的结果为“否”。132.步骤s012:若“是”,则启用上述驱动程序控制方法;133.步骤s012′:若“否”,则不启用上述驱动程序控制方法。134.步骤s100:监测第一驱动程序并判断第一驱动程序是否异常。135.检测第一驱动程序是否出现了因硬件设备故障造成的驱动程序异常。包括:函数参数错误,函数返回值错误,指针引用错误,除零错误,访问非法内存页,释放已经释放的内存,解锁已经解锁的自旋锁等。136.步骤s200:当第一驱动程序出现异常时,中止第一驱动程序以及第二驱动程序的运行。137.中止第一驱动程序以及第二驱动程序,采用控制器向驱动程序发送中止标识的方式实现。第一驱动程序以及第二驱动程序一旦接收到操作指令中包含的中止标识,立即暂停运行。进而,第一驱动程序暂停运行,将导致第一设备暂停执行当前操作指令包含的动作;第二驱动程序暂停运行,将导致第二设备暂停执行当前操作指令包含的动作。同时,指令状态值、中止标识、数据值(包括但不限于相应设备的当前状态数据)将被保存在相应设备的寄存器中。即第一设备的寄存器中将保存第一驱动程序的指令状态值、中止标识、数据值;第二设备的寄存器中将保存第二驱动程序的指令状态值、中止标识、数据值。138.步骤s300:将第二驱动程序的驱动对象由第二设备转换为第一设备,并将第一驱动程序的驱动对象由第一设备转换为第二设备。139.更改管理设备驱动数据结构体中的预设数据项,使第二驱动程序的驱动对象由第二设备转换为第一设备,同时使第一驱动程序的驱动对象由第一设备转换为第二设备。140.步骤s400:更新第一驱动程序和第一设备,并向更新后的第一驱动程序和第二驱动程序同步发送操作指令,其中,操作指令分别用于驱动第二设备和更新后的第一设备。141.复制第二设备的寄存器中的指令状态值和数据值,覆盖第一驱动程序相应的指令状态值和数据值;142.将第二驱动程序携带的指令状态值和数据值拷贝至第一设备的寄存器中的相应位置。143.此时,控制器刷新第一驱动程序,使第一驱动程序与第二驱动程序同步;并且,控制器根据第二设备寄存器中的指令状态值和数据值,将第一设备的运行状态恢复至正常状态。144.由于第二设备的寄存器中保存有正确的指令状态值和数据值。刷新第一驱动程序使其与第二驱动程序具有同步的状态就是控制器将第二设备的寄存器中的指令状态值和数据值复制并覆盖第一驱动程序相应的指令状态值和数据值。145.而将第一设备的运行状态恢复至正常状态,控制器将第二驱动程序携带的指令状态值和数据值拷贝至第一设备的寄存器中的相应位置。146.更新完成后,控制器将接收驱动程序发出的操作指令请求;接收到操作指令请求后,控制器则向第一驱动程序和第二驱动程序同步发送操作指令,该操作指令分别用于驱动第二设备和更新后的第一设备。147.步骤s5:记录系统运行日志,用于优化异常监控策略。148.实施例二149.如图2所示,本实施例公开一种驱动程序控制装置,包括:异常监测模块10,驱动中止模块20,驱动转换模块30,驱动更新模块40;150.异常监测模块10,用于监测第一驱动程序并判断第一驱动程序是否异常;151.驱动中止模块20,用于中止第一驱动程序以及第二驱动程序的运行;152.驱动转换模块30,用于将第二驱动程序的驱动对象由第二设备转换为第一设备,并将第一驱动程序的驱动对象由第一设备转换为第二设备;153.驱动更新模块40,用于更新第一驱动程序和第一设备,并向更新后的第一驱动程序和第二驱动程序同步发送操作指令。154.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括装载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储器被安装,或者从rom被安装。在该计算机程序被外部处理器执行时,执行本技术的实施例的方法中限定的上述功能。155.需要说明的是,本技术的实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(radio frequency,射频)等等,或者上述的任意合适的组合。156.上述计算机可读介质可以是上述服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:响应于检测到终端的外设模式未激活时,获取终端上应用的帧率;在帧率满足息屏条件时,判断用户是否正在获取终端的屏幕信息;响应于判断结果为用户未获取终端的屏幕信息,控制屏幕进入立即暗淡模式。157.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java,smalltalk,c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。158.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。159.以上对本技术所提供的技术方案进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本技术的限制。160.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部