应用进程试用方法和系统与流程

文档序号:15164351发布日期:2018-08-14 17:17阅读:212来源:国知局

本发明涉及软件应用技术领域,特别是涉及一种应用进程试用方法和系统。



背景技术:

互联网的发展带来了形形色色的软件应用进程,例如即时通讯类应用、社交类应用、游戏类应用、翻译类应用等等。这些应用通常可以集中在应用市场中呈现给移动终端用户,供移动终端用户浏览及下载使用。移动终端用户在下载应用时,面对大量的应用尤其是同类型的应用,通常不知道该如何选择,需要先安装应用后再运行进行试用。

然而,以上方式需要通过事先安装进行试用后才能了解该应用是否为自己所需要的,操作繁琐试用门槛高,且目前也有很多伪装的恶意应用在使用前无法辨别,一旦安装会带来安全风险。

相关技术中,对于上述问题,尚无有效解决方案。



技术实现要素:

基于此,有必要提供一种操作简单、安全的应用进程试用方法和系统。

一种应用进程试用方法,包括:

获取应用试运行指令;

根据所述试运行指令加载所述应用的代码和资源存入虚拟运行区,并解析所述应用的信息描述文件获取所述应用的启动信息;

通过所述虚拟运行区将所述启动信息转发给系统服务,在所述虚拟运行区内启动所述应用并运行。

一种应用进程试用系统,包括:

获取模块,用于获取应用试运行指令;

解析模块,用于根据所述试运行指令加载所述应用的代码和资源存入虚拟运行区,并解析所述应用的信息描述文件获取所述应用的启动信息;

运行模块,用于通过所述虚拟运行区将所述启动信息转发给系统服务,在所述虚拟运行区内启动所述应用并运行。

上述应用进程试用方法和系统,通过虚拟运行区模拟应用于移动终端内运行时的运行环境,将下载应用的安装包在虚拟运行区中使用,由于虚拟运行区与终端的系统服务的进程运行环境是隔离的,不会产生安全风险;进程试用前不需要真实安装应用进程,而是可以通过试用的真实体验后再决定是否需要该应用并且真实安装有助于用户选择真正想要的应用进程,提高有效分发,操作简单且减少安全隐患。

附图说明

图1为一实施例中应用进程试运行方法的系统架构图;

图2为一实施例中移动终端的内部结构示意图;

图3为一实施例中应用进程试运行方法的流程图;

图4为另一实施例中应用进程试运行方法的流程图;

图5为又一实施例中应用进程试运行方法的流程图;

图6为另一实施例中应用进程试运行方法的流程图;

图7为又一实施例中应用进程试运行方法的流程图;

图8为另一实施例中应用进程试运行方法的流程图;

图9为再一实施例中应用进程试运行方法的流程图;

图10为一存储类应用进入试运行程序的示意图;

图11为一存储类应用试运行程序结束后再安装的示意图;

图12为一实施例中应用进程试运行系统的结构示意图;

图13为另一实施例中应用进程试运行系统的结构示意图;

图14为又一实施例中应用进程试运行系统的结构示意图;

图15为另一实施例中应用进程试运行系统的结构示意图;

图16为再一实施例中应用进程试运行系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

本发明实施例提供的用户分类方法可应用于图1所示的系统中,如图1所示,终端100通过网络与服务器200进行通信,终端100通过网络获取服务器所推送的应用进程,如云存储类应用、即时通讯类应用、社交类应用、游戏类应用、翻译类应用等等,并获取终端用户输入的对相应的应用进程的试运行指令或运行结束指令,根据所述应用试运行指令或运行结束指令完成对相应应用进程的试用。终端100通常为移动终端,如智能手机、平板电脑、个人数字助理(pda)等。服务器200可以为独立的物理服务器或者物理服务器集群。

本发明实施例提供的应用进程试用方法可应用于图2所示的终端中。如图2所示,移动终端100包括通过系统总线连接的处理器、非易失性存储介质、内存储器、网络接口以及显示屏。处理器具有计算功能和控制移动终端工作的功能,该处理器被配置为执行一种应用进程试用方法。非易失性存储介质包括磁存储介质、光存储介质和闪存式存储介质中的至少一种,非易失性存储介质存储有操作系统和应用进程试用系统。该应用进程试用系统用于实现对应用进程进行试运行的方法。网络接口用于连接到服务器,用于与服务器进行通信,接收来自网络的资源。

如图3所示,为本申请一实施例提供的一种应用进程试用方法,该方法可应用于图2所示的移动终端中,具体包括如下步骤。

步骤101,获取应用试运行指令。

应用进程包含用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合。应用进程通常为满足用户不同领域、不同问题的应用需求而提供的软件程序,常用的应用进程包括即时通讯类应用进程、社交类应用进程、游戏类应用进程、翻译类应用进程等等。应用试运行指令可以为点击试运行应用进程或者打开应用进程的操作指令。应用试运行指令可以为预设规则的操作,如通过触摸或者点击预设控件的操作。优选的,在获取应用试运行指令的步骤前,还包括获取下载应用指令,根据所述下载应用指令下载应用的安装包。

步骤103,根据试运行指令加载应用的代码和资源存入虚拟运行区,并解析应用的信息描述文件获取应用的启动信息。

每一应用进程由代码实现,应用进程的运行都需要使用资源。资源是在逻辑上由应用进程部署的任何非可执行数据。资源可以在应用进程中作为错误数据显示,或者作为用户界面的一部分显示。资源可以包含多种形式的数据,包括字符串、图像和持久的对象。虚拟运行区是指模拟的与系统标准应用进程运行时对应的虚拟运行环境,其与终端系统的真实运行环境相互隔离。根据试运行指令从应用进程的安装包内加载应用的代码和资源并存入虚拟运行区,解析应用的信息描述文件获取应用的启动信息。在一具体的实施例中,移动终端为常用的android系统终端,信息描述文件为androidmanifest.xml文件。

步骤105,通过虚拟运行区将启动信息转发给系统服务,在虚拟运行区内启动应用并运行。

系统服务是指执行指定系统功能的程序或进程,以便支持其他程序。将待试用应用进程的启动信息转发给系统服务,以便能够在系统服务的支持下通过虚拟运行区实现试运行。

上述应用进程试用方法,通过虚拟运行区模拟应用于移动终端内运行时的运行环境,将下载应用的安装包在虚拟运行区中使用,由于虚拟运行区与终端的系统服务的进程运行环境是隔离的,不会产生安全风险;进程试用前不需要真实安装应用进程,而是可以通过试用的真实体验后再决定是否需要该应用并且真实安装有助于用户选择真正想要的应用进程,提高有效分发,而且减少安全隐患。

如图4所示,在另一个实施例中,步骤103,根据试运行指令加载应用的代码和资源存入虚拟运行区,并解析应用的信息描述文件获取应用的启动信息的步骤之前,还包括:

步骤102,模拟与android系统的标准应用进程运行时环境对应的虚拟运行环境作为虚拟容器,启动虚拟容器作为虚拟运行区。

在一具体的实施例中,移动终端为常用的android系统终端,虚拟运行区为模拟android系统的标准应用进程运行时环境对应的虚拟运行环境,即虚拟容器。容器是一个服务程序,在服务器一个端口对应一个提供相应服务的服务程序,通过该服务程序处理从客户端发出的请求,通过虚拟容器的设置,给处于虚拟容器内的应用程序组件提供一个环境,使得应用程序组件直接跟容器中的服务接口交互,与android系统的真实运行环境相隔离。android系统是常用的手机操作系统,目前的android系统终端在真实安装应用进程之前无法进行试用以了解进程功能与性能,而对每一应用都真实安装后再试用对终端带来安全隐患问题,从而可通过模拟与android系统的标准应用进程运行时环境对应的虚拟运行环境来形成虚拟运行区,以实现android系统的应用试用后再安装的功能。

如图5所示,在另一个实施例中,步骤102,模拟与android系统的标准应用进程运行时环境对应的虚拟运行环境作为虚拟容器,启动虚拟容器作为虚拟运行区的步骤包括:

步骤1021,通过hook技术模拟与android系统的标准应用进程运行时环境对应的虚拟运行环境作为虚拟容器,启动虚拟容器作为虚拟运行区。

hook技术是指计算机程序中劫持对某个函数调用的技术。hook技术通常包括gothook和inlinehook,gothook指在函数运行时修改elf(electroniclocationfinder,电子定位器)可重定位文件中的got表的函数hook方式;inlinehook指在运行时修改被调用的函数起始位置指令的函数hook方式。通过hook技术在android系统的标准应用进程运行时修改其与android系统服务交互的本地binder代理对象,以模拟android系统的ams(activitymanagerservice)系统服务/pms(packagemanagerservice)系统服务,提供与android系统的标准应用进程运行时环境对应的虚拟运行环境。其中,通过hook技术实现虚拟容器的创建,从而提供支持应用进程免真实安装之前试运行的运行环境。

如图6所示,在另一个实施例中,步骤1021,通过hook技术模拟与android系统的标准应用进程运行时环境对应的虚拟运行环境作为虚拟容器,启动虚拟容器作为虚拟运行区的步骤包括:

步骤1023,启动andriod系统的标准应用进程;

步骤1025,通过java反射机制,替换与andriod系统服务交互的本地binder代理对象,通过动态代理技术将被代理对象的远程调用方法重定向到自定义的虚拟系统服务,以模拟出与android系统的标准应用进程运行时环境对应的虚拟运行环境作为虚拟容器;

步骤1027,启动虚拟容器作为虚拟运行区。

java反射机制是指在运行状态中,对于任意一个类都知道这个类的所有属性和方法,对于任意一个对象都能够调用它的任意方法和属性,这种动态获取信息以及调用对象方法的功能称为java反射机制。启动andriod系统的标准应用进程,通过动态代理技术将被代理对象的远程调用方法重定向到自定义的虚拟系统服务,以模拟出与android系统的标准应用进程运行时环境对应的虚拟运行环境作为虚拟容器,从而可在不获取系统root权限下即可实现创建虚拟容器。

如图7所示,在另一个实施例中,步骤103,模拟与android系统的标准应用进程对应的虚拟运行环境作为虚拟容器,启动所述虚拟容器作为虚拟运行区步骤之前,还包括:

步骤1020,获取系统权限,通过系统权限配置独立的虚拟存储空间,将所述虚拟存储空间作为虚拟运行区。

通过获取系统权限下独立的虚拟存储空间的建立,作为与终端系统的真实运行环境相互隔离的虚拟运行区,从而可以将待安装应用进程安装在该虚拟存储空间来实现试运行。由于虚拟运行区与终端的系统服务的进程运行环境是隔离的,不会产生安全风险;进程试用前不需要真实安装应用进程,而是可以通过试用的真实体验后再决定是否需要该应用并且真实安装有助于用户选择真正想要的应用进程。

如图8所示,在另一个实施例中,步骤103,根据试运行指令加载应用的代码和资源存入虚拟运行区,并解析应用的信息描述文件获取应用的启动信息的步骤包括:

步骤1031,根据试运行指令通过类装载器加载应用的代码,通过创建应用程序资源管理器加载资源,并将应用的代码和资源存入虚拟运行区,并解析应用的信息描述文件获取应用的启动信息。

在一个具体的实施例中,移动终端为常用的android系统终端,通过android系统的类装载器(dexclassloader)加载应用的代码,通过创建应用程序资源管理器(assetmanager)加载资源。将代码和资源加载到虚拟运行区所形成的隔离空间内。启动信息具体为应用的页面启动信息,包括应用的入口activity的包名和类名。通过获取解析应用的信息描述文件获取应用的页面启动信息从而实现在虚拟运行区所形成的隔离空间内启动应用进程。

优选的,步骤105,通过虚拟运行区将启动信息转发给andriod系统服务,在虚拟运行区内启动应用并运行的步骤包括:

步骤1051,通过虚拟运行区将启动信息进行参数处理转化为android系统能够识别的已安装组件并转发给android系统服务,在虚拟运行区启动应用并运行。

通过虚拟运行区将启动信息进行参数处理转化为android系统能够识别的已安装组件并转发给android系统服务,也即通过代理方式将应用进程启动信息转发给android系统服务,完成应用进程页面启动和组件的生命周期管理。

优选的,步骤105,通过虚拟运行区将启动信息转发给andriod系统服务,在虚拟运行区内启动应用并运行的步骤之后,还包括:

步骤107,获取运行结束指令,根据运行结束指令结束运行并将应用的代码和资源从虚拟运行区中删除。

在应用进程试运行结束之后,将应用的代码和资源从虚拟运行区中自动删除,清空占用的内存空间。优选的,将应用的代码和资源从虚拟运行区中删除同时,删除加载时缓存到磁盘的临时文件。

请参阅图9,在另一个实施例中,步骤105,通过虚拟运行区将启动信息转发给andriod系统服务,在虚拟运行区内启动应用并运行的步骤之后,还包括:

步骤1081,获取运行结束指令,根据运行结束指令结束运行并显示试运行结果确认页面;

步骤1083,通过试运行结果确认页面获取试运行结果确认信息;

步骤1084,当试运行结果确认为是时,获取确认安装指令并根据确认安装指令安装应用;

步骤1086,当试运行结果确认为否或未获取确认安装指令时,并将应用的代码和资源从虚拟运行区中删除。

其中,试运行结果确认页面提供用户对试运行应用的试用体验是否好的评价,以及改善建议的输入信息框等。应用进程试运行结束之后,根据试运行的体验结果再确定是否下载安装相应的应用进程,因此应用在真实安装之前是基于真实体验之后的决定,有助于用户选择真正想要的应用进程,提高应用进程的有效分发,也避免了错误安装恶意应用的风险,提高了安全性。在应用进程试运行结束之后,将应用的代码和资源从虚拟运行区中自动删除,清空占用的内存空间。优选的,将应用的代码和资源从虚拟运行区中删除同时,删除加载时缓存到磁盘的临时文件。

请参阅图10,以应用进程为某云存储类应用为例,该云存储类应用具体可以如百度网盘,在选择真实安装该云存储类应用之前先通过试用了解掌握该云存储应用的性能,该云存储应用的试用方法包括以下步骤:通过应用界面点击试玩操作按钮获取该云存储类应用的试运行指令;启动虚拟容器,通过hook技术虚拟出android系统的ams/pms等系统服务,其中虚拟容器的基本原理是通过首先启动一个android系统的标准应用进程,通过java反射技术替换与android系统服务交互的本地binder代理对象,再通过动态代理技术将被代理对象的远程调用方法重定向到自定义的虚拟系统服务,从而模拟出一个与系统标准服务对应的标准应用进程运行的虚拟运行环境作为该虚拟容器;根据该试运行指令加载该云存储应用的代码和资源存入该虚拟容器;解析该云存储应用的信息描述文件获取该云存储应用的页面启动信息,其中,信息描述文件具体为androidmanifest.xml文件,页面启动信息具体包括该云存储应用的入口activity的包名和类名;虚拟容器通过代理方式将页面启动信息传递给android系统服务以完成启动,从而进入到试玩程序。通过在虚拟运行区中运行试用以实际了解该云存储类应用的功能与操作方式,通过试玩之后从而可准确地判断该存储类应用是否为自己所需要的,根据试玩结果再决定进行安装或者不安装,并删除该虚拟容器中的该云存储应用的代码和资源,清空占用的内存空间,并同时删除加载时缓存到磁盘的临时文件。请参阅图11,获取运行结束指令与获取确认安装指令可以同时获取,当试玩体验较好,则可以通过应用界面点击结束试应并安装操作按钮,从而从试运行结束之后直接进入到安装程序,并将该虚拟容器中的该云存储应用的代码和资源进行删除。在其它实施例中,试运行结束指令与获取确认安装指令也可以分不同步骤获取,首先获取试运行结束指令结束试玩,再根据用户对试玩体验评价是否良好的指令之后获取是否确认安装指令。

请参阅图12,在另一实施例中,提供一种应用进程试运行系统,包括获取模块10、解析模块13及运行模块15。获取模块10用于获取应用试运行指令。解析模块13用于根据试运行指令加载所述应用的代码和资源存入虚拟运行区,解析应用的信息描述文件获取应用的启动信息。运行模块15用于通过虚拟运行区将启动信息转发给系统服务,在虚拟运行区内启动应用并运行。

在另一个实施例中,请参阅图13,还包括容器模块12。容器模块12用于模拟与android系统的标准应用进程运行时环境对应的虚拟运行环境作为虚拟容器,启动虚拟容器作为虚拟运行区。

优选的,所述容器模块12具体用于通过hook技术模拟与android系统的标准应用进程运行时环境对应的虚拟运行环境作为虚拟容器,启动虚拟容器作为虚拟运行区。

请参阅图14,在另一个实施例中,容器模块12包括进程单元121、代理单元123及启动单元125。进程单元121用于启动andriod系统的标准应用进程。代理单元123用于通过java反射机制,替换与andriod系统服务交互的本地binder代理对象,通过动态代理技术将被代理对象的远程调用方法重定向到自定义的虚拟系统服务,以模拟出与android系统的标准应用进程运行时环境对应的虚拟运行环境作为虚拟容器。启动单元125用于启动虚拟容器作为虚拟运行区。

请参阅图15,在另一个实施例中,还包括配置模块120。配置模块120用于通过系统权限配置独立的虚拟存储空间,将所述虚拟存储空间作为虚拟运行区。

优选的,解析模块13具体用于根据试运行指令通过类装载器加载应用的代码,通过创建应用程序资源管理器加载资源,并将应用的代码和资源存入虚拟运行区,并解析应用的信息描述文件获取所述应用的启动信息。

优选的,运行模块15具体用于通过虚拟运行区将启动信息进行参数处理转化为android系统能够识别的已安装组件并转发给android系统服务,在虚拟运行区启动所述应用并运行。

请参阅图16,在另一个实施例中,还包括删除模块17。删除模块17用于获取运行结束指令,根据运行结束指令结束运行并将应用的代码和资源从虚拟运行区中删除。

上述应用进程试用系统,通过虚拟运行区模拟应用于移动终端内运行时的运行环境,将下载应用的安装包在虚拟运行区中使用,由于虚拟运行区与终端的系统服务的进程运行环境是隔离的,不会产生安全风险;进程试用前不需要真实安装应用进程,而是可以通过试用的真实体验后再决定是否需要该应用并且真实安装有助于用户选择真正想要的应用进程,提高有效分发,而且减少安全隐患。

优选的,还包括结束模块、确认模块、安装模块及清理模块。结束模块用于获取运行结束指令,根据运行结束指令结束运行并显示试运行结果确认页面。确认模块用于通过试运行结果确认页面获取试运行结果确认信息。安装模块用于当试运行结果确认为是时,进一步获取确认安装指令并根据确认安装指令安装应用。清理模块用于当试运行结果确认为否或未获取确认安装指令时,并将应用的代码和资源从虚拟运行区中删除。

应用进程试运行结束之后,根据试运行的体验结果再确定是否下载安装相应的应用进程,因此应用在真实安装之前是基于真实体验之后的决定,有助于用户选择真正想要的应用进程,提高应用进程的有效分发,也避免了错误安装恶意应用的风险,提高了安全性。在应用进程试运行结束之后,将应用的代码和资源从虚拟运行区中自动删除,清空占用的内存空间。优选的,将应用的代码和资源从虚拟运行区中删除时,清理模块还用于同时删除加载时缓存到磁盘的临时文件。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述实施例仅库达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

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