基于安卓系统客户端的VR应用免安装方法及其系统与流程

文档序号:12463398阅读:315来源:国知局
基于安卓系统客户端的VR应用免安装方法及其系统与流程

本发明涉及VR应用运行控制领域,尤其涉及一种基于安卓系统客户端的VR应用免安装方法及其系统。



背景技术:

随着手机等终端的日益普及和VR技术的应运而生,出现了能在Android系统的手机终端上运行的VR应用。

目前现有技术下在Android端安装、运行不同VR应用主要有以下方式:

1、用户通过互联网下载安装包自行管理、手动通过原有Android系统安装逻辑安装VR应用安装包后在系统桌面点击不同VR应用图标运行。

2、通过应用商店等综合应用分发平台下载VR应用后由应用商店启动原有Android系统的安装流程,人工确认后安装VR应用后运行。

在现有技术下运行VR应用前需要人工点击VR应用安装包通过系统的原有的安装流程进行安装,无法静默安装。

当手机安装大量的VR应用后,系统桌面中有了大量的VR应用图标不便于应用的管理和启动。

在公开号为CN105094922A的中国专利公开文件中,提出了一种应用程序免安装运行控制方法,包括步骤:响应于运行所述应用程序的指令,解析该应用程序的安装文件,获取其所需的运行信息,并据其中的配置文件预先注册应用程序运行所需程序资源和进程资源;基于所述运行信息构造所述应用程序的运行环境,利用所述预注册的程序资源及进程资源运行该应用程序;在所述应用程序运行过程中,调度应用程序运行所需的系统资源,以确保该应用程序正常运行。

但该方案中在利用所述预注册程序资源及进程资源运行该应用程序的实现方式是利用hook技术在系统的函数接口进行拦截,启动预注册的Activity(活动组件)后,利用Intent(意图)将原预注册的Activity(活动组件)替换为目标免安装应用代码内的Activity(活动组件)。从而运行此Activity(活动组件)内部代码。此技术方案并不能满足Unity打包的VR应用场景下的使用。Unity打包的VR应用场景下存在大量的so文件内的Native代码,该技术方案采用hook的方式对系统函数接口进行拦截,但是对Native函数的hook拦截的兼容不好会导致无法正常地免安装运行VR应用。



技术实现要素:

本发明所要解决的技术问题是:提出一种基于安卓系统客户端的VR应用免安装方法及其系统,无需人工进行安装过程,提升用户体验,且避免系统桌面产生大量的VR应用图标。

为了解决上述技术问题,本发明采用的技术方案为:一种基于安卓系统客户端的VR应用免安装方法,包括:

客户端下载一VR应用的安装包;

客户端解压分析所述安装包,获取其内的关键文件;

将所述关键文件存储至预设的目录下;

接收运行所述一VR应用的指令;

通过安卓系统的应用程序编程接口提供的活动组件加载所述一VR应用的关键文件,渲染得到所述一VR应用的界面。

本发明还涉及一种基于安卓系统客户端的VR应用免安装系统,包括:

下载模块,用于客户端下载一VR应用的安装包;

解压模块,用于客户端解压分析所述安装包,获取其内的关键文件;

存储模块,用于将所述关键文件存储至预设的目录下;

接收模块,用于接收运行所述一VR应用的指令;

加载模块,用于通过安卓系统的应用程序编程接口提供的活动组件加载所述一VR应用的关键文件,渲染得到所述一VR应用的界面。

本发明的有益效果在于:通过动态加载VR应用的关键文件,使下载的VR应用免安装即可正常运行,启动VR应用不再需要经过繁琐的人工安装流程问题,提升用户体验;同时,免安装的实现也解决了安装过多的VR应用使安卓系统桌面产生大量应用图标造成不便管理、启动的问题;且启动VR应用更加地便捷,可快速地在不同的VR应用之间切换运行。

附图说明

图1为本发明一种基于安卓系统客户端的VR应用免安装方法的流程图;

图2为本发明实施例一的方法流程图;

图3为本发明实施例一步骤S6的流程图;

图4为本发明一种基于安卓系统客户端的VR应用免安装系统的结构示意图;

图5为本发明实施例二的系统结构示意图。

标号说明:

1、下载模块;2、解压模块;3、存储模块;4、接收模块;5、加载模块;6、判断模块;

51、第一获取单元;52、加载单元;53、第一修改单元;54、第二获取单元;55、渲染单元;56、第二修改单元。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:通过继承自安卓系统的活动组件动态加载VR应用的关键文件。

请参阅图1,一种基于安卓系统客户端的VR应用免安装方法,包括:

客户端下载一VR应用的安装包;

客户端解压分析所述安装包,获取其内的关键文件;

将所述关键文件存储至预设的目录下;

接收运行所述一VR应用的指令;

通过安卓系统的应用程序编程接口提供的活动组件加载所述一VR应用的关键文件,渲染得到所述一VR应用的界面。

从上述描述可知,本发明的有益效果在于:使下载的VR应用免安装即可正常运行,启动VR应用不再需要经过繁琐的人工安装流程问题,提升用户体验;同时,免安装的实现也解决了安装过多的VR应用使安卓系统桌面产生大量应用图标造成不便管理、启动的问题。

进一步地,所述“客户端解压分析所述安装包,获取其内的关键文件”之后,进一步包括:

根据所述关键文件,判断所述客户端是否支持所述安装包所需要的运行权限,以及所述关键文件是否可模拟运行。

由上述描述可知,预先进行运行权限的判断,保证后续可正常运行应用。

进一步地,所述“通过安卓系统的应用程序编程接口提供的活动组件加载所述一VR应用的关键文件,渲染得到所述一VR应用的界面”具体为:

客户端获取安卓系统的应用程序编程接口提供的活动组件;

利用所述活动组件,加载对应所述一VR应用的关键文件中的核心视图类;

将所述活动组件的资源获取路径修改为所述预设的目录的路径;

根据修改后的资源获取路径,从所述一VR应用的关键文件中获取渲染VR界面所需的资源;

核心视图类根据所获取的资源,渲染得到所述一VR应用的界面。

由上述描述可知,利用预先获取的活动组件加载核心视图类,并将渲染所需资源的资源获取路径重定向为关键文件所在的目录路径,即可渲染得到VR应用的界面;运行不同的VR应用都可通过该活动组件进行核心视图类的加载,只需重定向资源获取路径即可,使得启动VR应用更加地便捷,可快速地在不同的VR应用之间切换运行。

进一步地,所述“利用所述活动组件,加载对应所述一VR应用的关键文件中的核心视图类”之后,进一步包括:

根据所述活动组件的生命周期,对应修改所述核心视图类的生命周期。

由上述描述可知,通过对应修改核心视图类的生命周期,保证VR应用可正常运行。

进一步地,所述关键文件包括dex文件和so文件。

请参照图4,本发明还提出一种基于安卓系统客户端的VR应用免安装系统,包括:

下载模块,用于客户端下载一VR应用的安装包;

解压模块,用于客户端解压分析所述安装包,获取其内的关键文件;

存储模块,用于将所述关键文件存储至预设的目录下;

接收模块,用于接收运行所述一VR应用的指令;

加载模块,用于通过安卓系统的应用程序编程接口提供的活动组件加载所述一VR应用的关键文件,渲染得到所述一VR应用的界面。

进一步地,还包括:

判断模块,用于根据所述关键文件,判断所述客户端是否支持所述安装包所需要的运行权限,以及所述关键文件是否可模拟运行。

进一步地,所述加载模块包括:

第一获取单元,用于客户端获取安卓系统的应用程序编程接口提供的活动组件;

加载单元,用于利用所述活动组件,加载对应所述一VR应用的关键文件中的核心视图类;

第一修改单元,用于将所述活动组件的资源获取路径修改为所述预设的目录的路径;

第二获取单元,用于根据修改后的资源获取路径,从所述一VR应用的关键文件中获取渲染VR界面所需的资源;

渲染单元,用于核心视图类根据所获取的资源,渲染得到所述一VR应用的界面。

进一步地,所述加载模块还包括:

第二修改单元,用于根据所述活动组件的生命周期,对应修改所述核心视图类的生命周期。

进一步地,所述关键文件包括dex文件和so文件。

实施例一

请参照图2,本发明的实施例一为:一种基于安卓系统客户端的VR应用免安装方法,包括如下步骤:

S1:客户端下载一VR应用的安装包。

S2:客户端解压分析所述安装包,获取其内的关键文件;所述关键文件包括dex文件和so文件。同时,解析安装包,以确认是安卓应用。

S3:根据所述关键文件,判断所述客户端是否支持所述安装包所需要的运行权限,以及所述关键文件是否可模拟运行,若是,则执行步骤S4。

S4:将所述关键文件存储至预设的目录下。进一步地,所述预设的目录为客户端私有的目录,且可记录识别关键文件对应的VR应用的版本及使用情况。本步骤只是将关键文件进行存储,不进行重新打包成APK安装包,也不利用Android的原有安装逻辑去执行安装。

S5:接收运行所述一VR应用的指令。

S6:通过安卓系统的应用程序编程接口提供的活动组件加载所述一VR应用的关键文件,渲染得到所述一VR应用的界面。

进一步地,如图3所示,所述步骤S6包括如下步骤:

S601:客户端获取安卓系统的应用程序编程接口提供的活动组件;即继承Android系统API提供的活动组件。

S602:利用所述活动组件,加载对应所述一VR应用的关键文件中的核心视图类;即加载dex文件中的UnityPlayer类。

S603:将所述活动组件的资源获取路径修改为所述预设的目录的路径;由于所述一VR应用的关键文件存储在预设的目录中,因此,将资源获取路径修改为预设的目录的路径,引导核心代码加载正确的资源。

S604:根据修改后的资源获取路径,从所述一VR应用的关键文件中获取渲染VR界面所需的资源;即获取所述一VR应用的dex文件和so文件中的核心代码。

S605:核心视图类根据所获取的资源,渲染得到所述一VR应用的界面。

进一步地,在所述步骤S602之后还包括:

S606:根据所述活动组件的生命周期,对应修改所述核心视图类的生命周期。

由于活动组件是继承自安卓系统的,因此活动组件的播放、暂停或停止是由安卓系统控制的,通过对应修改核心视图类的生命周期,让系统调用活动组件的生命周期函数时完成核心视图类的生命周期的模拟,保证VR应用能正常运行。

本实施例先自己实现了一个可加载不同VR核心代码UnityPlayer类的Activity(活动组件),当接收到免安装运行VR应用指令时,直接启动自己实现的Activity(活动组件)。当系统回调此Activity(活动组件)的OnCreate函数时在该函数内处理找到目标应用的关键文件(dex及so)加载并利用关键文件的UnityPlayer类代码创建实例对象运行。运行过程中UnityPlayer通过活动组件获取资源时在自己实现的组件获取资源的路径重定向到目标应用上,由于目标应用的关键文件存储在预设的目录中,因此即将获取资源的路径修改为预设的目录的路径。当在运行中UnityPlayer加载的so代码通过jni的方式回调用活动组件的函数时,通过在自己实现的活动组件中覆盖此函数重定向到自己实现的函数上解决Native层代码兼容不好导致VR应用无法免安装运行的问题。

本实施例通过动态加载VR应用的关键文件,使下载的VR应用免安装即可正常运行,启动VR应用不再需要经过繁琐的人工安装流程问题,提升用户体验;同时,免安装的实现也解决了安装过多的VR应用使安卓系统桌面产生大量应用图标造成不便管理、启动的问题;且启动VR应用更加地便捷,可快速地在不同的VR应用之间切换运行。

实施例二

请参照图5,本实施例是对应上述实施例的一种基于安卓系统客户端的VR应用免安装系统,包括:

下载模块1,用于客户端下载一VR应用的安装包;

解压模块2,用于客户端解压分析所述安装包,获取其内的关键文件;

存储模块3,用于将所述关键文件存储至预设的目录下;

接收模块4,用于接收运行所述一VR应用的指令;

加载模块5,用于通过安卓系统的应用程序编程接口提供的活动组件加载所述一VR应用的关键文件,渲染得到所述一VR应用的界面。

进一步地,还包括:

判断模块6,用于根据所述关键文件,判断所述客户端是否支持所述安装包所需要的运行权限,以及所述关键文件是否可模拟运行。

进一步地,所述加载模块5包括:

第一获取单元51,用于客户端获取安卓系统的应用程序编程接口提供的活动组件;

加载单元52,用于利用所述活动组件,加载对应所述一VR应用的关键文件中的核心视图类;

第一修改单元53,用于将所述活动组件的资源获取路径修改为所述预设的目录的路径;

第二获取单元54,用于根据修改后的资源获取路径,从所述一VR应用的关键文件中获取渲染VR界面所需的资源;

渲染单元55,用于核心视图类根据所获取的资源,渲染得到所述一VR应用的界面。

进一步地,所述加载模块5还包括:

第二修改单元56,用于根据所述活动组件的生命周期,对应修改所述核心视图类的生命周期。

进一步地,所述关键文件包括dex文件和so文件。

综上所述,本发明提供的一种基于安卓系统客户端的VR应用免安装方法及其系统,通过动态加载VR应用的关键文件,使下载的VR应用免安装即可正常运行,启动VR应用不再需要经过繁琐的人工安装流程问题,提升用户体验;同时,免安装的实现也解决了安装过多的VR应用使安卓系统桌面产生大量应用图标造成不便管理、启动的问题;且启动VR应用更加地便捷,可快速地在不同的VR应用之间切换运行。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1