CN117675881A - 一种应用数据保存方法及电子设备 - Google Patents
一种应用数据保存方法及电子设备 Download PDFInfo
- Publication number
- CN117675881A CN117675881A CN202211008280.1A CN202211008280A CN117675881A CN 117675881 A CN117675881 A CN 117675881A CN 202211008280 A CN202211008280 A CN 202211008280A CN 117675881 A CN117675881 A CN 117675881A
- Authority
- CN
- China
- Prior art keywords
- electronic device
- data
- application
- data object
- session
- 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 340
- 238000013500 data storage Methods 0.000 title abstract description 10
- 230000015654 memory Effects 0.000 claims abstract description 291
- 230000008569 process Effects 0.000 claims abstract description 257
- 238000004891 communication Methods 0.000 claims abstract description 46
- 238000005192 partition Methods 0.000 claims description 47
- 238000004590 computer program Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 7
- 238000004321 preservation Methods 0.000 claims description 5
- 238000009434 installation Methods 0.000 description 26
- 238000007726 management method Methods 0.000 description 21
- 230000006855 networking Effects 0.000 description 19
- 239000010410 layer Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 239000000872 buffer Substances 0.000 description 14
- 238000010295 mobile communication Methods 0.000 description 12
- 230000005236 sound signal Effects 0.000 description 10
- 210000000988 bone and bone Anatomy 0.000 description 9
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 238000011084 recovery Methods 0.000 description 9
- 210000004027 cell Anatomy 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000036772 blood pressure Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration 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
- 230000006872 improvement Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002138 osteoinductive effect Effects 0.000 description 1
- 230000010349 pulsation Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种应用数据保存方法及电子设备。第一电子设备可提供一套通用的接口,接口包括保存接口。第一电子设备可以调用该保存接口,将应用一中数据对象上的数据缓存在本地的非应用进程内存中,或者保存在建立通信连接的第二电子设备上的非应用进程内存中。这样,一方面,实现了将数据保存在非应用进程内存中,保存在非应用进程内存中的应用数据不会随着应用的关闭而被删除。另一方面,实现了无需关注设备上应用的运行状态,即可在本地设备的应用上或者对端设备的应用上保存并且恢复得到本地设备的应用在关闭之前的运行数据。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种应用数据保存方法及电子设备。
背景技术
应用数据可以理解为应用程序运行时产生的内存数据(也可以称为业务数据)。应用程序开启,对应地会产生应用数据。若应用程序关闭后,该应用程序中产生的应用数据也被删除了。
但是,在一些场景中,用户希望在下次打开本地设备上该应用程序时,可以恢复得到该应用数据,或者用户希望在组网内的其他设备上打开该应用程序时,可以恢复得到本地设备上的该应用数据。如何在本地设备或者其它设备上恢复得到本地设备上应用程序关闭之前产生的应用数据,有待进一步研究。
发明内容
本申请提供了一种应用数据保存方法及电子设备,一方面,实现了将数据保存在非应用进程内存中,保存在非应用进程内存中的应用数据不会随着应用的关闭而被删除。另一方面,实现了无需关注设备上应用的运行状态,即可在本地设备的应用上或者对端设备的应用上保存并且恢复得到本地设备的应用在关闭之前的运行数据。
第一方面,本申请提供了一种应用数据保存***,***包括通信连接的第一电子设备和第二电子设备,其中,第一电子设备,用于开启第一电子设备上的第一应用,并获取到第一应用中第一数据对象上的数据以及第一数据对象绑定的第一session ID;第一电子设备,还用于将第一数据对象上的数据和第一session ID发送至第二电子设备;第二电子设备,用于接收第一数据对象上的数据和第一session ID,并将第一数据对象上的数据和第一session ID保存在非应用进程内存中。这样,无论第二电子设备上的第二应用是开启还是关闭,均可以接收并保存第一电子设备发送的第一数据对象上的数据。
通过第一方面提供的方法,实现了将数据保存在非应用进程内存中,保存在非应用进程内存中的应用数据不会随着应用的关闭而被删除。另一方面,实现了无需关注设备上应用的运行状态,即可在本地设备的应用上或者对端设备的应用上保存并且恢复得到本地设备的应用在关闭之前的运行数据。
结合第一方面,在一种可能的实现方式中,第二电子设备具体用于:在第二电子设备上的第二应用处于关闭状态时,接收第一数据对象上的数据和第一session ID;其中,第二应用和第一应用为相同或相应的应用。这样,第二电子设备上的第二应用在关闭状态下,也可以接收并保存第一电子设备发送的第一数据对象上的数据。
其中,相同的应用是指第一电子设备和第二电子设备为类型相同的设备,例如均为手机,那么第一电子设备上的第一应用的安装包和第二电子设备上的第二应用的安装包是一样的。
相应的应用是指第一电子设备和第二电子设备为类型不同的设备,例如第一电子设备为手机,第二电子设备为平板。那么第一电子设备上的第一应用的安装包和第二电子设备上的第二应用的安装包也不同。
可选的,当第一电子设备和第二电子设备为类型不同的设备时,第一电子设备上安装的第一应用的安装包和第二电子设备上的第二应用的安装包也可以是相同的。
结合第一方面,在一种可能的实现方式中,第二电子设备,还用于开启第二应用,并获取到第二应用中第二数据对象绑定的第二session ID;第二电子设备,还用于在第二session ID和第一session ID相同的情况下,基于第一数据对象上的数据生成第二数据对象上的数据。
这样,不同的设备上相同应用内的数据对象可以绑定相同的session ID,可以实现不同的设备上相同应用内的数据自动同步。
结合第一方面,在一种可能的实现方式中,第二电子设备,具体用于:创建第二应用的进程;通过第二应用的进程从非应用进程内存中获取到第一数据对象上的数据;通过第二应用的进程将第一数据对象上的数据存放在第二电子设备上的应用进程内存中;基于应用进程内存中第一数据对象上的数据,生成第二数据对象上的数据。
可选的,应用进程内存为第二电子设备上所有进程共用的一块存储区域。非应用进程内存为第二电子设备上所有非进程共用的一块存储区域。
可选的,不同应用所占用的应用进程内存可以不同。不同应用占用的非应用进程内存也可以不同。
这样,在第二电子设备上第二应用开启后,可以基于在开启之前保存的第一数据对象上生成的数据第二数据对象上的数据。
结合第一方面,在一种可能的实现方式中,第一电子设备,还用于将第一数据对象上的数据和第一session ID保存在第一电子设备上的非应用进程内存中。
这样,第一电子设备也可以将第一数据对象上的数据保存在本地的非应用进程内存中,从而实现第一应用在关闭后在开启时,可以再次恢复得到第一应用在关闭之前产生的应用数据。
结合第一方面,在一种可能的实现方式中,第一电子设备,还用于关闭第一应用;第一电子设备,还用于在关闭第一应用后,再次开启第一应用,并获取到第三数据对象绑定的第三session ID;第一电子设备,还用于在第三session ID和第一session ID相同的情况下,基于第一数据对象上的数据生成第三数据对象上的数据。这样,实现第一应用在关闭后在开启时,可以再次恢复得到第一应用在关闭之前产生的应用数据。
结合第一方面,在一种可能的实现方式中,非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区;应用进程内存包括RAM中的第二存储分区;其中,RAM中的第二存储分区与RAM中的第一存储分区不同。
结合第一方面,在一种可能的实现方式中,第一电子设备,还用于向第二电子设备发送第一指令;第二电子设备,还用于响应于第一指令,从第二电子设备上的非应用进程内存中删除第一数据对象上的数据和第一session ID。这样,本申请也可以将保存在其他电子设备上的应用数据删除掉。
结合第一方面,在一种可能的实现方式中,第一电子设备,还用于从第一电子设备上的非应用进程内存中删除第一数据对象上的数据和第一session ID。这样,本申请也可以将保存在本地设备上的应用数据删除掉。
第二方面,本申请提供了一种应用数据保存方法,方法包括:第一电子设备与第二电子设备建立通信连接;第一电子设备开启第一电子设备上的第一应用,并获取到第一应用中第一数据对象上的数据以及第一数据对象绑定的第一session ID;第一电子设备将第一数据对象上的数据和第一session ID通过通信连接发送至第二电子设备;第一数据对象上的数据和第一session ID用于第二电子设备将第一数据对象上的数据和第一sessionID保存在非应用进程内存中。
结合第二方面,在一种可能的实现方式中,第一电子设备将第一数据对象上的数据和第一session ID通过通信连接发送至第二电子设备,具体包括:第一电子设备在第二电子设备上的第二应用处于关闭状态时,将第一数据对象上的数据和第一session ID通过通信连接发送至第二电子设备;其中,第二应用和第一应用为相同或相应的应用。
结合第二方面,在一种可能的实现方式中,方法还包括:第一电子设备将第一数据对象上的数据和第一session ID保存在第一电子设备上的非应用进程内存中。
结合第二方面,在一种可能的实现方式中,在第一电子设备将第一数据对象上的数据和第一session ID保存在第一电子设备上的非应用进程内存中之后,方法还包括:第一电子设备关闭第一应用;在第一电子设备关闭第一应用后,第一电子设备再次开启第一应用,并获取到第三数据对象绑定的第三session ID;在第三session ID和第一sessionID相同的情况下,第一电子设备基于第一数据对象上的数据生成第三数据对象上的数据。
结合第二方面,在一种可能的实现方式中,第一电子设备基于第一数据对象上的数据生成第三数据对象上的数据,具体包括:第一电子设备创建第一应用的进程;第一电子设备通过第一应用的进程从非应用进程内存中获取到第一数据对象上的数据;第一电子设备通过第一应用的进程将第一数据对象上的数据存放在第一电子设备上的应用进程内存中;第一电子设备通过第一应用的进程基于应用进程内存中第一数据对象上的数据生成第三数据对象上的数据。
结合第二方面,在一种可能的实现方式中,非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区;应用进程内存包括RAM中的第二存储分区;其中,RAM中的第二存储分区与RAM中的第一存储分区不同。
结合第二方面,在一种可能的实现方式中,在第一电子设备将第一数据对象上的数据和第一session ID通过通信连接发送至第二电子设备之后,方法还包括:第一电子设备向第二电子设备发送第一指令;第一指令用于指示第二电子设备从第二电子设备上的非应用进程内存中删除第一数据对象上的数据和第一session ID。
结合第二方面,在一种可能的实现方式中,在第一电子设备将第一数据对象上的数据和第一session ID保存在第一电子设备上的非应用进程内存中之后,方法还包括:第一电子设备从第一电子设备上的非应用进程内存中删除第一数据对象上的数据和第一session ID。
第三方面,本申请提供了一种应用数据保存方法,方法包括:第二电子设备与第一电子设备建立通信连接;第二电子设备接收第一电子设备发送的第一数据对象上的数据和第一数据对象绑定的第一session ID,其中,第一数据对象为第一电子设备上第一应用内的数据对象;第二电子设备将第一数据对象上的数据和第一session ID保存在非应用进程内存中。
结合第三方面,在一种可能的实现方式中,第二电子设备接收第一电子设备发送的第一数据对象上的数据和第一数据对象绑定的第一session ID,具体包括:在第二电子设备上的第二应用处于关闭状态时,第二电子设备接收第一电子设备发送的第一数据对象上的数据和第一session ID;其中,第二应用和第一应用为相同或相应的应用。
结合第三方面,在一种可能的实现方式中,在第二电子设备将第一数据对象上的数据和第一session ID保存在非应用进程内存中之后,方法还包括:第二电子设备创建第二应用的进程;第二电子设备通过第二应用的进程从非应用进程内存中获取到第一数据对象上的数据;第二电子设备通过第二应用的进程将第一数据对象上的数据存放在第二电子设备上的应用进程内存中;第二电子设备通过第二应用的进程基于应用进程内存中第一数据对象上的数据生成第二数据对象上的数据。
结合第三方面,在一种可能的实现方式中,非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区;应用进程内存包括RAM中的第二存储分区;其中,RAM中的第二存储分区与RAM中的第一存储分区不同。
结合第三方面,在一种可能的实现方式中,在第二电子设备将第一数据对象上的数据和第一session ID保存在非应用进程内存中之后,方法还包括:第二电子设备接收第一电子设备发送的第一指令;响应于第一指令,第二电子设备从第二电子设备上的非应用进程内存中删除第一数据对象上的数据和第一session ID。
第四方面,本申请提供了一种应用数据保存方法,方法包括:第一电子设备开启第一电子设备上的第一应用,并获取到第一应用中第一数据对象上的数据以及第一数据对象绑定的第一session ID;第一电子设备将第一数据对象上的数据和第一session ID保存在非应用进程内存中。
结合第四方面,在一种可能的实现方式中,在第一电子设备将第一数据对象上的数据和第一session ID保存在非应用进程内存中之后,方法还包括:第一电子设备关闭第一应用;在关闭第一应用后,第一电子设备再次开启第一应用,并获取到第三数据对象绑定的第三session ID;在第三session ID和第一session ID相同的情况下,第一电子设备基于第一数据对象上的数据生成第三数据对象上的数据。
结合第四方面,在一种可能的实现方式中,第一电子设备基于第一数据对象上的数据生成第三数据对象上的数据,具体包括:第一电子设备建第一应用的进程;第一电子设备通过第一应用的进程从非应用进程内存中获取到第一数据对象上的数据;第一电子设备通过第一应用的进程将第一数据对象上的数据存放在应用进程内存中;第一电子设备基于所应用进程内存中第一数据对象上的数据,生成第三数据对象上的数据。
结合第四方面,在一种可能的实现方式中,非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区;应用进程内存包括RAM中的第二存储分区;其中,RAM中的第二存储分区与RAM中的第一存储分区不同。
结合第四方面,在一种可能的实现方式中,在第一电子设备将第一数据对象上的数据和第一session ID保存在非应用进程内存中之后,方法还包括:第一电子设备从非应用进程内存中删除第一数据对象上的数据和第一session ID。
第五方面,本申请提供了一种电子设备,为第一电子设备,其特征在于,第一电子设备包括:一个或多个处理器、一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得第一电子设备执行上述任一方面任一可能的实现方式中提供的一种应用数据保存方法。
第六方面,本申请提供了一种电子设备,为第二电子设备,第二电子设备包括:一个或多个处理器、一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得第二电子设备执行上述任一方面任一可能的实现方式中提供的一种应用数据保存方法。
第七方面,本申请提供了一种计算机可读存储介质,用于存储计算机指令,当计算机指令在第一电子设备上运行时,使得第一电子设备执行上述任一方面任一可能的实现方式中提供的一种应用数据保存方法。
第八方面,本申请提供了一种计算机可读存储介质,用于存储计算机指令,当计算机指令在第二电子设备上运行时,使得第二电子设备执行上述任一方面任一可能的实现方式中提供的一种应用数据保存方法。
第九方面,本申请提供了一种计算机程序产品,当计算机程序产品在第一电子设备上运行时,使得第一电子设备执行上述任一方面任一可能的实现方式中提供的一种应用数据保存方法。
第十方面,本申请提供了一种计算机程序产品,其特征在于,当计算机程序产品在第二电子设备上运行时,使得第二电子设备执行上述任一方面任一可能的实现方式中提供的一种应用数据保存方法。
对于第二方面至第十方面的有益效果,可以参考第一方面中有益效果的描述,本申请不再赘述。
附图说明
图1为本申请实施例提供的一种***10的架构示意图;
图2为本申请实施例提供的一种电子设备100的结构示意图;
图3为本申请实施例提供的一种电子设备100的软件结构框图;
图4为本申请实施例提供的一种电子设备100上的数据缓存模块的功能示意图;
图5A为本申请实施例提供的一种电子设备200上的数据缓存模块的功能示意图;
图5B为本申请实施例提供的一种相同应用内数据对象绑定相同session ID的示意图;
图6为本申请实施例提供的一种如何在电子设备100上恢复得到电子设备100上应用一产生的运行数据的示意图;
图7为本申请实施例提供的一种如何在电子设备200上恢复得到电子设备100上应用一产生的运行数据的示意图;
图8为本申请实施例提供的一种电子设备200在本地恢复得到电子设备100上应用一内的数据的示意图;
图9为本申请实施例提供的一种应用数据恢复方法的流程示意图;
图10为本申请实施例提供的另一种应用数据保存方法的流程示意图;
图11为本申请实施例提供的又一种应用数据保存方法的流程示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请以下实施例中的术语“用户界面(user interface,UI)”,是应用程序或操作***与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(graphic user interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
本申请实施例提供了一种应用数据保存方法。方法包括:电子设备100可提供了一套通用的接口,接口包括保存接口。其中,电子设备100可以调用保存接口,将应用一中数据对象上的数据缓存在本地的非应用进程内存中,或者保存在建立通信连接的其他电子设备(例如电子设备200)上的非应用进程内存中。
其中,非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区。
应用进程内存包括RAM中的第二存储分区;RAM中的第二存储分区与RAM中的第一存储分区不同。
电子设备100可以根据场景需求,将应用一中数据对象上的数据缓存在ROM中或者RAM中的第一存储分区中。例如,当运行内存容量低于阈值时,电子设备100可以将应用一中数据对象上的数据保存在ROM中,这样,可以避免应用一中数据对象上的数据保存在RAM中而占用运行内存容量,有利于提高电子设备100的运行速度。当运行内存容量高于阈值时,电子设备100可以将应用一中数据对象上的数据保存在ROM或者RAM中的第一存储分区中。可选的,当运行内存容量低于阈值时,电子设备100也可以将应用一中数据对象上的数据保存RAM中的第一存储分区中。ROM和RAM中第一存储分区内存储的数据不会随着应用进程的消失而被删除。这样,电子设备100将应用一中数据对象上的数据保存在ROM或者RAM中第一存储分区内,可以防止运行内存过低而导致存放在应用进程内存中的数据在进程消失后被删除的情况发生。
这样,一方面,本申请提供了一套通用的编程范式,可以以极简的方式将数据缓存在本地或者缓存在建立连接的其他电子设备上,减少开发人员的工作量。另一方面,将应用中的数据保存在非应用进程内存中,可以避免电子设备100上的应用关闭后,本地设备或者建立连接的其他电子设备无法恢复得到电子设备100上的应用产生的应用数据的情况发生。
可选的,本申请提供的一套通用的接口还包括删除接口,电子设备100也可以调用删除接口,以极简的方式将应用一中数据对象上的数据从本地删除或者将缓存在建立连接的其他电子设备上的数据删除。
对于本申请实施例提供的编程范式的介绍,将在后续实施例中详细介绍,本申请实施例在此不做赘述。
该方法可以应用于建立组网连接的其它设备恢复得到本地设备上的应用数据。具体的,电子设备100上的应用一开启后,应用一在运行过程中产生应用数据,电子设备100可以基于本申请实施例提供的编程范式,将应用一产生的应用数据缓存在本地的非应用进程内存。若应用一在关闭后,在下次打开应用一时,电子设备100可以基于非应用进程内存中保存的数据恢复得到应用一在关闭之前产生的应用数据。因为应用一在关闭后,非应用进程内存中保存的数据不会删除,而保存在应用进程内存中保存的数据会被删除掉。
例如,用户在使用电子设备100上的备忘录应用记载事件时,电子设备100会周期性地将备忘录产生的应用数据缓存在本地的非应用进程内存中。由于运行内存容量过低导致备忘录应用突然关闭,用户再次打开电子设备100上的备忘录时,电子设备100可以基于非应用进程内存中的数据恢复得到备忘录在关闭之前记载的事件。
该方法也可以应用于在对端设备上恢复得到本地设备上的应用数据。具体的,电子设备100与电子设备200建立了组网连接。电子设备100上的应用一开启后,应用一在运行过程中产生应用数据,并将应用数据实时发送至电子设备200上。电子设备200可以将电子设备100发送的应用数据缓存在本地的非应用进程内存中。之后,电子设备200上的应用一开启之后,可以基于非应用进程内存中的数据恢复得到电子设备100上应用一的应用数据,实现了应用数据从电子设备100迁移到电子设备200上,而无需关注电子设备100和电子设备200上的应用一的运行状态。
本申请可以应用于应用迁移场景,具体的,电子设备100与电子设备200建立了组网连接。电子设备100接收用户操作将应用一上的运行数据迁移到应用二上,电子设备100上的应用一关闭之后,仍然可以在电子设备200上恢复得到电子设备100上应用一产生的运行数据。示例性的,应用一可以是备忘录应用,电子设备100可以是手机,电子设备200可以是平板。用户在手机上打开备忘录应用,并在备忘录上编辑任务事项,手机上备忘录上的编辑记录也会实时流转至平板上。此时用户想要将备忘录切换到屏幕更大平板上继续编辑任务事项,用户可以在平板上打开备忘录应用,无论手机上备忘录应用是开启状态或者关闭状态,平板上的备忘录应用也会有手机上的备忘录应用内的编辑记录,这样,用户可以在平板上继续编辑任务事项。
接下来介绍本申请实施例提供的一种***架构。
请参考图1,图1示出了本申请实施例提供的一种***10的架构示意图。
该***10中可以包括有多个电子设备。多个电子设备的设备类型可以为各种类型,本申请实施例对该多个电子设备的具体类型不作特殊限制。例如,该多个电子设备包括手机,还可以包括平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、智慧屏、可穿戴式设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、车机、智能耳机,游戏机,还可以包括物联网(internet of things,IOT)设备或智能家居设备如智能热水器、智能灯具、智能空调等等。不限于此,***10中的多个设备还可以包括具有触敏表面或触控面板的膝上型计算机(laptop)、具有触敏表面或触控面板的台式计算机等非便携式终端设备等等。
该多个电子设备可以配置不同的软件操作***(operatingsystem,OS),包括但不限于等等。其中,/>为华为的鸿蒙***。
该多个电子设备也可以都配置相同的软件操作***,例如可以均配置
该多个电子设备可以通过以下任意一种方式建立组网连接。
方式一:该多个电子设备可以是连入同一个网络,例如,该多个电子设备可以连入同一个局域网,建立组网连接。
方式二:该多个电子设备还可以登录同一个***账号,建立组网连接。例如,该多个电子设备登录的***账号都可以为“HW1234”。
方式三:该多个电子设备上登录的***账号可以都属于同一个账户组。例如,该多个电子设备上登录的***账号包括有“HW001”,“HW002”,“HW003”。***账户“HW001”,“HW002”,“HW003”同属于账户组“华为之家”。
方式四:多个电子设备可以通过近场通信(Near Field Communication,NFC)、蓝牙(bluetooth,BT)、无线局域网(wireless local area networks,WLAN)例如无线保真点对点(wireless fidelity point to point,Wi-Fi P2P)、红外技术(infrared,IR)等方式建立组网连接。
方式五:多个电子设备可以通过扫描同一个二维码建立一个临时账户组,建立组网连接实现通信。
不限于上述五种方式,电子设备100还可以通过其他的方式建立组网连接,本申请实施例对此不做限定。
此外,多个电子设备也可以结合上述任意几种方式来连接并通信,本申请实施例对此也不做限制。
在其他实施例中,***10也可以只包括两个电子设备,例如电子设备100和电子设备200,电子设备100和电子设备200建立组网连接。本申请以下实施例以***10包括两个电子设备为例进行说明,电子设备100为手机,电子设备200为平板。
电子设备100上安装有一个或多个应用,电子设备200上也安装有一个或多个应用。电子设备100和电子设备200建立组网连接后,电子设备100在运行应用一时,应用一会产生应用数据。电子设备100可以将应用一产生的应用数据实时发送至电子设备200。电子设备200将电子设备100应用一产生的应用数据缓存在本地的非应用进程内存中。之后,电子设备200可以开启应用一,并基于非应用进程内存中的应用数据恢复得到电子设备100上应用一产生的应用数据,实现应用迁移。
本申请以下实施例以电子设备100为手机为例进行说明,电子设备200也可以具有相同或者相似的组成部分。
图2示出了电子设备100的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(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)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备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,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclight emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;
非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-level cell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universalflash storage,UFS)、嵌入式多媒体存储卡(embedded multimedia Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作***或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180G检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,电子设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。
电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android***为例,示例性说明电子设备100的软件结构。
图3是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器、数据缓存模块等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
电子设备100上的应用一开启后,电子设备100创建应用一的数据对象,该数据对象可以被称为第一数据对象。电子设备100获取到第一数据对象上的数据,并获取到第一数据对象绑定的session ID(会话标识),该session ID可以被称为第一session ID。电子设备100与电子设备200上相同的数据对象间可以关联同一个会话标识,当电子设备100中关联了第一session ID的数据对象上的数据发生变化后,电子设备200上关联了该第一session ID的数据对象上的数据,可以基于电子设备100中关联了第一session ID的数据对象上的数据变化而变化,使得电子设备100与电子设备200间相同的数据对象间数据相同,实现了电子设备间相同数据对象上数据的自动同步。数据缓存模块还用于基于极简的编程范式调用缓存接口,将第一数据对象上的数据实时缓存在本地的非应用进程内存中,和/或,缓存在建立组网连接的对端设备上的非应用进程内存中。
非应用进程内存可以包括但不仅限于:ROM只读存储器、RAM随机存取记忆体中的第一存储分区等。这样,可以避免应用一关闭后,第一数据对象上的数据由于保存在应用进程内存中而被删除的情况发生。
在一些实施例中,在数据缓存模块基于极简的编程范式将应用数据实时缓存在本地上之后,在电子设备100上的应用一关闭之后再次开启的情况下,在确定出应用一中数据对象绑定的session ID为第一session ID时,电子设备100可以基于缓存的第一数据对象上的数据重新恢复得到应用一的数据对象上的数据,即恢复得到应用一在关闭之前产生的应用数据。这样,可以避免应用数据没有保存的情况下应用突然关闭导致应用数据丢失的情况发生。
在其他实施例中,在数据缓存模块基于极简的编程范式将应用数据实时缓存在电子设备200上之后,电子设备200上的应用一开启后,电子设备200获取到电子设备200上应用一的数据对象绑定的session ID,在电子设备200上应用一的数据对象绑定的sessionID为第一session ID的情况下,电子设备100可以基于缓存的第一数据对象上的数据恢复得到电子设备200上应用一的数据对象上的数据,即在电子设备200上恢复得到电子设备100上应用一在关闭之前产生的应用数据,实现了应用数据在设备之间迁移。
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绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
图4示例性示出了电子设备100上的数据缓存模块的功能示意图。
如图4所示,电子设备100上数据缓存模块包括分布式数据对象创建模块401和应用数据缓存模块402。
其中,分布式数据对象创建模块401,用于基于创建应用一的数据对象,并得到该数据对象上的数据;该数据对象可以称为第一数据对象。
分布式数据对象创建模块401,还用于获取到第一数据对象绑定的session ID建立绑定关系;该session ID可以称为第一session ID。
分布式数据对象创建模块401,还用于将第一数据对象上的数据和第一sessionID发送至应用数据缓存模块402。
在一些实施例中,应用数据缓存模块402,用于在接收到第一数据对象上的数据和第一session ID后,将第一数据对象上的数据和第一session ID缓存在本地的非应用进程内存中。这样,应用数据缓存模块402可以将第一数据对象上的数据和第一session ID缓存在本地对应的应用进程内存之外。在应用一关闭后,第一数据对象的数据可以不随应用进程的关闭而被删除。
非应用进程内存可以包括但不仅限于:ROM只读存储器、RAM随机存取记忆体中的第一存储分区等。
在其他实施例中,应用数据缓存模块402,也可以将第一数据对象上的数据和第一session ID发送至建立组网连接的对端设备上。
可选的,应用数据缓存模块402将第一数据对象上的数据和第一session ID发送至对端设备上后,对端设备将第一数据对象上的数据和第一session ID保存在对端设备的非应用进程内存中。
图5A示例性示出了电子设备200上的数据缓存模块的功能示意图。
如图5A所示,电子设备200上数据缓存模块包括应用数据缓存模块501和分布式数据对象创建模块502。
其中,应用数据缓存模块501,用于接收到电子设备100发送的第一数据对象上的数据和第一session ID。其中,第一session ID为的电子设备100上第一数据对象绑定的session ID。
应用数据缓存模块501,还用于将第一数据对象上的数据和第一session ID缓存在本地的非应用进程内存中。
这样,即使电子设备200上的应用一没有开启的情况下,电子设备200也可以接收第一数据对象上的数据和第一session ID,并将第一数据对象上的数据和第一session ID保存在本地的非应用进程内存中。因为,电子设备200将数据保存在非应用进程内存中,无需应用一的进程的参与,即使应用一在关闭的状态下,应用一的进程还没创建,仍然可以将数据保存在非应用进程内存中。解决了目前在将数据保存在电子设备200上的非应用进程内存中时,必须要求电子设备200上的应用一开启,由应用一的进程接收数据并将数据保存在电子设备200上的应用进程内存中,同时也解决了应用一在突然关闭的情况下,保存在应用进程内存中的数据会被删除的情况发生。
应用数据缓存模块501,还用于将第一数据对象上的数据和第一session ID发送至分布式数据对象创建模块502。
分布式数据对象创建模块502用于在电子设备200上的应用一开启之后,创建电子设备200上应用一的第二数据对象。并获取到第二数据对象绑定的session ID。
需要说明的是,电子设备200上的应用一和电子设备100上的应用一为相同的应用或者相应的应用。
其中,相同的应用是指电子设备100和电子设备200为类型相同的设备,例如电子设备100和电子设备200均为手机,那么电子设备200上的应用一的安装包和电子设备100上的应用一的安装包也是一样的,例如应用一的安装包可以均为手机版本的备忘录安装包。此外,当第一电子设备和第二电子设备的类型不同时,两个电子设备上安装的应用一也可以是相同的应用。
相应的应用是指电子设备100和电子设备200为不同类型的设备,例如电子设备100为手机,电子设备200为平板,那么电子设备200上的应用一的安装包和电子设备100上的应用一的安装包不同,电子设备100上应用一的安装包为手机版本的安装包,电子设备200上应用一的安装包为平板版本的安装包。例如电子设备100上应用一的安装包为手机版本的备忘录安装包,电子设备200上应用一的安装包为平板版本的备忘录安装包。
在第二数据对象绑定的session ID为第一session ID的情况下,分布式数据对象创建模块502可以基于第一数据对象上的数据恢复得到第二数据对象上的数据。这样,实现了在电子设备200上恢复得到电子设备100应用一运行产生的数据。
本申请实施例中,组网内不同的两个设备上,相同或者相应应用上的数据对象可以绑定同一个session ID,可以实现两个设备上相同或者相应应用上的数据自动同步。例如应用一上的数据发生变化后,电子设备100将应用一上变化的数据发送至电子设备200,电子设备200可以在电子设备100上应用一和电子设备200上应用一绑定的同一个sessionID的情况下,基于电子设备100上应用一内变化的数据修改电子设备200上应用一内的数据。
如图5B所示,在应用一上有一个数据对象的情况下,电子设备100创建应用一的第一数据对象,电子设备200创建应用一的第二数据对象,其中,第一数据对象和第二数据对象关联了同一个session ID,该session ID可以是session ID-1。这样,当电子设备100上应用一的第一数据对象上的数据发生变化后,电子设备200上应用一的第二数据对象上的数据也会自动更新,实现电子设备100上和电子设备200上应用一内的数据同步。
具体的,在电子设备200上的应用一开启之后,创建电子设备200上的应用一的进程。之后,电子设备200上的应用一的进程从非应用进程内存中获取到之前保存的第一数据对象上的数据和第一session ID。电子设备200上的应用一的进程将第一数据对象上的数据和第一session ID保存在应用进程内存中。最后,在电子设备200上的应用一的进程确定出第二数据对象绑定的session ID为第一session ID的情况下,电子设备200上的应用一的进程基于应用进程内存中的第一数据对象上的数据恢复得到第二数据对象上的数据。
图6示例性示出了如何在电子设备100上恢复得到电子设备100上应用一产生的运行数据的示意图。
电子设备100上包括应用一、数据缓存模块601和非应用进程内存模块602。
其中,在电子设备100上恢复得到电子设备100上应用一产生的运行数据可以包括以下步骤。应当理解,以下步骤可以组合、不执行、删除等,对此不加限制。
步骤一:电子设备100上的应用一开启,应用一向数据缓存模块601发送开启指令。
步骤二:数据缓存模块601在接收到开启指令后,创建应用一的第一数据对象。
步骤三:数据缓存模块601获取到第一数据对象上的数据,并获取到第一数据对象绑定的session ID,该session ID可以被称为第一session ID。第一数据对象绑定第一session ID,是为了在应用一关闭后,可以基于应用一上数据对象绑定的session ID,恢复得到应用一上的数据。
需要说明的是,同一个应用内可以有一个数据对象,也可以有多个不同的数据对象,本申请实施例对此不做限定。
步骤四:在数据缓存模块601获取到第一数据对象上的数据,并获取到第一数据对象绑定第一session ID的后,数据缓存模块601将第一数据对象上的数据和第一数据对象绑定的第一session ID发送至非应用进程内存模块602,以使得第一数据对象上的数据和第一数据对象绑定的第一session ID缓存在非应用进程内存中。
在一些示例中,在电子设备100上的应用一开启后,应用一在运行过程中,第一数据对象上的数据实时缓存在应用进程内存中,以便应用一的进程可以从应用进程内存中获取到第一数据对象上的数据。同时,电子设备100可以将第一数据对象上的数据实时缓存在非应用进程内存中,实现了应用一在关闭后,应用进程内存中保存的第一数据对象上的数据随着应用一的进程消失而被删除,而非应用进程内存中保存的第一数据对象上的数据不会随着应用一的进程消失而被删除。
这样,第一数据对象上的数据和第一数据对象绑定的第一session ID缓存在非应用进程内存中,在应用一关闭后,第一数据对象上的数据不会被清除。
可选的,第一数据对象上的数据可以以键-值(key-value)对儿的形式保存在非应用进程内存中。
例如第一数据对象上的数据可以以键-值(key-value)对儿的形式保存在非应用进程内存(例如数据库)中。
数据对象上的数据可以通过字段和属性值来表示。在一些实施例中,字段也可以被称为属性名。
表1
表1示例性示出了数据对象上的数据在数据库中的存储形式。示例性的,第一数据对象上的数据包括字段1和字段2,字段1存储在名称为kv store1的数据库中,字段1在kvstore1内的存储的属性值为key1,字段2存储在名称为kv store1的分布式内容数据库中,字段2在kv store1内的存储的属性值为key2。第N数据对象上的数据包括字段3和字段4,字段3存储在名称为kv store2的数据库中,字段3在kv store2内的存储的属性值为key3,字段4存储在名称为kv store2的数据库中,字段4在kv store2内的存储的属性值为key4。第N+1数据对象上的数据包括字段5和字段6,字段5存储在名称为kv store n的数据库中,字段5在kv store n内的存储的属性值为key5,字段6存储在名称为kv store n的数据库中,字段6在kv store n内的存储的属性值为key6。
需要说明的是,同一个应用可以创建多个不同的数据对象,不同数据对象上的数据不同。不同的数据对象上的数据可以保存在相同的非应用进程内存中,也可以保存在不同的非应用进程内存中,本申请实施例对此不做限定。例如不同的数据对象上的数据可以保存在同一个数据库中,也可以保存在不同的数据库中。本申请实施例对此不做限定。
步骤五:应用一在关闭后又开启,应用一向数据缓存模块601发送关闭后又再次开启指令。
由于运行内存过低或者其他原因,导致电子设备100上的应用一关闭,目前,应用一在运行过程中产生的运行数据会保存在应用进程内存中。应用一关闭后,应用一的进程退出,那么保存在应用进程内存中的运行数据将会被清除。本方案将在运行过程中产生的运行数据缓存在非应用进程内存中,在应用一突然关闭后,运行数据不会被清除。
可选的,若电子设备100监测到用户主动触发导致应用一关闭,那么数据缓存模块601可以不将应用一在运行过程中产生的运行数据(例如第一数据对象上的数据)保存在非应用进程内存中,即只有电子设备100监测到应用一自动关闭,那么数据缓存模块601才将应用一在运行过程中产生的运行数据(例如第一数据对象上的数据)保存在非应用进程内存中。这样,可以避免非应用进程内存中保存的数据量过多。
可选的,电子设备100可以在监测到应用一关闭,无论是应用一自动关闭,还是用户主动触发使得应用一关闭,电子设备100均将应用一在运行过程中产生的运行数据(例如第一数据对象上的数据)保存在非应用进程内存中。
步骤六:在应用一在关闭后又开启后,数据缓存模块601创建应用一的第三数据对象。
步骤七:数据缓存模块601获取到第三数据对象绑定的session ID,在第三数据对象绑定的session ID为第一session ID的情况下,数据缓存模块601向非应用进程内存模块602发送第一请求。
第一请求用于获取到非应用进程内存模块602中存储的第一数据对象上的数据。
步骤八:非应用进程内存模块602将第一数据对象上的数据发送至数据缓存模块601。
步骤九:数据缓存模块601在接收到第一数据对象上的数据后,基于第一数据对象上的数据生成第三数据对象上的数据。
具体的,在电子设备100上的应用一再次开启之后,电子设备100创建电子设备100上的应用一的进程。之后,电子设备100上的应用一的进程从非应用进程内存中获取到之前保存的第一数据对象上的数据和第一session ID。电子设备100上的应用一的进程将第一数据对象上的数据和第一session ID保存在应用进程内存中。最后,在电子设备100上的应用一的进程确定出第三数据对象绑定的session ID为第一session ID的情况下,电子设备200上的应用一的进程基于应用进程内存中的第一数据对象上的数据恢复得到第三数据对象上的数据。
这样,实现了在应用一关闭之后,在应用一再次开启后,电子设备100可以在应用一上恢复得到应用一在关闭之前产生的运行数据。
图7示例性示出了如何在电子设备200上恢复得到电子设备100上应用一产生的运行数据的示意图。
电子设备200上包括应用一、数据缓存模块701、非应用进程内存模块702和通信模块703。
电子设备100上包括应用一、数据缓存模块601和通信模块704。
其中,在电子设备200上恢复得到电子设备100上应用一产生的运行数据,可以包括如下步骤。应当理解,以下步骤可以组合、不执行、删除等,对此不加限制。
步骤一:电子设备100通过通信模块704和电子设备200通过通信模块703建立组网连接。
具体的,可以参考图1实施例示出的设备建立组网连接的方式,本申请实施例在此不再赘述。
步骤二:电子设备100上的应用一开启,应用一向数据缓存模块601发送开启指令。
步骤三:数据缓存模块601在接收到开启指令后,创建应用一的第一数据对象。
步骤四:数据缓存模块601获取到第一数据对象上的数据,并获取到第一数据对象绑定的session ID(第一session ID)。第一数据对象绑定第一session ID,是为了在应用一关闭后,可以基于应用一上数据对象绑定的session ID,恢复得到应用一上的数据。
对于步骤二至步骤四的详细描述,可以参考图6实施例中步骤一至步骤三的描述,本申请实施例在此不再赘述。
可选的,图7中也可以包括图6中所示的非应用进程内存模块602,即电子设备100也可以选择将第一数据对象上的数据和第一session ID保存在电子设备100上的非应用进程内存模块602中。
步骤五:数据缓存模块601将第一数据对象上的数据和第一session ID发送至通信模块704。
可选的,数据缓存模块601可以周期性的将第一数据对象上的数据发送至通信模块704。
可选的,数据缓存模块601也可以在应用一关闭之前,将第一数据对象上的数据发送至通信模块704。
步骤六:通信模块704在获取到第一数据对象上的数据和第一session ID后,将第一数据对象上的数据和第一session ID通过组网连接发送至电子设备200上的通信模块703。
步骤七:通信模块703在获取到第一数据对象上的数据和第一session ID后,将第一数据对象上的数据和第一session ID发送至非应用进程内存模块702。
非应用进程内存模块702在接收到第一数据对象上的数据和第一session ID后,将第一数据对象上的数据和第一session ID保存在非应用进程内存中。
这样,就算电子设备100上的应用一关闭,电子设备200上仍然存储有电子设备100上的应用一关闭之前产生的运行数据。
对于非应用进程内存模块702如何将第一数据对象上的数据和第一session ID保存在非应用进程内存中的,可以参考图6实施例中步骤四的描述,本申请实施例在此不再赘述。
步骤八:电子设备200上的应用一开启,电子设备200上的应用一向数据缓存模块701发送开启指令。
步骤九:数据缓存模块701在接收到开启指令后,创建应用一的第二数据对象,并获取到第二数据对象绑定的session ID。
步骤十:数据缓存模块701确定出第二数据对象绑定的session ID为第一sessionID。
需要说明的是,电子设备200上应用一内数据对象绑定的session ID,是预置好的。例如,电子设备100和电子设备200上相同应用内的数据对象可以绑定同一个sessionID。这样,可以实现两个设备上应用间数据的同步。
步骤十一:数据缓存模块701将第一session ID发送至非应用进程内存模块702。
因为非应用进程内存模块702中可能存储有电子设备100上多个不同应用内的数据,例如多组应用内数据对象上的数据和应用内数据对象绑定的session ID的存储数据。数据缓存模块701需确定出获取到哪一个session ID关联的数据对象上的数据。因此,数据缓存模块701可以将电子设备200上应用内数据对象绑定的第一session ID发送至非应用进程内存模块702,并基于电子设备200上应用内数据对象绑定的第一session ID确定出电子设备100上session ID也为第一session ID关联的数据对象上的数据。
步骤十二:响应于第一session ID,非应用进程内存模块702获取到第一sessionID关联的第一数据对象上的数据,并将第一数据对象上的数据发送至数据缓存模块701。
步骤十三:数据缓存模块701在接收到第一数据对象上的数据后,基于第一数据对象上的数据恢复得到第二数据对象上的数据。
在一些示例中,在电子设备200上的应用一开启,电子设备200对应创建应用一的进程。之后,电子设备200上的应用一的进程获取到第二数据对象的session ID,该sessionID可以是第一session ID。电子设备200上的应用一的进程基于第一session ID从非应用进程内存中获取到与第一session ID关联的第一数据对象上的数据。电子设备200上应用一的进程将第一数据对象上的数据保存在应用进程内存中。最后,电子设备200上的应用一的进程基于应用进程内存中的第一数据对象上的数据恢复得到第二数据对象上的数据。
这样,实现了在电子设备200的应用一上恢复得到电子设备100上应用一内的数据。并且,在对端设备上恢复得到应用内的数据,与两端设备上应用的运行状态无关,即使在应用关闭的情况下,仍然可以恢复得到在对端设备上恢复得到应用内的数据。解决了目前同步两端设备上相同应用内的数据同步时,两端设备上该相同应用都必须为开启状态的问题。
图8示例性示出了电子设备200在本地恢复得到电子设备100上应用一内的数据的示意图。
电子设备100也可以在本地恢复得到电子设备100上应用一内的数据,具体实现与图8类似,本申请实施例以电子设备200如何恢复得到电子设备100上应用一内的数据为例进行说明。应当理解,以下步骤可以组合、不执行、删除等,对此不加限制。例如,图8对应的实施例中的步骤806可以不执行或者删除。
S801、电子设备200开启应用一,并创建应用一的第二数据对象。
不仅限于第二数据对象,电子设备200可以创建应用一的多个不同的数据对象,本申请实施例以应用一的第二数据对象为例进行说明,但不构成限定。
S802、电子设备200获取到第二数据对象绑定的session ID。
应用内数据对象绑定的session ID可以是预设好的。不同设备上相同或者相应应用内的数据对象可以绑定同一个session ID。
可选的,应用内的数据对象可以有多个,该多个数据对象的类型可以不同,那么不用设备上相同应用内相同类型的数据对象可以绑定同一个session ID。
可选的,应用内的数据对象可以有多个,该多个数据对象也可以绑定同一个session ID。本申请实施例对此不做限定。
S803、电子设备200是否获取到缓存的数据及对应的session ID?
也就是说,电子设备200本地上是否缓存的有数据及对应的session ID。若有,则电子设备100执行S804,否则,电子设备200执行S807。
S804、缓存的数据对应的session ID和第二数据对象的session ID相同?
基于图7实施例的介绍,电子设备100可以将应用一产生的运行数据保存在建立组网连接的电子设备200上。该缓存的数据可以指电子设备100上应用一产生的运行数据。例如电子设备100上应用一产生的运行数据可以是第一数据对象上的数据。
电子设备200可以从本地的缓存区域中获取到缓存的数据及缓存的数据对应的session ID。电子设备200可能缓存的有多组缓存的数据及缓存的数据对应的session ID,那么电子设备100可以基于第二数据对象绑定的session ID确定出与第二数据对象绑定的session ID相同的session ID对应的缓存的数据。这样,电子设备100可以获取到电子设备100上应用一内的运行数据。
若电子设备200没有获取到与第二数据对象绑定的session ID相同的session ID对应的缓存的数据,那么电子设备200执行S807。
若电子设备200获取到与第二数据对象绑定的session ID相同的session ID对应的缓存的数据,那么电子设备200执行S805。
S805、电子设备200基于缓存的数据恢复得到第二数据对象上的数据。
例如,电子设备200基于第二数据对象绑定的session ID获取到第一数据对象上的数据,第一数据对象上的数据可以是电子设备100上应用一的运行数据,电子设备200可以基于第一数据对象上的数据恢复得到第二数据对象上的数据。这样,即实现了在电子设备200上恢复得到电子设备100上的应用内的数据。并且,由于第一数据对象上的数据保存在电子设备200上的非应用进程内存中,即使电子设备100上和电子设备200上应用一的运行状态不同,例如电子设备100上应用一开启,电子设备200上应用一关闭,电子设备200仍然可以在电子设备200上的应用一内恢复得到电子设备100上应用一内的运行数据。
S806、电子设备200删除缓存的数据。
例如,在电子设备200基于第一数据对象上的数据恢复得到第二数据对象上的数据后,电子设备200可以将缓存在非应用进程中的第一数据对象上的数据删除掉,即删除掉已恢复的数据。这样,一方面,可以减少缓存的数据占用电子设备200上的内存空间。另一方面,在电子设备200上恢复得到缓存的数据后,将缓存的数据删除,可以保证数据的安全性。
可选的,电子设备200也可以不执行S806,即使电子设备200基于第一数据对象上的数据恢复得到第二数据对象上的数据后,还是可以将第一数据对象上的数据保存在本地,以便下一次开启电子设备200上的应用一时,再次在电子设备200上的应用一上恢复得到第一数据对象上的数据。
可选的,电子设备200可以在恢复缓存的数据满足一定次数后,再将缓存的数据删除。例如在电子设备200基于第一数据对象上的数据恢复得到第二数据对象上的数据达到三次以上之后,电子设备200再将第一数据对象上的数据删除。
S807、结束。
图9为本申请实施例提供的一种应用数据恢复方法的流程示意图。
其中,S903-S906为在电子设备100上或者电子设备200上恢复得到电子设备100上应用一产生的运行数据的方法步骤。
S907-S910为在电子设备100上或者电子设备200上删除保存的电子设备100上应用一产生的运行数据的方法步骤。
应当理解,以下步骤可以组合、不执行、删除等,对此不加限制。例如S907-S910也可以在S903-S906之前执行。
S901、电子设备100上的应用一开启。电子设备100创建应用一的第一数据对象。
在S901之前,电子设备100与电子设备200建立组网连接,具体的,可以参考前述实施例介绍的电子设备100与电子设备200建立组网连接的方式,本申请实施例在此不再赘述。
不仅限于第一数据对象,电子设备100可以创建应用一的多个不同的数据对象,本申请实施例以应用一的第一数据对象为例进行说明,但不构成限定。
S902、电子设备100获取到第一数据对象上的数据和第一数据对象绑定的sessionID。
应用内数据对象绑定的session ID可以是预设好的。不用设备上相同应用内的数据对象可以绑定同一个session ID。
可选的,应用内的数据对象可以有多个,该多个数据对象的类型可以不同,那么不用设备上相同应用内相同类型的数据对象可以绑定同一个session ID。
可选的,应用内的数据对象可以有多个,该多个数据对象也可以绑定同一个session ID。本申请实施例对此不做限定。
S903、电子设备100调用保存接口,并确定出保存的设备标识为电子设备100还是电子设备200?
电子设备100可以将应用一产生的运行数据保存在电子设备100上或者保存在建立连接的电子设备200上。
本申请提供了一套通用的编程范式,电子设备100调用保存接口,可以以极简的方式将数据缓存在本地或者缓存在建立连接的其他电子设备上,减少开发人员的工作量。
编程范式中保存接口的内容示例如下:
let obj=();//创建数据对象
obj.setSessionId(“sessionId”);//获取数据对象的session ID
await result=obj.save();//选择保存的设备
保存接口主要包括三部分,第一部分是创建数据对象接口,创建数据对象接口用于创建应用的数据对象。第二部分是获取到数据对象的session ID接口,数据对象的session ID接口用于获取到应用的数据对象绑定的session ID。第三部分是选择保存的设备接口,选择保存的设备接口用于选择保存的设备标识。
其中,选择保存的设备接口可以指定一个或多个设备。即同时将应用一产生的运行数据同时保存在一个或多个设备上。
需要说明的是,在其他实施例中,创建数据对象接口的名称、获取到数据对象的session ID接口的名称、选择保存的设备接口的名称均可能会发生变化,但是原理类似,本申请实施例对此不做限定。
S904、在保存的设备标识为电子设备200的情况下,将第一数据对象上的数据和第一数据对象绑定的session ID发送至电子设备200。
电子设备100可以调用保存接口并选择保存的设备的标识为电子设备200的设备标识。在确定出保存的设备的标识为电子设备200的设备标识的情况下,电子设备100将第一数据对象上的数据和第一数据对象绑定的session ID发送至电子设备200。
S905、电子设备200将第一数据对象上的数据和第一数据对象绑定的session ID缓存在本地的非应用进程内存中。
电子设备200在接收都电子设备100发送的第一数据对象上的数据和第一数据对象绑定的session ID后,将第一数据对象上的数据和第一数据对象绑定的session ID保存在本地的非应用进程内存中。这样,可以实现即使在电子设备200上的应用没有开启的情况下,仍然可以接收并保存电子设备100发送的应用内的数据,应用内的数据可以是第一数据对象上的数据,并在后续电子设备200上的应用开启后,在电子设备200上的应用上恢复得到电子设备100上的应用内的数据。
可选的,在电子设备200将第一数据对象上的数据和第一数据对象绑定的sessionID保存在本地之后,电子设备200可以基于异地回调的方式,告知电子设备100,已将第一数据对象上的数据和第一数据对象绑定的session ID保存在本地。
在电子设备200将第一数据对象上的数据和第一数据对象绑定的session ID缓存在本地之后,电子设备200可以在电子设备200上的应用内恢复得到第一数据对象上的数据。具体的实现方式,可以参考图7实施例中的描述,本申请实施例在此不再赘述。
本申请提供了一套通用的编程范式,电子设备100调用恢复接口,可以以极简的方式恢复得到保存在本地数据,减少开发人员的工作量。
assert(result.version==obj.version);//恢复数据对象上的数据
电子设备200可以调用该恢复接口,在电子设备200上的应用一上恢复得到电子设备100上应用一产生的运行数据。
需要说明的是,在其他实施例中,恢复接口的名称可能会发生变化,但是原理类似,本申请实施例对此不做限定。
S906、在保存的设备标识为电子设备100的情况下,将第一数据对象上的数据和第一数据对象绑定的session ID缓存在本地的非应用进程内存中。
电子设备100可以调用保存接口并选择保存的设备的标识为电子设备100的设备标识。
在确定出保存的设备的标识为电子设备100的设备标识的情况下,电子设备100将第一数据对象上的数据和第一数据对象绑定的session ID缓存在本地的非应用进程内存中。具体的,电子设备100可以将第一数据对象上的数据和第一数据对象绑定的session ID保存在非应用进程内存中,在电子设备100上的应用一突然关闭后,第一数据对象上的数据不会被清除。
可选的,电子设备100可以调用保存接口并选择保存的设备的标识为电子设备100和电子设备200的设备标识,即同时将电子设备100上应用一产生的运行数据保存在多个设备上。在确定出保存的设备的标识为电子设备100的设备标识和电子设备200的设备标识的情况下,一方面,电子设备100将第一数据对象上的数据和第一数据对象绑定的session ID缓存在本地的非应用进程内存中。另一方面,电子设备100将第一数据对象上的数据和第一数据对象绑定的session ID发送至电子设备200,以使得第一数据对象上的数据和第一数据对象绑定的session ID可以保存在电子设备200上的非应用进程内存中。
S907、在保存数据之后,电子设备100可以调用删除接口,并确定出删除的设备标识为电子设备100还是电子设备200。
电子设备100可以将保存在电子设备100上或者保存在建立连接的电子设备200上的应用一产生的运行数据再删除掉。
本申请提供了一套通用的编程范式,电子设备100调用删除接口,可以以极简的方式将数据从本地或者从建立连接的其他电子设备上删除掉,减少开发人员的工作量。
删除接口的内容如下:
await result=obj.delet();//选择删除的设备
其中,选择删除的设备接口可以指定一个或多个设备。即同时将应用一产生的运行数据同时从一个或多个设备上删除掉。
需要说明的是,在其他实施例中,选择删除的设备接口的名称可能会发生变化,但是原理类似,本申请实施例对此不做限定。
S908、在删除的设备标识为电子设备200的情况下,电子设备100向电子设备200发送删除指令。
电子设备100可以调用删除接口选择删除的设备的标识为电子设备200的设备标识。在确定出删除的设备的标识为电子设备200的设备标识的情况下,电子设备100将删除指令发送至电子设备200。
S909、响应于删除指令,电子设备200将第一数据对象上的数据和第一数据对象绑定的session ID从本地删除掉。
可选的,在电子设备200将第一数据对象上的数据和第一数据对象绑定的sessionID从本地删除掉之后,电子设备200可以基于异地回调的方式,告知电子设备100,已将第一数据对象上的数据和第一数据对象绑定的session ID从本地删除掉。
S910、在保存的设备标识为电子设备100的情况下,电子设备100将第一数据对象上的数据和第一数据对象绑定的session ID从本地删除掉。
电子设备100可以调用删除接口并选择删除的设备的标识为电子设备100的设备标识。在确定出删除的设备的标识为电子设备100的设备标识的情况下,电子设备100将第一数据对象上的数据和第一数据对象绑定的session ID从本地删除掉。
可选的,电子设备100可以调用删除接口并选择删除的设备的标识为电子设备100和电子设备200的设备标识,即可以将电子设备100上应用一产生的运行数据同时从多个设备上删除掉。在确定出删除的设备的标识为电子设备100的设备标识和电子设备200的设备标识的情况下,一方面,电子设备100将第一数据对象上的数据和第一数据对象绑定的session ID从本地删除掉。另一方面,电子设备100向电子设备200发送删除指令,以使得电子设备200在接收到删除指令后,将保存的第一数据对象上的数据和第一数据对象绑定的session ID从本地删除掉。
图10为本申请实施例提供的另一种应用数据保存方法的流程示意图。
S1001、第一电子设备开启第一电子设备上的第一应用,并获取到第一应用中第一数据对象上的数据以及第一数据对象绑定的第一session ID。
第一电子设备可以是电子设备100,第二电子设备可以是电子设备200。
第一应用可以是前述实施例中描述的电子设备100上的应用一。
在一种可能的实现方式中,第一电子设备,还用于将第一数据对象上的数据和第一session ID保存在第一电子设备上的非应用进程内存中。
这样,第一电子设备也可以将第一数据对象上的数据保存在本地的非应用进程内存中,从而实现第一应用在关闭后在开启时,可以再次恢复得到第一应用在关闭之前产生的应用数据。
在一种可能的实现方式中,第一电子设备,还用于关闭第一应用;第一电子设备,还用于在关闭第一应用后,再次开启第一应用,并获取到第三数据对象绑定的第三sessionID;第一电子设备,还用于在第三session ID和第一session ID相同的情况下,基于第一数据对象上的数据生成第三数据对象上的数据。这样,实现第一应用在关闭后在开启时,可以再次恢复得到第一应用在关闭之前产生的应用数据。
在一种可能的实现方式中,第一电子设备,还用于从第一电子设备上的非应用进程内存中删除第一数据对象上的数据和第一session ID。这样,本申请也可以将保存在本地设备上的应用数据删除掉。
S1002、第一电子设备将第一数据对象上的数据和第一session ID发送至第二电子设备。
S1003、第二电子设备接收第一数据对象上的数据和第一session ID,并将第一数据对象上的数据和第一session ID保存在非应用进程内存中。
在一种可能的实现方式中,第二电子设备具体用于:在第二电子设备上的第二应用处于关闭状态时,接收第一数据对象上的数据和第一session ID;其中,第二应用和第一应用为相同或相应的应用。这样,第二电子设备上的第二应用在关闭状态下,也可以接收并保存第一电子设备发送的第一数据对象上的数据。
其中,第二应用可以是前述实施例中描述的电子设备200上的应用一。
其中,相同的应用是指第一电子设备和第二电子设备为类型相同的设备,例如均为手机,那么第一电子设备上的第一应用的安装包和第二电子设备上的第二应用的安装包是一样的。
相应的应用是指第一电子设备和第二电子设备为类型不同的设备,例如第一电子设备为手机,第二电子设备为平板。那么第一电子设备上的第一应用的安装包和第二电子设备上的第二应用的安装包也不同。
可选的,当第一电子设备和第二电子设备为类型不同的设备时,第一电子设备上安装的第一应用的安装包和第二电子设备上的第二应用的安装包也可以是相同的。
在一种可能的实现方式中,第二电子设备,还用于开启第二应用,并获取到第二应用中第二数据对象绑定的第二session ID;第二电子设备,还用于在第二session ID和第一session ID相同的情况下,基于第一数据对象上的数据生成第二数据对象上的数据。
这样,不同的设备上相同应用内的数据对象可以绑定相同的session ID,可以实现不同的设备上相同应用内的数据自动同步。
在一种可能的实现方式中,第二电子设备,具体用于:创建第二应用的进程;通过第二应用的进程从非应用进程内存中获取到第一数据对象上的数据;通过第二应用的进程将第一数据对象上的数据存放在第二电子设备上的应用进程内存中;基于应用进程内存中第一数据对象上的数据,生成第二数据对象上的数据。
可选的,应用进程内存为第二电子设备上所有进程共用的一块存储区域。非应用进程内存为第二电子设备上所有非进程共用的一块存储区域。
可选的,不同应用所占用的应用进程内存可以不同。不同应用占用的非应用进程内存也可以不同。
这样,在第二电子设备上第二应用开启后,可以基于在开启之前保存的第一数据对象上生成的数据第二数据对象上的数据。
在一种可能的实现方式中,非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区;应用进程内存包括RAM中的第二存储分区;其中,RAM中的第二存储分区与RAM中的第一存储分区不同。
在一种可能的实现方式中,第一电子设备,还用于向第二电子设备发送第一指令;第二电子设备,还用于响应于第一指令,从第二电子设备上的非应用进程内存中删除第一数据对象上的数据和第一session ID。这样,本申请也可以将保存在其他电子设备上的应用数据删除掉。
这样,无论第二电子设备上的第二应用是开启还是关闭,均可以接收并保存第一电子设备发送的第一数据对象上的数据。
通过第一方面提供的方法,实现了将数据保存在非应用进程内存中,保存在非应用进程内存中的应用数据不会随着应用的关闭而被删除。另一方面,实现了无需关注设备上应用的运行状态,即可在本地设备的应用上或者对端设备的应用上保存并且恢复得到本地设备的应用在关闭之前的运行数据。
图11为本申请实施例提供的又一种应用数据保存方法的流程示意图。
S1101、第一电子设备开启第一电子设备上的第一应用,并获取到第一应用中第一数据对象上的数据以及第一数据对象绑定的第一session ID。
S1102、第一电子设备将第一数据对象上的数据和第一session ID保存在非应用进程内存中。
在一种可能的实现方式中,在第一电子设备将第一数据对象上的数据和第一session ID保存在非应用进程内存中之后,方法还包括:第一电子设备关闭第一应用;在关闭第一应用后,第一电子设备再次开启第一应用,并获取到第三数据对象绑定的第三session ID;在第三session ID和第一session ID相同的情况下,第一电子设备基于第一数据对象上的数据生成第三数据对象上的数据。
在一种可能的实现方式中,第一电子设备基于第一数据对象上的数据生成第三数据对象上的数据,具体包括:第一电子设备建第一应用的进程;第一电子设备通过第一应用的进程从非应用进程内存中获取到第一数据对象上的数据;第一电子设备通过第一应用的进程将第一数据对象上的数据存放在应用进程内存中;第一电子设备基于所应用进程内存中第一数据对象上的数据,生成第三数据对象上的数据。
在一种可能的实现方式中,非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区;应用进程内存包括RAM中的第二存储分区;其中,RAM中的第二存储分区与RAM中的第一存储分区不同。
在一种可能的实现方式中,在第一电子设备将第一数据对象上的数据和第一session ID保存在非应用进程内存中之后,方法还包括:第一电子设备从非应用进程内存中删除第一数据对象上的数据和第一session ID。
本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本发明技术方案的实施例而已,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (28)
1.一种应用数据保存***,其特征在于,所述***包括通信连接的第一电子设备和第二电子设备,其中,
所述第一电子设备,用于开启所述第一电子设备上的第一应用,并获取到所述第一应用中第一数据对象上的数据以及所述第一数据对象绑定的第一sessionID;
所述第一电子设备,还用于将所述第一数据对象上的数据和所述第一session ID发送至所述第二电子设备;
所述第二电子设备,用于接收所述第一数据对象上的数据和所述第一sessionID,并将所述第一数据对象上的数据和所述第一sessionID保存在非应用进程内存中。
2.根据权利要求1所述的***,其特征在于,所述第二电子设备具体用于:
在所述第二电子设备上的第二应用处于关闭状态时,接收所述第一数据对象上的数据和所述第一session ID;其中,所述第二应用和所述第一应用为相同或相应的应用。
3.根据权利要求2所述的***,其特征在于,所述第二电子设备,还用于开启所述第二应用,并获取到所述第二应用中第二数据对象绑定的第二sessionID;
所述第二电子设备,还用于在所述第二session ID和所述第一session ID相同的情况下,基于所述第一数据对象上的数据生成所述第二数据对象上的数据。
4.根据权利要求3所述的***,其特征在于,所述第二电子设备,具体用于:
创建所述第二应用的进程;
通过所述第二应用的进程从所述非应用进程内存中获取到所述第一数据对象上的数据;
通过所述第二应用的进程将所述第一数据对象上的数据存放在所述第二电子设备上的应用进程内存中;
基于所述应用进程内存中所述第一数据对象上的数据,生成所述第二数据对象上的数据。
5.根据权利要求1-4任一项所述的***,其特征在于,所述第一电子设备,还用于将所述第一数据对象上的数据和所述第一session ID保存在所述第一电子设备上的非应用进程内存中。
6.根据权利要求5任一项所述的***,其特征在于,所述第一电子设备,还用于关闭所述第一应用;
所述第一电子设备,还用于在关闭所述第一应用后,再次开启所述第一应用,并获取到第三数据对象绑定的第三sessionID;
所述第一电子设备,还用于在所述第三session ID和所述第一session ID相同的情况下,基于所述第一数据对象上的数据生成所述第三数据对象上的数据。
7.根据权利要求4所述的***,其特征在于,所述非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区;
所述应用进程内存包括RAM中的第二存储分区;
其中,所述RAM中的第二存储分区与所述RAM中的第一存储分区不同。
8.根据权利要求1-7任一项所述的***,其特征在于,所述第一电子设备,还用于向所述第二电子设备发送第一指令;
所述第二电子设备,还用于响应于所述第一指令,从所述第二电子设备上的非应用进程内存中删除所述第一数据对象上的数据和所述第一sessionID。
9.根据权利要求5或6所述的***,其特征在于,所述第一电子设备,还用于从所述第一电子设备上的非应用进程内存中删除所述第一数据对象上的数据和所述第一session ID。
10.一种应用数据保存方法,其特征在于,所述方法包括:
第一电子设备与第二电子设备建立通信连接;
所述第一电子设备开启所述第一电子设备上的第一应用,并获取到所述第一应用中第一数据对象上的数据以及所述第一数据对象绑定的第一session ID;
所述第一电子设备将所述第一数据对象上的数据和所述第一session ID通过所述通信连接发送至所述第二电子设备;所述第一数据对象上的数据和所述第一session ID用于所述第二电子设备将所述第一数据对象上的数据和所述第一session ID保存在非应用进程内存中。
11.根据权利要求10所述的方法,其特征在于,所述第一电子设备将所述第一数据对象上的数据和所述第一session ID通过所述通信连接发送至所述第二电子设备,具体包括:
所述第一电子设备在所述第二电子设备上的第二应用处于关闭状态时,将所述第一数据对象上的数据和所述第一session ID通过所述通信连接发送至所述第二电子设备;其中,所述第二应用和所述第一应用为相同或相应的应用。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
所述第一电子设备将所述第一数据对象上的数据和所述第一session ID保存在所述第一电子设备上的非应用进程内存中。
13.根据权利要求12所述的方法,其特征在于,在所述第一电子设备将所述第一数据对象上的数据和所述第一session ID保存在所述第一电子设备上的非应用进程内存中之后,所述方法还包括:
所述第一电子设备关闭所述第一应用;
在所述第一电子设备关闭所述第一应用后,所述第一电子设备再次开启所述第一应用,并获取到第三数据对象绑定的第三sessionID;
在所述第三sessionID和所述第一session ID相同的情况下,所述第一电子设备基于所述第一数据对象上的数据生成所述第三数据对象上的数据。
14.根据权利要求13所述的方法,其特征在于,所述第一电子设备基于所述第一数据对象上的数据生成所述第三数据对象上的数据,具体包括:
所述第一电子设备创建所述第一应用的进程;
所述第一电子设备通过所述第一应用的进程从所述非应用进程内存中获取到所述第一数据对象上的数据;
所述第一电子设备通过所述第一应用的进程将所述第一数据对象上的数据存放在所述第一电子设备上的应用进程内存中;
所述第一电子设备通过所述第一应用的进程基于所述应用进程内存中所述第一数据对象上的数据生成所述第三数据对象上的数据。
15.根据权利要求14所述的方法,其特征在于,所述非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区;
所述应用进程内存包括RAM中的第二存储分区;
其中,所述RAM中的第二存储分区与所述RAM中的第一存储分区不同。
16.根据权利要求10-15任一项所述的方法,其特征在于,在所述第一电子设备将所述第一数据对象上的数据和所述第一sessionID通过所述通信连接发送至所述第二电子设备之后,所述方法还包括:
所述第一电子设备向所述第二电子设备发送第一指令;所述第一指令用于指示所述第二电子设备从所述第二电子设备上的非应用进程内存中删除所述第一数据对象上的数据和所述第一sessionID。
17.根据权利要求12-15任一项所述的方法,其特征在于,在所述第一电子设备将所述第一数据对象上的数据和所述第一session ID保存在所述第一电子设备上的非应用进程内存中之后,所述方法还包括:
所述第一电子设备从所述第一电子设备上的非应用进程内存中删除所述第一数据对象上的数据和所述第一sessionID。
18.一种应用数据保存方法,其特征在于,所述方法包括:
第二电子设备与第一电子设备建立通信连接;
所述第二电子设备接收所述第一电子设备发送的第一数据对象上的数据和所述第一数据对象绑定的第一sessionID,其中,所述第一数据对象为所述第一电子设备上第一应用内的数据对象;
所述第二电子设备将所述第一数据对象上的数据和所述第一session ID保存在非应用进程内存中。
19.根据权利要求18所述的方法,其特征在于,所述第二电子设备接收所述第一电子设备发送的第一数据对象上的数据和所述第一数据对象绑定的第一sessionID,具体包括:
在所述第二电子设备上的第二应用处于关闭状态时,所述第二电子设备接收所述第一电子设备发送的所述第一数据对象上的数据和所述第一sessionID;其中,所述第二应用和所述第一应用为相同或相应的应用。
20.根据权利要求18或19所述的方法,其特征在于,在所述第二电子设备将所述第一数据对象上的数据和所述第一session ID保存在非应用进程内存中之后,所述方法还包括:
所述第二电子设备创建所述第二应用的进程;
所述第二电子设备通过所述第二应用的进程从所述非应用进程内存中获取到所述第一数据对象上的数据;
所述第二电子设备通过所述第二应用的进程将所述第一数据对象上的数据存放在所述第二电子设备上的应用进程内存中;
所述第二电子设备通过所述第二应用的进程基于所述应用进程内存中所述第一数据对象上的数据生成所述第二数据对象上的数据。
21.根据权利要求20所述的方法,其特征在于,所述非应用进程内存包括以下任意一项:ROM只读存储器、RAM随机存取记忆体中的第一存储分区;
所述应用进程内存包括RAM中的第二存储分区;
其中,所述RAM中的第二存储分区与RAM中的第一存储分区不同。
22.根据权利要求18-21任一项所述的方法,其特征在于,在所述第二电子设备将所述第一数据对象上的数据和所述第一session ID保存在非应用进程内存中之后,所述方法还包括:
所述第二电子设备接收所述第一电子设备发送的第一指令;
响应于所述第一指令,所述第二电子设备从所述第二电子设备上的非应用进程内存中删除所述第一数据对象上的数据和所述第一session ID。
23.一种电子设备,为第一电子设备,其特征在于,所述第一电子设备包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述第一电子设备执行上述权利要求10-17中的任一项所述的方法。
24.一种电子设备,为第二电子设备,其特征在于,所述第二电子设备包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述第二电子设备执行上述权利要求18-22中的任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,用于存储计算机指令,当所述计算机指令在第一电子设备上运行时,使得所述第一电子设备执行上述权利要求10-17中的任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,用于存储计算机指令,当所述计算机指令在第二电子设备上运行时,使得所述第二电子设备执行上述权利要求18-22中的任一项所述的方法。
27.一种计算机程序产品,其特征在于,当所述计算机程序产品在第一电子设备上运行时,使得所述第一电子设备执行上述权利要求10-17中的任一项所述的方法。
28.一种计算机程序产品,其特征在于,当所述计算机程序产品在第二电子设备上运行时,使得所述第二电子设备执行上述权利要求18-22中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211008280.1A CN117675881A (zh) | 2022-08-22 | 2022-08-22 | 一种应用数据保存方法及电子设备 |
PCT/CN2023/113734 WO2024041456A1 (zh) | 2022-08-22 | 2023-08-18 | 一种应用数据保存方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211008280.1A CN117675881A (zh) | 2022-08-22 | 2022-08-22 | 一种应用数据保存方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117675881A true CN117675881A (zh) | 2024-03-08 |
Family
ID=90012464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211008280.1A Pending CN117675881A (zh) | 2022-08-22 | 2022-08-22 | 一种应用数据保存方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117675881A (zh) |
WO (1) | WO2024041456A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10430266B2 (en) * | 2016-06-13 | 2019-10-01 | Vmware, Inc. | Full state session reviving, forking, and snapshoting based on an application data dump |
CN106792442B (zh) * | 2016-11-30 | 2020-07-03 | 北京小米移动软件有限公司 | 数据迁移方法及装置 |
CN113515317A (zh) * | 2020-03-25 | 2021-10-19 | 华为技术有限公司 | 数据恢复的方法、装置 |
US11531600B2 (en) * | 2020-04-29 | 2022-12-20 | Memverge, Inc. | Persistent memory image capture |
CN113901032A (zh) * | 2021-10-25 | 2022-01-07 | 广州三星通信技术研究有限公司 | 数据迁移方法及装置 |
-
2022
- 2022-08-22 CN CN202211008280.1A patent/CN117675881A/zh active Pending
-
2023
- 2023-08-18 WO PCT/CN2023/113734 patent/WO2024041456A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024041456A1 (zh) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113704014B (zh) | 日志获取***、方法、电子设备及存储介质 | |
CN109559270B (zh) | 一种图像处理方法及电子设备 | |
CN114443277A (zh) | 内存管理方法、装置、电子设备以及计算机可读存储介质 | |
CN113553130B (zh) | 应用执行绘制操作的方法及电子设备 | |
CN113254409B (zh) | 文件共享方法、***及相关设备 | |
CN114553814B (zh) | 处理推送消息的方法和装置 | |
CN114461057A (zh) | Vr显示控制方法、电子设备及计算机可读存储介质 | |
CN114222187B (zh) | 视频编辑方法和电子设备 | |
WO2021185352A1 (zh) | 一种版本升级方法及相关装置 | |
CN115119048B (zh) | 一种视频流处理方法及电子设备 | |
CN112416984A (zh) | 一种数据处理方法及其装置 | |
CN115482143B (zh) | 应用的图像数据调用方法、***、电子设备及存储介质 | |
CN114691248B (zh) | 显示虚拟现实界面的方法、装置、设备和可读存储介质 | |
CN115017498A (zh) | 小应用程序的操作方法和电子设备 | |
WO2024041456A1 (zh) | 一种应用数据保存方法及电子设备 | |
CN116795476B (zh) | 一种删除壁纸的方法及电子设备 | |
CN113495744B (zh) | 一种版本升级方法及相关装置 | |
CN116709609B (zh) | 消息传递方法、电子设备及存储介质 | |
CN117221713B (zh) | 参数加载方法和电子设备 | |
WO2023179682A1 (zh) | 一种设备协同方法 | |
CN116048685B (zh) | 杂志锁屏的显示方法、图形界面及电子设备 | |
WO2024045841A1 (zh) | 存储的方法、装置和电子设备 | |
CN118051376A (zh) | 一种数据备份方法及电子设备 | |
CN117784990A (zh) | 在任务栏显示应用程序的图标的方法及相关装置 | |
CN118054851A (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 |