CN113412480B - 挂载处理方法、装置、电子设备及计算机可读取存储介质 - Google Patents
挂载处理方法、装置、电子设备及计算机可读取存储介质 Download PDFInfo
- Publication number
- CN113412480B CN113412480B CN201980091202.2A CN201980091202A CN113412480B CN 113412480 B CN113412480 B CN 113412480B CN 201980091202 A CN201980091202 A CN 201980091202A CN 113412480 B CN113412480 B CN 113412480B
- Authority
- CN
- China
- Prior art keywords
- storage device
- external storage
- detection
- management module
- mounting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Studio Devices (AREA)
Abstract
本申请实施例公开了一种挂载处理方法、装置、电子设备及计算机可读取存储介质,涉及视频处理技术领域。该方法包括:存储管理服务模块向外部存储设备管理模块发送第一调用指令;外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识;外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令;存储管理服务模块基于检测完成指令通知外部存储设备管理模块对外部存储设备进行挂载。本申请在检测操作完成前先返回检测状态标识,并在检测操作完成后进行挂载,防止异常外部存储设备***导致***卡死或定屏,从而提升***稳定性。
Description
技术领域
本申请涉及存储技术领域,更具体地,涉及一种挂载处理方法、装置、电子设备及计算机可读取存储介质。
背景技术
SD卡或U盘等外部存储设备可以通过卡槽或OTG方式***终端设备,例如***手机、数码相机、便携式电脑和其他终端设备上,给用户提供额外的存储服务。
在外部存储设备***终端设备时,终端设备会基于外部存储设备管理模块(Volume Daemon,Vold)和存储管理服务模块(Storage Manager Service)的交互来实现外部存储设备的挂载。在交互过程中,如果有一个环节卡住,就会导致后面的命令无法处理,使得交互耗时过久,容易导致***无响应或屏幕长时间卡住不动等***异常情况出现。
发明内容
本申请提出了一种挂载处理方法、装置、电子设备及计算机可读取存储介质,以改善上述缺陷。
第一方面,本申请实施例提供了一种挂载处理方法,所述方法包括:存储管理服务模块向外部存储设备管理模块发送第一调用指令;外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识,其中,检测操作为检测外部存储设备的文件***是否异常,检测中标识用于指示存储管理模块外部存储设备管理模块正在执行检测操作且未检测完成;外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令;存储管理服务模块基于检测完成指令通知外部存储设备管理模块对外部存储设备进行挂载。
第二方面,本申请实施例还提供了一种挂载处理装置,所述装置包括:第一调用模块,用于存储管理服务模块向外部存储设备管理模块发送第一调用指令;第一返回模块,用于外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识,其中,检测操作为检测外部存储设备的文件***是否异常,检测中标识用于指示存储管理模块外部存储设备管理模块正在执行检测操作且未检测完成;检测完成模块,用于外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令;挂载通知模块,用于存储管理服务模块基于检测完成指令通知外部存储设备管理模块对外部存储设备进行挂载。
第三方面,本申请实施例还提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述方法。
第四方面,本申请实施例还提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述方法。
本申请提供的挂载处理方法、装置、电子设备及计算机可读取存储介质,通过存储管理服务模块向外部存储设备管理模块发送第一调用指令,接着外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识,其中,检测操作为检测外部存储设备的文件***是否异常,检测中标识用于指示存储管理模块外部存储设备管理模块正在执行检测操作且未检测完成,然后,外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令,最后存储管理服务模块基于检测完成指令通知外部存储设备管理模块对外部存储设备进行挂载。因此,在需要挂载外部存储设备时,外部存储设备管理模块将在检测操作完成前先返回检测状态标识,并在检测操作完成后进行挂载,使得***不会因为外部存储设备的文件***异常导致***无响应,防止外部存储设备***导致***卡死或定屏,从而提升***稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提供的挂载处理方法的方法流程图;
图2示出了本申请另一实施例提供的挂载处理方法的方法流程图;
图3示出了本申请再一实施例提供的提供的挂载处理方法的方法流程图;
图4示出了本申请又一实施例提供的提供的挂载处理方法的方法流程图;
图5示出了本申请还一实施例提供的提供的挂载处理方法的方法流程图;
图6示出了本申请再另一实施例提供的挂载处理方法的方法流程图;
图7示出了本申请再又一实施例提供的挂载处理方法的方法流程图;
图8示出了本申请再还一实施例提供的挂载处理方法的方法流程图;
图9示出了本申请又另一实施例提供的挂载处理方法的方法流程图;
图10示出了本申请一实施例提供的触发第一调用指令的方法流程图。
图11示出了本申请实施例提供的挂载处理装置的模块框图;
图12示出了本申请实施例提供的电子设备的结构框图;
图13示出了本申请实施例的用于保存或者携带实现根据本申请实施例的挂载处理方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
套接字(Socket)通信是一种进程间通信(Inter-Process Communication,IPC)机制,在操作***中,通常会为应用程序提供一组应用程序接口(Application ProgrammingInterface,API),称为套接字接口(Socket API)。应用程序可以通过套接字接口,来使用网络套接字,以进行数据交换。操作***根据套接字地址,可以决定应该将数据送达特定的行程或线程。Socket通信中,HTTP提供了封装或者显示数据的具体形式,Socket提供了网络通信的能力。
Binder通信类似于Socket通信,是一种高效的进程间通信机制,可以实现将进程A的数据发送到进程B。目前,越来越多的终端设备也基于Binder通信机制进行通信,例如,终端设备包含外部存储设备管理模块(Volume Daemon,Vold)以及存储管理服务模块(Storage Manager Service),在对外部存储设备如存储卡、U盘等进行挂载时,需要外部存储设备管理模块与存储管理服务模块之间的交互,其中,该交互则可以基于Binder通信。其中,终端设备包括但不限于手机、数码相机、便携式电脑和其他终端设备。
但是,发明人在研究中发现,外部存储设备管理模块与存储管理服务模块基于Binder通信挂载外部存储设备的过程中,如果在Binder调用的过程中被卡住可能会触发***中的看门狗程序,导致***无响应,出现如***卡死或定屏等异常情况。
因此,为了解决上述缺陷,本申请实施例提供了一种挂载处理方法,如图1所示,具体地,该方法包括:S101至S104。
S101:存储管理服务模块向外部存储设备管理模块发送第一调用指令。
于本实施例中,终端设备包括外部存储设备模块与存储管理服务模块,其中,外部存储设备管理模块是操作***平台中外部存储***的管控中心,是管理和控制操作***平台外部存储设备的后台进程。其功能主要包括:外部存储设备的插拔事件检测、外部存储设备的挂载、卸载、格式化等。存储管理服务模块为操作***的***框架层与外部存储设备管理模块进行通信的模块,同时存储管理服务模块也是向应用程序提供存储设备的访问接口及存储设备的挂载消息广播的模块。需要说明的是,外部存储设备管理模块与存储管理服务模块之间基于进程间通信,若二者之间的通信进程卡住,可能导致***无响应。
其中,外部存储设备***终端设备后,终端设备需对该外部存储设备进行挂载,并在挂载成功后,终端设备上的应用程序可以访问该外部存储设备。
在一种实施方式中,在终端设备需对外部存储设备进行挂载时,存储管理服务模块向外部存储设备管理模块发送第一调用指令。
S102:外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
其中,检测操作为检测外部存储设备的文件***是否异常。
其中,检测中标识用于指示存储管理模块外部存储设备管理模块正在执行检测操作且未检测完成,使得在外部存储设备管理模块返回检测状态标识时,存储管理模块基于该检测状态标识为检测中标识,可以获知外部存储设备正在检测中且未检测完成。具体地,终端设备在检测到外部存储设备的***事件后,外部存储设备管理模块会创建该外部存储设备,并对应存储有该外部存储设备的设备信息,其中设备信息包括检测状态标识。
在一些实施方式中,检测时长包括检测文件***是否异常的耗时以及外部存储设备管理模块在文件***异常时进行修复的耗时。例如外部存储设备的文件***损坏过多,可能引发外部存储设备管理模块对外部存储设备的文件***尝试修复的耗时过长,而过长的修复时长将导致***卡住。
于本实施例中,响应于第一调用指令,外部存储设备管理模块分别执行检测操作,以及设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识,使得外部存储设备管理模块与存储管理服务模块基于第一调用指令的交互进程无需等待检测操作完成,即可结束,避免了由于检测时长过长导致基于第一调用指令的交互进程卡住,导致***无响应,具体地,***无响应包括***卡死或定屏(屏幕长时间卡住不动,也可称为冻屏或hang机)等***异常情况,从而可以防止异常外部存储设备***导致***不响应,提升***稳定性。
具体地,例如,外部存储设备管理模块响应于第一调用指令,可以将外部存储设备的检测状态标识设置为检测中标识如“checki ng”,在外部存储设备管理模块返回“checking”后,存储管理服务模块可以根据外部存储设备的存储状态标识为“checki ng”,获知外部存储设备正在检测中。
S103:外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
于本实施例中,外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令,通知存储管理服务模块对外部存储设备的检测操作已完成,使得存储管理服务模块可以进行下一步操作。
作为一种实施方式,若检测操作的检测时长超过指定时间,结束检测操作,此时检测操作已完成,外部存储设备管理模块向存储管理服务模块发送检测完成指令。需要说明的是,由于在外部存储设备的文件***是异常时,外部存储设备管理模块尝试对该文件***进行修复,若修复时间过长且在修复成功之前所耗的检测时长已超过指定时间,则存在当检测操作已完成时,外部存储设备的文件***仍是异常的情况。即在检测操作已完成时,外部存储设备的文件***可以是异常的,也可以是非异常的。其中,非异常的情况包括文件***在检测前即是正常的情况,还可以包括外部存储设备在刚***时是异常的,但在指定时间内经外部存储设备管理模块修复完成从而恢复正常的情况。
作为另一种实施方式,若检测操作的检测时长超过指定时间,不认为检测操作已完成,即若检测时长过长,在指定时间内未完成检测操作,则认为检测操作未完成,不向存储管理服务模块发送检测完成指令,由此,使得存储管理服务模块无法对外部存储设备进行下一步操作。具体地,由于外部存储设备的文件***损坏过多,外部存储设备管理模块无法在指定时间内完成对损坏的文件***的修复。
需要说明的是,由于外部存储设备管理模块响应于第一调用指令,已完成一次返回,即当次调用线程已结束,而外部存储设备管理模块对外部存储设备执行的检测操作,并不基于与存储管理服务模块之间跨进程通信的线程,而是基于外部存储设备管理模块内部进程内的线程,因此,即便检测时长过长也不会卡住***进程,也就不会导致***无响应,从而可以防止由于异常外部存储设备***终端设备导致的***卡死或定屏,提升***稳定性。
S104:存储管理服务模块基于检测完成指令通知外部存储设备管理模块对外部存储设备进行挂载。
其中,存储管理服务模块基于检测完成指令,可以获知检测操作已完成,此时通知外部存储设备管理模块对外部存储设备进行挂载。
由此,相较于现有技术中外部存储设备管理模块需在完成检测操作与挂载操作之后才作返回,本实施例通过将检测操作与挂载操作的执行分开,使得外部存储设备管理模块在检测操作完成前,先返回检测状态标识,以结束与存储管理服务模块之间跨进程通信的线程,并在检测操作完成后再进行挂载,因此,可以防止由于对外部存储设备的检测时长过长,导致线程卡住,使得***无响应,从而可以防止异常外部存储设备***导致***卡死或定屏等异常情况,提升***稳定性。
请参阅图2,示出了本申请实施例提供的一种挂载处理方法,具体地,该方法包括:S201至S207。
S201:存储管理服务模块向外部存储设备管理模块发送第一调用指令。
作为一种实施方式,第一调用指令包括检测指令,具体地,检测指令可以是用于检测文件***是否异常、是否有错误的函数Check,也可以是其他在用于检测文件***是否异常的接口函数,本实施例对此不做限定。基于检测指令,还可以对检测状态标识进行设置或更新等操作。在此实施方式中,存储管理服务模块通过Binder调用将检测指令发送至外部存储设备管理模块。具体地,存储管理服务模块基于Binder通信调用函数Check至外部存储设备管理模块,使得外部存储设备管理模块可以执行函数Check。由此,基于Binder通信可以方便地实现跨进程调用函数。
作为另一种实施方式,检测指令可以是预先加载的,即第一调用指令不包含检测指令,此时,存储管理服务模块向外部存储设备管理模块发送第一调用指令,可以使得外部存储设备管理模块响应于第一调用指令,可以执行预先加载的检测指令,减少进程间的通信数据量,降低函数加载时间,提高通信效率,提高检测效率,进而有利于提高对外部存储设备的挂载效率。
S202:外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
其中,检测状态标识可以是对应外部存储设备的用于反映当前检测状态的标志位,通过该标识位,可以获知当前检测的状态,例如,若该标志位为检测中标识如“Checking”,可以表示外部存储设备管理模块正在对外部存储设备执行检测操作且未检测完成,存储管理服务模块通过接收外部存储设备管理模块返回的检测状态标识,可以获知当前检测的状态为正在执行检测操作且未检测完成。
于本实施例中,外部存储设备管理模块响应于第一调用指令,可以基于两个不同的线程分别执行检测操作和设置外部存储设备的检测状态标识并返回检测状态标识。具体地,外部存储设备管理模块响应于第一调用指令,基于第一线程设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识,使得第一线程在接收到第一调用指令后立刻返回执行结束了,并且外部存储设备管理模块响应于第一调用指令,基于第二线程执行检测操作。
其中,第一线程是基于Binder调用的跨进程的线程,即主线程,而第二线程是外部存储设备管理模块进程内的线程,由此,本实施例通过第一线程在接收到第一调用指令之后,立刻返回执行结束了,使得本次Binder调用的线程可以及时结束,并且开启第二线程执行实际的检测操作,使得实际的检测时长,并且其中还包含的修复时长不影响主线程,即基于第二线程执行可能导致Binder调用卡住的检测操作,使得基于Binder调用的第一线程可以得到及时甚至快速的响应,很好地避免了由于检测时长过长导致的***无响应,防止了异常外部存储设备***导致的***卡死或定屏等异常情况发生,大大提升了***的稳定性。
作为一种实施方式,第一进程先于第二进程进行,具体地,外部存储设备管理模块响应于第一调用指令,先基于第一线程设置检测状态标识为检测中标识,并返回检测状态标识,此时再开启第二线程,基于第二线程执行检测操作。
作为另一种实施方式,第一进程与第二进程同时进行,具体地,外部存储设备管理模块响应于第一调用指令,同时设置检测状态标识以及开启第二线程并基于第二线程执行检测操作,在检测操作完成前即可立刻返回检测状态标识,并且由于第二线程与第一线程同时进行,使得外部存储设备管理模块响应于第一调用指令,在可以及时结束Binder调用的基础上,还可以更快执行检测操作,提高检测效率,同时更高的检测效率还有利于提高对外部存储设备的挂载效率。
其中,检测操作为检测外部存储设备的文件***是否异常,并针对异常的文件***进行修复。需要说明的是,检测操作包括在检测到异常时,对异常的文件***进行修复的操作,故本实施例中,检测时长包括修复时长。具体地,若文件***存在损坏,则异常,无损坏则正常,并在异常时外部存储设备管理模块将尝试修复异常的文件***。进一步地,若修复完成,此时文件***无损坏,可以认为是无异常即正常的。
在一些实施方式中,若文件***正常或者文件***异常且修复完成,则外部存储设备管理模块判定检测操作已完成,并且若文件***异常且未修复完成,则文件***仍处于异常状态,外部存储设备管理模块判定检测操作未完成。其中:
作为一种方式,若文件***正常或者文件***异常且修复完成,则外部存储设备管理模块判定检测操作已完成;若文件***异常且无法修复,则外部存储设备管理模块判定检测操作未完成。由此,对于检测操作不限时长,并当文件***异常时,判定检测操作未完成。从而在修复完成时,可以及时判定检测操作已完成,以便进行下一步操作。
作为另一种方式,外部存储设备管理模块的检测操作对应设置有预设时长,并在文件***异常且在预设时长内未修复完成时,即检测时长超过预设时长时,判定检测操作未完成。具体地,若检测到文件***正常,此时无需修复,外部存储设备管理模块判定检测操作已完成;若检测到文件***异常但在预设时长内修复完成,则外部存储设备管理模块判定检测操作已完成;若检测时长超过预设时长但仍未修复完成,此时外部存储设备管理模块检测到文件***异常,但在预设时长内损坏的文件***未被修复完成,则判定检测操作未完成。由此,可以控制检测操作的执行时间,可以及时作出响应以便进行下一步操作,从而保证检测效率的同时,避免检测超时无响应,提高***可用性。
在另一些实施方式中,外部存储设备管理模块的检测操作对应设置有预设时长,并在文件***异常且在预设时长内未修复完成时,即检测时长超过预设时长时,仍判定检测操作已完成。具体地,若文件***正常或者文件***异常且修复完成,则外部存储设备管理模块判定检测操作已完成,并且若文件***异常且在预设时长内未修复完成,则文件***仍处于异常状态,此时外部存储设备管理模块仍判定检测操作完成。也就是,检测操作最多可以执行预设时长,并且达到预设时长时,判定检测操作已完成,此时包括文件***可以是正常的,也可以是异常的。由此,可以控制检测操作的执行时间,并在文件***未修复完成时仍判定检测操作已完成,可以及时作出响应以便进行下一步操作,从而保证检测效率的同时,避免检测超时无响应,提高***可用性。
进一步地,在检测时长超过预设时长时,外部存储设备管理模块可以终止检测操作,也可以不终止,具体的实施方式如下:
在一种实施方式中,在检测时长超过预设时长时,外部存储设备管理模块可以终止检测操作,节省资源,提高***可用性。
在另一种实施方式中,在检测时长超过预设时长时,外部存储设备管理模块也可以不终止检测操作,使得检测操作继续,具体地,在文件***损坏过多时,外部存储设备管理模块要完成对所有异常的文件***的修复,所需时长较长,并且所需时长可能超过预设时长,此时通过在检测时长超过预设时长时,仍不中断检测操作,使得外部存储设备管理模块可以继续修复,由此,存在在挂载操作执行前,完成修复的可能,此时检测操作未完成的外部存储设备仍具有可被成功挂载的可能。具体的实施方式,可以参见后述实施例,本实施例不再赘述。
进一步地,于本实施例中,在检测时长超过预设时长时,可以执行S204;在检测时长未超过预设时长时,可以执行S203。
S203:当检测时长超过预设时长时,外部存储设备管理模块设置检测状态标识为检测异常标识。
其中,检测状态标识还包括检测异常标识,该检测异常标识可以用于指示存储管理服务模块当前检测异常,即检测时长超过预设时长仍未修复完成,此时外部存储设备的文件***仍异常。
于本实施例中,当检测时长超过预设时长时,外部存储设备管理模块设置检测状态标识为检测异常标识。具体地,在一种实施方式中,检测异常标识可以是数字、字母、单词等字符串,如“0”、“uncheckable”等用于表征经检测操作后文件***仍异常,可以是***预设的,也可以是自定义的,从而通过该检测异常标识,可以获知文件***异常,另外,本实施例对检测异常标识的命名形式不做其他限定。
由于文件***异常时,外部存储设备难以挂载成功,故当文件***异常且在预设时长内未修复完成时,通过设置检测异常标识,可以在检测到检测异常标识时,不对该外部存储设备进行挂载,从而减少不必要的资源消耗,提高响应效率。具体的实施方式,可见后述实施例,在此不作赘述。
S204:外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
于本实施例中,在检测操作已完成时,外部存储设备的文件***可以是正常的,也可以是异常的,其中正常的包括本身即正常的情况,以及异常但修复完成的情况。
作为一种实施方式,若文件***异常且在预设时长内未修复完成,即检测时长超过预设时长时,仍判定检测操作已完成,此时通过外部存储设备管理模块向存储管理服务模块发送检测完成指令,使得存储管理服务模块通过接收到该检测完成指令,可以获知当前外部存储设备已完成检测操作,可以进行挂载。此时,外部存储设备的文件***可以异常的,也可以是非异常的。
作为另一种实施方式,若文件***异常且在预设时长内未修复完成,即检测时长超过预设时长时,判定检测操作未完成,此时通过外部存储设备管理模块向存储管理服务模块发送检测完成指令,使得存储管理服务模块通过接收到该检测完成指令,可以获知当前外部存储设备是正常的,可以进行挂载。此时,外部存储设备的文件***是非异常的,即在外部存储设备的文件***仍异常时,不发送检测完成指令。
S205:存储管理服务模块基于检测完成指令通知外部存储设备管理模块对外部存储设备进行挂载。
于本实施例中,存储管理服务模块基于检测完成指令,可以判定当前外部存储设备已完成检测操作,可以进行挂载,此时通知外部存储设备管理模块对该外部存储设备进行挂载。由此,将检测操作和挂载操作分开在不同的线程执行,并在通过检测操作判定外部存储设备的文件***是正常的情况时,才进行挂载,可以提高挂载成功率以及效率。
S206:外部存储设备管理模块对外部存储设备进行挂载时,确定是否能够查找到检测异常标识。
在一些实施方式中,若文件***异常且在预设时长内未修复完成,即检测时长超过预设时长时,仍判定检测操作已完成,外部存储设备管理设备管理模块对外部存储设备进行挂载时,确定是否能够查找到检测异常标识,具体地,例如,基于表征检测状态的标志位,判断该标志位上的检测状态标识是否位检测异常标识;再如,可以直接查找对应该外部存储设备是否存储检测异常标识。
在另一些实施方式中,若文件***异常且在预设时长内未修复完成,即检测时长超过预设时长时,判定检测操作未完成,则在S205之后不执行S206至S207,此时,外部存储设备的文件***是非异常的,也就无需查找检测异常标识。
进一步地,若能够查找到检测异常标识,可以执行S207;若不能够,可以继续执行挂载操作。
S207:若能够,则停止对外部存储设备进行挂载。
若能够查找到检测异常标识,此时外部存储设备管理模块判定外部存储设备的文件***为异常,通过停止对外部存储设备进行挂载,可以降低运行资源的消耗,提高***运行效率,并有利于提高挂载效率。
需要说明的是,上述步骤中未详细描述的部分,可参考前述实施例,在此不再赘述。
本实施例提供的挂载处理方法,通过将检测操作和挂载操作分开在不同的线程执行,通过外部存储设备管理模块在接收到第一调用指令之后,立刻返回使得本次Binder调用的线程可以及时结束,并开启第二线程执行实际的检测操作,使得实际的检测时长,并且其中还包含的修复时长不影响主线程,即基于第二线程执行可能导致Binder调用卡住的检测操作,避免了由于检测时长过长导致的***无响应,防止了异常外部存储设备***导致的***卡死或定屏等异常情况发生,大大提升了***的稳定性。并且,通过确定是否能够找到检测异常标识,使得外部存储设备管理设备在外部存储设备的文件***是非异常时,才继续进行挂载,还可以提高挂载成功率以及效率,另外,由于外部存储设备管理模块在文件***异常时不进行挂载,还可以减少不必要的资源消耗,提高***运行效率。
另外,在检测时长超过预设时长时,也可以结束本次方法,不进行下一步操作。具体地,请参阅图3,该方法包括:S301至S303。
S301:存储管理服务模块向外部存储设备管理模块发送第一调用指令。
S302:外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
S303:当检测时长超过预设时长时,外部存储设备管理模块设置检测状态标识为检测异常标识。
于本实施例中,当检测时长超过预设时长时,结束本次方法,使得在文件***异常且在预设时长内未修复完成时,不通知存储管理服务模块而结束本次方法,可以大大减少运行资源的消耗,提高***运行效率。
进一步地,作为一种方式,当检测时长超过预设时长时,可以先执行S303,再结束本次方法。此时外部存储设备管理模块设置检测状态标识为检测异常标识,使得在存储管理服务模块获取到外部存储设备的检测状态标识时,可以获知外部存储设备的文件***处于异常状态,从而使得用户可以及时尝试重新挂载。
作为另一种方式,当检测时长超过预设时长时,可以不执行S303,而结束本次方法。此时存储管理服务模块认为外部存储设备一直处于检测中,仍在执行检测操作,具体地,外部存储设备对应地检测状态一直为“Checking”。
S304:外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
S305:存储管理服务模块基于检测完成指令通知外部存储设备管理模块对外部存储设备进行挂载。
需要说明的是,上述步骤中为详细描述的部分,可参考前述实施例,在此不再赘述。
本实施例提供的挂载处理方法,在前述实施例的基础上,通过在检测时长超过预设时长时,结束本次方法,可以大大减少运行资源的消耗,提高运行效率,并且可以使得用户通过重新***外部存储设备或其他措施,重新尝试挂载,提高用户挂载体验。
请参阅图4,示出了本申请实施例提供的一种挂载处理方法,具体地,该方法包括:S401至S404。
S401:存储管理服务模块向外部存储设备管理模块发送第一调用指令。
S402:外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
S403:外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
上述S401至S403的具体实施方式可参考前述实施例,在此不再赘述。
S404:存储管理服务模块响应于检测完成指令,向外部存储设备管理模块发送第二调用指令。
其中,第二调用指令用于通知外部存储设备管理模块对外部存储设备进行挂载。
作为一种实施方式,存储管理服务模块响应于检测完成指令,通过Binder调用将挂载指令发送至外部存储设备管理模块,其中,第二调用指令包括挂载指令,例如,挂载指令可以是用于挂载外部存储设备的函数Mount,也可以是其他用于挂载外部存储设备的接口函数,本实施例对此不作限定。具体地,存储管理服务模块基于Binder通信调用函数Mount至外部存储设备管理模块,使得外部存储设备管理模块可以执行函数Mount,执行挂载操作。
作为另一种实施方式,挂载指令可以是预先加载的,即第二调用指令不包括挂载指令,此时,存储管理服务模块向外部存储设备管理模块发送第二调用指令,可以使得外部存储设备管理模块响应于第二调用指令,可以执行预先加载的挂载指令,减少进程间的通信数据量,降低函数加载时间,提高通信效率的同时提高挂载效率。
请参阅图5,示出了本申请实施例提供的一种挂载处理方法,具体地,该方法包括:S501至S507。
S501:存储管理服务模块向外部存储设备管理模块发送第一调用指令。
S502:外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
S503:外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
S504:存储管理服务模块响应于检测完成指令,向外部存储设备管理模块发送第二调用指令。
S505:外部存储设备管理模块响应于第二调用指令,根据检测状态标识,判断外部存储设备的文件***是否异常。
于本实施例中,外部存储设备管理模块响应于第二调用指令,根据外部存储设备对应的检测状态标识,判断外部存储设备的文件***是否异常。具体地,若当前的检测状态标识为检测异常标识,外部存储设备的文件***异常,否则非异常,即文件***正常。
本实施例中,S505之后,若非异常,可以执行S506;若异常,可以执行S508。
S506:外部存储设备管理模块获取挂载结果。
若非异常,此时外部存储设备管理模块检测到外部存储设备的文件***非异常,外部存储设备管理模块对外部存储设备执行挂载操作,获取挂载结果。具体地,外部存储设备管理模块基于挂载指令,如用于挂载的函数Mount,通过执行该函数Mount,对外部存储设备执行挂载操作,获取挂载结果。其中,挂载结果包括挂载成功和挂载失败。
S507:外部存储设备管理模块根据挂载结果,设置挂载状态标识。
具体地,挂载状态标识可以是一个用于表征挂载状态的标志位,例如,若挂载状态标识为“unmountable”,表征外部存储设备无法挂载,若挂载状态标识为“mounted”,表征外部存储设备已挂载。需要说明的是,只要挂载状态标识可以用于表征挂载状态,本实施例对挂载状态标识的命名形式不作其他限定。
作为一种实施方式,若挂载成功,设置挂载状态标识为已挂载标识,如“mounted”;若挂载失败,设置挂载状态标识为无法挂载标识,如“unmountable”,或设置为未挂载标识,如“unmounted”。从而使得存储管理服务模块通过获取挂载状态标识可以获知对应的挂载结果。
S508:设置外部存储设备的挂载状态标识为无法挂载标识。
若异常,此时外部存储设备管理模块检测到外部存储设备的文件***异常,此时设置外部存储设备的挂载状态标识为无法挂载标识,使得外部存储设备管理模块无法对外部存储设备进行挂载。由于文件***异常时,对外部存储设备挂载成功的可能性低,因此通过判断外部存储设备的文件***是否异常,可以判断挂载成功的可能性,从而在实际执行挂载操作前作出预判,并在文件***异常时,停止挂载,可以节省资源,提高挂载效率。
作为一种实施方式,S508之后可以结束本次方法,即设置挂载状态标识后再结束本次方法,使得存储管理服务模块可以获取该挂载状态标识,从而获知当前***的外部存储设备无法挂载,使得用户可以采取措施重新挂载该外部存储设备,如重新***等,提升用户挂载外部存储设备的用户体验。
作为另一种实施方式,S508之前可以结束本次方法,即若外部存储设备管理模块判断外部存储设备的文件***异常,不执行S508,而结束本次方法。进一步节省挂载所需的运行资源,由于在文件***异常时,难以对外部存储设备挂载成功,因此,本实施方式通过在文件***异常时,不执行实际的挂载操作,例如不执行函数Mount等操作,而结束本次方法,可以减少不必要的运行资源。
作为又一种实施方式,S508之后可以将无法挂载标识发送至存储管理服务模块,使得存储管理服务模块可以获知外部存储设备的当前挂载状态。具体的实施方式,可以参考后述实施例,在此不再赘述。
需要说明的是,上述步骤中未详细描述的部分,可参考前述实施例,在此不再赘述。
本实施例提供的挂载处理方法,由于文件***异常时,对外部存储设备挂载成功的可能性低,因此在前述实施例的基础上,本实施例通过判断外部存储设备的文件***是否异常,可以判断挂载成功的可能性,从而在实际执行挂载操作前作出预判,并在文件***异常时不进行挂载操作,可以节省资源,提高挂载效率。
另外,外部存储设备管理模块在判定外部存储设备的文件***异常,并设置外部存储设备的挂载状态标识为无法挂载标识时,可以不执行挂载操作,但将无法挂载标识发送至存储管理服务模块,使得存储管理服务模块可以广播对应的挂载结果。具体地,请参阅图6,示出了本申请实施例提供的一种挂载处理方法,具体地,该方法包括:S601至S610。
S601:存储管理服务模块向外部存储设备管理模块发送第一调用指令。
S602:外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
S603:外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
S604:存储管理服务模块响应于检测完成指令,向外部存储设备管理模块发送第二调用指令。
S605:外部存储设备管理模块响应于第二调用指令,根据检测状态标识,判断外部存储设备的文件***是否异常。
于本实施例中,若非异常,可以执行S606;若异常,可以执行S608。
S606:外部存储设备管理模块获取挂载结果。
S607:外部存储设备管理模块根据挂载结果,设置挂载状态标识。
S608:设置外部存储设备的挂载状态标识为无法挂载标识。
于本实施例中,若外部存储设备管理模块判定外部存储设备的文件***异常,设置外部存储设备的挂载状态标识为无法挂载标识。
S609:外部存储设备管理模块在当前挂载已完成时,向存储管理服务模块发送挂载完成指令。
于本实施例中,在当前挂载已完成时,向存储管理服务模块发送挂载完成指令,其中挂载完成指令包括挂载状态标识,使得存储管理服务模块在接收到挂载完成指令时,可以获取外部存储设备的挂载状态标识。
其中,外部存储设备管理模块执行挂载操作对外部存储设备进行挂载后,可以获取挂载结果,于本实施例中,若外部存储设备管理模块判定外部存储设备的文件***异常,设置外部存储设备的挂载状态标识为无法挂载标识,此时当前挂载已完成;若非异常,获取挂载结果,并根据挂载结果设置挂载状态标识,此时当前挂载也已完成。由于在文件***异常时,外部存储设备管理模块仍将无法挂载标识发送至存储管理服务模块,使得存储管理服务模块对可以广播每次挂载外部存储设备时对应的挂载结果都可以广播,即便在文件***异常时,未执行挂载操作,也将对应的挂载失败进行广播,使得其他应用程序可以及时获知所***的外部存储设备的挂载状态。
S610:存储管理服务模块根据挂载状态标识,广播与挂载状态标识对应的挂载结果。
作为一种实施方式,若挂载状态标识为无法挂载标识,存储管理服务模块广播挂载失败;若挂载状态标识为已挂载标识,存储管理服务模块广播挂载成功,使得***上的应用程序可以访问挂载成功的外部存储设备。具体地,存储管理服务模块向***广播挂载结果,应用程序监听到广播后可以作对应操作,例如,用于文件管理的应用程序可以在监听到挂载成功的广播时,在该应用程序的界面显示出该外部存储设备,并在监听到挂载失败的广播时,在该应用程序的界面显示该外部存储设备异常。
需要说明的是,上述步骤中未详细描述的部分,可参考前述实施例,在此不再赘述。
本实施例提供的挂载处理方法,在前述实施例的基础上,在外部存储设备管理模块检测到外部存储设备的文件***异常后,不执行挂载操作,降低不必要的资源消耗,同时通过将无法挂载标识发送至存储管理服务模块,使得存储管理服务模块仍广播检测异常标识对应的挂载结果,使得其他应用程序可以及时获知当前挂载结果,提高响应效率,便于用户在挂载失败时及时采取措施,提升用户体验。
另外,外部存储设备管理模块在判定外部存储设备的文件***异常,并设置外部存储设备的挂载状态标识为无法挂载标识时,仍可以进行挂载操作,具体地,请参阅图7,示出了本申请实施例提供的一种挂载处理方法,具体地,该方法包括:S701至S710。
S701:存储管理服务模块向外部存储设备管理模块发送第一调用指令。
S702:外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
作为一种实施方式,在检测时长超过预设时长时,外部存储设备管理模块也可以不中断检测操作,使得检测操作继续,继续对损坏的文件***进行修复。具体地,在文件***损坏过多时,外部存储设备管理模块要完成对所有异常的文件***的修复,所需的时长较长,并且所需的时长可能超过预设时长,此时通过在检测时长超过预设时长时,仍不中断检测操作,使得外部存储设备管理模块可以对外部存储设备中损坏的文件***继续进行修复,由此,存在在挂载操作执行前,完成修复的可能,此时检测操作未完成的外部存储设备仍具有可被成功挂载的可能。
S703:外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
S704:存储管理服务模块响应于检测完成指令,向外部存储设备管理模块发送第二调用指令
S705:外部存储设备管理模块响应于第二调用指令,根据检测状态标识,判断外部存储设备的文件***是否异常。
S706:设置外部存储设备的挂载状态标识为无法挂载标识。
若外部存储设备管理模块判定外部存储设备的文件***异常,设置外部存储设备的挂载状态标识为无法挂载标识,仍可以进行挂载操作,继续执行S707。
作为一种实施方式,在S707之前,外部存储设备管理模块将外部存储设备的文件***修复完成,使得该文件***恢复正常,此时,通过执行S707,可以使得由于在预设时长内未修复完成导致检测状态标识设置为检测异常标识的外部存储设备,在文件***恢复正常时,可以及时进行挂载,而不需要重新***、重新执行检测、挂载操作,因此提高了外部存储设备的挂载效率。
S707:外部存储设备管理模块获取挂载结果。
S708:外部存储设备管理模块根据挂载结果,更新挂载状态标识。
S709:外部存储设备管理模块在当前挂载已完成时,向存储管理服务模块发送挂载完成指令。
S710:存储管理服务模块根据挂载状态标识,广播与挂载状态标识对应的挂载结果。
需要说明的是,上述步骤中未详细描述的部分,可参考前述实施例,在此不再赘述。
本实施例提供的挂载处理方法,通过在检测时长超过预设时长时,仍未中断检测操作,继续对损坏的文件***进行修复,并在执行挂载操作,获取挂载结果前这段时间完成了修复,使得外部存储设备的文件***恢复正常,从而本实施例通过外部存储设备管理模块在根据检测异常标识设置挂载状态标识为无法挂载后,仍可执行挂载操作,使得外部存储设备可以在文件***恢复正常时及时被挂载,提高挂载效率。
另外,外部存储设备管理模块在判定外部存储设备的文件***异常,并设置外部存储设备的挂载状态标识为无法挂载标识时,也可以不进行挂载操作,而结束本次方法,请参阅图8,示出了本申请实施例提供的一种挂载处理方法,具体地,该方法包括:S801至S810。
S801:存储管理服务模块向外部存储设备管理模块发送第一调用指令。
S802:外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
S803:外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
S804:存储管理服务模块响应于检测完成指令,向外部存储设备管理模块发送第二调用指令。
S805:外部存储设备管理模块响应于第二调用指令,根据检测状态标识,判断外部存储设备的文件***是否异常。
S806:设置外部存储设备的挂载状态标识为无法挂载标识。
若外部存储设备管理模块判定外部存储设备的文件***异常,设置外部存储设备的挂载状态标识为无法挂载标识后,结束本次方法,使得外部存储设备管理模块在检测到外部存储设备的文件***异常时,不执行挂载操作,也不广播挂载结果,节省了资源。
S807:外部存储设备管理模块获取挂载结果。
S808:外部存储设备管理模块根据挂载结果,更新挂载状态标识。
S809:外部存储设备管理模块在当前挂载已完成时,向存储管理服务模块发送挂载完成指令。
S810:存储管理服务模块根据挂载状态标识,广播与挂载状态标识对应的挂载结果。
需要说明的是,上述步骤中未详细描述的部分,可参考前述实施例,在此不再赘述。
本实施例提供的挂载处理方法,通过在外部存储设备管理模块判定外部存储设备的文件***异常,设置外部存储设备的挂载状态标识为无法挂载标识后,结束本次方法,使得外部存储设备管理模块在检测到外部存储设备的文件***异常时,不执行挂载操作,也不广播挂载结果,从而在前述实施例的基础上,节省了资源,提高了***运行效率。
另外,在外部存储设备管理模块判定外部存储设备的文件***异常时,也可以不设置挂载状态标识,并响应于第二调用指令,对外部存储设备进行挂载,具体地,请参阅图9,示出了本申请实施例提供的一种挂载处理方法,具体地,该方法包括:S901至S908。
S901:存储管理服务模块向外部存储设备管理模块发送第一调用指令。
S902:外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
S903:外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
S904:存储管理服务模块响应于检测完成指令,向外部存储设备管理模块发送第二调用指令。
于本实施例中,外部存储设备管理模块响应于第二调用指令,对外部存储设备进行挂载,具体地,可以包括S905至S906。
S905:外部存储设备管理模块获取挂载结果。
S906:外部存储设备管理模块根据挂载结果,设置挂载状态标识
S907:外部存储设备管理模块在当前挂载已完成时,向存储管理服务模块发送挂载完成指令。
其中,挂载完成指令包括外部存储设备的挂载状态标识。
S908:存储管理服务模块根据挂载状态标识,广播与挂载状态标识对应的挂载结果。
需要说明的是,上述步骤中未详细描述的部分,可参考前述实施例,在此不再赘述。
本实施例提供的挂在处理方法,通过将检测操作与挂载操作分别基于不同的调用指令执行,防止耗时长的检测操作在执行过程中卡住主进程,使得***无响应,出现卡死或定屏等***异常情况,提升了***稳定性。并在对外部存储设备执行挂载操作后,广播挂载结果,使得***上的应用程序可以获知外部存储设备的挂载结果,并在挂载成功时访问外部存储设备,提高了***响应效率,并且提升了用户体验。
进一步地,请参阅图10,示出了本申请实施例提供的一种触发第一调用指令的方法流程图,该方法描述了在外部存储设备***终端设备,且存储管理服务模块向外部存储设备管理模块发送第一调用指令之前的过程,具体地,该方法包括:S1001至S1003。
S1001:外部存储设备管理模块在检测到外部存储设备的***事件时,向存储管理服务模块发送外部存储设备的设备信息。
作为一种实施方式,在外部存储设备***终端设备时,***底层驱动将外部存储设备的***时间上报到外部存储设备管理模块,使得外部存储设备管理模块获知外部存储设备的***事件,并创建外部存储设备的存储路径以及设备信息,将***的外部存储设备的设备信息转发至存储管理服务模块。其中,设备信息可以包括设备ID、存储容量大小、文件***类型等信息。具体地,在一些实施方式中,外部存储设备管理模块可以基于Binder调用将设备信息发送至存储管理服务模块。
S1002:存储管理服务模块根据设备信息,创建外部存储设备的存储访问接口,以使外部存储设备被访问。
作为一种实施方式,存储管理服务模块根据接收的外部存储设备的设备信息,创建外部存储设备的存储访问接口,使得上层应用程序可以通过存储访问接口访问对应的外部存储设备。
S1003:存储管理服务模块在当前存储设备列表上添加外部存储设备,并向外部存储设备管理模块发送第一调用指令。
作为一种实施方式,存储管理服务模块在创建外部存储设备的存储访问接口后,在预先配置的当前存储设备列表上添加该外部存储设备。此时存储管理服务模块基于Binder调用向外部存储设备管理模块发送第一调用指令。
请参阅图11,其示出了本申请实施例提供的一种挂载处理装置的结构框图,该挂载处理装置1100可以包括:第一调用模块1110、第一返回模块1120、检测完成模块1130和挂载通知模块1140。
第一调用模块1110,用于存储管理服务模块向外部存储设备管理模块发送第一调用指令。
第一返回模块1120,用于外部存储设备管理模块响应于第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识。
检测完成模块1130,用于外部存储设备管理模块在检测操作已完成时,向存储管理服务模块发送检测完成指令。
挂载通知模块1140,用于存储管理服务模块基于检测完成指令通知外部存储设备管理模块对外部存储设备进行挂载。
进一步地,第一返回模块1120包括:第一线程单元以及第二线程单元,其中:
第一线程单元,用于外部存储设备管理模块响应于第一调用指令,基于第一线程设置外部存储设备的检测状态标识为检测中标识,并返回检测状态标识;
第二线程单元,用于外部存储设备管理模块响应于第一调用指令,基于第二线程执行检测操作。
在一种实施方式中,第一线程与第二线程同时进行。
在一种实施方式中,检测操作为检测外部存储设备的文件***是否异常,并针对异常的文件***进行修复,若文件***正常或者文件***异常且修复完成,则外部存储设备管理模块判定检测操作已完成。
进一步地,外部存储设备管理模块响应于第一调用指令,执行检测操作之后,挂载处理装置1100还包括:检测超时异常模块、检测异常确定模块、检测超时结束模块以及挂载停止模块,其中:
检测超时异常模块,用于当检测时长超过预设时长时,外部存储设备管理模块设置检测状态标识为检测异常标识。
检测异常确定模块,用于外部存储设备管理模块对外部存储设备进行挂载时,确定是否能够查找到检测异常标识。
挂载停止模块,用于若能够,则停止对外部存储设备进行挂载。
进一步地,外部存储设备管理模块响应于第一调用指令,执行检测操作之后,还包括:检测超时结束单元,其中:
检测超时结束单元,用于当检测时长超过预设时长时,结束本次方法。
进一步地,在一些实施方式中,第一调用指令为检测指令,此时第一调用模块1110包括:第一调用单元,其中:
第一调用单元,用于存储管理服务模块通过Binder调用将检测指令发送至外部存储设备管理模块。
进一步地,挂载通知模块1140包括:挂载通知单元,用于存储管理服务模块响应于检测完成指令,向外部存储设备管理模块发送第二调用指令,第二调用指令用于通知外部存储设备管理模块对外部存储设备进行挂载。
进一步地,存储管理服务模块响应于检测完成指令,向外部存储设备管理模块发送第二调用指令之后,挂载处理装置1100还包括:异常判断模块以及异常挂载标识设置模块。
异常判断单元,用于外部存储设备管理模块响应于第二调用指令,根据检测状态标识,判断外部存储设备的文件***是否异常。
异常挂载标识设置模块,用于若异常,设置外部存储设备的挂载状态标识为无法挂载标识,以使存储管理服务模块无法对外部存储设备进行挂载。
在一些实施方式中,外部存储设备管理模块响应于第二调用指令,根据检测状态标识,判断外部存储设备的文件***是否异常之后,挂载处理装置1100还包括:异常结束模块,其中:
异常结束模块,用于若异常,结束本次方法。
进一步地,外部存储设备管理模块响应于第二调用指令,根据检测状态标识,判断外部存储设备的文件***是否异常之后,挂载处理装置1100还包括:挂载结果获取模块以及挂载标识设置模块,其中:
挂载结果获取模块,用于若非异常,外部存储设备管理模块获取挂载结果。
挂载标识设置模块,用于外部存储设备管理模块根据挂载结果,设置挂载状态标识。
进一步地,挂载标识设置模块,包括:成功设置单元以及失败设置单元,其中:
成功设置单元,用于若挂载成功,设置挂载状态标识为已挂载标识。
失败设置单元,用于若挂载失败,设置挂载状态标识为无法挂载标识。
进一步地,存储管理服务模块响应于检测完成指令,向外部存储设备管理模块发送第二调用指令之后,挂载处理装置1100还包括:第二调用模块、挂载完成模块以及挂载广播模块,其中:
第二调用模块,用于外部存储设备管理模块响应于第二调用指令,对外部存储设备进行挂载。
挂载完成模块,用于外部存储设备管理模块在当前挂载已完成时,向存储管理服务模块发送挂载完成指令,挂载完成指令包括外部存储设备的挂载状态标识。
挂载广播模块,用于存储管理服务模块根据挂载状态标识,广播与挂载状态标识对应的挂载结果。
进一步地,第二调用模块包括:挂载结果获取单元以及挂载标识设置单元,其中:
挂载结果获取单元,用于外部存储设备管理模块获取挂载结果。
挂载标识设置单元,用于外部存储设备管理模块根据挂载结果,设置外部存储设备的挂载状态标识。
进一步地,挂载标识设置单元包括成功设置子单元以及失败设置子单元,其中:
成功设置子单元,用于若挂载成功,设置挂载状态标识为已挂载标识。
失败设置子单元,用于若挂载失败,设置挂载状态标识为无法挂载标识。
进一步地,挂载广播模块包括:挂载失败广播单元以及挂载成功广播单元。
挂载失败广播单元,用于若挂载状态标识为无法挂载标识,存储管理服务模块广播挂载失败;
挂载成功广播单元,用于若挂载状态标识为已挂载标识,存储管理服务模块广播挂载成功。
进一步地,挂载处理装置1100还包括:设备信息发送模块、访问接口创建模块以及存储设备添加模块,其中:
设备信息发送模块,用于外部存储设备管理模块在检测到外部存储设备的***事件时,向存储管理服务模块发送外部存储设备的设备信息。
访问接口创建模块,用于存储管理服务模块根据设备信息,创建外部存储设备的存储访问接口,以使外部存储设备被访问。
存储设备添加模块,用于存储管理服务模块在当前存储设备列表上添加外部存储设备,并向外部存储设备管理模块发送第一调用指令。
本申请实施例提供的挂载处理装置用于实现前述方法实施例中相应的挂载处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图12,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备1200可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备1200可以包括一个或多个如下部件:处理器1210、存储器1220、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器1220中并被配置为由一个或多个处理器1210执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器1210可以包括一个或者多个处理核。处理器1210利用各种接口和线路连接整个电子设备1200内的各个部分,通过运行或执行存储在存储器1220内的指令、程序、代码集或指令集,以及调用存储在存储器1220内的数据,执行电子设备1200的各种功能和处理数据。可选地,处理器1210可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1210可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1210中,单独通过一块通信芯片进行实现。
进一步地,处理器1210还包括:外部存储设备管理模块1211以及存储管理服务模块1212。其中,外部存储设备管理模块1211可以是安卓(Android)平台中外部存储***的管控中心,是管理和控制Android平台外部存储设备的后台进程。其功能主要包括:外部存储设备的插拔事件检测、外部存储设备的挂载、卸载、格式化等;存储管理服务模块1212为Android***框架层与外部存储设备管理模块1211进行通信的模块,同时存储管理服务模块1212也是向应用提供存储访问接口及存储挂载消息广播的模块。进一步地,在一种实施方式中,外部存储设备管理模块1211与存储管理服务模块1212可以基于Binder通信机制进行通信。
存储器1220可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器1220可用于存储指令、程序、代码、代码集或指令集。存储器1220可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备1200在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
则如果上述图11所示的挂载处理装置中的各个单元作为程序包等函数模块的话,该挂载处理装置内的各个单元存储在存储器1220内,能够被处理器调用,并执行对应的功能。
请参考图13,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质1300中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读取存储介质1300可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质1300包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质1300具有执行上述方法中的任何方法步骤的程序代码1310的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1310可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (19)
1.一种挂载处理方法,其特征在于,所述方法包括:
存储管理服务模块向外部存储设备管理模块发送第一调用指令;
所述外部存储设备管理模块响应于所述第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回所述检测状态标识,其中,所述检测操作为检测所述外部存储设备的文件***是否异常,所述检测中标识用于指示所述外部存储设备管理模块正在执行所述检测操作且未检测完成;
所述外部存储设备管理模块响应于所述第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回所述检测状态标识,包括:
所述外部存储设备管理模块响应于所述第一调用指令,基于第一线程设置所述外部存储设备的检测状态标识为检测中标识,并返回所述检测状态标识 ,其中,所述第一线程是基于Binder调用的跨进程的线程;
所述外部存储设备管理模块响应于所述第一调用指令,基于第二线程执行检测操作,其中,所述第二线程是所述外部存储设备管理模块进程内的线程;
所述外部存储设备管理模块在所述检测操作已完成时,向所述存储管理服务模块发送检测完成指令;
所述存储管理服务模块基于所述检测完成指令通知所述外部存储设备管理模块对所述外部存储设备进行挂载。
2.根据权利要求1所述的方法,其特征在于,所述第一线程与所述第二线程同时进行。
3.根据权利要求1所述的方法,其特征在于,所述检测操作为检测所述外部存储设备的文件***是否异常,并针对异常的文件***进行修复,若所述文件***正常或者所述文件***异常且修复完成,则所述外部存储设备管理模块判定所述检测操作已完成。
4.根据权利要求1所述的方法,其特征在于,所述外部存储设备管理模块响应于所述第一调用指令,执行检测操作之后,还包括:
当检测时长超过预设时长时,所述外部存储设备管理模块设置所述检测状态标识为检测异常标识;
所述外部存储设备管理模块对所述外部存储设备进行挂载时,确定是否能够查找到检测异常标识;
若能够,则停止对所述外部存储设备进行挂载。
5.根据权利要求1所述的方法,其特征在于,所述外部存储设备管理模块响应于所述第一调用指令,执行检测操作之后,还包括:
当检测时长超过预设时长时,结束本次方法。
6.根据权利要求1所述的方法,其特征在于,所述第一调用指令包括检测指令,所述存储管理服务模块向外部存储设备管理模块发送第一调用指令,包括:
所述存储管理服务模块通过Binder调用将所述检测指令发送至所述外部存储设备管理模块。
7.根据权利要求1所述的方法,其特征在于,所述存储管理服务模块基于所述检测完成指令通知所述外部存储设备管理模块对所述外部存储设备进行挂载,包括:
所述存储管理服务模块响应于所述检测完成指令,向所述外部存储设备管理模块发送第二调用指令,所述第二调用指令用于通知所述外部存储设备管理模块对所述外部存储设备进行挂载。
8.根据权利要求7所述的方法,其特征在于,所述存储管理服务模块响应于所述检测完成指令,向所述外部存储设备管理模块发送第二调用指令之后,还包括:
所述外部存储设备管理模块响应于所述第二调用指令,根据所述检测状态标识,判断所述外部存储设备的文件***是否异常;
若异常,设置所述外部存储设备的挂载状态标识为无法挂载标识,以使所述外部存储设备管理模块无法对所述外部存储设备进行挂载。
9.根据权利要求8所述的方法,其特征在于,所述外部存储设备管理模块响应于所述第二调用指令,根据所述检测状态标识,判断所述外部存储设备的文件***是否异常之后,还包括:
若异常,结束本次方法。
10.根据权利要求8所述的方法,其特征在于,所述外部存储设备管理模块响应于所述第二调用指令,根据所述检测状态标识,判断所述外部存储设备的文件***是否异常之后,还包括:
若非异常,所述外部存储设备管理模块获取挂载结果;
所述外部存储设备管理模块根据所述挂载结果,设置所述挂载状态标识。
11.根据权利要求10所述的方法,其特征在于,所述外部存储设备管理模块根据所述挂载结果,设置所述挂载状态标识,包括:
若挂载成功,设置所述挂载状态标识为已挂载标识;
若挂载失败,设置所述挂载状态标识为无法挂载标识。
12.根据权利要求7所述的方法,其特征在于,所述存储管理服务模块响应于所述检测完成指令,向所述外部存储设备管理模块发送第二调用指令之后,还包括:
所述外部存储设备管理模块响应于所述第二调用指令,对所述外部存储设备进行挂载;
所述外部存储设备管理模块在当前挂载已完成时,向所述存储管理服务模块发送挂载完成指令,所述挂载完成指令包括所述外部存储设备的挂载状态标识;
所述存储管理服务模块根据所述挂载状态标识,广播与所述挂载状态标识对应的挂载结果。
13.根据权利要求12所述的方法,其特征在于,所述外部存储设备管理模块响应于所述第二调用指令,对所述外部存储设备进行挂载,包括:
所述外部存储设备管理模块获取挂载结果;
所述外部存储设备管理模块根据所述挂载结果,设置所述外部存储设备的挂载状态标识。
14.根据权利要求13所述的方法,其特征在于,所述外部存储设备管理模块根据所述挂载结果,设置挂载状态标识,包括:
若挂载成功,设置所述挂载状态标识为已挂载标识;
若挂载失败,设置所述挂载状态标识为无法挂载标识。
15.根据权利要求12所述的方法,其特征在于,所述存储管理服务模块根据所述挂载状态标识,广播与所述挂载状态标识对应的挂载结果,包括:
若所述挂载状态标识为无法挂载标识,所述存储管理服务模块广播挂载失败;
若所述挂载状态标识为已挂载标识,所述存储管理服务模块广播挂载成功。
16.根据权利要求1所述的方法,其特征在于,还包括:
所述外部存储设备管理模块在检测到所述外部存储设备的***事件时,向所述存储管理服务模块发送所述外部存储设备的设备信息;
所述存储管理服务模块根据所述设备信息,创建所述外部存储设备的存储访问接口,以使所述外部存储设备被访问;
所述存储管理服务模块在当前存储设备列表上添加所述外部存储设备,并向所述外部存储设备管理模块发送所述第一调用指令。
17.一种挂载处理装置,其特征在于,所述装置包括:
第一调用模块,用于存储管理服务模块向外部存储设备管理模块发送第一调用指令;
第一返回模块,用于所述外部存储设备管理模块响应于所述第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回所述检测状态标识,其中,所述检测操作为检测所述外部存储设备的文件***是否异常,所述检测中标识用于指示所述外部存储设备管理模块正在执行所述检测操作且未检测完成;所述外部存储设备管理模块响应于所述第一调用指令,执行检测操作,且设置外部存储设备的检测状态标识为检测中标识,并返回所述检测状态标识,包括:所述外部存储设备管理模块响应于所述第一调用指令,基于第一线程设置所述外部存储设备的检测状态标识为检测中标识,并返回所述检测状态标识 ,其中,所述第一线程是基于Binder调用的跨进程的线程;所述外部存储设备管理模块响应于所述第一调用指令,基于第二线程执行检测操作,其中,所述第二线程是所述外部存储设备管理模块进程内的线程;
检测完成模块,用于所述外部存储设备管理模块在所述检测操作已完成时,向所述存储管理服务模块发送检测完成指令;
挂载通知模块,用于所述存储管理服务模块基于所述检测完成指令通知所述外部存储设备管理模块对所述外部存储设备进行挂载。
18.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-16任一项所述的方法。
19.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-16任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/085568 WO2020223862A1 (zh) | 2019-05-05 | 2019-05-05 | 挂载处理方法、装置、电子设备及计算机可读取存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113412480A CN113412480A (zh) | 2021-09-17 |
CN113412480B true CN113412480B (zh) | 2023-05-16 |
Family
ID=73050671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980091202.2A Active CN113412480B (zh) | 2019-05-05 | 2019-05-05 | 挂载处理方法、装置、电子设备及计算机可读取存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113412480B (zh) |
WO (1) | WO2020223862A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377627B (zh) * | 2021-06-10 | 2023-12-05 | 广州朗国电子科技股份有限公司 | 一种业务服务器异常检测方法、***、设备、存储介质 |
CN115086828B (zh) * | 2022-08-23 | 2022-12-27 | 荣耀终端有限公司 | 耳机控制方法及相关装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001232069A (ja) * | 2000-02-21 | 2001-08-28 | Namco Ltd | ゲーム装置、データ通信方法及びゲーム用のプログラムが記録されたコンピュータ読み取り可能な記録媒体 |
US7743283B1 (en) * | 2007-04-27 | 2010-06-22 | Netapp, Inc. | Dynamically modifying parameters for servicing of storage devices |
CN102664929A (zh) * | 2012-04-05 | 2012-09-12 | 福兴达科技实业(深圳)有限公司 | 移动终端及其管理大容量存储设备的方法 |
CN107423157A (zh) * | 2017-07-31 | 2017-12-01 | 北京雷石天地电子技术有限公司 | 一种硬盘挂载方法、模块及操作*** |
CN109086079B (zh) * | 2018-06-11 | 2021-05-11 | 青岛海信移动通信技术股份有限公司 | 一种存储设备挂载管理方法及装置 |
-
2019
- 2019-05-05 WO PCT/CN2019/085568 patent/WO2020223862A1/zh active Application Filing
- 2019-05-05 CN CN201980091202.2A patent/CN113412480B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
WO2020223862A1 (zh) | 2020-11-12 |
CN113412480A (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552263B2 (en) | System running method and intelligent terminal | |
CN103838648A (zh) | 一种终端及数据备份方法 | |
US11144416B2 (en) | Device fault processing method, apparatus, and system | |
WO2020211791A1 (zh) | 匿名页面管理方法、装置、终端设备及可读存储介质 | |
CN109376053B (zh) | 数据处理方法、装置以及移动终端 | |
CN107423064B (zh) | 消息处理方法、装置、终端设备及存储介质 | |
CN113412480B (zh) | 挂载处理方法、装置、电子设备及计算机可读取存储介质 | |
WO2024078218A1 (zh) | ***启动方法及电子设备 | |
CN116107922A (zh) | 一种应用程序的管理方法及电子设备 | |
CN102855149B (zh) | 一种片内操作***升级方法、装置和*** | |
CN114064234B (zh) | 修复wmi服务的方法和装置 | |
CN109639827B (zh) | 客户端升级方法及装置 | |
CN109634782B (zh) | 一种***健壮性的检测方法、装置、存储介质及终端 | |
CN103425539B (zh) | 信息处理方法及装置 | |
CN112965799A (zh) | 任务状态的提示方法、装置、电子设备和介质 | |
CN108845772B (zh) | 一种硬盘故障处理方法、***、设备及计算机存储介质 | |
CN115587049A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN112241338B (zh) | 重启方法及装置 | |
US12008396B2 (en) | Application state control method apparatus, and terminal and computer-readable storage medium | |
CN109189562B (zh) | 控制进程运行的方法和装置 | |
CN109460291B (zh) | 电子装置、弹性控制服务器集群的方法及存储介质 | |
CN108881623B (zh) | 移动终端控制方法、移动终端及其存储介质 | |
CN107480004B (zh) | 故障恢复方法、装置和计算机设备 | |
CN111813574A (zh) | 图片压缩方法、装置、存储介质和电子设备 | |
CN111782515A (zh) | web应用的状态检测方法、装置、服务器和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |