CN115981576A - 共享数据的方法、电子设备及存储介质 - Google Patents
共享数据的方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115981576A CN115981576A CN202310268569.5A CN202310268569A CN115981576A CN 115981576 A CN115981576 A CN 115981576A CN 202310268569 A CN202310268569 A CN 202310268569A CN 115981576 A CN115981576 A CN 115981576A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- space
- user space
- electronic device
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 230000015654 memory Effects 0.000 claims abstract description 36
- 230000004044 response Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 description 48
- 230000006870 function Effects 0.000 description 31
- 238000007726 management method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior 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
- 230000000295 complement effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种共享数据的方法、电子设备及存储介质,涉及电子技术领域,该方法中电子设备在工作在第一用户空间中时具备访问第二用户空间的能力,基于该能力,第二用户中存储的第一应用的数据能够被共享至第一用户空间,供用户查看、选择和使用。当用户在第一用户空间中,请求读取第一用户空间中未存储而第二用户空间中存储的第一数据时,电子设备可以访问第二用户空间,从第二用户空间中读取该第一数据,从而用户无需将第一数据从第二用户空间复制到第一用户空间,或者使用其他方法在第一用户空间存储第一数据后再使用第一数据,进而节省电子设备的内存,且增加用户使用第一数据的便捷性,能够提高用户体验。
Description
技术领域
本申请涉及电子技术领域,特别涉及一种共享数据的方法、电子设备及存储介质。
背景技术
随着智能手机、平板电脑等电子设备可以实现的功能越来越多,部分电子设备提供多用户或多空间的功能,使得一个电子设备上可以存在多个用户空间,且多个用户空间之间相互独立,满足不同用户之间的数据隔离。用户可以开启该多空间功能,使用多个用户空间,例如将一个用户空间作为隐私空间,将私密相片、私密文件等存储到隐私空间。
电子设备的上述功能给用户带来了很大的便利,但是在实际场景下,某些应用在一个用户空间中存储的文件,会在另一个用户空间重复存储,导致电子设备出现冗余文件,占用电子设备的内存,影响用户体验。
发明内容
本申请提供了一种共享数据的方法、电子设备及存储介质,能够避免在不同的用户空间重复存储数据,节省电子设备的内存。所述技术方案如下:
第一方面,本申请实施例提供了一种共享数据的方法,应用于电子设备,电子设备包括多个用户空间,多个用户空间包括第一用户空间和第二用户空间,第一用户空间、第二用户空间中搭载有第一应用,电子设备当前工作在第一用户空间,并具备访问第二用户空间的能力,上述方法包括:
检测到请求读取第一应用的第一数据的第一操作;
响应于第一操作,在第一用户空间中未存储第一数据的情况下,从第二用户空间中读取第一数据。
基于上述技术方案,电子设备在工作在第一用户空间中时具备访问第二用户空间的能力,基于该能力,电子设备在工作在第一用户空间中时,可以读取到第二用户空间中存储的第一应用的数据,也就是说,第二用户空间中存储的第一应用的数据能够被共享至第一用户空间,供用户查看、选择和使用。当用户在第一用户空间中,请求读取第一用户空间中未存储而第二用户空间中存储的第一数据时,电子设备可以访问第二用户空间,从第二用户空间中读取该第一数据,并将读取结果返回给用户,从而用户无需将第一数据从第二用户空间复制到第一用户空间,或者使用其他方法在第一用户空间存储第一数据后再使用第一数据,进而节省电子设备的内存,且增加用户使用第一数据的便捷性,能够提高用户体验。
结合第一方面,在第一方面的某些实现方式中,在从第二用户空间中读取第一数据之前,上述方法还包括:确定当电子设备工作在第一用户空间时,电子设备被允许访问第二用户空间。具体的,电子设备提供第一控件,第一控件用于供用户选择是否允许电子设备在工作在第一用户空间时访问第二用户空间。电子设备根据检测到的用户作用在第一控件的第二操作,确定当电子设备工作在第一用户空间时,电子设备被允许访问第二用户空间。
本申请中,虽然电子设备工作在第一用户空间时具备访问第二用户空间(简称“跨用户访问”)的能力,但是电子设备需要用户赋予的权限才能开启这一功能。电子设备可以根据用户对第一控件的设置,确定当电子设备工作在第一用户空间时是否被允许访问第二用户空间。例如,第一控件可以是被称为“跨用户数据访问”的开关,该开关具有打开和关闭两种状态。打开状态下,电子设备在工作在第一用户空间时被允许访问第二用户空间;关闭状态下,电子设备在工作在第一用户空间时不被允许访问第二用户空间;第二操作是使“跨用户数据访问”开关状态处于打开状态的操作。
电子设备在从第二用户空间中读取第一数据之前,需要判断当电子设备工作在第一用户空间时,电子设备是否被允许访问第二用户空间。若电子设备在工作在第一用户空间时被允许访问第二用户空间,则在第一用户空间中未存储第一数据的情况下,电子设备可以从第二用户空间获取第一数据;若电子设备在工作在第一用户空间时不被允许访问第二用户空间,则不可以从第二用户空间获取第一数据。
基于上述技术方案,通过“跨用户数据访问”开关的设置,用户可以自己控制是否在第一用户空间和第二用户空间之间共享第一应用的数据,增加用户的自主性,能够提高用户体验。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,第一操作来自显示数据列表的第一界面,数据列表中包括第一应用的数据,第一应用的数据中包括第一数据。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,上述方法还包括:检测到第三操作,第三操作请求显示数据列表;响应于第三操作,从第一用户空间中读取第一应用的数据,并从第二用户空间中读取第一应用的数据;根据从第一用户空间中读取的第一应用的数据,以及从第二用户空间中读取的第一应用的数据,生成数据列表。
也就是说,电子设备先检测到第三操作,响应于第三操作,生成数据列表,并在第一界面显示数据列表,数据列表包括保存在第一用户空间中的第一应用的数据,以及保存在第二用户空间中的第一应用的数据。用户在第一界面可以同时看到两个用户空间下的第一应用的数据,用户可以通过第一操作选择读取其中的一个或多个数据(即第一数据),然后电子设备检测到第一操作,响应于第一操作,电子设备在第一用户空间中未存储第一数据的情况下,从第二用户空间中读取第一数据;在第一用户空间中存储第一数据的情况下,从第一用户空间中读取第一数据。
该实现方式中,在“跨用户数据访问”开关存在时,响应于第三操作,电子设备判断当电子设备工作在第一用户空间时,电子设备是否被允许访问第二用户空间。若允许,电子设备生成数据列表,数据列表包括两个用户空间下的第一应用的数据;若允许,电子设备生成数据列表,数据列表中包括当前工作的用户空间下的第一应用的数据。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,生成数据列表时,从第一用户空间中读取第一应用的数据,包括:确定第一用户空间的第一标识,根据第一用户空间的第一标识确定第一应用的数据在第一用户空间中对应的第一存储路径,根据第一存储路径从第一用户空间中读取第一应用的数据。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,生成数据列表时,从第二用户空间中读取第一应用的数据,包括:确定第二用户空间的第一标识;根据第二用户空间的第一标识与第一存储路径,确定第一应用的数据在第二用户空间中对应的第二存储路径;根据第二存储路径,从第二用户空间中读取第一应用的数据。
电子设备通过AMS重定向逻辑实现读取存储区域的数据,该逻辑中通过传入的用户空间的第一标识与当前用户空间的第一标识进行对比,确定本次访问是否为跨用户访问。电子设备安装有目标服务,该目标服务支持电子设备在工作在第一用户空间时访问第二用户空间,AMS重定向逻辑中,在跨用户访问时,根据上下调用关系确定本次访问的调用者是否为目标服务,以保证数据的安全。
具体的,根据第二存储路径从第二用户空间中读取第一应用的数据,包括:确定第二用户空间的标识与第一用户空间的标识是否相同;在第二用户空间的标识与第一用户空间的标识不同的情况下,确定调用的服务是否为目标服务;在调用的服务为目标服务的情况下,根据第二存储路径,从第二用户空间中读取第一应用的数据。
基于上述实现方式,电子设备在从第二用户空间中读取第一数据时,可以直接根据第二存储路径从第二用户空间中读取。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,在检测到请求读取第一应用的第一数据的第一操作之前,上述方法还包括:响应于检测到的请求存储第一数据的第四操作,将第一数据存储至第一用户空间。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,在将第一数据存储至第一用户空间之前,上述方法还包括:确定第二用户空间中是否存储了第一数据;在第二用户空间中未存储第一数据的情况下,将第一数据保存至第一用户空间;在第二用户空间中存储了第一数据的情况下,在第一用户空间中不保存第一数据。
基于上述方案,考虑到在第一用户空间和第二用户空间均可能发生存储第一数据的场景,本申请中,电子设备在将第一数据存储至第一用户空间之前,可以先确定第二用户空间是否存储了第一数据,从而第一用户空间和第二用户空间只需要存储一份第一数据,该第一数据既可以在第一用户空间被读取,也可以在第二用户空间被读取,无需重复存储相同的数据,节省了电子设备的存储空间。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,在确定第二用户空间中是否存储了第一数据之前,上述方法还包括:确定当电子设备工作在第一用户空间时,电子设备被允许访问第二用户空间。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,确定第二用户空间中是否存储了第一数据,包括:确定第二用户空间的第一标识以及第一数据的标识;根据第一数据的标识和第二用户空间的第一标识,确定第二用户空间中是否存储了第一数据。
在第一方面的某些实现方式中,确定第二用户空间中是否存储了第一数据,包括:确定第二用户空间的第一标识以及第一数据的第一标识;根据第二用户空间的第一标识与第一数据在第一用户空间中对应的第一存储路径,确定第一数据在第二用户空间中对应的第二存储路径;根据第一数据的标识和第二存储路径,确定第二用户空间中是否存储了第一数据。
在第二用户空间中存储了第一数据的情况下,上述方法还包括:输出提示信息,提示信息提示用户第一数据已存在于第二用户空间。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,上述方法还包括:对第一应用进行鉴权认证;在鉴权认证通过的情况下,电子设备从第二用户空间中读取第一数据。
第二方面,本申请实施例提供一种电子设备,包括:一个或多个处理器;一个或多个存储器;存储器存储有一个或多个程序,当一个或者多个程序被处理器执行时,使得电子设备执行上述第一方面任一项可能的方法。
第三方面,本申请实施例提供了一种装置,该装置包含在电子设备中,该装置具有实现上述各方面及上述各方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,显示模块或单元、检测模块或单元、处理模块或单元等。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1示出了本申请实施例提供的一例访问关系示意图;
图2示出了本申请实施例提供的一例应用运行示意图;
图3示出了本申请实施例提供的一例电子设备100的结构示意图;
图4示出了本申请实施例提供的一例软件结构框图;
图5示出了本申请实施例提供的一例界面示意图;
图6示出了本申请实施例提供的一例存储数据的示意性流程图;
图7示出了本申请实施例提供的又一例界面示意图;
图8示出了本申请实施例提供的又一例界面示意图;
图9示出了本申请实施例提供的一例共享数据的示意性流程图;
图10示出了本申请实施例提供的又一例访问关系示意图;
图11示出了本申请实施例提供的又一例界面示意图;
图12示出了本申请实施例提供的又一例软件结构框图;
图13示出了本申请实施例提供的一种软件结构之间的交互示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
对于支持多用户或多空间功能的电子设备而言,在用户初次使用时,电子设备中一般只有一个用户空间(通常称为主空间)。当需要给其他用户使用电子设备或者用户需要使用多个空间时,用户可以在电子设备中创建新的用户空间。在创建新的用户空间时,电子设备为新建的用户空间分配存储空间,准备运行环境,其中,包括提供系统应用和服务。在此基础之上,在新的用户空间内,用户既可以使用系统应用,也可以下载和安装新的三方应用。
多用户或多空间的功能使得一部电子设备可以支持多个用户空间,多个用户空间可以被多个用户在不同时间段使用,或者一个用户可以在不同的情境下使用不同的用户空间。当同一用户使用不同的用户空间时,也认为其具有不同的使用角色。多用户或多空间功能的使用情境包括但不限于:一部电子设备具有两个以上的用户,每个用户均有一个属于自身的用户空间,例如访客空间等;一部电子设备只具有一个用户,该用户创建了均属于自身的两个以上的用户空间,例如主空间和隐私空间或手机分身;一部电子设备具有两个以上的用户,每个用户均有一个属于自身的用户空间,并且其中至少有一个用户还额外有一个属于自己的隐私空间,也就是说,电子设备支持主空间、儿童空间、访客空间以及隐私空间同时存在。除主空间之外的其他用户空间均属于主空间的子空间,由主空间的用户在主空间设置使用子空间的权限。
电子设备保存每个用户空间对应的数据,为防止多个用户空间的使用相互干扰,两个用户空间之间存在数据和应用的隔离,因此难免出现多个用户空间的数据重复。
例如,以主空间和隐私空间为例进行说明,用户可以创建一个用户空间作为隐私空间。隐私空间和主空间可以使用不同的访问权限,例如,使用不同的指纹和不同的密码,创建隐私空间后,用户可以通过为隐私空间设置的指纹或者密码进入该隐私空间,存储和使用私密数据。一般用户使用隐私空间的目的主要有两种,一种是将隐私空间做为私密空间,用来存放隐私敏感的数据和应用,例如,用户可以将私密相片、私密视频等迁移到隐私空间,以防他人查看或窃取。一种是通过主空间和隐私空间来区分工作和生活。不管以上哪种使用场景,电子设备目前都不支持跨用户访问。跨用户访问指的是电子设备在工作在一个用户空间时去访问另一个用户空间。
示例性地,如图1所示,主空间和隐私空间分别对应电子设备的公共存储区域中的一部分存储区域,主空间的存储区域和隐私空间的存储区域是独立的两个存储区域,主空间的第一标识(userid)可以记为0,隐私空间的第一标识可以记为10。当电子设备工作在主空间时,用户登录应用(如微信®/QQ®/钉钉®等),并且下载文件/图片等数据,下载的文件/图片将保存在主空间的存储区域中,对应的存储目录(或称为存储路径)为/mnt/user/0/emulated/0,当用户请求读取或查看数据时,电子设备从主空间对应的存储区域中读取数据。当电子设备工作在隐私空间时,用户登录应用,并且下载文件/图片等数据,下载的文件/图片将保存在隐私空间的存储区域中,对应的存储目录为/mnt/user/10/emulated/10,当用户请求读取或查看数据时,电子设备从隐私空间对应的存储区域中读取数据。
然而,在电子设备的实际使用过程中,可能存在用户在主空间和隐私空间中均使用某一个应用的情况,这可能导致在某些场景下需要把数据从一个用户空间复制到另一个用户空间,或者某些应用的文件会在隐私空间和主空间重复存储,导致出现过多的冗余文件,占用电子设备的内存,影响用户体验。
例如,用户为了区分工作和生活,上班期间使用隐私空间处理与工作相关的事务,下班后切换到主空间享受私人生活,用户在主空间和隐私空间都会登录微信®,以保证通信和社交。具体的,图2示出了当电子设备工作在主空间或隐私空间时微信®的运行情况,其中,userid为用户空间对应的第一标识,APPID(applicationidentification)为微信®的应用标识,PID(Process Identification)为进程的标识符,UID(user identification)为登录应用的用户的标识。主空间与隐私空间被认为具有不同的使用角色,因此对应的userid、UID不同,使用主空间的用户可以被称为主用户,使用隐私空间的用户可以被称为子用户。主用户使用微信®时,建立微信®对应的进程1(com.tencent.mm),进程1运行时库引用/system/bin/、/system/lib64/、/system/framework/、/vendor/lib64/、/data/app/微信安装目录/、/apex/com.andoroid.xxx/等路径下的文件实现微信®的基本功能,进程运行中执行重定向操作使用的目录有/dev/null、/dev/__properties__/等,进程1使用pipe函数和socket接口实现跨进程通信,程序运行目录为/data/user/0/com.tencent.mm,用户授权访问的公共存储区域为/mnt/user/0/emulated/0。子用户使用微信®时,建立微信®对应的进程2(com.tencent.mm),进程2与进程1的功能类似。由于主空间的存储区域和隐私空间的存储区域是隔离的,当电子设备工作在主空间时,进程1无法获取隐私空间的存储区域中的数据。当电子设备工作在隐私空间时,进程2同样也无法获取主空间的存储区域中的数据。
若进程2需要访问一个视频文件,电子设备需要将该视频文件存储至隐私空间的存储区域,当切换到主空间之后,进程1也需要访问该视频文件时,电子设备还需要将该视频文件存储至主空间的存储区域,从而同一个视频文件在电子设备中存在重复的情况,造成了大量的数据冗余。
有鉴于此,本申请实施例提出一种共享数据的方法,电子设备建立两个用户空间之间的访问通道,使得电子设备在工作在第一用户空间中时具备访问第二用户空间的能力,基于该能力,电子设备在工作在第一用户空间中时,可以读取到第二用户空间中存储的第一应用的数据,当用户在第一用户空间中,请求读取第一用户空间中未存储而第二用户空间中存储的第一数据时,电子设备可以访问第二用户空间,从第二用户空间中读取该第一数据,并将读取结果返回给用户,从而用户无需将第一数据从第二用户空间复制到第一用户空间,或者使用其他方法在第一用户空间存储第一数据后再使用第一数据,进而节省电子设备的内存,且增加用户使用第一数据的便捷性,能够提高用户体验。
本申请实施例提供的存储数据的方法可以应用于智能手机、平板电脑、PC、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、个人数字助理(personaldigitalassistant,PDA)等电子设备,该电子设备具有多用户或多空间功能,支持用户在电子设备上创建多个用户空间,支持用户在电子设备上创建多个用户空间,并支持用户在多个用户空间之间来回切换。
示例性地,图3是本申请实施例提供的一例电子设备100的结构示意图。以电子设备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,以及用户标识模块(subscriberidentification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphicsprocessing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digitalsignal processor,DSP),基带处理器,和/或神经网络处理器(neural-networkprocessing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integratedcircuit,I2C)接口,集成电路内置音频(inter-integratedcircuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universalasynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
充电管理模块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,调制解调处理器以及基带处理器等实现。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquidcrystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(movingpicture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
应理解,除了图3中列举的各种部件或者模块之外,本申请实施例对电子设备100的结构不做具体限定。在本申请另一些实施例中,电子设备100还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图4是本申请实施例的电子设备100的软件结构框图。以电子设备100是手机为例,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。应用程序层可以包括一系列应用程序包。
如图4所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息、手机助手等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surfacemanager),媒体库(medialibraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等。
应理解,除了图4中列举的各个层以及各层包括的模块之外,本申请实施例对电子设备100的软件架构不做具体限定。在本申请另一些实施例中,电子设备100还可以包括比图示更多或更少的层,或者组合某些层,或者拆分某些层,或者不同的模块布置。
本申请实施例中,第一用户空间和第二用户空间两者都是用户空间,但不是同一用户空间,第一用户空间是电子设备中已被创建的多个用户空间中的一个,第二用户空间为已被创建的多个用户空间中除第一用户空间之外的其他用户空间。本申请实施例中,电子设备具备在第一用户空间与第二用户空间之间跨用户访问的能力,从而电子设备在工作在第一用户空间时,可以读取第二用户空间的数据。
第二用户空间可能有一个或多个,在一种实现方式中,电子设备可以在任意两个用户空间之间相互访问。在另一种实现方式中,有的用户空间之间可能无需交集,不存在共用数据的场景,本申请实施例中,可以预先配置用户空间之间是否存在访问关系,例如,电子设备可以在主空间和子空间(例如主空间和隐私空间、主空间和访客空间等)之间相互跨用户访问,二者之间存在双向访问关系,而在两个子空间(例如隐私空间和访客空间)之间不能跨用户访问,二者之间不存在访问关系,例如,电子设备可以在工作在主空间时访问子空间,而不能在工作在子空间时访问主空间,二者之间存在单向访问关系。电子设备中可以只配置用户空间之间存在的访问关系的信息,并且配置的信息可以随系统更新升级等情况进行改变。
对于存在访问关系的用户空间之间的访问权限,在一种实现方式中,访问权限始终开启,电子设备工作在一个用户空间时始终被允许访问其他存在访问关系的用户空间。在另一种实现方式中,用户空间之间能够跨用户访问只是电子设备提供的功能,电子设备需要用户赋予的跨用户访问的权限才能开启这一功能,电子设备可以根据用户的设置确定当电子设备工作在第一用户空间时是否被允许访问第二用户空间。
下面以主空间和隐私空间为例进行详细说明。示例性地,图5示出了本申请实施例提供的一种用户设置的界面。当电子设备工作在主空间时,用户可以通过主空间搭载的“设置”应用在电子设备中创建隐私空间,创建隐私空间之后,用户可以进入隐私空间搭载的“设置”应用,电子设备可以显示如图5所示的界面,该界面中包括控件51和控件52,控件51用于供用户选择是否允许电子设备在工作在主空间时访问隐私空间,控件52用于供用户选择是否允许电子设备在工作在隐私空间时访问主空间。用户可以点击控件51或控件52,对隐私空间或主空间的访问权限进行设置,电子设备根据检测到的作用在控件51或控件52的点击操作(对应于第二操作),确定在工作在主空间时是否被允许访问隐私空间,或在工作在隐私空间时是否被允许访问主空间。
示例性地,图5中所示控件51的状态为“打开”状态,表示用户开启了隐私空间对主空间的访问权限,电子设备在工作在主空间时被允许访问隐私空间,即将存储在隐私空间中的第一应用的数据共享给主空间,电子设备在主空间中运行第一应用时,可以获取在隐私空间中第一应用对应的缓存和下载的数据。用户点击控件51后,电子设备响应于该点击操作,将控件51的状态显示为“关闭”状态,在此状态下隐私空间对主空间的访问权限被关闭,电子设备在工作在主空间时不被允许访问隐私空间。反之,若在控件51处于“关闭”状态的情况下,用户点击控件51,电子设备响应于该点击操作,将控件51的状态再次显示为“打开”状态,隐私空间对主空间的访问权限被重新开启。
类似的,图中所示控件52的状态为“打开”状态,表示用户开启了主空间对隐私空间的访问权限,电子设备在工作在隐私空间时被允许访问主空间,即将存储在主空间中的第一应用的数据共享给隐私空间,电子设备在隐私空间中运行第一应用时,可以获取在主空间中第一应用对应的缓存和下载的数据。用户点击控件52后,电子设备响应于该点击操作,将控件52的状态显示为“关闭”状态,主空间对隐私空间的访问权限被关闭,电子设备在工作在隐私空间时不被允许访问主空间。反之,若在控件52处于“关闭”状态的情况下,用户点击控件52,电子设备响应于该点击操作,将控件52的状态再次显示为“打开”状态,主空间对隐私空间的访问权限被重新开启。
控件51可以被称为“共享隐私空间应用数据”开关,控件52可以被称为“共享主空间应用数据”开关,二者可以被统称为“跨用户数据访问”开关,用户可以随时开启或关闭“跨用户数据访问”开关,对隐私空间与主空间之间的访问权限进行设置,设置后的控件51和控件52可以均处于“打开”状态,或者均处于“关闭”状态,或者,控件51处于“打开”状态,控件52处于“关闭”状态,或者,控件51处于“关闭”状态,控件52处于“打开”状态。在一些实现方式中,控件51和/或控件52也可以设置在主空间内。需要说明的是,对于每个被创建的用户空间,在该用户空间与其他用户空间存在访问关系时,电子设备均可以在该用户空间内显示相应的“跨用户数据访问”开关,以便用户对其访问权限进行设置。
本申请实施例提供的存储数据的方法如图6所示,该方法包括步骤至S601至S603。
S601,在将第一数据存储至第一用户空间之前,确定第二用户空间中是否存储了第一数据,电子设备工作在第一用户空间。
用户在电子设备中创建了第一用户空间和第二用户空间,用户可以在第一用户空间和第二用户空间来回切换。电子设备在第一用户空间中搭载了第一应用,例如微信®、QQ®、视频软件等,用户可以在第一用户空间中使用第一应用,例如聊天、收发文件、观看视频等,使用过程中可能触发电子设备将第一数据存储至第一用户空间,第一数据为用户使用第一应用时产生的与用户相关的数据,例如,第一数据可以是文件、图片、视频等等。其中,存储包括缓存和下载等,例如,当接收到文件时,电子设备可以自动将文件缓存至第一用户空间,当检测到用户下载文件的操作时,响应于用户操作,电子设备可以将文件下载至第一用户空间。缓存的数据是使用第一应用的过程中产生的临时数据,下载的数据与缓存的数据存储在第一用户空间中的不同的存储区域。
电子设备在第二用户空间中也搭载了第一应用,用户可以在第二用户空间中使用第一应用,第二用户空间中可能存储了第一数据。在将第一数据存储至第一用户空间之前,在一种实现方式中,电子设备可以依次确定每个第二用户空间中是否存储了第一数据。
在另一种实现方式中,电子设备可以根据当前工作的用户空间和用户空间之间的访问关系,确定可访问的第二用户空间中是否存储了第一数据。
如果第二用户空间中存储了第一数据,电子设备不将第一数据保存至第一用户空间,当用户后续在第一用户空间中请求查看第一数据时,电子设备从第二用户空间中获取第一数据。如果第二用户空间中没有存储第一数据,电子设备将第一数据保存至第一用户空间,当用户后续在第一用户空间中请求查看第一数据时,电子设备从第一用户空间中获取第一数据。
S602,在第二用户空间中未存储第一数据的情况下,将第一数据保存至第一用户空间。
S603,在第二用户空间中存储了第一数据的情况下,在第一用户空间中不保存第一数据。
类似地,也可以将第一用户空间称为第二用户空间,将第二用户空间称为第一用户空间。在电子设备工作在第二用户空间的时候,在将第二数据存储至第二用户空间之前,确定第一用户空间中是否存储了第二数据,在第一用户空间中未存储第二数据的情况下,将第二数据保存至第二用户空间。在第一用户空间中存储了第二数据的情况下,在第二用户空间中不保存第二数据。第二数据也是用户使用第一应用时产生的与用户相关的数据,但是与第一数据产生的时机可能不同。
基于上述方案,电子设备可以在将第一数据存储至第一用户空间之前,先确定第二用户空间是否存储了第一数据,从而在第一用户空间和第二用户空间中只存储一份第一数据,该第一数据既可以在电子设备工作在第一用户空间时被读取,也可以在电子设备工作在第二用户空间时被读取,从而在不影响用户使用第一数据的情况下,电子设备无需重复存储第一数据,因此,本申请实施例提供的方法能够节省电子设备的存储空间,提升用户体验。
下面结合图5所示实施例对本申请实施例提供的存储数据的方法进行举例说明,用户创建隐私空间之后,可以进入隐私空间,进入隐私空间后电子设备工作在隐私空间,隐私空间中搭载第一应用,例如微信®,用户可以使用微信®与其他用户聊天,在聊天过程中可以与其他用户往来传递文件,其中包括来自其他用户(用户A)的文件1。在电子设备接收到文件1之后,在将文件1缓存至隐私空间之前,电子设备确定当前是否被允许访问主空间,在电子设备当前被允许访问主空间的情况下(控件52处于“打开”状态),电子设备确定主空间中是否缓存了文件1,在主空间中缓存了文件1的情况下,电子设备不再将文件1缓存至隐私空间,结束本次缓存流程;在主空间中没有缓存文件1的情况下,电子设备将文件1缓存至隐私空间。在电子设备当前不被允许访问主空间的情况下(控件52处于“关闭”状态),电子设备将文件1缓存至隐私空间。
用户之后将电子设备从隐私空间切换到主空间,切换到主空间后电子设备工作在主空间,主空间中搭载微信®,用户继续使用微信®,在使用过程中可能会触发电子设备缓存文件1,例如,用户在隐私空间中使用微信®时对应的聊天记录可能会同步到主空间,例如,电子设备又接收到了来自其他用户(用户B)的文件1,在将文件1缓存到主空间之前,电子设备确定当前是否被允许访问隐私空间,在电子设备当前被允许访问隐私空间的情况下(控件51处于“打开”状态),电子设备确定隐私空间中是否缓存了文件1,在隐私空间中缓存了文件1的情况下,电子设备不再将文件1缓存到主空间,结束本次缓存流程;在隐私空间中没有缓存文件1的情况下,电子设备将文件1缓存到主空间。在电子设备当前不被允许访问隐私空间的情况下(控件51处于“关闭”状态),电子设备将文件1缓存到主空间。
在电子设备被设置为自动下载的情况下,或者在检测到用户下载文件1的操作之后,电子设备进入下载文件1的流程,在将文件1下载到主空间之前,电子设备确定当前是否被允许访问隐私空间,以及隐私空间中是否下载了文件1,此处与缓存文件1的流程类似,在此不再详细描述。需要说明的是,若电子设备工作在主空间时被允许访问隐私空间,且隐私空间中已经下载有文件1,电子设备还可以输出提示信息,该提示信息提示用户文件1在隐私空间中已被下载,电子设备中已经下载有文件1。图7示出了一种用户感知层面的实现过程,如图7中的(a)所示,用户在微信®界面点击“下载”控件71(第四操作),以请求电子设备下载文件1,响应于用户操作,如图7中的(b)所示,电子设备输出提示信息,提示信息的内容不限,例如,可以是“隐私空间中已下载有文件1”。反之同理,电子设备工作在隐私空间时也可以在相应场景下输出提示信息。
需要说明的是,用户在主空间和隐私空间中登录的微信®账号可以是相同的,也可以是不同的。
可以理解的是,“跨用户数据访问”开关根据用户选择处于关闭状态或打开状态,并不是一直处于“打开”状态,基于上述内容可知,微信®对应的用户数据可能一部分存储在了隐私空间中,一部分存储在了主空间中。用户可以通过文件管理器查看微信®对应的用户数据。示例性地,图8示出了电子设备的存储路径,其中,图8中的(a)示出了主空间中微信®缓存路径下的数据,图8中的(b)示出了隐私空间中微信®缓存路径下的数据,其中,文件“附件1”是在控件51和控件52均处于“关闭”状态的情况下缓存的,因此电子设备在主空间和隐私空间中重复缓存了“附件1”。其他文件是在主空间与隐私空间之间可以跨用户访问的情况下缓存,因此电子设备在主空间和隐私空间中没有重复缓存其他文件,附件6只存储于隐私空间。图8中的(c)示出了主空间中微信®下载路径下的数据,图8中的(d)示出了隐私空间中微信®下载路径下的数据,这些文件在主空间与隐私空间中都需要使用,但是这些文件都是在主空间与隐私空间之间可以跨用户访问的情况下下载的,因此在主空间的路径下看到的文件与在隐私空间的路径下看到的文件都是不同的,没有重复。
不管电子设备采用何种方法存储数据,对于数据使用场景,图9示出本申请实施例提供的一种共享数据的方法,应用于电子设备,该方法包括S901和S902。
S901,检测到请求读取第一应用的第一数据的第一操作。
S902,响应于第一操作,在第一用户空间中未存储第一数据的情况下,从第二用户空间中读取第一数据。
本申请实施例中,第一数据已经存储在了电子设备中,可能是存储在了第一用户空间中,也可能是存储在了第二用户空间中,也可能是两个用户空间中都存储了,总之存在第一用户空间中没有存储第一数据而第二用户空间中存储第一数据的情况。
第一用户空间、第二用户空间中都搭载有第一应用,当电子设备工作在第一用户空间,用户使用第一应用的过程中,想要使用第一应用的第一数据时,可以执行第一操作,例如,用户可以点击查看、转发微信聊天框中显示的某个文件。在始终被允许访问第二用户空间的情况下,响应于第一操作,电子设备可以在第一用户空间中未存储第一数据的情况下,从第二用户空间中读取第一数据。
在用户赋予访问权限的情况下,响应于第一操作,电子设备可以确定当前是否被允许访问第二用户空间,在当前被允许访问第二用户空间的情况下,在第一用户空间中未存储第一数据的情况下,从第二用户空间中读取第一数据。第一数据标记有存储位置,即若第一数据被存储至第一用户空间,电子设备标记第一数据存储在第一用户空间,若第一数据被存储至第二用户空间,电子设备标记第一数据存储在第二用户空间,在读取数据时,电子设备根据标记的存储位置,确定第一数据存储在哪个用户空间,也就是确定第一用户空间中是否存储第一数据。当标记为第一数据存储在第二用户空间时,也就是第一用户空间中未存储第一数据,电子设备从第二用户空间中读取第一数据。
在一些场景中,例如,用户使用微信®聊天时向其他用户发送文件,使用视频软件时观看已下载视频,用户可以执行第三操作,请求显示数据列表,响应于第三操作,电子设备确定当前是否被允许访问第二用户空间,在当前被允许访问第二用户空间的情况下,电子设备从第一用户空间中读取第一应用的数据,并从第二用户空间中读取第一应用的数据;根据从第一用户空间中读取到的第一应用的数据,以及从第二用户空间中读取到的第一应用的数据,生成数据列表,在第一界面可以通过文件名称的形式显示数据列表。
数据列表中包括保存在第一用户空间中的第一应用的数据和保存在第二用户空间中的第一应用的数据,用户可以通过电子设备显示的数据列表在第一用户空间中看到第二用户空间的数据。用户可以通过第一操作请求读取在数据列表中的一个或多个数据(第一数据),例如,使用微信®时通过点击操作选择数据列表中的一个或多个文件并点击发送,例如,使用视频软件时通过点击操作观看数据列表中的一个视频。响应于第一操作,电子设备在第一用户空间中未存储第一数据的情况下,从第二用户空间中读取第一数据。在第一用户空间中存储第一数据的情况下,从第一用户空间中读取第一数据。
本申请实施例提供的方法,在第一用户空间中未存储第一数据的情况下,用户无需将第一数据从第二用户空间复制到第一用户空间,或者使用其他方法在第一用户空间存储第一数据后再使用第一数据,进而节省电子设备的内存,且增加用户使用第一数据的便捷性,能够提高用户体验。
示例性地,如图10所示,主空间和隐私空间分别对应电子设备的公共存储区域中的一部分存储区域,在“跨用户数据访问”开关均被打开的情况下,当电子设备工作在主空间时,电子设备除了可以从主空间的存储区域中读取数据,还可以跨用户访问隐私空间,获取隐私空间对应的存储区域中的数据。当电子设备工作在隐私空间时,电子设备除了可以从隐私空间的存储区域中读取数据,还可以跨用户访问主空间,获取主空间对应的存储区域中的数据。
图11示出了用户使用微信®发送文件时的场景。如图11中的(a)所示,用户可以在聊天界面点击“文件”控件以发送文件,响应于用户操作,电子设备确定当前是否能够跨用户访问,进而基于访问结果显示微信®的数据列表。以图8所示缓存文件为例,当电子设备工作在主空间时,如图11中的(b)所示,在不被允许访问隐私空间的情况下,电子设备只读取主空间中微信®的数据,数据列表显示缓存在主空间中的微信®的数据。如图11中的(c)所示,在被允许访问隐私空间的情况下,电子设备可以读取主空间中微信®的数据和隐私空间中微信®的数据,显示的数据列表中既包括缓存在主空间中的微信®的数据,也包括缓存在隐私空间中的微信®的数据,此时,用户就可以选择发送存储在隐私空间中的微信®的数据。同样地,当电子设备工作在隐私空间时,如图11中的(d)所示,在不被允许访问主空间的情况下,电子设备只显示缓存在隐私空间中的微信®的数据。如图11中的(e)所示,在被允许访问主空间的情况下,电子设备显示的数据列表中既包括缓存在主空间中的微信®的数据,也包括缓存在隐私空间中的微信®的数据,此时,用户就可以选择发送存储在主空间中的微信®的数据,例如,用户点击附件5并点击发送,电子设备从主空间读取附件5并发送出去,如图11中的(f)所示。
本申请实施例提供的方法,通过“跨用户数据访问”开关的设置,用户可以自己控制是否在主空间和隐私空间之间共享应用的数据,若主空间与隐私空间之间可以共享应用的数据,用户请求使用主空间未存储而隐私空间中存储的数据时,电子设备可以直接访问隐私空间,从隐私空间中读取数据,不再需要把数据从隐私空间复制到主空间,能够节省电子设备的内存,且增加用户的自主性和便捷性,能够提高用户体验。
下面对在用户空间读取数据的方法进行说明。每次创建一个新的用户空间时,电子设备都会为该用户空间分配第一标识,记为userid,第一标识代表用户空间的编码,也可以理解为用于区分不同使用角色的用户标识,第一标识还可以用于生成用户空间的存储区域的地址。由于多个用户空间被创建的前后顺序不同,以及,一个用户空间在被创建后可以被销毁以及被再次创建,因此,本申请实施例中,对于同一属性的用户空间而言,不同的生命周期对应的第一标识可能是不同的,即第一标识是不固定的。除了主空间以外,其他的用户空间均存在生命周期,该生命周期始于创建、终于销毁。
例如,一个场景下,主空间的userid为0,用户先在电子设备中创建了一个隐私空间,隐私空间的userid为10,之后用户又在电子设备中创建了一个儿童空间,儿童空间的userid为11。另一个场景下,主空间的userid为0,用户先在电子设备中创建了一个访客空间,访客空间的userid为10,之后用户又在电子设备中创建了一个隐私空间,隐私空间的userid为11。可以理解,第一次创建的隐私空间和第二次创建的隐私空间时,用户被认为是不同的使用角色,第一次被创建的隐私空间的第一标识和第二次被创建的隐私空间的第一标识可能是不同的。
除了第一标识之外,被创建的用户空间还具有第二标识,本申请实施例中,第二标识是表征用户空间的属性或者用途的空间标识,第二标识还用于表示用户空间之间的访问关系,第二标识是固定的,基于第二标识可以唯一确定用户空间。本申请实施例中,电子设备中存储有每个被创建的用户空间的第一标识和第二标识,电子设备可以根据某个用户空间的第二标识确定其第一标识。
例如,电子设备中只有主空间与隐私空间存在访问关系,主空间的第二标识记为“主空间”,隐私空间的第二标识记为“隐私空间”。当工作在主空间时,电子设备会请求访问“隐私空间”中的数据,电子设备获取所有已被创建的用户空间的第一标识和第二标识,找到同样标识为“隐私空间”的用户空间,进而确定该用户空间对应的第一标识,即隐私空间的userid。
对于确定第二用户空间中是否存储了第一数据,在一种实现方式在中,电子设备确定第一数据的标识,以及第二用户空间的第一标识,根据第一数据的标识和第二用户空间的第一标识,确定第二用户空间中是否存储了第一数据。电子设备进入第二用户空间的存储区域,遍历第二用户空间中存储的数据,确定其中是否有标识与第一数据的标识相同的数据,若有标识与第一数据的标识相同的数据,则第二用户空间中存储了第一数据;若没有标识与第一数据的标识相同的数据,则第二用户空间中未存储第一数据。
在另一种实现方式在中,电子设备确定第一数据的标识,以及第二用户空间的第一标识,根据第二用户空间的第一标识与第一数据在第一用户空间中对应的第一存储路径,确定第一数据在第二用户空间中对应的第二存储路径;电子设备进入第二用户空间的存储区域,根据第一数据在第二用户空间中对应的第二存储路径,查询第二存储路径对应的存储区域中,是否有标识与第一数据的标识相同的数据,若有标识与第一数据的标识相同的数据,则第二用户空间中存储了第一数据;若没有标识与第一数据的标识相同的数据,则第二用户空间中未存储第一数据。
第一数据来自第一用户空间中搭载的第一应用,不同用户空间中搭载的同一应用具有相同的标识(APPID),对于使用Android系统的电子设备,第一应用的数据在第一用户空间中对应的第一存储路径(例如/mnt/user/0/emulated/0)与第一应用的数据在第二用户空间中对应的第二存储路径(例如/mnt/user/10/emulated/10)是相同的形成方式。
对于如图11所示实施例,在从第一用户空间读取第一应用的数据时,电子设备获取第一用户空间的第一标识并根据第一用户空间的第一标识,确定第一应用的数据在第一用户空间中对应的第一存储路径,电子设备进入第一用户空间的存储区域,根据第一存储路径读取对应的存储区域下的数据。在从第二用户空间读取第一应用的数据时,电子设备获取第二用户空间的第一标识,根据第二用户空间的第一标识与第一存储路径,确定第一应用数据在第二用户空间中对应的第二存储路径,电子设备进入第二用户空间的存储区域,根据第二存储路径读取对应的存储区域下的数据。
下面继续以主空间和隐私空间为例,结合软件结构对本申请实施例提供的方法进行说明。
除图4所示的软件结构外,本申请实施例中,如图12所示,应用程序层还包括主空间中搭载的三方业务应用(例如,微信®),隐私空间中搭载的三方业务应用(例如,微信®),以及“跨用户数据访问”开关。其中,“跨用户数据访问”开关可以设置在隐私空间。三方业务应用集成本申请提供的软件开发工具包(Software Development Kit,SDK),也可称为能力开放kit,使得用户触发业务场景后,某一用户空间中的三方业务应用能够主动去获取另一用户空间下存储的数据。
应用程序框架层还包括能力开放服务,跨用户数据访问服务,鉴权服务,系统服务(SystemServer)进程,内容提供器(ContentProvider)进程等。
能力开放服务中包括北向对接三方服务接口,身份校验接口,开关状态查询接口,跨服务数据查询接口。其中,北向对接三方服务接口用于接收来自三方业务应用的命令或请求。身份校验接口用于调用鉴权服务。开关状态查询接口用于查询新增的“跨用户数据访问”开关的状态,跨服务数据查询接口用于调用跨用户数据访问服务,查询三方业务应用想要查询的用户空间下的数据。
鉴权服务,用来鉴定三方调用者的身份是否合法。
跨用户数据访问服务,主要提供查询主空间的userid和隐私空间的userid的能力,以及,获取三方业务应用想要获取的用户空间内的数据的功能。
SystemServer进程是Android系统中重要的进程,系统中主要的服务驻留在其中,常见的比如活动管理器服务(ActivityManagerService,AMS)。AMS模块具有重定向逻辑,用于确定绑定主用户ContentProvider进程,还是绑定子用户ContentProvider进程。
ContentProvider进程负责处理数据访问请求,读取挂载的文件系统中的数据,给调用者返回文件的句柄。挂载的文件系统也即数据库,包括主空间对应的数据(userid为0)和隐私空间对应的数据(userid为10)。
当用户触发业务场景时,①三方业务应用(主空间搭载的或隐私空间搭载的)使用能力开放kit,向能力开放服务发送请求,请求访问用户空间。②能力开放服务接收到请求后,通过身份校验接口,将该请求发送给鉴权服务,判断调用能力开放服务的三方业务应用的身份是否是合法的。具体的,可以预先设置白名单,白名单记录允许访问存储空间的三方业务应用。若调用者在白名单中,则其身份是合法的。也可以通过验证令牌(token),判断调用者的身份是否合法。鉴权服务向能力开放服务返回判断结果,合法或者不合法。③鉴权服务允许本次访问请求。
④能力开放服务在获取到鉴权服务的合法认证后,通过开关状态查询接口,查询当前“跨用户数据访问”开关的状态。⑤“跨用户数据访问”开关为“打开”状态下,能力开放服务通过跨服务数据查询接口,调用跨用户数据访问服务,获取隐私空间的userid及存储在隐私空间中的三方业务应用的数据,和/或,主空间的userid及存储在主空间中的三方业务应用的数据。
⑥获取数据时,跨用户数据访问服务向SystemServer进程的AMS模块发出重定向访问的请求。⑦AMS重定向到主用户ContentProvider进程,或子用户ContentProvider进程。重定向过程中使用了getcontentProviderImpl接口,本申请实施例中对该接口的逻辑进行修改,在绑定ContentProvider前新增两个判断条件:(1)判断请求访问的用户空间是否为非当前用户空间;(2)判断进程调用者是否为跨用户数据访问服务。条件(1)用于确定访问请求是否是跨用户访问,条件(2)用于防止非法服务调用数据,保证数据安全。⑧ContentProvider进程处理数据访问请求,给调用者返回结果。
下面结合图13所示的交互图对本申请实施例提供的读取数据的过程进行说明。
1301,用户触发业务场景。
以图11所示场景为例,用户点击“文件”,微信®需要读取在第一用户空间的数据和在第二用户空间的数据。
1302,三方业务应用通过能力开放kit请求获取userid。
三方业务应用将来自用户的指令传递给能力开放kit,能力开放kit基于用户指令和当前业务场景确定获取哪个用户空间的userid。此场景下,既请求获取主空间的userid,也请求获取隐私空间的userid。在一种实现方式中,本方法只用于隐私空间,无需考虑其他子空间。在另一种实现方式中,对于多用户多空间的情况,能力开放kit还从电子设备存储模块获取用户空间之间的访问关系,根据用户指令、访问关系和当前业务场景,确定获取哪个用户空间的userid。内部代码逻辑可以为“Kituserid query()”。
1303,能力开放kit向能力开放服务请求获取userid。
内部代码逻辑可以为“query userid ()”。
1304,能力开放服务查询“跨用户数据访问”开关的状态。
其中,“打开”状态可以记为1,“关闭”状态可以记为0。
1305,在“跨用户数据访问”开关为“打开”状态的情况下,能力开放服务向跨用户数据访问服务请求获取userid。
1306,跨用户数据访问服务向三方业务应用返回userid。
若“跨用户数据访问”开关为“打开”状态,既返回获取主空间的userid,也返回获取隐私空间的userid。
若“跨用户数据访问”开关为“关闭”状态,或未找到“跨用户数据访问”开关(没有创建隐私空间),则只返回当前用户空间的userid。
1307,三方业务应用通过能力开放kit请求获取指定用户空间指定路径下的数据。
三方业务应用确定数据在主空间中的存储路径1,然后向能力开放kit传递主空间的userid和存储路径1,以及,确定数据在隐私空间中的存储路径2,然后向能力开放kit传递隐私空间的userid和存储路径2。主空间和隐私空间可以分开传递,存储路径记录在统一资源标识符(UniformResource Identifier,uri)中,内部代码逻辑可以为“KitContextquery(userid,uri,…)”。
1308,能力开放kit向能力开放服务发送第一请求,第一请求为请求获取指定用户空间的指定路径下的数据。
内部代码逻辑可以为“query(userid,uri,…)”。
1309,能力开放服务向跨用户数据访问服务发送第一请求。
能力开放服务通过调用跨服务数据查询接口,向跨用户数据访问服务传入要访问的userid和uri,内部代码逻辑可以为“queryResource(userid,uri,…)”。
1310,跨用户数据访问服务向上下文解析器(ContextResolver)发送第一请求。
内部实现通过provider实现增删查改,首先需要获取contentprovider,大致过程为在context中获取contentResolver,然后通过contentResolver去ActivityManagerService中查询对应的provider。具体的,首先每个context类都会内部包含了一个ContentResolver的子对象ApplicationContentResolver。通过调用ApplicationContentResolver的主要方法query来获取数据库数据。调用的过程首先会调用ContentResolver的核心方法acquireProvider()。而acquireProvider()方法是一个抽象方法,其实现是交由子类实现。主要的实现是交由ActivityThread类来完成。ActivityThread类会访问AMS对象去查找获取一个内容提供器(ContentProvider)实例。
1311,上下文解析器向应用程序解析器(ApplicationContextResolver)发送获取内容提供器的请求。
内部代码逻辑可以为“acquireUnstableProvider”。
1312,应用程序解析器向应用程序主线程(ActivityThread)透传获取内容提供器的请求。
内部代码逻辑可以为“acquireProvider”。
1313,应用程序主线程通过活动管理器服务AMS,根据userid获取内容提供器。
内部代码逻辑可以为“getContextProviderWithUserid”。
1314,活动管理器服务调用getcontentProviderImpl接口逻辑进行判断。
在判断当前要访问的用户空间是否为非当前用户空间时,对比传入getcontentProviderImpl接口的userid和当前用户空间的userid,若两个userid不相同,则为非当前用户空间。
若当前处于主空间,传入的是主空间的userid,则当前要访问的用户空间是当前用户空间;若当前处于主空间,传入的是隐私空间的userid,则当前要访问的用户空间为非当前用户空间。若当前处于隐私空间,传入的是主空间的userid,则当前要访问的用户空间为非当前用户空间;若当前处于隐私空间,传入的是隐私空间的userid,则当前要访问的用户空间是当前用户空间。
若当前要访问的用户空间为非当前用户空间,进一步判断调用者是否为跨用户数据访问服务,代码逻辑中记录有调用关系,基于跨用户数据访问服务的标识进行判断。若调用者是跨用户数据访问服务,同时满足2个判断条件,则跨用户访问非当前用户空间的数据。若调用者不是跨用户数据访问服务,则不允许跨用户访问。
也就是说,如果当前用户空间是在主空间且跨用户访问,则AMS重定向到子用户ContentProvider进程。如果当前用户空间是在主空间且没有跨用户访问,则AMS重定向到主用户ContentProvider进程。如果当前用户空间是在隐私空间且跨用户访问,则AMS重定向到主用户ContentProvider进程。如果当前用户空间是在隐私空间且没有跨用户访问,则AMS重定向到子用户ContentProvider进程。
若主用户或子用户所需内容提供器存在则使用已有内容提供器,若没有则新建一个内容提供器。新建过程如步骤1315至步骤1322所示。
1315,应用程序主线程创建内容提供器。
内部代码逻辑调用“main”方法。
1316,内容提供器注册到活动管理器服务。
内部代码逻辑调用“attachApplication”方法。
1317,绑定应用程序进程(ApplicationThread)。
内部代码逻辑调用“bindApplication”方法。
1318,应用程序进程向应用程序主线程发送启动消息。
内部代码逻辑调用“sendMessage”方法。
1319,应用程序主线程处理启动消息。
内部代码逻辑调用“handleMessage”方法。
1320,应用程序主线程安装内容提供器。
内部代码逻辑调用“installContentProviders”方法。
1321,应用程序主线程处理安装内容提供器的具体实现。
内部代码逻辑调用“installProviders”方法。
1322,向创建的内容提供器中绑定信息。
绑定的信息至少包括userid和uri,内部代码逻辑调用“attachinfo”方法。内容提供器创建完成。绑定隐私空间userid和uri,对应子用户ContentProvider进程。绑定主空间userid和uri,对应主用户ContentProvider进程。
1323,实例化内容提供器。
ContentProvider进程根据传入的uri读取主空间或隐私空间中微信®的数据(此场景下可以先读取数据的标识信息),并逐级向上返回给三方业务应用。
1324,通过onCreate函数设置数据列表的显示。
此场景下,步骤1324之后,电子设备显示如图11中的(b)-(e)中的一个所示的界面,在用户点击“发送”后,响应于用户操作,电子设备调用对应的子用户或主用户的ContentProvider进程再读取数据的详细信息。
需要说明的是,在存储数据场景中,若当前处于主空间,则步骤1302中请求获取隐私空间的userid,在步骤1304之后,若“跨用户数据访问”开关为“打开”状态,则继续后续步骤,步骤1306中返回隐私空间的userid,后续步骤中第一请求替换为第二请求,第二请求为请求获取指定用户空间的指定路径下的第一数据,向下传递的信息中除了userid和uri外,还包括第一数据的标识,其余步骤不变,步骤1323中ContentProvider进程返回有第一数据或没有第一数据的结果,流程结束。若“跨用户数据访问”开关为“关闭”状态,则结束流程。反之同理,若当前处于隐私空间,则步骤1302中请求获取主空间的userid,步骤1306中返回主空间的userid。
本实施例提供的电子设备,用于执行上述方法,因此可以达到与上述实现方法相同的效果。在采用集成的单元的情况下,电子设备可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理,例如,可以用于支持电子设备执行处理单元执行的步骤。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得电子设备执行时实现可实现上述各个方法实施例中的步骤。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的方法。
在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,本申请说明书和所附权利要求书中提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,不能理解为指示或暗示相对重要性,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (14)
1.一种共享数据的方法,其特征在于,应用于电子设备,所述电子设备包括多个用户空间,所述多个用户空间包括第一用户空间和第二用户空间,所述第一用户空间、所述第二用户空间中搭载有第一应用,所述电子设备当前工作在所述第一用户空间,并具备访问所述第二用户空间的能力,所述方法包括:
检测到请求读取所述第一应用的第一数据的第一操作;
响应于所述第一操作,在所述第一用户空间中未存储所述第一数据的情况下,从所述第二用户空间中读取所述第一数据。
2.根据权利要求1所述的方法,其特征在于,在从所述第二用户空间中读取所述第一数据之前,所述方法还包括:
确定当所述电子设备工作在所述第一用户空间时,所述电子设备被允许访问所述第二用户空间。
3.根据权利要求2所述的方法,其特征在于,所述确定当所述电子设备工作在所述第一用户空间时,所述电子设备被允许访问所述第二用户空间,包括:
根据检测到的用户作用在第一控件的第二操作,确定当所述电子设备工作在所述第一用户空间时,所述电子设备被允许访问所述第二用户空间,所述第一控件用于供用户选择是否允许所述电子设备工作在所述第一用户空间时访问所述第二用户空间。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一操作来自显示数据列表的第一界面,所述数据列表中包括所述第一应用的数据,所述第一应用的数据中包括所述第一数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
检测到第三操作,所述第三操作请求显示所述数据列表;
响应于所述第三操作,从所述第一用户空间中读取所述第一应用的数据,并从所述第二用户空间中读取所述第一应用的数据;
根据从所述第一用户空间中读取的所述第一应用的数据,以及从所述第二用户空间中读取的所述第一应用的数据,生成所述数据列表。
6.根据权利要求5所述的方法,其特征在于,所述从所述第二用户空间中读取所述第一应用的数据,包括:
确定所述第二用户空间的第一标识;
根据所述第二用户空间的第一标识与所述第一应用的数据在所述第一用户空间中对应的第一存储路径,确定所述第一应用的数据在所述第二用户空间中对应的第二存储路径;
根据所述第二存储路径,从所述第二用户空间中读取所述第一应用的数据。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第二存储路径,从所述第二用户空间中读取所述第一应用的数据,包括:
确定所述第二用户空间的第一标识与所述第一用户空间的第一标识是否相同;
在所述第二用户空间的第一标识与所述第一用户空间的第一标识不同的情况下,根据所述第二存储路径,从所述第二用户空间中读取所述第一应用的数据。
8.根据权利要求7所述的方法,其特征在于,所述电子设备安装有目标服务,所述目标服务支持所述电子设备在工作在所述第一用户空间时访问所述第二用户空间;在所述第二用户空间的第一标识与所述第一用户空间的第一标识不同的情况下,在从所述第二用户空间中读取所述第一应用的数据之前,所述方法还包括:
确定调用的服务为所述目标服务。
9.根据权利要求5至8中任一项所述的方法,其特征在于,在检测到请求读取所述第一应用的第一数据的第一操作之前,所述方法还包括:
响应于检测到的请求存储所述第一数据的第四操作,将第一数据存储至所述第一用户空间。
10.根据权利要求9所述的方法,其特征在于,在将第一数据存储至所述第一用户空间之前,所述方法还包括:
确定所述第二用户空间中是否存储了所述第一数据;
在所述第二用户空间中未存储所述第一数据的情况下,将所述第一数据保存至所述第一用户空间;
在所述第二用户空间中存储了所述第一数据的情况下,在所述第一用户空间中不保存所述第一数据。
11.根据权利要求10所述的方法,其特征在于,在所述第二用户空间中存储了所述第一数据的情况下,所述方法还包括:
输出提示信息,所述提示信息提示用户所述第一数据已存在于所述第二用户空间。
12.根据权利要求10或11所述的方法,其特征在于,所述确定所述第二用户空间中是否存储了所述第一数据,包括:
确定所述第二用户空间的第一标识以及所述第一数据的标识;
根据所述第一数据的标识和所述第二用户空间的第一标识,确定所述第二用户空间中是否存储了所述第一数据。
13.一种电子设备,其特征在于,包括:一个或多个处理器;一个或多个存储器;所述存储器存储有一个或多个程序,当所述一个或者多个程序被所述处理器执行时,使得所述电子设备执行权利要求1至12中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310268569.5A CN115981576B (zh) | 2023-03-20 | 2023-03-20 | 共享数据的方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310268569.5A CN115981576B (zh) | 2023-03-20 | 2023-03-20 | 共享数据的方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115981576A true CN115981576A (zh) | 2023-04-18 |
CN115981576B CN115981576B (zh) | 2023-11-17 |
Family
ID=85962725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310268569.5A Active CN115981576B (zh) | 2023-03-20 | 2023-03-20 | 共享数据的方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115981576B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103637A (zh) * | 2011-01-24 | 2011-06-22 | 上海银杏界信息科技有限公司 | SaaS软件数据模型的实现方法 |
CN103064757A (zh) * | 2012-12-12 | 2013-04-24 | 鸿富锦精密工业(深圳)有限公司 | 数据备份方法及系统 |
CN103729604A (zh) * | 2013-11-18 | 2014-04-16 | 北京奇虎科技有限公司 | 一种用户访问区域的方法和装置 |
CN105631293A (zh) * | 2015-12-29 | 2016-06-01 | 宇龙计算机通信科技(深圳)有限公司 | 数据访问方法、数据访问系统和终端 |
CN105912951A (zh) * | 2016-04-15 | 2016-08-31 | 北京小米移动软件有限公司 | 数据迁移方法及装置 |
CN106203161A (zh) * | 2016-06-30 | 2016-12-07 | 维沃移动通信有限公司 | 数据访问控制方法及服务器 |
CN106970978A (zh) * | 2017-03-28 | 2017-07-21 | 联想(北京)有限公司 | 数据共享方法及装置 |
WO2018076685A1 (zh) * | 2016-10-28 | 2018-05-03 | 华为技术有限公司 | 一种信息交互的方法及设备 |
CN108509788A (zh) * | 2018-03-29 | 2018-09-07 | 广东欧珀移动通信有限公司 | 信息共享方法和装置、计算机可读存储介质、终端 |
WO2022000799A1 (zh) * | 2020-06-28 | 2022-01-06 | 华为技术有限公司 | 一种内存管理方法及设备 |
-
2023
- 2023-03-20 CN CN202310268569.5A patent/CN115981576B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103637A (zh) * | 2011-01-24 | 2011-06-22 | 上海银杏界信息科技有限公司 | SaaS软件数据模型的实现方法 |
CN103064757A (zh) * | 2012-12-12 | 2013-04-24 | 鸿富锦精密工业(深圳)有限公司 | 数据备份方法及系统 |
CN103729604A (zh) * | 2013-11-18 | 2014-04-16 | 北京奇虎科技有限公司 | 一种用户访问区域的方法和装置 |
CN105631293A (zh) * | 2015-12-29 | 2016-06-01 | 宇龙计算机通信科技(深圳)有限公司 | 数据访问方法、数据访问系统和终端 |
CN105912951A (zh) * | 2016-04-15 | 2016-08-31 | 北京小米移动软件有限公司 | 数据迁移方法及装置 |
CN106203161A (zh) * | 2016-06-30 | 2016-12-07 | 维沃移动通信有限公司 | 数据访问控制方法及服务器 |
WO2018076685A1 (zh) * | 2016-10-28 | 2018-05-03 | 华为技术有限公司 | 一种信息交互的方法及设备 |
CN106970978A (zh) * | 2017-03-28 | 2017-07-21 | 联想(北京)有限公司 | 数据共享方法及装置 |
CN108509788A (zh) * | 2018-03-29 | 2018-09-07 | 广东欧珀移动通信有限公司 | 信息共享方法和装置、计算机可读存储介质、终端 |
WO2022000799A1 (zh) * | 2020-06-28 | 2022-01-06 | 华为技术有限公司 | 一种内存管理方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115981576B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113032766B (zh) | 应用权限管理的方法和装置 | |
CN113806105B (zh) | 消息处理方法、装置、电子设备和可读存储介质 | |
WO2022089121A1 (zh) | 处理推送消息的方法和装置 | |
WO2021185352A1 (zh) | 一种版本升级方法及相关装置 | |
WO2023051355A1 (zh) | 权限检查的方法和电子设备 | |
CN115017534B (zh) | 文件处理权限控制方法、装置及存储介质 | |
CN112860445B (zh) | 一种快应用与原生应用间数据共享的方法及终端 | |
CN114442969A (zh) | 一种设备间屏幕协同方法及设备 | |
CN114915618B (zh) | 升级包下载方法及装置 | |
CN114741256B (zh) | 传感器监听方法、装置及终端设备 | |
CN115657897A (zh) | 跨设备桌面管理方法、第一电子设备及第二电子设备 | |
CN115981576B (zh) | 共享数据的方法、电子设备及存储介质 | |
CN115238299A (zh) | 基于安全等级的访问控制方法、相关装置及系统 | |
CN112783418B (zh) | 一种存储应用程序数据的方法及移动终端 | |
CN116982042A (zh) | 灵活授权的访问控制方法、相关装置及系统 | |
CN115686338B (zh) | 分屏方法及电子设备 | |
CN116661584B (zh) | 一种资源调度方法及相关设备 | |
CN117076089B (zh) | 应用管理方法、终端设备及存储介质 | |
CN116033592B (zh) | 蜂窝通信功能的使用方法和装置 | |
EP4339762A1 (en) | File migration method, electronic device, and storage medium | |
CN114356352A (zh) | 多用户下应用数据的管理方法和终端设备 | |
CN114154180A (zh) | 数据共享方法和终端设备 | |
CN116737404A (zh) | 用于应用接续的方法及终端设备 | |
CN117742849A (zh) | 基于应用分身的界面显示方法及相关装置 | |
CN115291995A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |