沙箱活动组件进程空间分配方法、分配装置和分配终端制造方法及图纸

技术编号:17970977 阅读:37 留言:0更新日期:2018-05-16 11:39
本发明专利技术提供一种沙箱活动组件进程空间分配方法、分配装置和分配终端,接收为待加载活动组件分配永久活动组件坑位的请求;根据坑位列表判断待加载活动组件是否已分配有永久活动组件坑位,若是则为待加载活动组件提供其对应的永久活动组件坑位,若否则根据预设的优选策略从坑位列表中为待加载活动组件分配目标永久活动组件坑位,坑位列表用于存储多个预注册的永久活动组件坑位的特征信息;在坑位列表中标记目标永久活动组件坑位的使用状态表征其已被永久分配,响应于该请求为待加载活动组件提供目标永久活动组件坑位。这种永久固定分配坑位的方法,可以有效避免传统技术动态分配坑位难以同步的问题。

【技术实现步骤摘要】
沙箱活动组件进程空间分配方法、分配装置和分配终端
本专利技术涉及计算机应用程序
,具体而言,本专利技术涉及一种以Android原理为基础的沙箱活动组件进程空间分配方法、分配装置和分配终端。
技术介绍
Android操作系统有其不同于其他操作系统的原理,Android为开发者提供四大组件,具体指Activity、Service、Receiver以及ContentProvider等组件,其中Activity便是本专利技术所称的活动组件,通过对各组件的灵活运用,可以由开发者定制出应用程序。Android应用程序以APK安装包的形式提供给用户进行安装,APK安装包中,具有用于封装实现各个组件的程序代码的classes.dex代码文件以及用于表达应用程序所用的各个组件的注册信息以及权限申请信息等内容的Androidmanifest.xml配置文件。Activity组件通常用于实现用户界面以便应用程序能与用户进行人机交互,其代码可以被封装在classes.dex文件中,且需要在该配置文件中实现注册。该配置文件中,各个activity的注册信息可以视为独立注册信息模块,可视为“活动组件坑位”,简称“坑位”。Android系统在对应用程序进行安装时,由PackageManageService(PMS)对APK安装包的各个组件进行校验,而ActivityManagerSevice(AMS)则可以根据注册信息为活动组件建立进程入口(ActivityThread),以确保活动组件的正常运行。通常,Activity活动组件应当预先在Androidmanafest.xml配置文件中进行坑位注册,并且坑位与组件名称以及活动组件的其他属性之间应保持一一对应性和确定性,这样才能够确保这些活动组件的正常注册。这种情况下,整个应用程序应当在开发时便确定了这些活动组件,由这些活动组件有机组合而成的应用程序继而作为一个整体提供给终端进行安装。终端每一次安装均是基于一个完整的应用程序的基础上进行,其中的每一个活动组件都在配置文件中进行了一一对应的注册表达,不存在任何不确定性。换言之,任何未经在Androidmanifest.xml注册的Activity活动组件,常规情况下均不能够被调度为进程进行运行。由此可知,每一次为应用程序扩展功能而提供新的活动组件,均需要将应用程序重新进行打包,并以打包后的安装文件提供给客户端进行安装,每次安装均是全量的。对于远程下载的情况而言,既浪费流量,又降低了效率,更不利于应用程序的功能模块的灵活扩展。为了克服应用程序版本更迭所导致的流量浪费的问题,以沙箱为例,传统技术中,先预注册活动组件坑位,然后为待加载的活动组件分配相适配的预留的活动组件坑位,使得活动组件坑位可以动态分配或临时分配,实现活动组件的动态调度。这种按需分配方式,活动组件退出时坑位也将被立即释放,存在的缺陷就是:因为各种应用程序或活动组件随时会崩溃或被销毁,在应用程序或活动组件频繁的重启或退出的情况下,沙箱的坑位回收后台服务可能无法及时收到对应应用程序或活动组件的启动或退出事件,在应用程序或活动组件频繁重启时,其启动和退出事件也无法达到完全一致性的同步,这样的坑位分配方式可能由于分配错误(例如重复分配)而导致相应活动组件无法启动。为了克服上述这些问题,除了需要提出新的技术框架之外,还需要为实施这些技术框架提供必要的技术准备。
技术实现思路
本专利技术的目的旨在至少能解决上述的技术缺陷之一,特别是分由于分配错误而导致相应活动组件无法启动的技术缺陷。本专利技术提供一种沙箱活动组件进程空间分配方法,包括如下步骤:接收为待加载活动组件分配永久活动组件坑位的请求;根据坑位列表判断所述待加载活动组件是否已分配有永久活动组件坑位,若是则为所述待加载活动组件提供其对应的永久活动组件坑位,若否则根据预设的优选策略从坑位列表中为所述待加载活动组件分配目标永久活动组件坑位,所述坑位列表用于存储多个预注册的永久活动组件坑位的特征信息;在坑位列表中标记目标永久活动组件坑位的使用状态表征其已被永久分配,响应于该请求为所述待加载活动组件提供目标永久活动组件坑位。在其中一个实施例中,所述优选策略包括:若坑位列表中没有适配的永久活动组件坑位可分配,则启动坑位回收机制回收永久活动组件坑位,并将回收到的永久活动组件坑位作为目标永久活动组件坑位分配给所述待加载活动组件。在其中一个实施例中,所述坑位回收机制包括:优先回收对应活动组件当前处于未启动状态,且其对应的永久活动组件坑位未使用时间最长的永久活动组件坑位。在其中一个实施例中,所述坑位回收机制包括:优先回收对应活动组件当前处于未启动状态,且其对应的永久活动组件坑位未使用时间超过预设时间的永久活动组件坑位。在其中一个实施例中,还包括步骤:接收到应用程序移除出沙箱的通知,回收所述应用程序对应活动组件所对应的永久活动组件坑位。在其中一个实施例中,所述预注册的永久活动组件坑位,由实施本方法的宿主功能模块利用其配置文件声明的用于表达预留的活动组件的注册信息进行注册。在其中一个实施例中,该配置文件为Androidmanifest.xml文件。在其中一个实施例中,所述坑位列表直接或间接建立有特征信息:活动组件坑位名、坑位使用状态、相适配的待加载活动组件之间的映射关系。在其中一个实施例中,所述坑位使用状态至少按照如下其中一种方式设置:实施本方法的宿主功能模块在其Application.attachBaseContext方法中进行初始化,将各永久活动组件坑位的使用状态设置为非使用状态;当永久活动组件坑位被分配后,将其使用状态置为已被永久分配的状态;当永久活动组件坑位作为目标永久活动组件坑位被返回并被加载后,其使用状态被置为已被加载的状态;当待加载活动组件的onCreate方法被调用后,相应的目标永久活动组件坑位的使用状态被置为已创建的状态;当插件被释放时,其使用状态被置为已回收状态。在其中一个实施例中,所述预设的优选策略以所述的坑位使用状态为依据优选适配的永久活动组件坑位。本专利技术还提供一种沙箱活动组件进程空间分配装置,包括:接收模块,用于接收为待加载活动组件分配永久活动组件坑位的请求;处理模块,用于根据坑位列表判断所述待加载活动组件是否已分配有永久活动组件坑位,若是则为所述待加载活动组件提供其对应的永久活动组件坑位,若否则根据预设的优选策略从坑位列表中为所述待加载活动组件分配目标永久活动组件坑位,所述坑位列表用于存储多个预注册的永久活动组件坑位的特征信息;响应模块,用于在坑位列表中标记目标永久活动组件坑位的使用状态表征其已被永久分配,响应于该请求为所述待加载活动组件提供目标永久活动组件坑位。在其中一个实施例中,还包括回收模块;所述优选策略包括:若坑位列表中没有适配的永久活动组件坑位可分配,则处理模块启动所述回收模块回收永久活动组件坑位,并将回收到的永久活动组件坑位作为目标永久活动组件坑位分配给所述待加载活动组件。在其中一个实施例中,所述回收模块用于:优先回收对应活动组件当前处于未启动状态,且其对应的永久活动组件坑位未使用时间最长的永久活动组件坑位。在其中一个实施例中,所述回收模块用于:优先回收对应活动组件当前处于未启动状态,且其对应的永久活动组件坑位未使用时间本文档来自技高网
...
沙箱活动组件进程空间分配方法、分配装置和分配终端

【技术保护点】
一种沙箱活动组件进程空间分配方法,其特征在于,包括如下步骤:接收为待加载活动组件分配永久活动组件坑位的请求;根据坑位列表判断所述待加载活动组件是否已分配有永久活动组件坑位,若是则为所述待加载活动组件提供其对应的永久活动组件坑位,若否则根据预设的优选策略从坑位列表中为所述待加载活动组件分配目标永久活动组件坑位,所述坑位列表用于存储多个预注册的永久活动组件坑位的特征信息;在坑位列表中标记目标永久活动组件坑位的使用状态表征其已被永久分配,响应于该请求为所述待加载活动组件提供目标永久活动组件坑位。

【技术特征摘要】
1.一种沙箱活动组件进程空间分配方法,其特征在于,包括如下步骤:接收为待加载活动组件分配永久活动组件坑位的请求;根据坑位列表判断所述待加载活动组件是否已分配有永久活动组件坑位,若是则为所述待加载活动组件提供其对应的永久活动组件坑位,若否则根据预设的优选策略从坑位列表中为所述待加载活动组件分配目标永久活动组件坑位,所述坑位列表用于存储多个预注册的永久活动组件坑位的特征信息;在坑位列表中标记目标永久活动组件坑位的使用状态表征其已被永久分配,响应于该请求为所述待加载活动组件提供目标永久活动组件坑位。2.根据权利要求1所述的沙箱活动组件进程空间分配方法,其特征在于,所述优选策略包括:若坑位列表中没有适配的永久活动组件坑位可分配,则启动坑位回收机制回收永久活动组件坑位,并将回收到的永久活动组件坑位作为目标永久活动组件坑位分配给所述待加载活动组件。3.根据权利要求2所述的沙箱活动组件进程空间分配方法,其特征在于,所述坑位回收机制包括:优先回收对应活动组件当前处于未启动状态,且其对应的永久活动组件坑位未使用时间最长的永久活动组件坑位。4.根据权利要求2所述的沙箱活动组件进程空间分配方法,其特征在于,所述坑位回收机制包括:优先回收对应活动组件当前处于未启动状态,且其对应的永久活动组件坑位未使用时间超过预设时间的永久活动组件坑位。5.根据权利要求1所述的沙箱活动组件进程空间分配方法,其特征在于,还包括步骤:接收到应用程序移除出沙箱的通知,回收所述应用程序对应活动组件所对应的永久活动组件坑位...

【专利技术属性】
技术研发人员:钟基洪
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京,11

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

1