CN117785498A - 数据访问方法、电子设备和计算机可读存储介质 - Google Patents
数据访问方法、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117785498A CN117785498A CN202211145801.8A CN202211145801A CN117785498A CN 117785498 A CN117785498 A CN 117785498A CN 202211145801 A CN202211145801 A CN 202211145801A CN 117785498 A CN117785498 A CN 117785498A
- Authority
- CN
- China
- Prior art keywords
- application
- data
- electronic device
- access path
- access
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 180
- 238000013507 mapping Methods 0.000 claims abstract description 119
- 230000015654 memory Effects 0.000 claims abstract description 55
- 238000004891 communication Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 abstract description 102
- 238000012545 processing Methods 0.000 abstract description 23
- 238000010367 cloning Methods 0.000 abstract description 18
- 238000005516 engineering process Methods 0.000 abstract description 12
- 230000002829 reductive effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 113
- 238000012546 transfer Methods 0.000 description 43
- 239000010410 layer Substances 0.000 description 35
- 230000006870 function Effects 0.000 description 31
- 238000007726 management method Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 19
- 244000035744 Hura crepitans Species 0.000 description 11
- 238000011084 recovery Methods 0.000 description 9
- 238000009434 installation Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000010295 mobile communication Methods 0.000 description 6
- 238000004806 packaging method and process Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 239000012792 core layer Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及计算机技术领域,具体涉及一种数据访问方法、电子设备和计算机可读存储介质。其中的电子设备包括第一电子设备,第一电子设备包括第一应用、第二应用以及第三应用,其中的方法包括:第三应用检测到访问第一应用的第一存储空间的访问请求,其中第一存储空间具有第一访问路径;第三应用响应于访问请求,建立与第一访问路径之间具有映射关系的第二访问路径;第三应用将第二访问路径发送给第二应用;第二应用通过第二访问路径,访问第一应用的第一存储空间。本申请方案能够节省电子设备在执行数据克隆或者数据备份等数据传输场景中进行数据访问对应的数据处理量以及所占用的存储资源,有利于降低系统功耗。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据访问方法、电子设备和计算机可读存储介质。
背景技术
随着科技的迅速发展,应用于人们生活中的智能终端电子设备的种类越来越多。例如,根据设备类型的分类,这些电子设备可以包括:手机、平板、电脑、车载设备、智能家居、健身设备、电视、大屏幕等。根据不同的应用场景,不同的电子设备可以应用于办公、家居、运动、出行、教育等领域。不同的电子设备上所存储的数据也会在使用过程中不断更新。因此,为了提供良好的使用体验,各电子设备之间往往需要进行数据克隆、数据备份以及数据恢复等数据传输过程,以完成用户指定的智能终端设备之间的信息同步。
例如,当用户更换新设备或添置新设备时,用户需要将旧设备中的数据(例如应用数据、图片或文件等)传输至新设备中,以实现新设备与旧设备之间的信息同步。
然而,目前各智能终端所搭载的操作系统中,不同的应用程序以及系统提供的备份服务会运行在各自的进程中,由于安全需要,各进程对应分配的存储空间的数据通过沙箱机制进行数据隔离。因此,在进行数据传输的过程中,数据备份过程、以及数据恢复过程等均需要依赖于进程间通信(InterProcess Communication,IPC)完成多次跨进程的数据拷贝(copy)来实现。如此,大量的数据拷贝过程,会给电子设备的数据处理性能带来很大的挑战,并且大量的数据拷贝过程也会较多的占用新旧电子设备上的内存资源,并导致系统功耗增加。
发明内容
有鉴于此,本申请实施例提供了一种数据访问方法、电子设备和计算机可读存储介质,能够有利于节省电子设备在执行数据克隆或者数据备份等数据传输场景中进行数据访问所对应的数据处理量以及所占用的存储资源,有利于降低系统功耗。
第一方面,本申请实施例提供了一种数据访问方法,应用于第一电子设备,第一电子设备包括第一应用、第二应用以及第三应用,该方法包括:第三应用检测到访问第一应用的第一存储空间的访问请求,其中第一存储空间具有第一访问路径;第三应用响应于访问请求,建立与第一访问路径之间具有映射关系的第二访问路径;第三应用将第二访问路径发送给第二应用;第二应用通过第二访问路径,访问第一应用的第一存储空间。
即具有全局事务处理能力的第三应用,可以为第二应用获取用于访问第一应用对应的第一存储空间的第二访问路径。该第二访问路径可以是该第三应用通过映射的方式获得的,例如将该第二访问路径与第一存储空间所具有的第一访问路径之间建立映射关系。进而第三应用便可以将所获得的第二存储路径通过一定的方式分享给第二应用。具体第三应用向第二应用分享该第二访问路径的过程,将在下文中具体描述,在此不做赘述。
在数据传输场景中,在发送设备侧,上述第一应用例如可以是用于提供待传输应用数据的第三方应用或者系统应用,上述第二应用例如可以是用于向接收设备侧发送待传输数据的数据传输应用,例如克隆应用或者备份和恢复应用等。在接收设备侧,上述第一应用例如可以是等待获取上述待传输应用数据用于安装或运行的第三方应用、或者等待获取上述待传输应用数据用于运行的系统应用等,上述第二应用例如可以是用于从发送设备侧接收待传输数据的数据传输应用,该数据传输应用还可以将接收到的数据写入接收设备侧的第一应用对应存储空间,该数据传输应用例如可以是克隆应用或者备份和恢复应用等。上述第三应用例如可以是发送设备的系统提供的备份服务、或者接收设备的系统提供的备份服务。
在上述第一方面的一种可能的实现中,第一电子设备为发送设备,第一电子设备通过运行第二应用与作为接收设备的第二电子设备之间建立通信连接,上述方法还包括:第二应用将访问第一存储空间读取到的第一数据发送给第二电子设备。
即当上述第一电子设备为数据传输场景中的发送设备时,上述第一方面提供的方法还可以包括将访问第一存储空间读取到的第一数据发送给接收设备,即上述第二电子设备。上述第一数据例如可以是发送设备侧安装的第一应用对应的应用数据。
在上述第一方面的一种可能的实现中,第一电子设备为接收设备,第一电子设备通过运行第二应用与作为发送设备的第三电子设备之间建立通信连接,并且,上述方法还包括:第二应用将从第三电子设备接收到的第二数据,写入所访问的第一存储空间。
即当上述第一电子设备为数据传输场景中的接收设备时,上述第一方面提供的方法还可以包括将从发送设备接收到的第二数据,写入到接收设备侧第一应用对应的第一存储空间内,该发送设备即上述第三电子设备。上述第二数据例如可以是接收设备侧待安装或已安装的第一应用对应的应用数据。
在上述第一方面的一种可能的实现中,第一应用的应用数据与第二应用的应用数据相互隔离。
可以理解,基于一些操作系统所采用的隔离机制,不同应用程序之间的应用数据是相互隔离的,只有具备全局事务处理能力的一些系统应用或者系统服务,可以通过系统的全局事务标识进行全局事务的处理。例如,备份服务可以通过系统的应用启动服务建立与第三方应用对应存储空间之间的目录映射关系,该目录映射关系例如可以是上述第一访问路径与第二访问路径之间的映射关系。
在上述第一方面的一种可能的实现中,第三应用检测到访问第一应用的第一存储空间的访问请求,包括:第三应用检测到第二应用发来的访问第一应用的第一存储空间的访问请求,其中,访问请求为第二应用在检测到用户指示向第二电子设备发送第一应用的第一数据的操作请求的情况下向第三应用发送的请求。
例如,上述第三应用为第一电子设备系统提供的备份服务,上述第二应用为克隆应用。则上述操作请求对应的用户操作,例如可以是用户在第一电子设备上点击运行该克隆应用,然后选择“这是新设备”或者“这是旧设备”的相关操作。
在上述第一方面的一种可能的实现中,第三应用响应于访问请求,建立与第一访问路径之间具有映射关系的第二访问路径,包括:第三应用响应于访问请求,创建具有第二访问路径的第二存储空间;第三应用利用第一电子设备提供的应用启动服务建立第二访问路径与第一访问路径之间的对应关系,使得第二访问路径指向第一存储空间中与第一访问路径对应的数据。
例如,上述第三应用为第一电子设备的系统提供的备份服务,上述第二存储空间例如可以是该备份服务对应创建的第一映射目录。相应地,上述第二访问路径例如是该第一映射目录中的访问路径,上述第一访问路径例如可以是第一电子设备上的目标应用对应的第一备份目录中各应用数据的数据包所对应的访问路径。该目标应用既可以是系统应用也可以是非系统应用,即第三方应用。
在上述第一方面的一种可能的实现中,第三应用将第二访问路径发送给第二应用,包括:第三应用通过全局标识将第二访问路径对应的第一句柄发送给第二应用,其中第一句柄作为第三应用通过第二访问路径访问第一存储空间的工具,第一句柄与第二访问路径相对应;第二应用基于第一句柄与第二访问路径之间的对应关系,获取第二访问路径。
在上述第一方面的一种可能的实现中,第二应用通过第二访问路径,访问第一应用的第一存储空间,包括:第二应用根据获取到的第二访问路径,生成第二句柄,其中第二句柄为第二应用通过第二访问路径访问第一存储空间的工具;第二应用调用生成的第二句柄,访问第一应用的第一存储空间。
例如,上述第三应用为第一电子设备的系统提供的备份服务,上述第一存储空间例如可以是目标应用存储空间,上述第一句柄例如可以是备份服务打开目标应用存储空间的可调用工具。则该备份服务可以将自身进程中用于打开目标应用存储空间的句柄通过全局标识分享/共享给第二应用,克隆应用。
进而,克隆应用可以根据接收到的全局标识中的句柄,确定相对应的第二访问路径,即备份服务中与该句柄对应的访问路径。克隆应用基于该访问路径,则可以生成自身进程中与该访问路径对应的新句柄,来通过该访问路径访问/打开目标应用存储空间,例如上述第一存储空间。
在上述第一方面的一种可能的实现中,全局标识包括统一资源定位符URI,其中,URI具体包括文件信息字段,文件信息字段是对应于第一句柄的映射字符串。
在上述第一方面的一种可能的实现中,第一应用包括系统应用或第三方应用,第二应用包括克隆应用,第三应用包括第一电子设备提供的备份服务。
第二方面,本申请实施例提供了一种数据访问装置,应用于第一电子设备,第一电子设备包括第一应用和第二应用,装置包括:
备份模块,用于检测第二应用对第一应用的第一存储空间的访问请求,其中第一存储空间具有第一访问路径;并且,用于响应访问请求,建立与第一访问路径之间具有映射关系的第二访问路径,以及将第二访问路径发送给第二应用。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;一个或多个存储器;一个或多个存储器存储有一个或多个程序,当一个或者多个程序被一个或多个处理器执行时,使得电子设备执行上述第一方面以及第一方面的各种可能的实现中提供的数据访问方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,存储介质上存储有指令,指令在计算机上执行时使计算机执行上述第一方面以及第一方面的各种可能的实现中提供的数据访问方法。
第五方面,本申请实施例提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述第一方面以及第一方面的各种可能的实现中提供的数据访问方法。
综上,基于本申请实施例提供的数据访问方法、电子设备和计算机可读存储介质,发送设备侧不再需要将待传输的应用数据从目标应用的存储空间拷贝到系统备份服务的存储空间、再从系统备份服务的存储空间拷贝到数据传输应用的存储空间。相应地,接收设备侧也不再需要将接收到的应用数据从数据传输应用的存储空间拷贝到系统备份服务的存储空间、再从系统备份服务的存储空间拷贝到目标应用的存储空间。避免了大量的数据拷贝过程会给电子设备的数据处理性能带来很大的挑战,也解决了大量的数据拷贝所导致的系统功耗增加的问题。
附图说明
图1a所示为应用程序运行过程中通过句柄访问存储空间的原理示意图。
图1b所示为本申请实施例提供的一种数据访问方法的应用场景示意图。
图2示出了一种数据传输过程示意图。
图3a所示为本申请实施例提供的一种电子设备的系统中各应用程序或服务的句柄、访问路径以及待传输的存储空间相关数据之间的对应关系示意图。
图3b所示为本申请实施例提供的一种数据传输过程示意图。
图4所示为本申请实施例提供的一种数据访问方法的交互流程图。
图5所示为本申请实施例提供的一种数据访问方法的数据备份流程示意图。
图6所示为本申请实施例提供的一种备份过程中电子设备100运行的数据传输应用、备份服务以及目标应用为实现数据备份所执行的相关操作示意图。
图7所示为本申请实施例提供的一种通过电子设备100系统提供的应用启动服务完成第一备份目录到第一映射目录的目录映射过程。
图8所示为本申请实施例提供的一种数据访问方法的数据恢复流程示意图。
图9所示为本申请实施例提供的一种备份过程中电子设备200运行的数据传输应用、备份服务以及目标应用为实现数据备份所执行的相关操作示意图。
图10所示为本申请实施例提供的一种电子设备100的硬件结构示意图。
图11所示为本申请实施例提供的一种电子设备100系统架构示意框图。
图12所示为本申请实施例提供的另一种电子设备100系统架构示意框图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合说明书附图以及具体的实施方式对本申请实施例中的技术方案进行详细的说明。
还需声明的是,本申请实施例中对方法、流程中的步骤进行编号是为了便于引用,而不是限定先后顺序,各步骤之间如有先后顺序,当以文字说明为准。
为了便于本领域技术人员理解本申请实施例中的方案,下面先对本申请实施例涉及到的一些概念和术语进行解释说明。
(1)进程间通信(IPC),是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中Socket和Streams可以支持不同主机上的两个进程IPC。
(2)沙箱(Sandbox),是一种虚拟系统程序,其本质是一个限制应用程序对系统资源的访问的运行环境。沙箱提供的环境,相对于每一个运行的程序都是独立的。
Linux命名空间(namespace)隔离机制为沙箱技术的实现提供了基础。沙箱技术使用namespace隔离后,主机中除内核外的Unix分时操作系统、进程间通信(IPC)、文件系统、进程控制符等系统资源不再是全局性的,而是属于特定的namespace。每个namespace里面的资源对其他namespace都是透明不可见的。沙箱就是利用这一特性实现了资源的隔离,不同沙箱内的进程属于不同的namespace,彼此透明,互不干扰。例如,微信TM、微博TM等第三方应用的进程沙箱、以及系统的备份服务进程沙箱和克隆应用进程沙箱之间都是相互隔离的,互不干扰,可以通过IPC等技术实现跨进程的数据交流。
(3)统一资源标识符(Uniform Resource Identifier,URI),一种计算机术语,是指用于标识某一互联网资源名称的字符串。例如HTML文档、图像、视频片段、应用程序或者一个目录对应的访问路径等都可以通过一个URI进行标识。URI允许用户对任何的资源(包括本地资源和互联网资源)通过特定的协议进行交互操作。URI的定义可以由包括确定语法和相关协议的方案来确定。
可以理解,URI通常由三部分组成:①资源的命名机制;②存放资源的主机名;③资源自身的名称。例如对于一个URI“如:https://blog.csdn.net/qq_32595453/article/details/79516787”,可以理解为①这是一个可以通过https协议访问的资源;②该资源位于主机blog.csdn.net上;并且③该资源自身的名称为“/qq_32595453/article/details/79516787”。
(4)句柄(handle),本身是一个无符号整数,它用来代表一个内存对象,但他并不实际指向内存对象,这是由于一般情况下用户模式的应用程序不可能获得一个内存对象的实际地址。也就是说,句柄可以作为一个索引在一个表中查找对应的内存对象的实际地址,这个表即为相应进程下的句柄表。可以理解,每个进程都有一个句柄表,该表的第一项就是各进程自己的句柄。由于系统中有许多内存对象,比如打开的文件、创建的线程、应用程序的窗口等。相应地,句柄表中的对应指向这些内存对象实际地址的句柄可以包括文件句柄、线程句柄、窗口句柄等。
可以理解,在以虚拟内存为基础的操作系统中,内存管理器经常在内存中来回移动上述内存对象,以此来满足各种应用程序的需要。内存对象的移动意味着该对象的访问路径会相应发生变化。为了适应这种访问路径的变化,电子设备的系统为各应用程序分配了各内存对象对应的固定的访问路径。该访问路径用于描述相应内存对象对应在内存空间中的位置,并且可以登记各内存对象在存储空间内的位置变化,而系统为各应用程序分配的访问路径本身是不变的。
参考图1a所示,上述内存对象例如可以是图1a所示的某个应用程序对应的应用数据1、应用数据2、…、应用数据n。各应用数据对应的访问路径则可以是图1a所示的访问路径1、访问路径2、…、访问路径n。图1a所示的句柄1则对应指向用于用于访问应用数据1的访问路径1,图1a所示的句柄2则对应指向用于用于访问应用数据2的访问路径2,图1a所示的句柄n则对应指向用于用于访问应用数据n的访问路径n。
图1b根据本申请实施例示出了一种数据访问方法的应用场景示意图。
如图1b所示,该场景包括手机100。例如,该手机100是用户更换的新设备,也可以是用户换下的旧设备。用户可以在该手机100的桌面101上点击设置应用图标011启动设置应用。手机100则响应于用户启动设置应用的操作,显示设置界面102。
进而,用户可以在设置界面102上进行滑动操作,例如上下滑动或者左右滑动等操作,找到“系统和更新”功能选项021,并点击该功能选项021。如此,手机100则可以响应于该点击操作,显示“系统和更新”对应的功能界面103。在该功能界面103上,用户可以点击“手机克隆”功能选项031、或者点击“备份和恢复”功能选项032,进行数据的克隆、备份或者恢复等。
例如,用户在功能界面103上点击“手机克隆”功能选项031,进而用户可以在手机100显示的克隆界面104上选择“这是旧设备”以发送数据,然后用户可以根据提示选择想要将手机100上的数据传输给哪个设备,即指定接收设备。在用户根据手机100进一步显示的操作提示确定数据传输的接收设备并发起连接后,手机100便可以与接收设备之间建立通信连接。在本申请实施例中,该通信连接例如可以通过手机100和接收设备分别运行的数据传输应用之间建立数据传输通道来实现,该数据传输应用是指用于实现跨设备传输数据的应用程序。该数据传输应用例如可以是换机克隆应用(简称克隆应用)、或者是设置应用中的克隆功能组件等。该数据传输通道例如可以是基于手机100和接收设备共同连接的Wi-Fi建立的通道、或者是二者基于蓝牙连接建立的通道等,在此不做限制。如此,手机100上的应用数据以及图片、文件等均可以通过该数据传输通道传输至接收设备。
在另一些实施例中,用户也可以在手机100显示的克隆界面104上选择“这是新设备”以接收数据,然后用户可以根据提示选择从哪个设备上传输数据到给当前的手机100,在此不做限制。
类似地,如果用户在手机100显示的“系统和更新”功能界面103上选择“备份和恢复”功能选项032,并选择备份数据给指定的接收设备或者备份至云端,则可以触发将手机100上的数据发送给接收设备或者云端的过程。如果用户选择恢复数据至本地,则可以触发将其他设备或云端的数据接收到手机100的过程。具体触发数据传输过程的用户操作,本申请在此不做限定。
对于上述图1b所示的数据传输场景,图2示出了一种数据传输过程示意图。
如图2所示,当需要将设备A上安装的第三方应用201a对应的应用数据需要传输给设备B时,设备A的系统中的备份服务202a需先通过IPC跨进程从第三方应用201a所在进程对应分配的存储空间拷贝应用数据,并保存在备份服务202a对应的进程对应分配的存储空间内,即图2所示的拷贝①对应过程。其中该应用数据可以包括但不限于应用程序包、以及该应用运行过程中产生的历史运行数据等。
可以理解,进程对应分配的存储空间在本申请实施例中是指相应程序运行的进程可以调用的各种数据资源所在的命名空间,也是相应进程的独立运行环境。上述应用数据属于第三方应用201a,因此位于第三方应用201a挂载的命名空间内,也即位于第三方应用201a所在进程对应分配的存储空间。
然后,用于实现数据跨设备传输的克隆应用203a,再通过IPC从备份服务202a所在进程对应分配的存储空间拷贝该应用数据,并保存至克隆应用203a所在进程对应分配的存储空间,即图2所示的拷贝②对应过程。进而,设备A上的克隆应用203a再通过与设备B所运行的克隆应用203b之间建立的数据传输通道,将所拷贝的应用数据传输给设备B上的克隆应用203b所在进程对应分配的存储空间。
继而,设备B上的备份服务202b所在进程再进一步从克隆应用203b的进程对应分配的存储空间拷贝该应用数据,即图2所示的拷贝③对应过程。设备B上的第三方应用201b所在进程再进一步从备份服务202b的进程对应分配的存储空间拷贝该应用数据,即图2所示的拷贝④对应过程。如此,经过以上四次应用数据的拷贝过程,设备B上的第三方应用201b所在进程方可以利用拷贝过来的应用数据更新该第三方应用201b的应用程序包、历史运行数据等,实现与设备A上第三方应用201a的数据同步。
显然,图2所示的数据传输过程需要经过多次数据拷贝过程,这大量的数据拷贝过程会给电子设备的数据处理性能带来很大的挑战,并且大量的数据拷贝过程也会较多的占用各进程对应分配的存储空间的存储资源,还会导致系统功耗的增加。
为了解决上述问题,本申请实施例提供了一种数据访问方法,应用于电子设备。具体地,在发送设备侧,数据传输应用在响应用户操作克隆应用数据的时候,可以直接对目标应用的存储空间中的相关数据进行读操作。由于应用之间数据相互隔离,目标应用的相关数据无法直接提供给数据传输应用,因而目标应用可以将相关数据对应的访问路径通过系统的备份服务分享给数据传输应用。又由于位于应用层的应用需要通过该应用对应进程中对应于该存储空间的访问路径的句柄来打开该存储空间读取数据,所以,上述将相关数据对应的访问路径通过系统的备份服务分享给数据传输应用,可以通过将备份服务进程中的句柄分享给数据传输应用来实现。
例如,参考图3a所示,具体的实现手段可以是先将目标应用的存储空间内相关数据对应的访问路径映射写入备份服务中创建的目录中,形成备份服务中用于访问目标应用存储空间相关数据的访问路径。例如图3a所示的应用数据1对应的访问路径1、应用数据2对应的访问路径2、…、应用数据n对应的访问路径n,写入备份服务的目录中可以形成访问路径①、访问路径②、…、访问路径n。此时备份服务与目标应用可以使用各自进程的不同访问路径(例如访问路径①与访问路径1)来打开同一存储空间内的相关数据(例如应用数据1)。然后,备份服务可以将自身进程中对应于各访问路径的句柄,例如图3a所示的对应于访问路径①的句柄①、对应于访问路径②的句柄②等,通过全局标识分享给数据传输应用。而基于备份服务中各个句柄与各访问路径之间的对应关系,数据传输应用可以从备份服务分享的各个句柄获取相对应的各访问路径。
进而,数据传输应用便可以建立自身进程中各句柄与获取到的备份服务中各访问路径之间的对应关系,例如图3a所示的句柄Ⅰ与访问路径①、句柄Ⅱ与访问路径②等之间的对应关系。此时,数据传输应用则可以通过句柄Ⅰ、句柄Ⅱ等访问备份服务中的访问路径①、访问路径②等打开并读取目标应用存储空间内对应的应用数据1、应用数据2等,并发送给接收设备。即数据传输应用与备份服务此时可以通过各自进程中的句柄(例如句柄Ⅰ与句柄①)使用相同的访问路径(例如访问路径①)打开相同的数据(例如应用数据1)。
相应地,在接收设备侧,数据传输应用在响应用户操作接收应用数据的时候,可以直接对目标应用的存储空间进行写操作。具体地,接收设备在准备目标应用的安装环境时,待安装或更新的目标应用也可以将所需的相关数据对应的访问路径通过系统的备份服务分享给数据传输应用。该分享过程例如也可以通过将备份服务进程中的句柄分享给数据传输应用来实现。
例如,继续参考图3a所示,具体的实现手段同样可以是先建立目标应用中的访问路径1、访问路径2等,与备份服务中的访问路径①、访问路径②等之间的映射关系。然后,备份服务可以将自身进程中对应于各访问路径的句柄,例如图3a所示的对应于访问路径①的句柄①、对应于访问路径②的句柄②等,通过全局标识分享给数据传输应用。进而,数据传输应用可以根据从备份服务分享的句柄对应获取相应的访问路径,并在自身进程中生成对应各访问路径的句柄,例如对应于访问路径①的句柄Ⅰ、对应于访问路径②的句柄Ⅱ等。此时,数据传输应用则可以通过句柄Ⅰ、句柄Ⅱ等使用备份服务中的访问路径①、访问路径②等打开目标应用存储空间,写入对应的对应的应用数据1、应用数据2等。
在一些实施例中,上述目标应用相关数据例如可以是目标应用允许克隆的应用数据对应打包得到的数据包。上述发送设备侧数据传输应用对目标应用存储空间的相关数据进行的读操作例如可以通过读函数readdir()调用相应句柄来实现。上述接收设备侧数据传输应用对目标应用存储空间进行的写操作例如可以通过写函数writedir()调用相应句柄来实现。上述全局标识例如可以是统一资源标识符URI。在此不做限制。
可以理解,上述目标应用既可以是系统应用,也可以是非系统应用,即第三方应用。其中,系统应用是指在正常使用过程中不会提供卸载选项的应用程序,非系统应用是指可以根据用户需求进行安装或卸载的应用程序。上述数据传输应用例如可以是上述图1b所示的用于克隆数据的克隆应用或功能模块,也可以是上述图1b所示的备份和恢复应用或功能模块等,在此不做限制。
基于本申请实施例提供的上述数据访问方法,发送设备侧不再需要将待传输的应用数据从目标应用的存储空间拷贝到系统备份服务的存储空间、再从系统备份服务的存储空间拷贝到数据传输应用的存储空间。相应地,接收设备侧也不再需要将接收到的应用数据从数据传输应用的存储空间拷贝到系统备份服务的存储空间、再从系统备份服务的存储空间拷贝到目标应用的存储空间。如此,有利于节省电子设备在执行数据克隆或者数据备份等数据传输场景中,进行数据访问所对应的数据处理量以及所占用的存储资源,有利于降低系统功耗。
另外,本申请实施例提供的数据访问方法,通过目录映射以及分享全局标识的方式实现将目标应用相关数据访问路径传递给数据传输应用的过程中,仅涉及相应访问路径的映射过程、通过URI等全局标识分享句柄的过程、以及基于句柄的读/写函数调用过程,相比于应用数据本身在发送设备或接收设备内的传输过程所占用的带宽更小,因此可以减少数据传输量,有利于提高发送设备以及接收设备内部的数据传输效率和性能。
图3b根据本申请实施例示出了一种数据传输过程示意图。
如图3b所示,继续以目标应用为第三方应用、数据传输应用为克隆应用为例。当需要将设备A上安装的第三方应用301a对应的应用数据需要传输给设备B时,设备A的第三方应用301a可以先将相关应用数据打包到第一备份目录中。然后设备A可以将该第一备份目录相关的配置文件,例如该目录中各数据包的访问路径,对应作为备份服务302a上对应创建的第一映射目录中存入的访问路径,即图3b所示的设备A上的“动态目录映射”过程,也是将第一备份目录中各数据包对应的访问路径映射写入第一映射目录的过程。
其中该第一映射目录仅用于存储访问路径而不存储任何数据。然后设备A系统中的备份服务302a可以采用URI共享技术,将该第一映射目录的访问路径所对应的句柄通过第一映射目录URI分享给数据传输应用,例如图3b所示的克隆应用303a,以供克隆应用303a对第一映射目录进行读取或写入等操作。此过程,即图3b所示的设备A上的URI分享过程。
如此,基于动态目录映射和上述URI分享技术,本申请实施例所提供方案则可以有效避免第三方应用、备份服务以及数据传输应用之间的多次数据拷贝过程,有利于减少数据传输量以及降低所传输的数据占用的存储空间。
然后,设备A上的克隆应用303a可以通过与设备B所运行的克隆应用303b之间建立的数据传输通道,将所读取的第一备份目录中的数据包传输给设备B上的克隆应用303b。
继而,设备B上的备份服务302b可以将对应的第二映射目录的访问路径通过URI分享给克隆应用303b,该克隆应用303b则可以基于该第二映射目录URI将接收到的数据包对应写入该第二映射目录中。其中该第二映射目录可以是内容为空的空目录。此过程即图3b所示的设备B上的URI分享过程。进一步地,基于第三方应用301b的第二备份目录与备份服务302b的第二映射目录之间的映射关系,设备B上的第三方应用301b的第二备份目录中也可以对应映射写入数据包,即图3b所示的设备B上的动态目录映射过程。最后,设备B上的第三方应用301b将第二备份目录中的数据包解包到相应的应用数据存储空间中,便可以完成应用数据的传输。
对比上述图2和图3b所示的数据传输过程,可以理解,上述图3b所示的本申请实施例提供的数据传输过程,能够巧妙避免需要传输的数据在各电子设备内部的多次拷贝过程,提供待传输数据的发送设备、以及接收待传输数据的接收设备内部分别通过动态目录映射和URI分享技术,来实现具有跨设备传输数据功能的数据传输应用与目标应用之间的内部数据传输过程,跨进程的数据传输量更小,数据传输效率也更高。
可以理解,本申请实施例所提供的数据访问方法,所适用的作为发送设备或者作为接收设备的电子设备,可以包括但不限于手机、平板电脑、桌面型、膝上型、手持计算机、上网本,以及增强现实(augmentedreality,AR)\虚拟现实(virtual reality,VR)设备、智能电视、智能手表等可穿戴设备、服务器、移动电子邮件设备、车机设备、便携式游戏机、便携式音乐播放器、阅读器设备、其中嵌入或耦接有一个或多个处理器的电视机、或能够访问网络的其他电子设备。
图4根据本申请实施例示出了一种数据访问方法的交互流程图。可以理解,为了清楚的说明本申请实施例提供的数据访问方法的实现过程,图4所示流程各步骤的执行主体包电子设备100和电子设备200。其中电子设备100可以是发送设备,例如上述图3b所示的设备A,即提供待传输数据的电子设备。电子设备200可以是接收设备,例如上述图3b所示的设备B,即接收待传输数据的电子设备。
如图4所示,该交互流程包括以下步骤:
401:电子设备100和电子设备200基于检测到的连接操作,建立通信连接。
示例性地,电子设备100与电子设备200可以连接至同一无线局域网,例如连接至同一Wi-Fi等。当电子设备100检测到用户在数据传输应用的相关界面上的连接操作时,可以响应于用户的操作与电子设备200建立连接。例如,该数据传输应用可以是上述图1所示场景中的“手机克隆”对应的克隆应用,用户例如可以在上述图1b所示的克隆界面104上点击“这是新设备”调出手机100的连接二维码,以提供给电子设备200进行扫码的相关操作。在另一些实施例中,上述连接操作也可以是在上述图1b所示的克隆界面104上点击“这是旧设备”、以及扫描电子设备200显示的连接二维码的相关操作,在此不做限制。进而,电子设备100与电子设备200之间便可以建立数据传输应用之间的数据传输通道。
在另一些实施例中,本步骤401的建立通信连接过程,也可以由电子设备200检测到用户的相关连接操作发起,在此不做限制。
402:电子设备100检测到用户指定克隆的目标应用。
示例性地,电子设备100与电子设备200之间的通信连接建立后,电子设备100和/或电子设备200上可以显示连接成功的相关界面,或者显示提示用户选择需要备份的数据的相关界面。其中,需要备份的数据可以包括用户在相应界面上选择备份的应用程序、图片、视频、音频文件等,在此不做限制。本申请实施例以用户选择备份的数据为应用程序为例进行各步骤执行内容的示例性描述,该应用程序即上述用户指定克隆的目标应用。
403:电子设备100在目标应用对应的存储空间内对应创建第一备份目录,并将需备份的应用数据打包至第一备份目录。
示例性地,电子设备100可以响应于用户指定目标应用的操作,运行目标应用,并通过目标应用的进程在对应分配的存储空间内创建第一备份目录,以及向第一备份目录中打包需备份的应用数据等。
具体电子设备100内目标应用创建第一备份目录、以及对应用数据进行数据打包的过程,可以参考下文图5所示流程中步骤501至502中相关描述,在此不做赘述。
404:电子设备100将第一备份目录中各数据包的访问路径对应映射为系统的备份服务中创建的第一映射目录中的访问路径。
示例性地,电子设备100基于目标应用在第一备份目录中保存好已打包的数据包后,可以控制将该第一备份目录中的数据包通过目录映射的方式,映射至系统的备份服务对应创建的第一映射目录中,例如将第一备份目录中各数据包的访问路径对应映射为备份服务中第一映射目录存入的访问路径。其中该第一映射目录可以仅存入访问路径而不存储其他数据。如此,备份服务或数据传输应用等基于第一映射目录中的访问路径,便可以打开目标应用中第一备份目录读取相应数据包。
具体电子设备100内完成第一备份目录与第一映射目录之间的目录映射的过程,可以参考下文图5所示流程中步骤503至504中相关描述,在此不做赘述。
405:电子设备100基于第一映射目录URI中的句柄获取用于访问第一备份目录的访问路径,进而适应获取到的访问路径打开第一备份目录读取相应数据包。
示例性地,电子设备100内的备份服务可以将第一映射目录中的访问路径对应的句柄,通过第一映射目录URI分享给用于传输数据的数据传输应用,进而数据传输应用可以基于该URI中的句柄获取备份服务中对应用于打开目标应用的第一备份目录的访问路径,进而利用自身进程中对应生成的句柄打开该第一备份目录,读取相应数据包。
具体电子设备100内分享URI以及基于该URI读取数据包的过程,可以参考下文图5所示流程中步骤505至506中相关描述,在此不做赘述。
406:电子设备100向电子设备200基于所建立的通信连接,发送读取到的数据包。
示例性地,电子设备100可以通过数据传输应用,将基于URI读取的第一备份目录中的数据包,发送给当前连接的电子设备200上的数据传输应用。具体电子设备100与电子设备200之间通过所运行的数据传输应用传输数据包的过程,可以参考下文图5所示流程中步骤507以及图8所示流程中步骤801中相关描述,在此不做赘述。
407:电子设备200接收数据包,并获取已创建的第二映射目录中的访问路径。
示例性地,电子设备200可以通过数据传输应用接收电子设备100通过数据传输应用发来的数据包。并且,电子设备中的数据传输应用可以通过系统的备份服务分享的第二映射目录URI中携带的句柄,获取第二映射目录中的相应访问路径。其中,该第二映射目录可以是系统的备份服务为安装目标应用对应创建的目录,该第二映射目录可以是内容为空的空目录。可以理解,该第二映射目录中的各访问路径对应映射于目标应用中第二备份目录中待写入的各数据包对应的访问路径。即,基于第二映射目录中的各访问路径对的访问可以打开第二备份目录以写入相关数据包。
具体电子设备200获取第二映射目录的访问路径的详细过程,可以参考下文图8所示流程中步骤802中相关描述,在此不做赘述。
408:电子设备200基于第二映射目录与第二备份目录中的访问路径之间的映射关系以及所获取的访问路径,打开第二备份目录并写入接收到的数据包。
示例性地,根据第二映射目录与第二备份目录之间的映射关系以及获取的访问路径,电子设备200访问第二备份目录,并可以根据访问第二备份目录获取到的句柄在第二备份目录中写入接收到的相应数据包。
具体根据访问路径之间的映射关系和获取的访问路径访问第二备份目录,在第二备份目录中映射写入接收到的数据包的过程,可以参考下文图8所示流程中步骤803至804中相关描述,在此不做赘述。
409:电子设备200对第二备份目录中的数据包进行数据解包,完成目标应用相关应用数据的传输过程。
示例性地,电子设备200在完成数据包写入第二备份目录之后,可以调用目标应用对应运行的进程,将第二备份目录中的数据包进行数据解包,并将解包得到的应用数据保存至该目标应用对应根目录下的应用数据目录中。这样,电子设备200在运行目标应用的过程中,该目标应用的进程则可以调用相应目录下的应用数据,执行相应任务。
具体进行数据解包、恢复应用数据的过程,可以参考下文图8所示流程中步骤805中相关描述,在此不做赘述。
下面结合相应附图,对上述图4所示的数据访问方法的实施过程中,电子设备100内实现的数据备份过程、以及电子设备200内实现的数据恢复过程,进行详细介绍。
作为示例,图5根据本申请实施例示出了一种数据访问方法的数据备份流程示意图。可以理解,图5所示流程各步骤的执行主体可以是电子设备100上运行的数据传输应用110、备份服务120以及目标应用130。
如图5所示,该流程包括以下步骤:
501:目标应用130在相应存储空间内创建第一备份目录。
示例性地,电子设备100在检测到用户操作指定克隆的目标应用130后,电子设备100则可以运行目标应用130,并控制目标应用130创建用于备份相关数据的第一备份目录。其中,该目标应用130可以是上述图3b示例的第三方应用301a,例如微信TM应用、微博TM应用、京东TM等购物应用等。在另一些实施例中,该目标应用130也可以是系统应用,例如图库应用、设置应用等,在此不做限制。
502:目标应用130将需备份的应用数据进行数据打包,并将打包后的数据包保存至第一备份目录。
示例性地,电子设备100的目标应用130在完成第一备份目录的创建后,便可以将需要备份的应用数据进行数据打包(pack),并将相应的数据包保存至第一备份目录中。其中,数据打包,在本申请实施例中是指将相应的应用数据所在目录或者将相应数据本身,压缩成相应的数据压缩包。数据打包得到的数据包的格式,例如可以是“.tar”格式。在一些实施例中,利用tar命令把目录打成数据包后,还可以再用gzip命令或bzip2命令等对数据包进行压缩,以便于传输,在此不做赘述。
图6根据本申请实施例示出了一种备份过程中电子设备100运行的数据传输应用、备份服务以及目标应用为实现数据备份所执行的相关操作示意图。
如图6所示,目标应用130可以在系统为该目标应用130创建的根目录“/”下创建第一备份目录“backup”,用于存放相应应用数据的数据包。之后,目标应用130便可以将需传输的应用数据,例如图6所示的应用程序包文件“files”、分布式文件“distributedfiles”、数据库“database”等,打包成对应的数据包“files.tar”、“distributedfiles.tar”、“database.tar”,并保存至第一备份目录“backup”中。
可以理解,在另一些实施例中,目标应用130所创建的第一备份目录也可以采用不同于“backup”的其他命名方式,在此不做限制。
503:备份服务120创建第一映射目录。
示例性地,在进行数据传输的过程中,电子设备100需要启动运行系统提供的备份服务120。备份服务120运行时可以创建第一映射目录,用于与目标应用130的第一备份目录之间采用动态目录映射等方式建立映射关系。具体与目标应用130的第一备份目录之间建立映射的过程,将在下文步骤504中详细描述,在此不做赘述。
参考上述图6所示,备份服务120所创建的第一映射目录,例如可以是图6所示的目录“app_n”。备份服务120可以对应不同的应用程序对应创建映射目录,并采用相应应用程序的应用程序包名相对应的映射目录名称,例如“app_1”、“app_2”、“app_n”等,在此不做限制。
504:备份服务120与目标应用130通过系统调用完成第一备份目录中各数据包对应的访问路径到第一映射目录中各访问路径的映射。
示例性地,电子设备100的备份服务120中完成第一映射目录的创建后,目标应用130便可以将第一备份目录中已打包的数据包文件映射到该第一映射目录中。这一映射过程可以通过电子设备100系统提供的应用启动服务所具有的全局事务处理能力来实现,或者通过其他方式实现,例如通过一些映射算法,例如绑定挂载(bind mounts)等,在此不做限制。
图7根据本申请实施例示出了一种通过电子设备100系统提供的应用启动服务完成第一备份目录到第一映射目录的目录映射过程。
如图7所示,目标应用130在电子设备100的系统中启动运行时,应用启动服务140所在进程可以创建目标应用130对应的第三备份目录。该备份目录可以参考参考图7所示的应用启动服务140中的第三备份目录“backup”。进而,应用启动服务140可以基于自身具备的全局事务处理能力,将所创建的第三备份目录所挂载的父目录“com.example.app”与目标应用130的根目录“/”之间进行目录映射。相应地,该目标应用130中的应用程序包文件“files”、分布式文件“distributedfiles”、数据库“database”等、以及所创建的第一备份目录中的数据,便可以对应映射到应用启动服务140的目录“com.example.app”中。
当备份服务120启动运行时,应用启动服务140可以将第三备份目录中的数据对应映射到备份服务120中创建的目录“com.example.app”中。如此,备份服务120中的目录“com.example.app”便可以映射到目标应用130的第一备份目录“backup”中的数据包。可以理解,备份服务120中完成目录映射的目录“com.example.app”,与上述图6所示的备份服务120中对应创建的第一备份目录“app_n”可以是相同目录。在另一些实施例中,备份服务120中所创建的目录“com.example.app”或者上述图6中的第一备份目录“app_n”也可以命名为其他名称,在此不做限制。
可以理解,电子设备100的系统在完成上述图7所示的目录映射过程之后,备份服务120中的目录“com.example.app”与目标应用130中的第一备份目录“backup”是等价目录、目标应用130中的根目录“/”与应用启动服务140中的目录“com.example.app”也是等价目录。如此,对备份服务120中的目录“com.example.app”的操作,则可以等价为对目标应用130中的第一备份目录“backup”的操作。
505:备份服务120向数据传输应用110分享第一映射目录URI。
示例性地,电子设备100的备份服务120可以基于第一映射目录中各访问路径对应的句柄生成第一映射目录URI,该URI中例如可以携带对第一映射目录中各访问路径对应的句柄。如上所述,该访问路径可以访问到目标应用中对应的第一备份目录。进而,备份服务120可以将所生成的第一映射目录URI对应的访问节点暴露给数据传输应用110,以向数据传输应用110分享第一映射目录URI。
506:数据传输应用110基于接收到的第一映射目录URI、以及第一映射目录与第一备份目录中的访问路径之间的映射关系,读取第一备份目录中的数据包。
示例性地,电子设备100运行的数据传输应用110在接收到备份服务120分享的第一映射目录URI后,可以使用该URI中携带的句柄,获取到备份服务120中能够访问到与第一映射目录对应映射的第一备份目录的访问路径,进而生成自身进程中的新句柄通过该访问路径访问第一备份目录。具体地,数据传输应用110可以基于从URI中获取到的句柄,确定与该句柄对应的访问路径,进而生成使用该访问路径打开第一备份目录的句柄。最终基于所生成的句柄打开第一备份目录读取相关数据。
参考上述图6所示,作为示例,数据传输应用110可以包括网络传输模块111和文件操作模块112。其中网络传输模块111可以用于与电子设备200上运行的数据传输应用的网络传输模块之间进行通信。文件操作模块112可以用于根据备份服务120分享的第一映射目录URI,对第一映射目录进行读取或写入等操作。
可以理解,数据传输应用110从第一备份目录中读取的相关数据,可以是上述步骤502中目标应用130对需备份的应用数据打包得到的数据包,例如“files.tar”、“distributedfiles.tar”、“database.tar”等。
507:数据传输应用110向电子设备200发送读取到的数据包。
示例性地,数据传输应用110可以将读取到的数据包,通过与电子设备200上运行的数据传输应用之间建立的数据传输通道,发送给电子设备200上运行的数据传输应用。
作为示例,参考上述图6所示,数据传输应用110可以基于网络传输模块111与电子设备200之间进行通信。在另一些实施例中,电子设备100与电子设备200之间的通信方式也可以为其他方式,例如还可以是蓝牙连接等,在此不做限制。
具体电子设备100与电子设备200建立通信连接,并建立数据传输应用之间的数据传输通道的过程,可以参考上述步骤401中相关描述,在此不做赘述。
基于上述步骤501至507的数据备份过程,电子设备100内无需拷贝数据,便可以完成目标应用130对应需备份的应用数据传输给数据传输应用110的过程。这有利于减少电子设备100处理数据拷贝对应的功耗、并有利于节省电子设备100的系统存储空间,提高了电子设备100内部处理待传输数据的效率和性能。
相应地,下面结合相应附图介绍接收设备基于接收到的数据包,恢复应用数据的具体实现过程。
作为示例,图8根据本申请实施例示出了一种数据访问方法的数据恢复流程示意图。可以理解,图8所示流程各步骤的执行主体可以是电子设备200运行的数据传输应用210、备份服务220以及目标应用230。
如图8所示,该流程包括以下步骤:
801:数据传输应用210接收电子设备100发来的数据包。
示例性地,电子设备200运行的数据传输应用210可以接收到所连接的电子设备100发来的数据包。其中,该数据包是从电子设备100上备份的目标应用130的应用数据对应打包得到的数据包。可以理解,由于电子设备200运行的数据传输应用210与电子设备100运行的数据传输应用110之间已建立通信连接,二者之间已建立数据传输通道,因此上述数据包可以通过该数据传输通道由数据传输应用110传输至数据传输应用210。
802:数据传输应用210获取备份服务220分享的第二映射目录URI。
示例性地,电子设备200可以在准备目标应用230的安装环境时,运行备份服务220创建对应于目标应用230的第二备份目录的第二映射目录。进而,该备份服务220可以将基于第二映射目录的访问路径对应的句柄生成的URI分享给数据传输应用210,以向数据传输应用210提供对该第二映射目录的访问路径。
图9根据本申请实施例示出了一种备份过程中电子设备200运行的数据传输应用、备份服务以及目标应用为实现数据备份所执行的相关操作示意图。
如图9所示,作为接收设备的电子设备200在进行相应应用数据的恢复时,需先准备的相应应用程序的安装环境,例如电子设备200的系统中可以先创建目标应用230对应的根目录“/”、各应用数据对应存储的目录例如“files”、“distributedfiles”、“database”等、以及用于保存相应应用数据的数据包的第二备份目录“backup”。并且,电子设备200系统的备份服务220的对应空间内,也可以创建第二映射目录“app_n”,并将该目录“app_n”的访问路径对应映射为目标应用230中第二备份目录“backup”的访问路径。进而,该备份服务220可以将对应于第二映射目录“app_n”的访问路径对应的句柄通过URI分享给数据传输应用210,以向数据传输应用210提供该目录“app_n”中的访问路径。
基于此,当电子设备200运行的数据传输应用210接收到电子设备100运行的数据传输应用110发来的数据包后,可以基于第二映射目录URI,将接收到数据包写入到第二映射目录中。具体向第二映射目录写入文件的过程,可以参考下述步骤803中相关描述,在此不做赘述。
803:数据传输应用210基于第二映射目录URI,获取第二映射目录对应映射的第二备份目录中各数据包写入位置对应的访问路径。
示例性地,电子设备200运行的数据传输应用210可以根据获取到的第二映射目录URI携带的句柄,确定该第二映射目录中对应于该句柄的访问路径,该访问路径用于打开目标应用230中的第一备份服务。进而,数据传输应用210可以该访问路径生成新的句柄,以向第二备份目录写入接收到的数据包。
参考上述图9所示,作为示例,数据传输应用210可以包括网络传输模块211和文件操作模块212。其中网络传输模块211可以用于执行上述步骤801接收数据包的过程。文件操作模块212则可以用于执行上述步骤802至下述步骤804,根据获取到的第二映射目录URI,获取第二备份目录对应的访问路径,以及访问第二备份目录并写入数据包文件等过程。上述向第二备份目录中写入的文件则可以是网络传输模块211接收到的数据包。
804:数据传输应用210基于获取到的访问路径,打开第二备份目录并在第二备份目录中写入接收到数据包。
示例性地,电子设备200运行的备份服务220和目标应用230,可以基于已建立的第二映射目录与第二备份目录中的访问路径之间的映射关系,在与第二映射目录对应映射的第二备份目录中写入相应的数据包文件。其中,第二映射目录与第二备份目录中的访问路径之间的映射关系的建立过程可以参考上述图7所示及相关描述,在此不做赘述。
参考上述图9所示,作为示例,数据传输应用210的文件操作模块212可以基于备份服务220中的第二映射目录“app_n”对应的URI,获取第二映射目录“app_n”中的访问路径。进而,数据传输应用210可以基于该访问路径生成新的句柄,并基于该第二映射目录“app_n”与目标应用230中第二备份目录“backup”中的访问路径之间的映射关系,使用新句柄打开目标应用230中的第二备份目录“backup”对应写入接收到的数据包。
805:目标应用230对第二备份目录中的数据包进行数据解包,并将解包得到的应用数据恢复至相应目录中。
示例性地,电子设备200在安装目标应用230或者运行目标应用230的过程中,可以读取目标应用230对应存储空间内第二备份目录中的数据包,并进行数据解包(unpack)。
可以理解,上述数据打包(pack)和数据解包(unpack)是为了发送不连续的数据,例如上述应用数据,把数据包装大一个连续的缓冲区,而在接收之后从连续的缓冲区中解包数据的对应操作。
参考图9所示,作为示例,目标应用230可以将第二备份目录“backup”中映射写入数据包“files.tar”、“distributedfiles.tar”、“database.tar”等进行数据解包。数据解包得到的应用数据可以保存至根目录“/”下对应的应用数据目录“files”、“distributedfiles”、“database”中。如此,电子设备200在安装及运行目标应用230的过程中,目标应用230进程则可以在执行相应任务时调用这些目录中的应用数据。
基于上述步骤801至805的数据恢复过程,电子设备200内也无需拷贝数据,便可以完成目标应用230从数据传输应用110获取所需的应用数据的过程,目标应用230解包恢复到相应目录的应用数据可以用于目标应用230的安装或运行。这有利于减少电子设备200处理数据拷贝对应的功耗、并有利于节省电子设备200的系统存储空间,提高了电子设备200内部处理待传输数据的效率和性能。
结合上述图4、图5以及图8所示流程,可以理解,本申请实施例提供的数据传输方案,能够有效降低数据发送设备和数据接收设备上的系统功耗、并且占用系统内存资源较少,传输数据所需的带宽也较低,因而有利于提高数据传输效率、以及数据发送设备和数据接收设备的数据传输性能。
图10根据本申请实施例示出了一种电子设备100的硬件结构示意图。可以理解,本申请实施例中,与电子设备100交互实现上述图4至图8示例描述的数据访问方法的电子设备200,也可以具有与电子设备100相同或不同的硬件结构,电子设备200可以具有比图10所示更多或者更少的硬件结构,在此不做限制。
电子设备100可以包括处理器1010,外部存储器接口1020,内部存储器1021,通用串行总线(universal serial bus,USB)接口1030,充电管理模块1040,电源管理模块1041,电池1042,天线1,天线2,移动通信模块1050,无线通信模块1060,音频模块1070,扬声器1070A,受话器1070B,麦克风1070C,耳机接口1070D,传感器模块1080,按键1090,马达1091,指示器1092,摄像头1093,显示屏1094,以及用户标识模块(subscriber identificationmodule,SIM)卡接口1095等。其中传感器模块1080可以包括压力传感器1080A,陀螺仪传感器1080B,气压传感器1080C,磁传感器1080D,加速度传感器1080E,距离传感器1080F,接近光传感器1080G,指纹传感器1080H,温度传感器1080J,触摸传感器1080K,环境光传感器1080L,骨传导传感器1080M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器1010可以包括一个或多个处理单元,例如:处理器1010可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
在本申请实施例中,电子设备100的处理器1010可以通过控制器控制实施上述图5所示流程中的各步骤,电子设备200的处理器也可以通过控制器控制实施上述图8所示流程中的各步骤,进而完成本申请实施例提供的数据访问方法的实施过程。
处理器1010中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器1010中的存储器为高速缓冲存储器。该存储器可以保存处理器1010刚用过或循环使用的指令或数据。如果处理器1010需要再次使用该指令或数据,可从上述存储器中直接调用。避免了重复存取,减少了处理器1010的等待时间,因而提高了系统的效率。
在一些实施例中,处理器1010可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
其中,USB接口1030是符合USB标准规范的接口,具体可以是Mini USB接口,MicroUSB接口,USB Type C接口等。USB接口1030可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块1040用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块1040可以通过USB接口1030接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块1040可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块1040为电池1042充电的同时,还可以通过电源管理模块1041为电子设备供电。
电源管理模块1041用于连接电池1042,充电管理模块1040与处理器1010。电源管理模块1041接收电池1042和/或充电管理模块1040的输入,为处理器1010,内部存储器1021,显示屏1094,摄像头1093,和无线通信模块1060等供电。电源管理模块1041还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块1041也可以设置于处理器1010中。在另一些实施例中,电源管理模块1041和充电管理模块1040也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块1050,无线通信模块1060,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块1050可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。无线通信模块1060可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备100的天线1和移动通信模块1050耦合,天线2和无线通信模块1060耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。上述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。上述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏1094,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏1094和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器1010可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。显示屏1094用于显示图像,视频等。
电子设备100可以通过ISP,摄像头1093,视频编解码器,GPU,显示屏1094以及应用处理器等实现拍摄功能。ISP用于处理摄像头1093反馈的数据。摄像头1093用于捕获静态图像或视频。
外部存储器接口1020可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口1020与处理器1010通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器1021可以用于存储计算机可执行程序代码,该可执行程序代码包括指令。内部存储器1021可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器1021可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器1010通过运行存储在内部存储器1021的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块1070,扬声器1070A,受话器1070B,麦克风1070C,耳机接口1070D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器1080A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器1080A可以设置于显示屏1094。压力传感器1080A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器1080A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏1094,电子设备100根据压力传感器1080A检测该触摸操作的强度。电子设备100也可以根据压力传感器1080A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器1080B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器1080B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器1080B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器1080B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器1080B还可以用于导航,体感游戏场景。
加速度传感器1080E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器1080F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器1080F测距以实现快速对焦。
指纹传感器1080H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
触摸传感器1080K,也称“触控器件”。触摸传感器1080K可以设置于显示屏1094,由触摸传感器1080K与显示屏1094组成触摸屏,也称“触控屏”。触摸传感器1080K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏1094提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器1080K也可以设置于电子设备100的表面,与显示屏1094所处的位置不同。
按键1090包括开机键,音量键等。按键1090可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达1091可以产生振动提示。马达1091可以用于来电振动提示,也可以用于触摸振动反馈。
指示器1092可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口1095用于连接SIM卡。SIM卡可以通过插入SIM卡接口1095,或从SIM卡接口1095拔出,实现和电子设备100的接触和分离。
图11根据本申请实施例示出了一种电子设备100系统架构示意框图。可以理解,本申请实施例中,与电子设备100交互实现上述图4至图8示例描述的数据访问方法的电子设备200,也可以具有与电子设备100相同或不同的软件结构,电子设备200可以具有比图10所示更多或者更少的软件结构,在此不做限制。
电子设备100的系统架构可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的系统架构。
可以理解,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
如图11所示,应用程序层可以包括一系列应用程序包。应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,设置,音乐,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器,以及备份服务和应用启动服务等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知连接成功,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
其中,应用启动服务,用于管理电子设备100的系统上安装的各应用程序,包括系统应用和第三方应用。在本申请实施例中,应用启动服务可以在需要备份的目标应用启动运行时,通过命名空间(namespace)管理,映射全局挂载命名空间的应用备份目录到目标应用挂载命名空间的第一备份目录,并映射全局挂载命名空间的应用备份目录到备份服务挂载命名空间的第一映射目录,使得目标应用挂载命名空间的第一备份目录与备份服务挂载命名空间的第一映射目录等价,实现动态目录映射共享。该动态目录的映射过程例如可以采用绑定挂载(bind mounts)算法等实现。
备份服务(Recovery),是Android手机备份功能,指的是一种可以对应用安卓TM系统的手机等电子设备内部的数据或系统进行修改的系统服务能力。在本申请实施例中,对于第三方应用或者其他目标应用需要备份或恢复的数据,数据传输应用需要借助于系统的备份服务所具有的全局事务处理能力,获得目标应用相关数据访问路径的访问路径,进而访问目标应用相关数据访问路径,将相应数据读取或者写入自身对应的存储空间。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
图12根据本申请实施例示出了另一种电子设备100的系统架构示意框图。可以理解,本申请实施例中,与电子设备100交互实现上述图4至图8示例描述的数据访问方法的电子设备200,也可以具有与电子设备100相同或不同的软件结构,电子设备200可以具有比图10所示更多或者更少的软件结构,在此不做限制。
如图12所示,电子设备100采用分布式系统架构。该分布式系统架构包括应用层、应用框架层、系统服务层以及内核层。可以理解,图12所示的分布式操作系统例如可以是鸿蒙操作系统(HarmonyOSTM)。
其中,应用层可以包括一系列应用程序包。应用程序包可以包括桌面(Launcher)、设置、以及音乐等应用程序,例如还可以包括日历,WLAN,蓝牙,相机,图库,通话,地图,视频等,在此不做限制。
应用框架层为应用层提供分布式框架、以及轻设备代理服务。其中,分布式框架包括远程安装、远程启动、迁移管理、远程调用、分布式系统服务管理以及FA关联管理等用于实现系统内以及系统之间互通(包括启动、调用、迁移)的功能框架、以及各框架对应的应用编程接口(application programming interface,API)。
系统服务层是分布式操作系统的核心,系统服务层通过应用框架层对应用层中的应用程序以及SDK提供服务。系统服务层可以包括应用启动服务、备份服务、以及分布式软总线等。
其中,应用启动服务,用于管理电子设备100的系统上安装的各应用程序,包括系统应用和第三方应用。在本申请实施例中,应用启动服务可以在需要备份的目标应用启动运行时,通过命名空间(namespace)管理,映射全局挂载命名空间的应用备份目录到目标应用挂载命名空间的第一备份目录,并映射全局挂载命名空间的应用备份目录对应访问路径至备份服务挂载命名空间的第一映射目录上,使得目标应用挂载命名空间的第一备份目录中各数据包对应的访问路径与备份服务挂载命名空间的第一映射目录中的各访问路径等价,实现动态目录映射。该动态目录的映射过程例如可以采用绑定挂载(bind mounts)算法等实现。
备份服务(Recovery),是Android手机备份功能,指的是一种可以对应用分布式操作系统的手机等电子设备内部的数据或系统进行修改的系统服务能力。在本申请实施例中,对于第三方应用或者其他目标应用需要备份或恢复的数据,数据传输应用需要借助于系统的备份服务所具有的全局事务处理能力,获得目标应用相关数据访问路径的访问路径,进而访问目标应用相关数据访问路径,将相应数据读取或者写入自身对应的存储空间。
分布式软总线,作为底层网路的一个示例结构,用于传输在用户常用中控设备与用户当前使用的中控设备之间流转的显示数据等,即实现鸿蒙分布式流转(Harmonydistributed flow)。其中,对于分布式软总线功能的理解,可以参考计算机硬件总线。例如,分布式软总线是在1+8+N设备(1为手机;8代表车机、音箱、耳机、手表、手环、平板、大屏、个人计算机(personal computer,PC)、增强现实(Augmented Reality,AR)、虚拟现实(Virtual Reality,VR);N泛指其他物联网(Internet of Things,IOT)设备)之间搭建一条“无形”的总线,其具备自动发现、即连即用、自组网(异构网络组网)、高带宽、低时延、可靠性高等特点。也就是说,通过分布式软总线技术,上述各中控设备之间不仅可以实现全部数据的共享,还可以与其在同一局域网络或与其通过蓝牙连接的任意设备实现即时互联。另外,分布式软总线还能够在蓝牙、无线保真(Wireless-Fidelity,WiFi)等异构网络之间共享文件(例如一方面通过蓝牙接收文件,另一方面通过WiFi传输文件)。
内核层是硬件和软件之间的层。分布式操作系统的内核层包括:内核子系统和驱动子系统。其中,内核子系统介于分布式操作系统可以采用多内核设计,因此内核子系统支持针对不同资源受限设备选用适合的OS内核,例如在本申请实施例中,对于中控设备可以选用Lite OS。
内核子系统上的内核抽象层(Kernel Abstract Layer,KAL)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
驱动子系统提供的驱动框架是分布式系统硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
可以理解,在本申请的一些实施例中,还可以提供一种数据访问装置,应用于上述电子设备100或者电子设备200中。其中,上述电子设备100或电子设备200可以包括第一应用和第二应用。电子设备100可以是发送设备,电子设备200可以是接收设备。其中,该第一应用例如可以是上述目标应用,第二应用例如可以是上述数据传输应用。
该数据访问装置,可以包括备份模块,用于检测所述第二应用对所述第一应用的第一存储空间的访问请求,其中所述第一存储空间具有第一访问路径;并且,用于响应所述访问请求,建立与所述第一访问路径之间具有映射关系的第二访问路径,以及将所述第二访问路径发送给所述第二应用。如果该数据访问装置应用于电子设备100,则第二应用可以将访问第一存储空间读取到的第一数据发送给作为接收设备的电子设备200。如果该数据访问装置应用于电子设备200,则第二应用可以将从作为发送设备的电子设备100处接收到的第二数据,写入到访问的第一存储空间。
在说明书对“一个实施例”或“实施例”的引用意指结合实施例所描述的具体特征、结构或特性被包括在根据本申请实施例公开的至少一个范例实施方案或技术中。说明书中的各个地方的短语“在一个实施例中”的出现不一定全部指代同一个实施例。
本申请实施例的公开还涉及用于执行文本中的操作装置。该装置可以专门处于所要求的目的而构造或者其可以包括被存储在计算机中的计算机程序选择性地激活或者重新配置的通用计算机。这样的计算机程序可以被存储在计算机可读介质中,诸如,但不限于任何类型的盘,包括软盘、光盘、CD-ROM、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡、专用集成电路(ASIC)或者适于存储电子指令的任何类型的介质,并且每个可以被耦合到计算机系统总线。此外,说明书中所提到的计算机可以包括单个处理器或者可以是采用针对增加的计算能力的多个处理器涉及的架构。
另外,在本说明书所使用的语言已经主要被选择用于可读性和指导性的目的并且可能未被选择为描绘或限制所公开的主题。因此,本申请实施例公开旨在说明而非限制本文所讨论的概念的范围。
Claims (13)
1.一种数据访问方法,应用于第一电子设备,其特征在于,所述第一电子设备包括第一应用、第二应用以及第三应用,并且所述方法包括:
第三应用检测到访问所述第一应用的第一存储空间的访问请求,其中所述第一存储空间具有第一访问路径;
第三应用响应于所述访问请求,建立与所述第一访问路径之间具有映射关系的第二访问路径;
第三应用将所述第二访问路径发送给所述第二应用;
第二应用通过所述第二访问路径,访问所述第一应用的第一存储空间。
2.根据权利要求1所述的方法,其特征在于,所述第一电子设备为发送设备,所述第一电子设备通过运行所述第二应用与作为接收设备的第二电子设备之间建立通信连接,并且,所述方法还包括:
第二应用将访问所述第一存储空间读取到的第一数据发送给所述第二电子设备。
3.根据权利要求1所述的方法,其特征在于,所述第一电子设备为接收设备,所述第一电子设备通过运行所述第二应用与作为发送设备的第三电子设备之间建立通信连接,并且,所述方法还包括:
第二应用将从所述第三电子设备接收到的第二数据,写入所访问的第一存储空间。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一应用的应用数据与所述第二应用的应用数据相互隔离。
5.根据权利要求2所述的方法,其特征在于,所述第三应用检测到访问所述第一应用的第一存储空间的访问请求,包括:
第三应用检测到所述第二应用发来的访问所述第一应用的第一存储空间的访问请求,其中,所述访问请求为所述第二应用在检测到用户指示向所述第二电子设备发送第一应用的第一数据的操作请求的情况下向所述第三应用发送的请求。
6.根据权利要求1所述的方法,其特征在于,所述第三应用响应于所述访问请求,建立与所述第一访问路径之间具有映射关系的第二访问路径,包括:
第三应用响应于所述访问请求,创建具有第二访问路径的第二存储空间;
第三应用利用所述第一电子设备提供的应用启动服务建立所述第二访问路径与所述第一访问路径之间的对应关系,使得所述第二访问路径指向所述第一存储空间中与所述第一访问路径对应的数据。
7.根据权利要求6所述的方法,其特征在于,所述第三应用将所述第二访问路径发送给所述第二应用,包括:
第三应用通过全局标识将所述第二访问路径对应的第一句柄发送给所述第二应用,其中所述第一句柄作为所述第三应用通过所述第二访问路径访问所述第一存储空间的工具,所述第一句柄与所述第二访问路径相对应;
第二应用基于所述第一句柄与所述第二访问路径之间的对应关系,获取所述第二访问路径。
8.根据权利要求7所述的方法,其特征在于,所述第二应用通过所述第二访问路径,访问所述第一应用的第一存储空间,包括:
第二应用根据获取到的所述第二访问路径,生成第二句柄,其中所述第二句柄为所述第二应用通过所述第二访问路径访问所述第一存储空间的工具;
第二应用调用生成的所述第二句柄,访问所述第一应用的第一存储空间。
9.根据权利要求7或8所述的方法,其特征在于,所述全局标识包括统一资源定位符URI,其中,所述URI具体包括文件信息字段,所述文件信息字段是对应于所述第一句柄的映射字符串。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述第一应用包括系统应用或第三方应用,所述第二应用包括克隆应用,所述第三应用包括所述第一电子设备提供的备份服务。
11.一种数据访问装置,应用于第一电子设备,所述第一电子设备包括第一应用和第二应用,其特征在于,所述装置包括:
备份模块,用于检测所述第二应用对所述第一应用的第一存储空间的访问请求,其中所述第一存储空间具有第一访问路径;并且,用于响应所述访问请求,建立与所述第一访问路径之间具有映射关系的第二访问路径,以及将所述第二访问路径发送给所述第二应用。
12.一种电子设备,其特征在于,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个程序,当所述一个或者多个程序被所述一个或多个处理器执行时,使得所述电子设备执行权利要求1至10中任一项所述的数据访问方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质上存储有指令,所述指令在计算机上执行时使所述计算机执行权利要求1至10中任一项所述的数据访问方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145801.8A CN117785498A (zh) | 2022-09-20 | 2022-09-20 | 数据访问方法、电子设备和计算机可读存储介质 |
PCT/CN2023/119142 WO2024061129A1 (zh) | 2022-09-20 | 2023-09-15 | 数据访问方法、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145801.8A CN117785498A (zh) | 2022-09-20 | 2022-09-20 | 数据访问方法、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785498A true CN117785498A (zh) | 2024-03-29 |
Family
ID=90396878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211145801.8A Pending CN117785498A (zh) | 2022-09-20 | 2022-09-20 | 数据访问方法、电子设备和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117785498A (zh) |
WO (1) | WO2024061129A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140066B2 (en) * | 2016-02-01 | 2018-11-27 | International Business Machines Corporation | Smart partitioning of storage access paths in shared storage services |
CN106506835A (zh) * | 2016-10-28 | 2017-03-15 | 努比亚技术有限公司 | 应用共享装置及方法 |
CN109684112B (zh) * | 2018-12-29 | 2021-06-29 | 北京小米移动软件有限公司 | 程序文件运行方法、装置、终端及存储介质 |
CN113672576A (zh) * | 2020-05-15 | 2021-11-19 | 华为技术有限公司 | 文件共享方法及终端设备 |
CN114301899B (zh) * | 2020-09-22 | 2022-10-25 | 荣耀终端有限公司 | 数据传输方法、系统、电子设备及存储介质 |
-
2022
- 2022-09-20 CN CN202211145801.8A patent/CN117785498A/zh active Pending
-
2023
- 2023-09-15 WO PCT/CN2023/119142 patent/WO2024061129A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024061129A1 (zh) | 2024-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114520868B (zh) | 视频处理方法、装置及存储介质 | |
CN116055773A (zh) | 一种多屏协同方法、系统及电子设备 | |
CN111615820B (zh) | 通过向grs服务器发送关键值进行域名解析的方法及设备 | |
CN113190362B (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
WO2022252805A1 (zh) | 显示方法及电子设备 | |
CN111866140A (zh) | 融合管理设备、管理系统、服务调用方法及介质 | |
CN111159604A (zh) | 图片资源加载方法及装置 | |
CN114489529A (zh) | 电子设备的投屏方法及其介质和电子设备 | |
CN115766490A (zh) | 校准数据的获取方法、校准数据的存储方法、装置及设备 | |
CN113051015A (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
CN111625315A (zh) | 页面显示方法、装置、电子设备及存储介质 | |
CN112612539B (zh) | 数据模型卸载方法、装置、电子设备及存储介质 | |
CN108492339B (zh) | 获取资源压缩包的方法、装置、电子设备及存储介质 | |
CN114610419B (zh) | 添加widget的方法、装置及计算机可读存储介质 | |
CN117130516B (zh) | 一种显示方法及电子设备 | |
CN111580892B (zh) | 一种业务组件调用的方法、装置、终端和存储介质 | |
CN112612540B (zh) | 数据模型配置方法、装置、电子设备及存储介质 | |
CN112597417B (zh) | 页面更新方法、装置、电子设备及存储介质 | |
CN112596810B (zh) | 加载提示信息显示方法、装置、电子设备及存储介质 | |
CN114675786A (zh) | 一种大容量存储挂载方法、装置、终端及介质 | |
CN111694521B (zh) | 存储文件的方法、装置及系统 | |
CN117785498A (zh) | 数据访问方法、电子设备和计算机可读存储介质 | |
CN111866047B (zh) | 数据解码方法、装置、计算机设备及存储介质 | |
CN116048351B (zh) | 截屏方法和电子设备 | |
WO2024022119A1 (zh) | 数据同步方法、电子设备及系统 |
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 |