发明内容
本发明提供了一种路径动态链接方法、装置及移动终端,以至少解决上述问题。
根据本发明的一个方面,提供了一种路径动态链接方法,包括:响应主存储器路径调用请求,检测是否存在所述外置存储卡;根据检测结果将所述主存储器路径动态链接为所述外置存储卡的存储路径或者内置存储卡的存储路径。
优选地,在响应所述主存储器路径调用请求之前,所述方法还包括:将所述外置存储卡挂载为主存储器,将所述内置存储卡挂载为次存储器。
优选地,根据所述检测结果将所述主存储器路径动态链接为所述外置存储卡的存储路径或者所述内置存储卡的存储路径包括以下至少之一:在没有检测到所述外置存储卡的情况下,将所述内置存储卡的存储路径动态链接为所述主存储器路径;在检测到所述外置存储卡的情况下,将所述外置存储卡的存储路径动态链接为所述主存储器路径。
优选地,将所述内置存储卡的存储路径动态链接为所述主存储器路径之后,所述方法还包括:在检测到所述外置存储卡插入的情况下,将所述内置存储卡中保存的用户数据同步到所述外置存储卡上。
优选地,响应所述主存储器路径调用请求包括响应第三方应用的所述主存储器路径调用请求。
根据本发明的另一方面,提供了一种路径动态链接装置,包括:检测模块,用于响应主存储器路径调用请求,检测是否存在所述外置存储卡;链接模块,用于根据检测结果将所述主存储器路径动态链接为所述外置存储卡的存储路径或者内置存储卡的存储路径。
优选地,在响应所述主存储器路径调用请求之前,所述方法还包括:将所述外置存储卡挂载为主存储器,将所述内置存储卡挂载为次存储器。
优选地,所述链接模块还用于以下至少之一:在没有检测到所述内置存储卡的情况下,用于将所述内置存储卡的存储路径动态链接为所述主存储器路径;在检测到所述内置存储卡的情况下,用于将所述外置存储卡的存储路径动态链接为所述主存储器路径。
优选地,还包括同步模块,用于在检测到所述外置存储卡插入的情况下,将所述内置存储卡中保存的用户数据同步到所述外置存储卡上。
优选地,所述检测模块还用于响应第三方应用的所述主存储器路径调用请求。
根据本发明的又一方面,提供了一种移动终端,包括上述路径动态链接装置。
通过本发明,采用响应主存储器路径调用请求,检测是否存在所述外置存储卡,并根据检测结果将所述主存储器路径动态链接为所述外置存储卡的存储路径或者内置存储卡的存储路径,解决了主存储器路径无法动态链接的问题,进而达到了提高用户体验的效果。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例提供了一种路径动态链接方法,图1是根据本发明实施例的路径动态链接方法的流程图,如图1所示,该方法包括以下步骤:
步骤S102,响应主存储器路径调用请求,检测是否存在所述外置存储卡;
步骤S104,根据检测结果将所述主存储器路径动态链接为所述外置存储卡的存储路径或者内置存储卡的存储路径。
通过上述步骤,解决了主存储器路径无法动态链接的问题,进而达到了提高用户体验的效果。
在另外一个优选实施例中,在响应所述主存储器路径调用请求之前,所述方法还可以包括:将所述外置存储卡挂载为主存储器,将所述内置存储卡挂载为次存储器。通过上述步骤,当外置存储卡被卸载时,物理上主存储器被移除,主存储器不再挂载,但内置存储卡仍然被挂载为次存储器。这样,从逻辑上避免了二异性,保证了和目前主流的平台提供厂商的底层处理机制兼容。
在另外一个优选实施例中,根据所述检测结果将所述主存储器路径动态链接为所述外置存储卡的存储路径或者所述内置存储卡的存储路径还可以包括以下至少之一:在没有检测到所述外置存储卡的情况下,将所述内置存储卡的存储路径动态链接为所述主存储器路径;在检测到所述外置存储卡的情况下,将所述外置存储卡的存储路径动态链接为所述主存储器路径。通过上述步骤,将内置存储卡和外置存储卡的物理存储路径和逻辑挂载路径进行分离,无论外置存储卡是否挂载,对上层业务来说,均提供一致的操作流程服务。底层的逻辑挂载路径保持不变,可以避免操作过程的复杂性和二异性,而通过动态的路径动态链接,达到在不同场景下,兼容上层应用对内、外置存储卡的访问需求。
在另外一个优选实施例中,将所述内置存储卡的存储路径动态链接为所述主存储器路径之后,所述方法还可以包括:在检测到所述外置存储卡插入的情况下,将所述内置存储卡中保存的用户数据同步到所述外置存储卡上。通过上述步骤,可以在外置存储卡重新插入的情况下,将之前内置存储卡保存的用户数据同步到外置存储卡上,以保持用户数据的一致性,同时减少了内置存储卡的负荷。
在另外一个优选实施例中,响应所述主存储器路径调用请求包括响应第三方应用的所述主存储器路径调用请求。所述主存储器路径调用请求可能由第三方应用发出,也可能由安卓系统本身发出。通过响应第三方应用的所述主存储器路径调用请求,可以解决第三方应用无法找到主存储器路径的问题,提升了对第三方应用的兼容性。
本发明实施例还提供了一种路径动态链接装置,图2是根据本发明实施例的路径动态链接装置的结构示意图一,如图2所示,该装置包括:
检测模块202,用于响应主存储器路径调用请求,检测是否存在所述外置存储卡;
链接模块204,用于根据检测结果将所述主存储器路径动态链接为所述外置存储卡的存储路径或者内置存储卡的存储路径。
在另外一个优选实施例中,如图3所示,所述装置还可以包括设置模块206,用于将所述外置存储卡挂载为主存储器,将所述内置存储卡挂载为次存储器。
在另外一个优选实施例中,所述链接模块204还可以用于以下至少之一:在没有检测到所述外置存储卡的情况下,用于将所述内置存储卡的存储路径动态链接为所述主存储器路径;在检测到所述外置存储卡的情况下,用于将所述外置存储卡的存储路径动态链接为所述主存储器路径。
在另外一个优选实施例中,如图4所示,所述装置还可以包括同步模块208,用于在检测到所述外置存储卡插入的情况下,将所述内置存储卡中保存的用户数据同步到所述外置存储卡上。
在另外一个优选实施例中,所述检测模块202还用于响应第三方应用的所述主存储器路径调用请求。
以下实施例中,外置T卡相当于外置存储卡,内部虚拟T卡相当于内置存储卡,第三方应用调用Android系统标准接口ISExternStorageExist相当于第三方应用发出主存储器路径调用请求。
图5是根据本发明优选实施例的插入外置T卡情况下的路径动态链接方法的流程图,如图5所示,该流程包括以下步骤:
S502,手机开机,系统进入待机状态。
S504,挂载T卡。
检测到外置T卡、内部虚拟T卡后,进行挂载,将外置T卡挂载为主存储器,如在Android4.2系统中挂载为mnt/storage0,属性值设置为Primary。将内部虚拟T卡挂载为次存储器,如在Android4.2系统中挂载为mnt/storage1,属性值为Secondary。
S506,用户启动安装在手机上的第三方应用。
S508,检测主存储器。
第三方应用调用Android系统标准接口ISExternStorageExist,判断主存储器是否存在。
在本实施例中,由于外置T卡存在且被设置为主存储器,因此会返回TRUE,告知用户主存储器挂载成功,可以使用主存储器。同时,系统返回外置T卡的存储路径mnt/storage给第三方应用。
S510,第三方应用进行数据存储和读取。
第三方应用基于mnt/storage路径进行数据存储和读取。
S512,用户退出第三方应用。
图6是根据本发明优选实施例的未插入外置T卡情况下的路径动态链接方法的流程图,如图6所示,该流程包括以下步骤:
S602,手机开机,系统进入待机状态。
S604,挂载T卡。
检测到内部虚拟T卡、外置T卡后,进行挂载,此时由于未插入外置T卡,因此只将内部虚拟T卡挂载为次存储器,如在Android4.2系统中挂载为mnt/storage1,属性值为Secondary。
S606,用户启动安装在手机上的第三方应用。
S608,第三方应用请求主存储器路径。
第三方应用调用Android系统标准接口ISExternStorageExist,判断主存储器是否存在。
本实施例中,接收到第三方的调用请求后,系统会返回TRUE,告知第三方应用主存储器挂载成功,可以使用主存储器,并返回内部虚拟T卡的存储路径mnt/storage1给第三方应用。
S610,第三方应用进行数据存储和读取。
第三方应用基于mnt/storage1路径进行数据存储和读取。
S612,用户退出第三方应用。
本实施例中,当用户在不插入外置T卡的场景下使用时,第三方应用调用Android系统标准接口ISExternStorageExist,判断主存储器是否存在,此时,系统仍然返回TRUE,并将内部虚拟T卡的存储路径mnt/storage1路径动态链接为主存储器路径,从逻辑上将次存储器的路径映射为主存储器的路径,允许第三方应用访问次存储器,达到在主存储器被移除的场景下,第三方应用仍然能够被使用的目的。
图7是根据本发明优选实施例的重新插入外置T卡情况下的路径动态链接方法的流程图,如图7所示,包括以下步骤:
S702,手机开机,系统进入待机状态
S704,挂载T卡。
检测内部虚拟T卡、外置T卡,进行挂载。此时由于未插入外置T卡,因此只将内部虚拟T卡挂载为次存储器,如在Android4.2系统中挂载为mnt/storage1,属性值为Secondary。
S706,用户启动安装在手机上的第三方应用。
S708,第三方应用请求主存储器路径。
第三方应用调用Android系统标准接口ISExternStorageExist,判断主存储器是否存在。
本实施例中,会返回TRUE,告知用户主存储器挂载成功,可以使用主存储器,并返回内部虚拟T卡的存储路径mnt/storage1给第三方应用。
S710,第三方应用进行数据存储和读取。
第三方应用基于mnt/storage1路径进行数据存储和读取。
S712,检测到挂载外置T卡。
S714,设置外置T卡。
系统检测到挂载外置T卡,将外置T卡挂载为主存储器,如在Android4.2系统中挂载为mnt/storage0,属性值设置为Primary。内部虚拟T卡的挂载方式不变。
S716,返回主存储器路径。
系统返回外置T卡的存储路径mnt/storage给第三方应用。
S718,第三方应用进行数据存储和读取。
第三方应用基于mnt/storage路径进行数据存储和读取。
S720,数据同步。
系统在后台进行内部虚拟T卡的用户数据同步,由于采用该方案的可能均为内部虚拟T卡空间较小的手机,因此进行数据同步时,使用单向同步,只从内部虚拟T卡将用户数据同步到外置T卡,确保用户在插入外置T卡前后,使用的第三方应用表现一致。
当内外部T卡进行数据同步的过程中,如果检测到用户启动第三方应用,系统弹出用户提示,提示后台正在进行数据同步,如果此时启动第三方应用,可能会有部分应用未正常加载。
S722,用户退出第三方应用。
本发明实施例中,当用户在不插入外置T卡状态下使用过手机后,再次插入外置T卡,此时手机检测到主存储器已经挂载,当第三方应用调用Android系统标准接口ISExternStorageExist,判断主存储器是否存在时,正常返回TRUE,并将外置T卡的存储路径mnt/storage路径动态链接为主存储器路径,此时后台自动进行数据同步,将内部虚拟T卡中保存的用户数据自动同步到外置T卡的同名文件夹下,确保用户使用的过程中的已有数据仍然可以保持外置T卡插入前的状态。本实施例中,通过重新设计和实现手机双T卡存储空间的路径管理方式,对手机内部的文件管理形成了逻辑控制和物理存储的分离,使用动态链接文件的方式,将物理上存储在不同介质上的文件,对第三方应用进行透明,这样可以让用户在使用第三方应用时,感觉主存储器始终存在,不会产生相关技术方案下第三方应用提示“T卡未插入,无法使用”之类的报错问题。
从以上的描述中,可以看出,本发明实现了如下技术效果:能够有效解决在目前中低端低存储空间手机上使用的外置T卡作为主存储空间的双T卡方案中,当不插入外置T卡,或者外置T卡间歇性卸载时,部分第三方应用无法使用的瓶颈问题。从目前市场调研看,该问题已经成为中低端低存储空间手机的用户体验差的聚焦问题,该方法的提出和实现,能够有效提高该目标用户群体的用户体验感受,对于提高中低端手机的销量和品牌好感度,存在重大的意义。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。