一种安卓容器间共享应用的方法及电子设备技术

技术编号:37707142 阅读:14 留言:0更新日期:2023-06-01 23:56
本申请提供一种安卓容器间共享应用的方法及电子设备,所述方法包括:在安卓容器所在的物理服务器中创建共享存储分区,所述共享存储分区用于保存所述安卓容器的应用数据包和应用安装锁,所述物理服务器包含多个所述安卓容器;获取所述应用数据包,并保存在所述共享存储分区;通过多个所述安卓容器竞争所述应用安装锁,由获取到所述应用安装锁的单个所述安卓容器安装所述应用数据包。实现安卓容器间的应用本地存储共享,对于同一应用同一物理服务器只需安装一次,大大减少应用占用的本地存储空间和应用部署占用带宽以及减少应用安装时长。长。长。

【技术实现步骤摘要】
一种安卓容器间共享应用的方法及电子设备


[0001]本专利技术涉及计算机
,具体涉及一种安卓容器间共享应用的方法及电子设备。

技术介绍

[0002]在云服务中,安卓容器常用于云游戏和云手机的场景,为了减少成本,单个物理服务器会虚拟化成多个安卓容器,每个安卓容器运行特定的服务满足远程客户的需要。在这些场景中都需要大量部署应用,特别是云游戏场景中,容器需要安装少则几款,多则几十款的游戏,而属于同一租户的容器安装的游戏都是相同的,而物理服务器的存储空间是有限的,如何更好的利用好有限的本地存储空间就是一个大的挑战。

技术实现思路

[0003]本申请旨在提供一种安卓容器间共享应用的方法及电子设备,通过将应用部署在安卓容器的共享分区、容器间通过安装锁隔离、基于Overlayfs的底层安装数据和上层应用数据隔离等多种技术手段,实现安卓容器间的应用本地存储共享,对于同一应用同一物理服务器只需安装一次,大大减少应用占用的本地存储空间和应用部署占用带宽以及减少应用安装时长。
[0004]根据本申请的一方面,提出一种安卓容器间共享应用的方法,包括:
[0005]在安卓容器所在的物理服务器中创建共享存储分区,所述共享存储分区用于保存所述安卓容器的应用数据包和应用安装锁,所述物理服务器包含多个所述安卓容器;
[0006]获取所述应用数据包,并保存在所述共享存储分区;
[0007]通过多个所述安卓容器竞争所述应用安装锁,由获取到所述应用安装锁的单个所述安卓容器安装所述应用数据包。
[0008]根据一些实施例,所述方法包括:
[0009]所述应用安装锁包括用于所述安卓容器间进行互斥的文件锁以及容器ID、应用数据包信息、使用者记录。
[0010]根据一些实施例,所述方法还包括:
[0011]通过所述安卓容器的包管理服务,对所述应用数据包进行扫描和注册。
[0012]根据一些实施例,所述方法还包括:
[0013]将所述安卓容器中的应用目录按照堆叠文件系统进行聚类组织,包括将所述共享存储分区内的所述第一应用目录作为只读层,并将所述安卓容器内部的对应所述第一应用目录的第二目录作为可读写层。
[0014]根据一些实施例,所述方法还包括:
[0015]所述只读层存储当前版本的应用数据包,所述可读写层存储应用运行时产生的用户数据以及应用程序动态更新数据。
[0016]根据一些实施例,所述方法还包括:
[0017]所述获取所述应用数据包,并保存在所述共享存储分区,包括:
[0018]由所述安卓容器接收应用安装请求,所述应用安装请求包含所述应用数据包的远程路径;
[0019]根据所述远程路径将所述应用数据包拷贝到所述共享存储分区。
[0020]根据一些实施例,所述方法还包括:
[0021]所述通过多个所述安卓容器竞争所述应用安装锁,由获取到所述应用安装锁的单个所述安卓容器安装所述应用数据包,包括:
[0022]通过所述应用安装锁,使得在同一时刻只允许单个安卓容器安装同一个应用;
[0023]获取到所述应用安装锁的安卓容器进入安装流程,未获取到所述应用安装锁的安卓容器等待其他安卓容器已占用的所述应用安装锁释放。
[0024]根据一些实施例,所述方法还包括:
[0025]所述通过多个所述安卓容器竞争所述应用安装锁,由获取到所述应用安装锁的单个所述安卓容器安装所述应用数据包,还包括:
[0026]由获取到所述应用安装锁的安卓容器完成所述应用数据包的远程拷贝和完整性验证;
[0027]由完成安装后的安卓容器更新所述使用者记录,并释放所述应用安装锁。
[0028]根据一些实施例,所述方法还包括:
[0029]所述通过多个所述安卓容器竞争所述应用安装锁,由获取到所述应用安装锁的单个所述安卓容器安装所述应用数据包,还包括:
[0030]如果等待安装的安卓容器获取所述应用安装锁后,判断应用已安装,则将获取到所述应用安装锁的所述安卓容器的ID加入到所述使用者记录后释放所述应用安装锁。
[0031]根据一些实施例,所述方法还包括:
[0032]所述通过多个所述安卓容器竞争所述应用安装锁,由获取到所述应用安装锁的单个所述安卓容器安装所述应用数据包,还包括:
[0033]如果所述安卓容器删除应用,则获取所述应用安装锁,在获取所述应用安装锁之后,删除所述使用者记录中的本安卓容器ID;
[0034]如果所述使用者记录为空,则删除所述应用的所有数据包。
[0035]根据本申请的另一方面,提供一种安卓容器间共享应用的方法,包括:
[0036]通过安卓容器接收应用安装请求,所述应用安装请求包含应用数据包的远程路径;
[0037]根据所述远程路径将所述应用数据包拷贝到所述共享存储分区;
[0038]通过应用安装锁,使得在同一时刻只允许单个安卓容器安装同一个应用;
[0039]获取到所述应用安装锁的安卓容器进入安装流程,未获取到所述应用安装锁的安卓容器等待所述应用安装锁释放。
[0040]根据一些实施例,所述方法还包括:
[0041]所述应用安装锁包括用于所述安卓容器间进行互斥的文件锁以及容器ID、应用包信息、使用者记录。
[0042]根据一些实施例,所述方法还包括:
[0043]由获取到所述应用安装锁的安卓容器完成所述应用数据包的远程拷贝和完整性
验证;
[0044]由完成安装后的安卓容器更新所述使用者记录,并释放所述应用安装锁;
[0045]如果等待安装的安卓容器获取所述应用安装锁后,判断应用已安装,则将获取到所述应用安装锁的所述安卓容器的ID加入到所述使用者记录后释放所述应用安装锁。
[0046]根据本申请的另一方面,提供一种电子设备,包括:
[0047]存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中任一项所述的方法。
[0048]根据本申请的另一方面,提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述方法中任一项所述的方法。
[0049]根据本申请示例实施例,通过将应用安装后重新打包的文件包即应用数据包部署在安卓容器的共享分区、容器间通过安装锁隔离、基于Overlayfs的底层安装数据和上层应用数据隔离等多种技术手段,实现安卓容器间的应用本地存储共享,对于同一应用同一物理服务器只需安装一次,大大减少应用占用的本地存储空间和应用部署占用带宽以及减少应用安装时长。
[0050]应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
[0051]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
[0052]图1示出根据本申请示例实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种安卓容器间共享应用的方法,其特征在于,包括:在安卓容器所在的物理服务器中创建共享存储分区,所述共享存储分区用于保存所述安卓容器的应用数据包和应用安装锁,所述物理服务器包含多个所述安卓容器;获取所述应用数据包,并保存在所述共享存储分区;通过多个所述安卓容器竞争所述应用安装锁,由获取到所述应用安装锁的单个所述安卓容器安装所述应用数据包。2.根据权利要求1所述的方法,其特征在于,所述应用安装锁包括用于所述安卓容器间进行互斥的文件锁以及容器ID、应用数据包信息、使用者记录。3.根据权利要求1所述的方法,其特征在于,还包括:通过所述安卓容器的包管理服务,对所述应用数据包进行扫描和注册。4.根据权利要求1所述的方法,其特征在于,还包括:将所述安卓容器中的应用目录按照堆叠文件系统进行聚类组织,包括将所述共享存储分区内的第一应用目录作为只读层,并将所述安卓容器内部的对应所述第一应用目录的第二目录作为可读写层。5.根据权利要求4所述的方法,其特征在于,所述只读层存储当前版本的应用数据包,所述可读写层存储应用运行时产生的用户数据以及应用程序动态更新数据。6.根据权利要求1所述的方法,其特征在于,所述获取所述应用数据包,并保存在所述共享存储分区,包括:由所述安卓容器接收应用安装请求,所述应用安装请求包含所述应用数据包的远程路径;根据所述远程路径将所述应用数据包拷贝到所述共享存储分区。7.根据权利要求2所述的方法,其特征在于,所述通过多个所述安卓容器竞争所述应用安装锁,由获取到所述应用安装锁的单个所述安卓容器安装所述应用数据包,包括:通过所述应用安装锁,使得在同一时刻只允许单个安卓容器安装同一个应用;获取到所述应用安装锁的安卓容器进入安装流程,未获取到所述应用安装锁的安卓容器等待所述应用安装锁释放。8.根据权利要求7所述的方法,其特征在于,所述通过多个所述安卓容器竞争所述应用安装锁,由获取到所述应用安装锁的单个所述安卓容器安装所述应用数据包,还包括:由获取到所述应用安装锁的安卓容器完成所述应用数据包的远程拷贝和完整性验证;由完成安装后...

【专利技术属性】
技术研发人员:戚跃斌许立钦张世明
申请(专利权)人:元境生生北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1