掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请属于文件系统应用技术领域,尤其涉及一种文件系统的调用方法、装置、终端设备及可读存储介质。

背景技术

文件系统(File System,FS)是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织、管理和存储文件信息的软件机构;主要负责对文件存储设备的空间进行组织和分配,以及文件存储并对存入的文件进行保护和检索等工作。

Micro Python为运行在微控制器硬件之上的Python解释器和运行时系统。在该Micro Python系统框架下,所采用的文件系统,只能在Python语言代码下逐级调用,针对产品应用中其他非Python语言代码的部分,很难实现对文件系统的调用,使得操作系统在运行不同语言代码的任务时,对文件系统的调用存在诸多不便,甚至会破坏原Micro Python系统框架的完整性。

发明内容

本申请实施例提供了一种文件系统调用方法、装置、终端设备及可读存储介质,可以解决在操作系统运行不同语言的任务时,对文件系统的调用存在诸多不便的问题。

第一方面,本申请实施例提供了一种文件系统的调用方法,所述方法包括:

调用预设文件系统的接口,所述接口为针对运行任务对所述预设文件系统进行封装得到;通过虚拟文件系统识别所述运行任务的句柄,得到所述运行任务的类别;根据所述运行任务的类别,调用所述预设文件系统中与所述运行任务对应的操作函数。

在第一方面的一种可能的实现方式中,所述接口包括原始接口和有锁接口;在所述调用预设文件系统的接口之前,所述方法还包括:

对所述预设文件系统进行封装,得到预设语言类型的运行任务对应的原始接口;对所述预设文件系统的原始接口进行加锁封装,得到带互斥锁的有锁接口。

在第一方面的一种可能的实现方式中,所述调用预设文件系统的接口,包括:

调用所述预设文件系统的所述有锁接口;若所述有锁接口无对应的运行任务,则继续调用所述预设文件系统的所述原始接口。

在第一方面的一种可能的实现方式中,所述通过虚拟文件系统识别所述运行任务的句柄,得到所述运行任务的类别,包括:

通过调用所述虚拟文件系统的操作函数,获得所述运行任务的句柄;根据所述句柄中的目标对象,确定所述运行任务的类型。

在第一方面的一种可能的实现方式中,所述根据所述运行任务的类别,调用所述预设文件系统中与所述运行任务对应的操作函数,包括:

若所述运行任务为第一语言代码任务,则调用所述预设文件系统中与所述第一语言代码任务对应的操作驱动函数;若所述运行任务为第二语言代码任务,则调用所述预设文件系统中与所述第二语言代码任务对应的操作入口函数,根据所述操作入口函数调用所述操作驱动函数。

在第一方面的一种可能的实现方式中,所述方法还包括:

在执行完所述运行任务后,释放所述有锁接口,使所述有锁接口恢复至可用状态。

第二方面,本申请实施例提供了一种文件系统调用装置,所述装置包括:

第一调用单元,用于调用预设文件系统的接口,所述接口为针对运行任务对所述预设文件系统进行封装得到;

识别单元,用于通过虚拟文件系统识别所述运行任务的句柄,得到所述运行任务的类别;

第二调用单元,用于根据所述运行任务的类别,调用所述预设文件系统中与所述运行任务对应的操作函数。

在第一方面的一种可能的实现方式中,所述装置还包括:

封装单元,用于对所述预设文件系统的原始接口进行加锁封装,得到带互斥锁的有锁接口。

第三方面,本申请实施例提供了一种终端设备,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面任一项所述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的方法。

第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的方法。

可以理解的是,上述第二方面至第五方面的有益效果可以参见第一方面中的相关描述,在此不再赘述。

本申请实施例与现有技术相比存在的有益效果是:通过本申请实施例,终端设备调用预设文件系统的接口,接口为针对运行任务对预设文件系统进行封装得到;通过虚拟文件系统识别运行任务的句柄,得到运行任务的类别;根据运行任务的类别,调用预设文件系统中与运行任务对应的操作函数;本申请实施例通过对运行任务识别,确定运行任务的类型,从而可以根据运行任务的类型调用相应的操作函数,解决了操作系统在运行不同语言的任务时,对文件系统调用存在诸多不便的问题,避免了破坏原运行系统架构的完整性;在保证原运行系统架构完整性的同时,实现了多类型运行任务的有效访问;具有较强的易用性与实用性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的系统架构示意图;

图2是本申请一实施例提供的文件系统调用方法的流程示意图;

图3是本申请另一实施例提供的整体方法的流程示意图;

图4是本申请实施例提供的文件系统调用装置的结构示意图;

图5是本申请实施例提供的终端设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

Micro Python是Python3编程语言的完整软件实现,用C语言编写,可以运行在微控制器硬件之上的Python解释器和运行时系统。MicroPython的传统文件系统使用的是文件配置表(File Allocation Table,FAT)文件系统,由于该FAT文件系统是集中索引型文件系统,不自带均衡损耗的功能,不适合在非易失性存储介质flash上直接操作,而微控制器往往使用的存储介质就是flash。因此,需要选择一款适合在嵌入式微控制器中使用的文件系统,移植到MicroPython中,例如littleFS文件系统。

随着应用复杂度逐渐提高,应用所对应的任务也越来越多。然而,经过移植到Micro Python系统架构下的文件系统,需要在Python语言代码下才能对文件系统进行逐级调用;针对其他非Micro Python语言代码的运行任务(例如用户功能任务)则较难实现对文件系统的调用。由于Micro Python系统框架的自完整性,并没有向外提供允许用户功能任务(C语言代码任务)调用文件系统的接口。由于用户功能任务在其他语言代码层面也存在访问文件系统的可能,若通过原有的调用流程,则有可能会破坏MicroPython系统架构的自完整性;从而使得操作系统在运行不同语言代码的任务时,对文件系统的调用存在诸多不便。

另外,移植到Micro Python系统架构下的文件系统本身并不能保证线程的安全性,如何避免不同任务线程(例如Micro Python框架的任务线程和用户功能任务的线程)同时操作同一个文件而导致文件损坏的现象,也是本申请实施例所需要解决的技术问题。

参见图1,本申请一实施例提供的系统架构示意图。在嵌入式微控制器中,基于Micro Python框架的运行时系统,采用了自带均衡损耗的预设文件系统littleFS。在将预设文件系统littleFS移植到Micro Python运行时系统下时,对该预设文件系统封装了基于C语言代码编写的接口API(即原始接口),可以实现用户功能任务在C语言代码层面访问该预设文件系统。如图1所示,在嵌入式微控制器中,应用层为运行任务的架构层;本申请实施例提供的该预设文件系统可以支持Micro Python任务或C语言用户功能任务,即MicroPython任务或C语言用户功能任务都可以调用该预设文件系统的C语言代码编写的接口API。

其中,littleFS文件系统主要应用于微控制器和flash上,是一种嵌入式文件系统,具有掉电恢复、擦写均衡以及节省存储空间等特点,很适合在嵌入式微控制器中使用。将littleFS移植到Micro Python运行时系统,实现对存储设备Flash的读、写和擦除等操作。另外,运行时系统是一种介乎编译和解释的运行方式,由编译器首先将源代码编译为一种中间码,在执行时由运行时(Runtime)充当解释器(Interpreter)对其解释;即把半编译的运行码在目标机器上运行的环境。

存储设备Flash存储有对预设文件系统littleFS进行读、写、擦除以及同步等操作的驱动函数;同时还存储有Micro Python内核的Flash操作入口函数,以便于运行任务为Micro Python任务时,在Micro Python框架下实现对预设文件系统littleFS的逐级向下调用。在运行任务对littleFS文件系统进行访问时,对运行任务的类别进行识别,基于运行任务类别调用不同的操作函数,从而可以避免其他用户功能任务的访问过程对Micro Python的内核架构产生破坏的可能性。

另外,在嵌入式微控制器的操作系统下,底层通过进程模拟线程,而线程是进程内部的执行流,针对多线程的进程,文件系统的资源大部分都是共享的,所以极有可能出现多个运行任务的线程同时访问文件系统的同一个资源的情况,有可能一个线程正在访问的时候另一个线程也来访问的情况。为保证访问相同littleFS文件系统资源的线程的安全性,对littleFS的访问接口API(原始接口)进一步封装,从而得到带有互斥锁的有锁接口。在运行任务发起调用有锁接口时,若其他线程已经锁定该接口,或存在其他线程的同时发起调用,则进入等待状态,等到该互斥锁在执行完上一个线程的任务释放该有锁接口后,及时进行调用该有所接口,并锁定该有锁接口,从而可以避免不同线程访问相同的文件系统资源而导致文件系统资源被破坏的可能。

通过本申请实施例,在不破坏Micro Python框架的自完整性的前提下,移植littleFS文件系统时可以为用户功能任务在C语言代码层面提供访问littleFS文件系统的接口(C接口);在用户功能任务使用该C接口进行文件读取或存储等操作时,保证了MicroPython框架的自完整性;同时,通过littleFS文件系统的原始接口封装的互斥锁,保证了Micro Python任务与用户功能任务同时访问相同文件系统资源的线程的安全性。

下面通过具体实施例对本申请提供的文件系统调用方法的流程步骤进行描述。

参见图2,本申请一实施例提供的文件系统调用方法的流程示意图。该方法可以包括以下步骤:

步骤S201,主端设备调用预设文件系统的接口,接口为针对运行任务对预设文件系统进行封装得到。

在一些实施例中,预设文件系统为移植到嵌入式微控制器中的Micro Python运行时系统架构的文件系统,例如可以为littleFS文件系统。运行任务可以包括不同语言代码的任务,不同语言代码的任务可以对应不同的线程。针对不同语言代码的任务类型将文件系统接口封装成各语言代码任务可以调用的接口。例如在Micro Python运行时系统的架构下,将移植的littleFS文件系统的接口封装为C语言代码的接口(C接口),不同类型的运行任务都可以调用littleFS文件系统的C接口。

另外,运行任务可以包括Micro Python任务或用户功能任务;其中,Micro Python任务为基于Python语言代码的任务类型,用户功能任务为基于C语言代码的任务类型。通过将littleFS文件系统的接口设置为C语言代码层面的C接口,不仅可以实现Micro Python任务的访问,还可以实现用户功能任务的访问。

示例性的,还可以根据运行任务的类型扩展文件系统接口的类型,随着应用功能的复杂度增加,可以支持不同类型的任务对文件系统资源的访问。

在一些实施例中,接口可以包括原始接口和有锁接口;在终端设备调用预设文件系统的接口之前,该文件系统调用方法还包括:

终端设备对预设文件系统进行封装,得到预设语言类型的运行任务对应的原始接口;终端设备对预设文件系统的原始接口进行加锁封装,得到带互斥锁的有锁接口。

在一些实施例中,预设语言类型可以为C语言类型,原始接口可以为对预设文件系统经过封装得到的C语言层面的C接口。为避免出线不同线程的运行任务访问文件系统相同资源而导致文件破坏的现象,终端设备对原来的C接口进行再次加锁封装,得到带互斥锁的有锁接口。

示例性的,对原始接口进行加锁封装得到带互斥锁的有锁接口的代码形式可以表示如下:

其中,“类型”表示接口的类型,例如“开open”、“关close”等类型的接口,lfs_mutex_xxx(类型...)中的类型表示该类接口的类型参数,例如针对“关close”类型的接口对应的类型参数可以包括指针类型、文件指针或路径等参数。

另外,上述函数的命名以及接口符号等可自定义设置,能实现对原始接口封装为该结构的有锁接口即可。

需要说明的是,经过对原始C接口的进一步加锁封装,得到的带互斥锁的有锁接口,Micro Python任务代码中原来直接调用原始接口的都改为直接调用有锁接口;用户功能任务的代码也直接调用有锁接口。

参见图3,本申请另一实施例提供的整体方法的流程示意图。对图2实施例的各步骤进行了进一步的细化。

在一些实施例中,终端设备调用预设文件系统的接口,包括:

步骤S301,终端设备调用预设文件系统的有锁接口;

步骤S302,若有锁接口无对应的运行任务,则终端设备继续调用预设文件系统的原始接口。

在一些实施例中,Micro Python任务代码中原来直接调用原始接口的都改为直接调用有锁接口;用户功能任务的代码也直接调用有锁接口。若有锁接口当前处于释放状态,没有对应的运行任务对有锁接口进行锁定,则当前运行任务可以访问该有锁接口,并可以继续访问原始接口,通过调用原始接口,执行相应后续流程。

需要说明的是,若有锁接口当前处于锁定状态,说明已有运行任务在访问文件系统,并对有锁接口进行了锁定,从而在其他运行任务调用有锁接口时,不能直接访问文件系统,需要等待程序执行完前一运行任务释放有锁接口,使有锁接口恢复至可访问状态,其他运行任务才可以进行访问调用,并且其他运行任务在访问时也将有锁接口进行锁定。原始接口以及加锁封装后的有锁接口都可以为C语言层面的接口。

另外,不同的运行任务对应不同的线程,通过对原始接口(C接口)进步一加锁封装为带互斥锁的有锁接口,可以避免不同线程的运行任务同时访问相同的文件系统资源而导致文件损坏的缺陷,保证了多线程运行任务访问文件系统的安全性。

步骤S202,终端设备通过虚拟文件系统识别运行任务的句柄,得到运行任务的类别。

在一些实施例中,Micro Python运行时系统的架构存在虚拟文件系统,通过虚拟文件系统的函数可以获取当前运行任务的句柄,从而根据句柄的内容判断该运行任务的类型。

其中,虚拟文件系统可以表示为vfs_lfsx.c,在Micro Python框架下的虚拟文件系统的函数可以包括读、写、擦除以及同步等操作驱动函数。句柄可以为一个整长型的数据,该数据是一个访问对象的唯一标识,和访问对象一一对应。访问对象可是一个文件、一个块内存或者一个资源。句柄可以作为一个内存地址的指针,通过获取句柄的内容可以确定运行任务访问的对象以及对象所在内存的地址。

需要说明的是,终端设备通过虚拟文件系统调用自带函数,获取运行任务的句柄,从而根据句柄判断是哪一类的任务在运行,并返回该运行任务的句柄,以及得到该运行任务的类型。

在一些实施例中,如图3所示,终端设备通过虚拟文件系统识别运行任务的句柄,得到运行任务的类别,包括:

步骤S303,终端设备通过调用虚拟文件系统的操作函数,获得运行任务的句柄;

步骤S304,终端设备根据句柄中的目标对象,确定运行任务的类型。

在一些实施例中,终端设备所采用的处理器可以为嵌入式微控制器,内存使用Flash。在终端设备中,基于Micro Python的运行环境,含有虚拟文件系统(可以表示为vfs_lfsx.c),虚拟文件系统vfs基于oofatfs数据库实现,而oofatfs数据库又是源自开源的文件系统fatfs,即整个虚拟文件系统vfs是基于文件系统fatfs扩展而来。

其中,虚拟文件系统自带读、写、擦除以及同步等操作函数。在运行任务访问到原始接口后,虚拟文件系统调用自带函数,得到运行任务的句柄,根据句柄对应访问的目标对象判断该运行任务的类型,返回该运行任务的句柄,得到该运行任务的类别结果。目标对象可以为内存Flash中的一个文件或者一个资源。

示例性的,该运行任务的类别结果可以为Micro Python任务或用户功能任务(C语言代码层面)。

步骤S203,终端设备根据运行任务的类别,调用预设文件系统中与运行任务对应的操作函数。

在一些实施例中,为避免其他用户功能任务的访问破坏终端设备中Micro Python运行环境的自完成性,针对不同类型的运行任务设置了访问流程的分支。根据运行任务的类别,调用不同的访问对象,例如若为用户功能任务,则可以直接调用内存Flash中的操作驱动函数,无需经过Micro Python内核的Flash操作入口函数,也无需对Micro Python内核代码进行修改,从而可以在保证Micro Python架构自完整性的情况下,实现除MicroPython任务以外的其他类型的运行任务成功访问文件系统的资源。

示例性的,在Micro Python运行环境下,若运行任务为Micro Python任务,则可以在Python代码下逐级向下调用到Micro Python内核的Flash操作函数,例如Flash操作入口函数。

在一些实施例中,终端设备根据运行任务的类别,调用预设文件系统中与运行任务对应的操作函数,包括:

步骤S305,若运行任务为第一语言代码任务,则终端设备调用预设文件系统中与第一语言代码任务对应的操作驱动函数;

步骤S306,若运行任务为第二语言代码任务,则终端设备调用预设文件系统中与第二语言代码任务对应的操作入口函数,终端设备根据操作入口函数调用操作驱动函数。

在一些实施例中,第一语言代码任务可以为C语言层面的用户功能任务,第二语言代码任务可以为Python语言代码的运行任务。将不同类型的任务设置为不同的分支,对文件系统的资源按不同的流程节点进行访问,避免了非Python语言代码的运行任务破坏Micro Python内核的架构,还避免了对Micro Python内核代码的修改,同时还降低了其他运行任务参与到Micro Python内核架构中容易出现运行错误或关机等故障的概率。

示例性的,若运行任务的类型为基于C语言代码的用户功能任务,则可以直接调用文件系统的Flash操作驱动函数;若运行任务的类型为基于Python语言代码的MicroPython任务,则可以调用Micro Python内核的Flash操作入口函数,最后还是会进一步调用到Flash操作驱动函数。从而把经过Micro Python内核入口和不经过Micro Python内核入口的调用链分割开,保证了Micro Python框架的完整性;同时也让用户功能任务在C语言层面上获得访问文件系统的接口。

在一些实施例中,该文件系统调用方法还包括:

步骤S307,在终端设备执行完运行任务后,释放有锁接口,使有锁接口恢复至可用状态。

在一些实施例中,在执行当前运行任务时,当前运行任务调用到有锁接口后,对有锁接口进行锁定,有锁接口处于锁定状态,其他线程的运行任务需要等待有锁接口解锁后才能进行访问。在执行完当前运行任务后,释放有锁接口,使有锁接口处于可访问状态;然后程序返回,按同样的流程继续执行下一运行任务。

通过本申请实施例,终端设备对运行任务识别,确定运行任务的类型,从而可以根据运行任务的类型调用相应的操作函数,解决了操作系统在运行不同语言的任务时,对文件系统调用存在诸多不便的问题,避免了破坏原运行系统架构的完整性;在保证原运行系统架构完整性的同时,实现了多类型运行任务的有效访问。

本申请实施例在不破坏Micro Python框架的自完整性的前提下,移植littleFS文件系统时可以为用户功能任务在C语言代码层面提供访问littleFS文件系统的接口(C接口);在用户功能任务使用该C接口进行文件读取或存储等操作时,保证了Micro Python框架的自完整性;同时,通过littleFS文件系统的接口封装的互斥锁,保证了Micro Python任务与用户功能任务同时访问相同文件系统资源的安全性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

对应于上文实施例的文件系统调用方法,本申请实施例还提供了一种文件系统调用装置,如图4所示,该装置包括:

第一调用单元41,用于调用预设文件系统的接口,接口为针对运行任务对预设文件系统进行封装得到;

识别单元42,用于通过虚拟文件系统识别运行任务的句柄,得到运行任务的类别;

第二调用单元43,用于根据所运行任务的类别,调用预设文件系统中与运行任务对应的操作函数。

在一些实施例中,该文件系统调用装置还包括:

封装单元,用于对所述预设文件系统进行封装,得到预设语言类型的运行任务对应的原始接口;对预设文件系统的原始接口进行加锁封装,得到带互斥锁的有锁接口。

通过本申请实施例,在不破坏Micro Python框架的自完整性的前提下,移植littleFS文件系统时可以为用户功能任务在C语言代码层面提供访问littleFS文件系统的接口(C接口);在用户功能任务使用该C接口进行文件读取或存储等操作时,保证了MicroPython框架的自完整性;同时,通过littleFS文件系统的接口封装的互斥锁,保证了MicroPython任务与用户功能任务同时访问相同文件系统资源的安全性。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现上述各个方法实施例中的步骤。

图5本申请一实施例提供的终端设备5的结构示意图。如图5所示,该实施例的终端设备5包括:至少一个处理器50(图5中仅示出一个)处理器、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个文件系统的调用方法实施例中的步骤。

所述终端设备5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的举例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。

所称处理器50可以是中央处理单元(Central Processing Unit,CPU),该处理器50还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器51在一些实施例中可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51在另一些实施例中也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

相关技术
  • 文件系统的调用方法、装置、终端设备及可读存储介质
  • 应用程序的调用方法、装置、终端设备和可读存储介质
技术分类

06120113256089