CN111712794B - 一种分功能模块安装应用程序的方法 - Google Patents
一种分功能模块安装应用程序的方法 Download PDFInfo
- Publication number
- CN111712794B CN111712794B CN201880089122.9A CN201880089122A CN111712794B CN 111712794 B CN111712794 B CN 111712794B CN 201880089122 A CN201880089122 A CN 201880089122A CN 111712794 B CN111712794 B CN 111712794B
- Authority
- CN
- China
- Prior art keywords
- application program
- terminal
- installation
- file
- function module
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/725—Cordless telephones
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供的一种分功能模块安装应用程序的方法,涉及通信技术领域,可以使得终端分功能模块的安装应用程序,这样用户可以选择安装应用程序中需要的功能模块,提升了用户体验。具体的方案包括:终端获取第一应用程序的安装请求;响应于该安装请求,终端下载第一安装文件,第一安装文件包括第一应用程序中的第一功能模块对应的安装文件;终端根据第一安装文件安装第一应用程序的第一功能模块;终端下载第二安装文件,第二安装文件包括第一应用程序中第二功能模块对应的安装文件;终端根据第一安装文件安装第一应用程序的第二功能模块。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种终端中安装应用程序的方法及终端。
背景技术
目前,用户大多通过终端的应用下载渠道(例如:应用市场)下载应用程序的安装包,并使用该安装包在终端上安装新的应用程序,或者更新终端上已有的应用程序。其中,安装包为应用下载渠道对应的服务器将某特定应用程序包含的各个类型的文件编译打包为一个单独的文件,以供用户下载到终端本地,由终端根据该安装包安装该应用程序。
在现有技术中,服务器是将某特定应用程序包含的各个类型的文件,例如:逻辑代码文件、资源文件和配置文件,先分别编译打包成多个中间文件,再将这多个中间文件编译打包成一个文件,得到安装包。由此可见,用户使用该安装包安装应用程序时,只能等到该安装包全部下载完毕后才能进行安装。只有终端将该应用程序的全部功能模块安装完毕后,才可以运行该应用程序。并且,任何终端在任何时候根据同一安装包安装的应用程序,其包含的功能模块是固定不变的。
然而,在一些场景中,用户可能不希望下载安装某特定应用程序的全部功能模块,而只是需要安装其中几个常用的功能模块。或者,用户在终端上已经安装有某个特定应用程序,当该应用程序有更新时,用户可能不希望下载整个安装包,更新该应用程序的全部功能模块,用户可能只是希望更新该应用程序其中几个功能模块。可见,现在这种应用程序的下载安装方法是不适用这些应用场景。因此,需要进一步完善应用程序的下载和安装的方法。
发明内容
本申请提供的一种终端中安装应用程序的方法及终端,可以使得终端分功能模块的安装应用程序,这样用户可以选择安装应用程序中需要的功能模块,提升了用户体验。
第一方面,本申请提供的方法,包括:终端获取第一应用程序的安装请求;响应于该第一应用程序的安装请求,终端下载第一安装文件,该第一安装文件包括第一应用程序中的第一功能模块对应的安装文件;终端根据第一安装文件安装第一应用程序的第一功能模块;终端下载第二安装文件,第二安装文件包括第一应用程序中第二功能模块对应的安装文件;终端根据第二功能模块安装第一应用程序的第二功能模块。
其中,第一应用程序可以包含多个功能模块,每个功能模块对应第一应用程序中的一个或多个功能应用。第一应用程序的安装请求可以是用户选择安装第一应用程序的操作,也可以是用户选择安装第一应用程序中的某个或某几个功能模块的请求,本申请不做限定。
需要说明的是,第一应用程序的安装文件是按照不同功能模块分开编译和打包的。例如:第一应用程序中的安装包中包含多个安装帧,而一个或多个安装帧是对应于第一应用程序中的一个功能模块的。故终端可以根据第一应用程序中的具体的功能模块定位到其对应的一个多个安装帧,于是根据定位到的这一个或多个安装帧安装第一应用程序中的这一个功能模块。
由此可见,本申请中,终端可以根据用户的指示,下载和安装应用程序中某个或某些功能模块,而后可独立运行应用程序的这些功能模块。这样,终端可以根据用户的指示,安装或更新应用程序中常用的功能模块、或基础的功能模块,能够避免安装过多用户不需用的功能模块,有利于节省流量和时间,提升了用户体验。
一种可能的设计中,终端获取第一应用程序的安装请求具体包括:终端接收第一输入操作,第一输入操作为选择安装第一应用程序的第一功能模块的操作;在终端下载第二安装文件之前,该方法还包括:终端接收第二输入操作,第二输入操作为选择安装第一应用程序的第二功能模块的操作。
可见,用户一次可以选择安装应用程序中的一个功能模块,在安装完成后。再选择安装应用程序中的另一个功能模块进行安装。这样,终端安装应用的方式灵活,提升了用户体验。
一种可能的设计中,终端获取第一应用程序的安装请求包括:终端接收第三输入操作,第三输入操作为选择安装第一应用程序的第一功能模块和第一应用程序的第二功能模块的操作。
可见,用户一次可以选择安装应用程序中的一个或多个功能模块,或者是终端在安装应用程序时,默认安装某几个功能模块。这样,终端安装应用的方式灵活,提升了用户体验。
一种可能的设计中,在终端根据第一安装文件安装第一应用程序的第一功能模块之后,方法还包括:终端显示第一界面,第一界面包括第一应用程序的第一功能模块对应的界面元素。
也就是说,在终端安装完第一应用程序的第一功能模块后,终端可以运行第一应用程序的第一功能模块。这样的话,用户可以在终端安装了应用程序的部分功能模块后,在终端运行该应用程序的这些功能模块,从而了解这些功能模块的性能等信息,达到用于预览和体验这些功能模块的作用,从而有利于用户判断是否继续下载该应用程序的其他功能模块,有利于提升用户体验。
一种可能的设计中,在终端根据第二安装文件安装第一应用程序的第二功能模块之后,方法还包括:终端显示第二界面,第二界面包括第一应用程序的第二功能模块对应的界面元素。
一种可能的设计中,在终端根据第二安装文件安装第一应用程序的第二功能模块之后,方法还包括:终端接收第五输入操作,第五输入操作为选择删除第一应用程序的第一功能模块;响应于第五输入操作,终端卸载第一应用程序的第一功能模块。
需要说明的是,用户可以选择对终端已经安装了第一应用程序的某个或某些功能模块进行卸载,而不卸载其他功能模块,从而提升了用户体验。
一种可能的设计中,在终端卸载第一应用程序的第一功能模块之后,方法还包括:终端从本地删除第一安装文件。
一种可能的设计中,在终端根据第二安装文件安装第一应用程序的第二功能模块之后,方法还包括:终端接收第六输入操作,第六输入操作为选择更新第一应用程序的第一功能模块的操作:响应于第六输入操作,终端下载第三安装文件,第三安装文件为第一应用程序中第一功能模块对应的更新后的安装文件;终端根据第三安装文件安装第一应用程序的第一功能模块。
可选的,终端在下载和安装了某些安装文件(例如第一安装文件或第二安装文件)之后,会在本地缓存一段时间,在一定时间后,可以自动清除这些安装帧的缓存。若终端检测到用户选择保存缓存的操作,则终端响应于该操作,可以将这些已经下载的安装文件保存下来。这样,当应用程序有更新时,可以根据保存的这些安装帧更新相应的内容,则终端可以利用这些更新后的安装帧进行部分更新。
一种可能的设计中,第一安装文件包括第一应用程序中第一功能模块对应的码源文件、第一应用程序中第一功能模块对应的配置文件,以及第一应用程序中第一功能模块对应的资源文件;第二安装文件包括第一应用程序中第二功能模块对应的码源文件、第一应用程序中第二功能模块对应的配置文件,以及第一应用程序中第二功能模块对应的资源文件。
具体的,服务器可以根据原始编译文件中包含的码源文件、资源文件和配置文件之间的逻辑关系,按照不同的功能模块进行拆解,再将拆解后的各个部分中的码源文件、资源文件和配置文件进行编译和打包成一个安装帧,最后将打包多个安装帧组装起来,得到安装包。其中,逻辑关系包括用户界面(User Interface,UI)之间的关系,例如:属于应用程序中同一个UI界面内的码源文件、资源文件和配置文件划分到一个安装帧内。例如:属于应用程序中的同一个功能模块的码源文件、资源文件和配置和文件划分到一个安装帧内,这样,就能够实现终端分功能模块进行下载和安装,具体的下载和安装将在下文进行阐述。需要说明的是,本申请对这里划分安装帧所依据的逻辑关系不做限定。
还需要说明的是,安装帧(例如:第一安装文件)与安装帧(例如第二安装文件) 之间可以存在一定的耦合关系,那么可以将这个耦合关系放到接口层中。而这个接口层会被打包入相关的两个或多个安装帧中。
示例性的,图9示出了一种安装包的组成示意图,该安装包为服务器根据拓扑图组装的包含多个安装帧的文件。其中,该安装包包含有4个安装帧,分别为安装帧1、安装帧2、安装帧3和安装帧4。其中,每一个安装帧都是由一部分的码源文件、资源文件和配置文件组成的。其中安装帧之间还存在接口层。例如:安装帧1和安装帧2 之间存在接口层1,安装帧1和安装帧3之间存在接口层2,安装帧2和安装帧4之间存在接口层3。
服务器还可以将接口层打包到与该接口层相关的安装帧里。例如:如图9所示,服务器还需要将接口层1和接口层2的内容打包到安装帧1里,将接口层1和接口层 3的内容打包到安装帧2里,将接口层2的内容打包到安装帧3里,将接口层3的内容打包到安装帧4里。
这样,若终端下载了安装帧1,未下载安装帧2,也是可以执行接口层1的内容,使得终端在只下载安装帧1的情况下,也可以安装和使用安装帧1对应的功能模块。可见,本申请实现了终端可以分部分下载和安装应用程序中的部分功能模块,使得用户下载和更新应用程序变得更加灵活性,有利于提升用户体验。
一种可能的设计中,第一应用程序的安装文件包括第一安装文件、第二安装文件、第一安装文件的标记、以及第二安装文件的标记。
一种可能的设计中,第一安装文件的标记用于标识第一安装文件在第一应用程序的安装文件中的位置;第二安装文件的标记用于标识第二安装文件在第一应用程序的安装文件中的位置。
示例性的,服务器在组装多个安装帧时,需要添加标记。其中,该标记用于定位各个安装帧在安装包中的位置,以便服务器和终端进行交互时,服务器可以使用该标记获取相应安装帧在安装包中的位置。示例性的,终端可以在各个安装帧的文件头中携带该标记的信息,用于标记一个安装帧的开始,或者标记前一个安装帧的结束。
第二方面,本申请提供的方法,包括:终端接收用户选择安装第一应用程序的第一功能模块的操作;终端安装第一应用程序的第一功能模块;终端运行第一应用程序的第一功能模块;终端接收用户选择安装第一应用程序的第二功能模块的操作,终端安装第一应用程序的第二功能模块,终端运行第一应用程序的第二功能模块。
由此可见,本申请中,终端可以根据用户的指示,下载和安装应用程序中某个或某些功能模块,而后可独立运行应用程序的这些功能模块。这样,终端可以根据用户的指示,安装或更新应用程序中常用的功能模块、或基础的功能模块,能够避免安装过多用户不需用的功能模块,有利于节省流量和时间,提升了用户体验。
第三方面、一种终端,包括:获取单元,用于获取第一应用程序的安装请求;处理单元,用于响应于第一应用程序的安装请求,下载第一安装文件,第一安装文件包括第一应用程序中第一功能模块对应的安装文件;处理单元,还用于根据第一安装文件安装第一应用程序的第一功能模块;处理单元,还用于下载第二安装文件,第二安装文件包括第一应用程序中第二功能模块对应的安装文件;处理单元,还用于根据第二安装文件安装第一应用程序的第二功能模块。
一种可能的设计中,获取单元,用于获取第一应用程序的安装请求包括:接收第一输入操作,第一输入操作为选择安装第一应用程序的第一功能模块的操作;在处理单元下载第二安装文件之前,接收第二输入操作,第二输入操作为选择安装第一应用程序的第二功能模块的操作。
一种可能的设计中,获取单元,用于获取第一应用程序的安装请求包括:接收第三输入操作,第三输入操作为选择安装第一应用程序的第一功能模块和第一应用程序的第二功能模块的操作。
一种可能的设计中,终端还包括显示单元;显示单元,用于显示第一界面,第一界面包括第一应用程序的第一功能模块对应的界面元素。
一种可能的设计中,显示单元,还用于显示第二界面,第二界面包括第一应用程序的第二功能模块对应的界面元素。
一种可能的设计中,获取单元,还用于接收第五输入操作,第五输入操作为选择删除第一应用程序的第一功能模块;处理单元,还用于响应于第五输入操作,卸载第一应用程序的第一功能模块。
一种可能的设计中,处理单元,还用于在卸载第一应用程序的第一功能模块之后,从本地删除第一安装文件。
一种可能的设计中,获取单元,还用于接收第六输入操作,第六输入操作为选择更新第一应用程序的第一功能模块的操作:处理单元,还用于响应于第六输入操作,下载第三安装文件,第三安装文件为第一应用程序中第一功能模块对应的更新后的安装文件;处理单元,还用于根据第三安装文件安装第一应用程序的第一功能模块。
一种可能的设计中,第一安装文件包括第一应用程序中第一功能模块对应的码源文件、第一应用程序中第一功能模块对应的配置文件,以及第一应用程序中第一功能模块对应的资源文件;第二安装文件包括第一应用程序中第二功能模块对应的码源文件、第一应用程序中第二功能模块对应的配置文件,以及第一应用程序中第二功能模块对应的资源文件。
一种可能的设计中,第一应用程序的安装文件包括第一安装文件、第二安装文件、第一安装文件的标记、以及第二安装文件的标记。
一种可能的设计中,第一安装文件的标记用于标识第一安装文件在第一应用程序的安装文件中的位置;第二安装文件的标记用于标识第二安装文件在第一应用程序的安装文件中的位置。
第四方面,一种终端,包括:处理器、存储器和触摸屏,存储器、触摸屏与处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器从存储器中读取计算机指令,以执行如第一方面中任一可能的设计方法中所述的方法。
第五方面、一种计算机存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行如第一方面中任一可能的设计方法中所述的方法。
第六方面、一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面中任一可能的设计方法中所述的方法。
附图说明
图1为本申请提供的一种通信系统的结构示意图;
图2为本申请提供的一种终端的结构示意图一;
图3A为现有技术中的一种应用程序的安装文件的编译过程的示意图;
图3B为现有技术中的一种应用程序的安装文件的组成示意图;
图4A为现有技术中的一种终端界面实例示意图一;
图4B为现有技术中的一种终端界面实例示意图二;
图4C为现有技术中的一种终端界面实例示意图三;
图4D为现有技术中的一种终端界面实例示意图四;
图4E为现有技术中的一种终端界面实例示意图五;
图5A为本申请提供的一种终端界面实例示意图一;
图5B为本申请提供的一种终端界面实例示意图二;
图5C为本申请提供的一种终端界面实例示意图三;
图5D为本申请提供的一种终端界面实例示意图四;
图5E为本申请提供的一种终端界面实例示意图五;
图5F为本申请提供的一种终端界面实例示意图六;
图5G为本申请提供的一种终端界面实例示意图七;
图5H为本申请提供的一种终端界面实例示意图八;
图6A为本申请提供的一种终端界面实例示意图九;
图6B为本申请提供的一种终端界面实例示意图十;
图6C为本申请提供的一种终端界面实例示意图十一;
图6D为本申请提供的一种终端界面实例示意图十二;
图6E为本申请提供的一种终端界面实例示意图十三;
图7为本申请提供的一种应用程序的安装文件的组成示意图一;
图8为本申请提供的一种应用程序的安装文件的组成示意图二;
图9为本申请提供的一种应用程序的安装文件的组成示意图三;
图10为本申请提供的一种应用程序的安装文件的组成示意图四;
图11为本申请提供的一种终端更新应用程序的方法示意图;
图12为本申请提供的一种终端安装应用程序的方法流程示意图一;
图13为本申请提供的一种终端安装应用程序的方法流程示意图一;
图14为本申请提供的一种终端安装应用程序的方法流程示意图一;
图15为本申请提供的一种终端安装应用程序的方法流程示意图一;
图16为本申请提供的一种终端安装应用程序的方法流程示意图一;
图17为本申请提供的一种终端安装应用程序的方法流程示意图一;
图18为本申请提供的一种终端的结构示意图二;
图19为本申请提供的一种终端的结构示意图三。
具体实施方式
图1为本申请提供一种通信系统,包括终端100和服务器200。其中,服务器200 为终端100上的应用下载渠道(例如:应用市场)对应的服务器,用于将应用开发者开发的应用程序进行编译和打包成一个安装包,并通过应用下载渠道供用户下载到终端100本地,由终端安装该应用程序。其中,终端100为用户提供语音和/或数据连通性服务,例如用户可以通过终端上的应用下载渠道下载应用程序的安装包,再使用安装包安装该应用程序,进而运行该应用程序。
示例性的,本申请中的终端100可以为可以安装应用程序并显示应用程序图标的手机(如图2所示的手机)、平板电脑、个人计算机(Personal Computer,PC)、个人数字助理(personal digital assistant,PDA)、智能手表、上网本、可穿戴电子设备、车载终端等,本申请对该终端的具体形式不做特殊限制。
如图2所示,以手机100作为上述终端举例,手机100具体可以包括:处理器101、射频(Radio Frequency,RF)电路102、存储器103、触摸屏104、蓝牙装置105、一个或多个传感器106、无线保真(Wireless Fidelity,WiFi)装置107、定位装置108、音频电路109、外设接口110以及电源装置111等部件。这些部件可通过一根或多根通信总线或信号线(图2中未示出)进行通信。本领域技术人员可以理解,图2中示出的硬件结构并不构成对手机的限定,手机100可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图2对手机100的各个部件进行具体的介绍:
处理器101是手机100的控制中心,利用各种接口和线路连接手机100的各个部分,通过运行或执行存储在存储器103内的应用程序,以及调用存储在存储器103内的数据,执行手机100的各种功能和处理数据。在一些实施例中,处理器101可包括一个或多个处理单元;举例来说,处理器101可以是华为技术有限公司制造的麒麟960 芯片。在一些实施例中,上述处理器101还可以包括指纹验证芯片,用于对采集到的指纹进行验证。
在本申请实施例中,上述处理器101还可以用于支持终端从应用下载渠道下载应用程序的安装包,对下载的应用程序的安装包进行解析,使用下载的应用程序的安装包安装应用程序,以及运行安装后的应用程序等。
射频电路102可用于在收发信息或通话过程中,无线信号的接收和发送。特别地,射频电路102可以将基站的下行数据接收后,给处理器101处理;另外,将涉及上行的数据发送给基站。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频电路102还可以通过无线通信和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统、通用分组无线服务、码分多址、宽带码分多址、长期演进、电子邮件、短消息服务等。
存储器103用于存储应用程序以及数据,处理器101通过运行存储在存储器103 的应用程序以及数据,执行手机100的各种功能以及数据处理。存储器103主要包括存储程序区以及存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等);存储数据区可以存储根据使用手机100时所创建的数据(比如音频数据、电话本等)。此外,存储器103可以包括高速随机存取存储器(RandomAccess Memory,RAM),还可以包括非易失存储器,例如磁盘存储器件、闪存器件或其他易失性固态存储器件等。存储器103可以存储各种操作系统,例如,苹果公司所开发的操作系统,谷歌公司所开发的操作系统等。上述存储器103可以是独立的,通过上述通信总线与处理器101相连接;存储器103也可以和处理器101集成在一起。
触摸屏104具体可以包括触控板104-1和显示器104-2。
其中,触控板104-1可采集手机100的用户在其上或附近的触摸事件(比如用户使用手指、触控笔等任何适合的物体在触控板104-1上或在触控板104-1附近的操作),并将采集到的触摸信息发送给其他器件(例如处理器101)。其中,用户在触控板104-1 附近的触摸事件可以称之为悬浮触控;悬浮触控可以是指,用户无需为了选择、移动或拖动目标(例如图标等)而直接接触触控板,而只需用户位于设备附近以便执行所想要的功能。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型来实现触控板104-1。
显示器(也称为显示屏)104-2可用于显示由用户输入的信息或提供给用户的信息以及手机100的各种菜单。可以采用液晶显示器、有机发光二极管等形式来配置显示器104-2。触控板104-1可以覆盖在显示器104-2之上,当触控板104-1检测到在其上或附近的触摸事件后,传送给处理器101以确定触摸事件的类型,随后处理器101可以根据触摸事件的类型在显示器104-2上提供相应的视觉输出。虽然在图2中,触控板104-1与显示屏104-2是作为两个独立的部件来实现手机100的输入和输出功能,但是在某些实施例中,可以将触控板104-1与显示屏104-2集成而实现手机100的输入和输出功能。可以理解的是,触摸屏104是由多层的材料堆叠而成,本申请实施例中只展示出了触控板(层)和显示屏(层),其他层在本申请实施例中不予记载。另外,触控板104-1可以以全面板的形式配置在手机100的正面,显示屏104-2也可以以全面板的形式配置在手机100的正面,这样在手机的正面就能够实现无边框的结构。
另外,手机100还可以具有指纹识别功能。例如,可以在手机100的背面(例如后置摄像头的下方)配置指纹识别器112,或者在手机100的正面(例如触摸屏104 的下方)配置指纹识别器112。又例如,可以在触摸屏104中配置指纹采集器件112 来实现指纹识别功能,即指纹采集器件112可以与触摸屏104集成在一起来实现手机 100的指纹识别功能。在这种情况下,该指纹采集器件112配置在触摸屏104中,可以是触摸屏104的一部分,也可以以其他方式配置在触摸屏104中。本申请实施例中的指纹采集器件112的主要部件是指纹传感器,该指纹传感器可以采用任何类型的感测技术,包括但不限于光学式、电容式、压电式或超声波传感技术等。
手机100还可以包括蓝牙装置105,用于实现手机100与其他短距离的设备(例如手机、智能手表等)之间的数据交换。本申请实施例中的蓝牙装置可以是集成电路或者蓝牙芯片等。
手机100还可以包括至少一种传感器106,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节触摸屏104的显示器的亮度,接近传感器可在手机100 移动到耳边时,关闭显示器的电源。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机100还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
WiFi装置107,用于为手机100提供遵循WiFi相关标准协议的网络接入,手机 100可以通过WiFi装置107接入到WiFi接入点,进而帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。在其他一些实施例中,该WiFi装置107也可以作为WiFi无线接入点,可以为其他设备提供WiFi网络接入。
定位装置108,用于为手机100提供地理位置。可以理解的是,该定位装置108 具体可以是全球定位系统(Global Positioning System,GPS)或北斗卫星导航系统、俄罗斯GLONASS等定位系统的接收器。定位装置108在接收到上述定位系统发送的地理位置后,将该信息发送给处理器101进行处理,或者发送给存储器103进行保存。在另外的一些实施例中,该定位装置108还可以是辅助全球卫星定位系统(Assisted Global PositioningSystem,AGPS)的接收器,AGPS系统通过作为辅助服务器来协助定位装置108完成测距和定位服务,在这种情况下,辅助定位服务器通过无线通信网络与设备例如手机100的定位装置108(即GPS接收器)通信而提供定位协助。在另外的一些实施例中,该定位装置108也可以是基于WiFi接入点的定位技术。由于每一个WiFi接入点都有一个全球唯一的(Media AccessControl,MAC)地址,设备在开启WiFi的情况下即可扫描并收集周围的WiFi接入点的广播信号,因此可以获取到 WiFi接入点广播出来的MAC地址;设备将这些能够标示WiFi接入点的数据(例如 MAC地址)通过无线通信网络发送给位置服务器,由位置服务器检索出每一个WiFi 接入点的地理位置,并结合WiFi广播信号的强弱程度,计算出该设备的地理位置并发送到该设备的定位装置108中。
音频电路109、扬声器113、麦克风114可提供用户与手机100之间的音频接口。音频电路109可将接收到的音频数据转换后的电信号,传输到扬声器113,由扬声器113转换为声音信号输出;另一方面,麦克风114将收集的声音信号转换为电信号,由音频电路109接收后转换为音频数据,再将音频数据输出至RF电路102以发送给比如另一手机,或者将音频数据输出至存储器103以便进一步处理。
外设接口110,用于为外部的输入/输出设备(例如键盘、鼠标、外接显示器、外部存储器、用户识别模块卡等)提供各种接口。例如通过通用串行总线(Universal Serial Bus,USB)接口与鼠标连接,通过用户识别模块卡卡槽上的金属触点与电信运营商提供的用户识别模块卡(Subscriber Identification Module,SIM)卡进行连接。外设接口 110可以被用来将上述外部的输入/输出外围设备耦接到处理器101和存储器103。
在本申请实施例中,手机100可通过外设接口110与设备组内的其他设备进行通信,例如,通过外设接口110可接收其他设备发送的显示数据进行显示等,本申请实施例对此不作任何限制。
手机100还可以包括给各个部件供电的电源装置111(比如电池和电源管理芯片),电池可以通过电源管理芯片与处理器101逻辑相连,从而通过电源装置111实现管理充电、放电、以及功耗管理等功能。
尽管图2未示出,手机100还可以包括摄像头(前置摄像头和/或后置摄像头)、闪光灯、微型投影装置、近场通信(Near Field Communication,NFC)装置等,在此不再赘述。
以下实施例中的方法均可以在具有上述硬件结构的手机100中实现。
首先,为了能更方便的理解本申请的技术方案,先结合图4A~图4E 对现有的用户从应用市场下载应用程序的过程进行简单介绍。
以终端下载“相机”的应用程序的过程为例进行说明。那么终端需要通过“应用市场”的应用程序来下载“相机”应用程序的安装包,并利用该安装包进行安装。
图4A示出了一种终端的界面。其中,应用图标401对应于“应用市场”的应用程序。图4B示出了终端响应于用户点击应用图标401的操作,显示的一种界面。其中,文本框402可供用户输入关键字,对应用程序进行搜索查找。用户也可以从“推荐”、“分类”、或“排行”中查找需要安装或更新的应用程序。这里以用户通过在文本框402中输入“相机”查找到“相机”应用程序的下载界面为例进行说明。
图4C示出了一种终端的界面,该界面为“相机”应用程序的下载界面。其中,该界面包括了“相机”应用程序的“介绍”、“评论”、“推荐”、预览图片、以及资费、大小、版本、发行时间等信息。其中,该界面还包括一个安装按钮403。终端响应于用户点击安装按钮403的操作,终端开始从应用市场下载“相机”应用程序的安装包,并根据该安装包安装“相机”应用程序。
图4D和图4E 分别示出了一种终端运行“相机”应用程序的界面。该界面为在终端安装完“相机”应用程序后,终端响应于用户开启“相机”应用程序的操作,终端显示“相机”应用程序的主界面。其中,该界面包括“相机”应用程序的一些功能按钮404。由图 4D和图4E可见,该“相机”应用程序包含的功能有“拍照”、“录像”、“延时摄影”、“超级夜景”、“流光快门”和“移动全景”。
为了明确本申请与现有技术的区别,下面结合图5A~图5H以及图6A~图6E对本申请中用户从应用市场下载应用程序的过程进行简单介绍。
参见图5A~图5H,以终端下载“相机”的应用程序的过程为例进行说明。那么终端需要通过“应用市场”的应用程序来下载“相机”应用程序的安装包,并利用该安装包进行安装。
图5A示出了本申请的一种终端的界面,该界面为“相机”应用程序的下载界面。用户可以通过操作如图4A和图4B的界面,使得终端进入“相机”应用程序的下载界面。其中,该界面包括了“相机”应用程序的“介绍”、“评论”、“推荐”、以及资费、大小、版本、发行时间等信息。该界面还包括了“开始下载”按钮501、多个不同功能模块的对应的选项按钮502、“暂停下载”按钮503、“删除”按钮504、和“保存缓存”按钮506,可选的,该界面还可以包含“合成”按钮505。这些功能按钮的具体作用将在下文中一一阐述。
若终端检测到用户选择了一个或多个不同功能模块对应的选项按钮502以及点击“开始下载”按钮501的操作,则终端开始从应用市场上下载“相机”应用程序。需要说明的是,在本申请中,终端是从应用市场上按照默认顺序依次下载“相机”应用程序的不同功能模块对应的安装文件,例如:拍照录像、延时摄影、超级夜景、流光快门、移动全景。并且,在下载完一个功能模块的安装文件后,终端就直接先安装这个功能模块。与此同时,终端继续下载其他功能模块对应的安装文件,一直到所有的功能模块对应的安装文件下载并安装完成。可选的,该界面也可以包含反映各个功能模块的下载安装进度的进度条等,图5A中未示出。
需要说明的是,终端在安装完该应用程序中的一个功能模块后,终端是可以运行该应用程序的该功能模块的。也就是说,终端可以分功能模块进行下载和安装,提高了终端下载安装应用程序的灵活性,提升了用户体验。
还需要说明的是,终端可以优先或者默认安装应用程序中的常用功能模块、或基础功能模块、或轻量型功能模块等,本申请实施例不做限定。
图5B和图5C分别示出了一种终端运行“相机”应用程序的界面。该界面为在终端安装完“相机”应用程序全部功能模块后,终端响应于用户开启“相机”应用程序的操作,终端显示“相机”应用程序的主界面。其中,该界面包括“相机”应用程序的一些功能按钮507。由图5B和图5C可见,该“相机”应用程序包含的功能有“拍照”、“录像”、“延时摄影”、“超级夜景”、“流光快门”和“移动全景”。
需要说明的是,若在终端安装“相机”应用程序的某个功能模块的过程中,终端检测到用户在图5A上的界面上点击了“暂停下载”按钮503的操作,则终端响应于该操作,暂停下载安装的动作。
示例性的,图5D示出了一种终端的界面,即在终端下载和安装完拍照录像功能模块后,终端检测到用户点击“暂停下载”按钮503的操作。那么,终端响应于该操作,暂停下载后续的功能模块。可选的,终端在检测到用户点击“暂停下载”按钮503 的操作后,将“暂停下载”按钮503显示成“继续下载”按钮508,如图5F所示。若此时,终端检测到用户开启“相机”应用程序的操作,终端显示“相机”应用程序的主界面,如图5E所示的终端的界面。可见,此时,“相机”应用程序的主界面包含的功能只有“拍照”和“录像”,没有其他功能模块。
可选的,在5E所述的终端界面上,还可以包括“更多”按钮509。用户可以通过点击“更多”按钮509,使得终端界面跳转到如5D所示的终端下载“相机”应用程序的界面上。这样,方便于终端在运行应用程序中快速跳转到应用程序的下载界面,继续下载其他功能模块,提升用户体验。
需要说明的是,若终端检测到用户在如图5F的界面上,点击了“继续下载”按钮508的操作,则终端继续下载未下载的功能模块,继续安装未安装的功能模块。
终端还可以接收用户的选择操作,下载安装“相机”应用程序中的某个或某些特定的功能模块。例如:终端检测到用户在如图5G的界面上,依次点击了“拍照录像”对应的选项按钮502、“超级夜景”对应的选项按钮502和“继续下载”按钮508的操作,则终端响应于该操作,开始下载和安装“相机”应用程序中的超级夜景的功能模块。可选的,终端在检测到用户点击“继续下载”按钮508的操作后,将“继续下载”按钮显示成“暂停下载”按钮503。若在终端下载和安装完成超级夜景的功能模块后,终端检测到用户点击“暂停下载”按钮503的操作,则终端响应于该操作,暂停下载其他未下载的功能模块,暂停安装其他未安装的功能模块。图5H示出了一种终端运行“相机”应用程序的界面,该界面为终端响应于用户开启“相机”应用程序的操作,显示“相机”应用程序的主界面。可见,此时,“相机”应用程序的主界面包含的功能有“拍照”、“录像”和“超级夜景”。
若终端检测到用户点击“保存缓存”按钮506的操作,则终端响应于该操作,保存已下载的各个功能模块的安装文件。需要说明的是,在本申请中,终端下载完应用程序中一个功能模块对应的安装文件后,会将该安装文件缓存一段时间。在特定时间段后,或特定时间后,终端可以清除该安装文件。终端也可以接收用户的指示,将这些安装文件保存在本地。这样,若“相机”应用程序有某个功能模块发生更新,则终端可以接收用户的指示,对某个或某些功能模块进行更新。
若终端检测到用户点击“合成”按钮505的操作,则终端响应于该操作,将各个功能模块的安装文件进行转换,转换成符合现有的打包格式的安装包,使得不支持流式安装的终端根据转换后的安装包安装该应用程序。
终端也可以接收用户的选择操作,卸载已经安装好的部分功能模块。例如:以图5G和图5H为例,假设终端已经安装了拍照、录像和超级夜景的功能模块。若终端检测到用户在如图5G的界面上,依次点击“超级夜景”对应的选项按钮502,和“删除”按钮504的一系列操作,则终端响应于该操作,开始卸载已经安装的“超级夜景”的功能模块。可选的,终端也可以删除各个功能模块对应的安装文件,还可以删除合成后的安装文件。
参见图6A~图6E,以终端下载“有道词典”的应用程序的过程为例进行说明。那么终端需要通过“应用市场”的应用程序来下载“有道词典”应用程序的安装包,并利用该安装包进行安装。
图6A示出了本申请的一种终端的界面,该界面为“有道词典”应用程序的下载界面。其中,该界面包括了“有道词典”应用程序的“介绍”、“评论”、“推荐”、以及资费、大小、版本、发行时间等信息。该界面还包括了“开始下载”按钮601、多个不同功能模块的对应的选项按钮602、“暂停下载”按钮603、“删除”按钮604、和“保存缓存”按钮606,可选的,该界面还可以包含“合成”按钮605。这些功能按钮的具体作用可参见图5A的相应按钮的描述,在此不重复赘述。
示例的,在终端检测到用户在图6A中选择了“词典”对应的选项按钮以及点击了开始下载601的操作后,终端开始下载并安装“有道词典”应用程序中的“词典”的功能模块。在终端安装完“词典”的功能模块后,终端即可运行“词典”的功能模块。例如:图6B示出了一种终端的界面,该界面为“有道词典”应用程序的界面,该界面中包含“词典”功能模块对应的界面元素607,该界面中不包含有其他功能模块对应的界面元素。
示例的,在终端检测到用户在图6C中选择了“词典”对应的选项按钮、“翻译”对应的选项按钮以及点击了开始下载601的操作后,终端开始依次下载并安装“有道词典”应用程序中的“词典”的功能模块和“翻译”的功能模块。在终端安装完“词典”的功能模块和“翻译”的功能模块后,终端即可运行“词典”的功能模块和“翻译”的功能模块。例如:图6D示出了一种终端的界面,该界面为终端运行“有道词典”应用程序中“词典”功能模块的界面,该界面中包含“词典”功能模块对应的界面元素608。其中,界面元素608中包含切换按钮609,用于将终端从运行“词典”的功能模块切换到运行“翻译”功能模块。图6E为终端检测到用户点击切换按钮609 的操作后,显示的一种界面。该界面为终端运行“有道词典”应用程序中“翻译”功能模块的界面,该界面中包括“翻译”功能模块对应的界面元素610,其中界面元素610包含切换按钮611,用于将终端从运行“翻译”的功能模块切换到运行“词典”功能模块。可见,图6D和图6E不包含有其他功能模块对应的界面元素。
需要说明的是,图6D和图6E显示的界面也可以是用户一次性选择下载并安装完成“词典”功能模块和“翻译”功能模块后的界面,也可以是用户分两次分别选择下载并安装完成“词典”功能模块和“翻译”功能模块后的界面,本申请实施例不做限定。
如图12所示,为本申请提供的一种终端安装应用程序的方法的流程示意图,该方法具体包括:
S101、终端显示第一界面。
其中,第一界面为第一应用程序的下载界面,例如可以是终端中“应用市场”中第一应用程序的下载界面。第一界面包含有第一应用程序对应的至少两个功能模块对应的选项,用户可以通过对这些选项进行选择,以选择性下载并安装想要安装的第一应用程序中的部分功能模块。
例如:第一界面可以为如图5A所示的界面。可见,这里的第一应用程序为“相机”应用,且该“相机”应用包含至少5个功能模块,例如:“拍照录像”、“延时摄影”、“超级夜景”、“流光快门”、“动态全景”等。
第一界面也可以为如图6A所示的界面。可见,这里的第一应用程序为“有道词典”应用,且该“有道词典”应用包含至少5个功能模块,例如:“词典”、“翻译”、“精品课”、“发现”和“我的”等。
S102、终端接收第一输入操作。
其中,第一输入操作为用户从第一应用程序对应的至少两个功能模块中选择第一功能模块的操作。第一应用程序可以包含多个功能模块,每个功能模块对应第一应用程序中的一个或多个功能应用。例如:在图5A所示的界面中,“拍照录像”的功能模块对应于“相机”应用程序中的拍照应用和录像应用,“延时摄影”的功能模块对应于“相机”应用程序中的延时摄影的应用,本申请对第一应用程序中的功能模块的划分不做限定。
示例的,第一输入操作可以是用户点击选中第一功能模块对应的选项按钮。终端也可以是默认将第一应用程序对应的功能模块的选项都选中,用户需要点击,以取消选中的非第一功能模块对应的选项按钮。需要说明的是,第一输入操作也包括用户在选择了需要下载的功能模块后,点击开始下载按钮等操作。本申请对第一输入操作不做限定。
S103、终端响应于第一输入操作,安装第一应用程序的第一功能模块。
具体的,终端响应于第一输入操作,下载第一应用程序的第一功能模块对应的安装文件,根据该安装文件安装第一功能模块。
需要说明的是,在本申请中,第一应用程序的安装包中是按照不同功能模块分开编译和打包的。例如:第一应用程序中的安装包中包含多个安装帧,而一个或多个安装帧是对应于第一应用程序中的一个功能模块的。故终端可以根据第一应用程序中的具体的功能模块定位到其对应的一个多个安装帧,于是根据定位到的这一个或多个安装帧安装第一应用程序中的这一个功能模块。具体的实现方法将在下文详细介绍。
例如:图5D示出了终端响应于检测到用户选择了“拍照录像”的功能模块,以及点击了“开始下载”按钮的操作后,开始下载并安装“相机”应用程序中“拍照录像”功能模块。可选的,图5D的界面可以显示终端在下载和/或安装第一应用程序中各个功能模块的进度情况。或者,在终端下载并安装完第一应用程序中各个功能模块后,生成提示信息,用于提示用户终端已下载安装完第一应用程序的某个功能模块。
需要说明的是,在步骤S103之后,终端也可以继续接收选择安装第一应用程序的第二功能模块的输入操作,终端下载第二功能模块对应的下载文件,并安装第二功能模块。可选的,终端也可以直接接收选择安装第一应用程序的第一功能模块和第二功能模块的输入操作,那么终端先下载第一功能模块对应的下载文件,安装第一功能模块,然后,再下载第二功能模块对应的下载文件,安装第二功能模块。
进一步的,在终端安装完第一应用程序的第一功能模块后,终端可以运行第一应用程序的第一功能模块。也就是说,如图13所示,在步骤S103之后,本申请提供的方法还包括:
S201、终端接收第二输入操作,
其中,第二输入操作可以为用户打开第一应用程序的操作,也可以为用户运行第一应用程序的第一功能模块的操作。示例性的,第二输入操作可以是用户点击终端的主界面中第一应用程序的图标,或者是从终端的应用程序的快捷菜单中点击进入第一应用程序。用户也可以是从终端在第一界面中完成下载安装完第一应用程序后,生成进入第一应用程序的快捷方式中点击相应选项打开第一应用。第二输入操作还可以是用户通过历史任务栏中点击相应的选项进入第一应用程序,本申请实施例对此不做限定。
S202、终端响应于第二输入操作,显示第二界面。
其中,第二界面为第一应用程序的界面,包括第一功能模块对应的界面元素。其中,第一功能模块对应的界面元素包括但不限于第一功能模块涉及的窗口、对话框、菜单、滚动条、以及文字信息、图片信息等。
需要说明的是,在终端安装完第一应用程序的第一功能模块后,终端是可以运行第一应用程序的第一功能模块的。因此,在终端开启第一应用程序后,能够进入第一应用程序的第一功能模块的对应的界面元素。
例如:如图5D所示,用户选择下载第一应用程序的第一功能模块,为“相机”应用程序中的“拍照录像”的功能模块。那么,在终端响应于用户的操作,下载了“拍照录像”的功能模块。在下载和安装完成“拍照录像”的功能模块后,终端响应于用户打开“相机”的操作,显示的界面(如图5E)中包含“拍照”和“录像”对应的界面元素,且不含有其他功能模块对应的界面元素。
如图6A所示,用户选择下载第一应用程序的第一功能模块,为“有道词典”应用程序中的“词典”的功能模块。那么,在终端响应于用户的操作,下载了“词典”的功能模块。在下载和安装完成“词典”的功能模块后,终端响应于用户打开“有道词典”的操作,显示的界面(如图6B)中包含“词典”对应界面元素,且不包含有其他功能模块对应的界面元素。
可选的,若终端还安装了第一应用程序的第二功能模块,那么终端也可以接收选择运行第二功能模块的操作,终端显示第二功能模块对应的界面元素。第二功能模块对于的界面元素包括但不限于第二功能模块涉及的窗口、对话框、菜单、滚动条、以及文字信息、图片信息等。此时,终端是可以运行第一应用程序的第一功能模块和第二功能模块的。
由此可见,本申请中,终端可以根据用户的指示,下载和安装应用程序中某个或某些功能模块,而后可独立运行应用程序的这些功能模块。这样,终端可以根据用户的指示,安装或更新应用程序中常用的功能模块、或基础的功能模块,能够避免安装过多用户不需用的功能模块,提升了用户体验。
并且,用户可以在终端安装了应用程序的部分功能模块后,在终端运行该应用程序的这些功能模块,从而了解这些功能模块的性能等信息,达到用于预览和体验这些功能模块的作用,从而有利于用户判断是否继续下载该应用程序的其他功能模块。
进一步的,在终端安装完第一应用程序的第一功能模块后,终端还可以继续安装第一应用程序的其他功能模块。也就是说,如图14所示,在步骤S103之后,本申请提供的方法还包括:
S301、终端接收第三输入操作。
其中,第三输入操作是用户从第一应用程序对应的至少两个功能模块中选择第二功能模块的操作。第三输入操作的具体方式可以参考第一输入操作的描述,在此不重复赘述。
例如:如图5G所示,这里的第三输入操作可以是用户选中了“相机”应用程序中的“超级夜景”功能模块对应的选项,也就是这里的第二功能模块可以是“超级夜景”功能模块。
如图6C所示,这里的第三输入操作可以是用户选中了“有道词典”应用程序中的“翻译”功能模块对应的选项,也就是这里的第二功能模块可以是“翻译”功能模块。
S302、终端响应于用户第三输入操作,安装第一应用程序的第二应用功能模块。
本步骤参考步骤S103的描述,在此不重复赘述。
S303、终端接收第四输入操作。
其中,第四输入操作为用户打开第一应用程序的操作。第四输入操作的具体方式可以参考第二输入操作的描述,在此不重复赘述。
S304、终端响应于第四输入操作,显示第三界面。
其中,第三界面为第一应用程序的界面,包括第一功能模块和第二功能模块对应的界面元素。其中,第二功能模块对应的界面元素包括但不限于第二功能模块涉及的窗口、对话框、菜单、滚动条、以及文字信息、图片信息等。
需要说明的是,在终端安装完第一应用程序的第二功能模块后,终端是可以运行第一应用程序的第二功能模块的。因此,在终端开启第一应用程序后,能够进入第一应用程序的第二功能模块的对应的界面元素。
例如:如图5G所示,在终端安装好第一应用程序的第一功能模块,例如“相机”应用程序的“拍照录像”后,终端又检测到用户选择下载第一应用程序的第二功能模块,例如:“相机”应用程序中的“超级夜景”的功能模块。那么,在终端响应于用户的操作,下载了“超级夜景”的功能模块。在下载和安装完成“超级夜景”的功能模块后,终端响应于用户打开“相机”的操作,显示的界面(如图5H)中包含“拍照”和“录像”,以及“超级夜景”对应的界面元素,且不含有其他功能模块对应的界面元素。
如图6C所示,在终端安装好第一应用程序的第一功能模块,例如“有道词典”应用程序的“词典”后,终端又检测到用户选择下载第一应用程序的第二功能模块,例如:“有道词典”应用程序中的“翻译”的功能模块。那么,在终端响应于用户的操作,下载了“翻译”的功能模块。在下载和安装完成“翻译”的功能模块后,终端响应于用户打开“有道词典”的操作,显示的界面(如图6D、或图6E)中包含“词典”和“翻译”对应界面元素,且不包含有其他功能模块对应的界面元素。
需要说明的是,终端要实现可以实现分功能模块的下载应用程序的安装文件,需要服务器在对应用程序进行编译和打包时,就按照不同的功能模块进行编译和打包。
可选的,终端也可以默认按照预设顺序下载第一应用程序的各个功能模块。如图15所示,在步骤S101之后,本申请的方法还包括:
S401、终端接收第五输入操作。其中,第五输入操作可以为用户请求依次安装第一应用程序的各个功能模块的操作,例如可以是点击“开始下载”按钮等的操作,本申请对第五输入操作不做限定。
需要说明的是,在本实施例中,第一界面中第一应用程序的多个功能模块中至少有一个功能模块的选项是默认选中的。那么,第五输入操作是请求对第一应用程序的这一个或多个默认选中的功能模块进行依次下载并安装的。
S402、终端响应于第五输入操作,按照预设顺序安装第一应用程序的各个功能模块。
示例性的,预设顺序可以是默认选中的各个功能模块在第一界面中的排列顺序,也可以是根据第一应用程序中各个功能模块的使用频率等预设的顺序,本申请对预设顺序不做限定。具体的,终端在安装第一应用程序中任一个功能模块的操作可参加步骤S103,不再重复赘述。
为了更清楚的理解本申请的技术方案与现有技术的方案的区别之处,先对现有的服务器编译打包过程,以及终端下载应用安装包,并使用安装包进行安装的过程进行简单介绍。
如图3A所示,服务器先将应用中的各个类型的文件分别编译,生成各个类型的中间文件。具体的,首先,服务器将应用程序用到的多个原始的码源文件301编译成第一中间文件304,其中,码源文件301为应用程序开发者编辑的源文件,包括逻辑代码文件和接口信息等文件,例如:java源文件。第一中间文件304例如可以是java 虚拟机能够识别的字节码文件,例如是后缀名为.class的文件,第一中间文件304的数量可以为多个。然后,服务器对这多个第一中间文件304进行整合,例如:某些场景中会对指令做一些优化,或者根据运行平台的情况做一些适配等。服务器将多个第一中间文件304整合优化后生成第四中间文件307,第四中间文件例如可以是能够被 Android平台的虚拟机识别的文件,例如可以是后缀名为.dex的文件。
类似的,服务器将应用程序用到的多个原始的资源文件302编译成第二中间文件305,其中,资源文件302包括图片、字符串、某个xml文件定义的项目,例如color 类的RGB(red green blue)色值等。资源文件302例如可以是后缀名为.png和/或.bmp 和/或.xml等的文件。第二中间文件305是各个资源对应的常量,可用于应用程序索引使用,例如可以是R.java的文件,第二中间文件305的数量也可以为多个。类似的,服务器将应用程序用到的多个配置文件303编译成第三中间文件306,其中,第三中间文件306例如可以是后缀名为.xml的文件,第三中间文件306的数量也可以为多个。服务器再将这多个第二中间文件305和多个第三中间文件306整合成第五中间文件 308。其中,第五中间文件为资源索引列表。
最后,服务器将第四中间文件307和第五中间文件308一起打包成安装包309。其中,安装包309例如可以是Android平台的安装文件,安装包309的组成形式可参见图3B。在打包的过程中,服务器可以采用一些安全措施,如进行签名,以及根据运行平台的情况做一些适配等。
可见,在现有技术中,服务器是将码源文件、资源文件和配置文件一起打包成一个安装包的。也就是说,终端在获取到该安装包后,只能对整个安装包解析,然后根据解析后的文件进行安装。这样,用户使用该安装包安装应用时,只能等到该安装文件全部下载完毕,使用该安装包安装完毕后,才可以使用该应用。并且,该应用的功能模块是固定不变的。用户不能根据自己的需求对该应用中的功能模块进行选择安装。
为此,本申请提供了一种应用安装的方法,在服务器在对应用程序进行编译和打包时,就按照不同的功能模块进行编译和打包。
下面对本申请中服务器编译打包过程,以及终端下载应用安装包,并使用安装包进行安装的过程进行简单介绍。
如图16所示,为本申请提供的服务器对应用程序进行编译和打包的流程示意图,该流程具体包括:
S501、服务器根据应用程序的原始编译文件(也可称为“源文件”),确定该应用程序是否可以采取分功能模块的安装方式。若是,则执行步骤S502。否则,采用现有的标准的编译打包方式对原始编译文件进行编译打包,图中以S504示出。
其中,应用程序的原始编译文件指的是应用程序的开发者在开发应用程序时编译的文件,包括码源文件、资源文件和配置文件等。该应用程序的原始编译文件可以是由应用程序开发者上传到应用下载渠道对应的服务器上的,也可以由应用下载渠道对应的服务器进行编译的,本申请实施例对此不做限定。
本申请中,分功能模块的安装方式是指针对一个应用程序,终端可以按照应用程序的不同功能模块分模块的进行下载和安装,未下载功能模块或未安装的功能模块不影响终端运行已安装的功能模块。
示例性的,服务器可以根据应用程序原始编译文件中的配置文件,确定该应用程序的原始编译文件是否支持流式安装分功能模块的安装方式。可选的,应用程序开发者上传的原始编译文件中的配置文件中可以设置标记,用于标识该应用程序是否支持流式安装分功能模块的安装方式。服务器还需要根据终端与服务器的交互信息,确定该终端是否支持流式安装分功能模块的安装方式。这个交互信息例如可以是终端检测到用户在应用市场的界面中点击获取某个应用程序信息的操作,终端向服务器请求获取该应用程序信息的消息中携带终端是否支持流式安装分功能模块的安装方式的信息。本申请对携带终端是否支持流式安装分功能模块的安装方式的信息的消息形式不做限定。
S502、服务器对上传的原始编译文件进行分功能模块进行编译和打包。
具体的,服务器可以根据原始编译文件中包含的码源文件、资源文件和配置文件之间的逻辑关系,按照不同的功能模块进行拆解,再将拆解后的各个部分中的码源文件、资源文件和配置文件进行编译和打包成一个安装帧,最后将打包多个安装帧组装起来,得到安装包。其中,逻辑关系包括用户界面(User Interface,UI)之间的关系,例如:属于应用程序中同一个UI界面内的码源文件、资源文件和配置文件划分到一个安装帧内。例如:属于应用程序中的同一个功能模块的码源文件、资源文件和配置和文件划分到一个安装帧内,这样,就能够实现终端分功能模块进行下载和安装,具体的下载和安装将在下文进行阐述。需要说明的是,本申请对这里划分安装帧所依据的逻辑关系不做限定。
示例性的,该步骤可具体包括:S502a、服务器根据交互节点来构建拓扑图。
其中,交互节点是终端与用户进行交互的节点,可以包括UI场景描述文件,UI 交互场景文件,UI的层级文件等。例如:一个页面可以是一个交互节点,可以将该页面相关的源码文件、资源文件和配置文件划分到该交互节点所在的安装帧中。
示例性的,服务器根据各个码源文件、资源文件和配置文件与交互节点的相关性,将各个码源文件、资源文件和配置文件划分到不同的交互节点,形成以交互节点为中心的拓扑图,如图7所示。图7仅示出了两个交互节点的情况,本申请实施例不限定交互节点的数量,以及各个交互节点相关的码源文件、资源文件和配置文件的数量。
需要说明的是,有些码源文件、资源文件和配置文件可能同时与多个交互节点相关,则服务器也可以根据该码源文件中逻辑代码与其他交互节点的逻辑代码之间的耦合程度来确定其属于哪个交互节点。示例的,如图7所示,假设码源文件1、资源文件1和配置文件1隶属于交互节点1,码源文件3、资源文件3和配置文件3隶属于交互节点2,而码源文件2同时属于交互节点1和交互节点2。此时服务器可以将码源文件2中的逻辑代码和码源文件1中的逻辑代码的耦合程度,与码源文件2中的逻辑代码和码源文件3中的逻辑代码的耦合程度进行比较。若前者大于或等于后者,则服务器确定码源文件2属于交互节点1,将码源文件2、资源文件2和配置文件2与交互节点1相关的其他文件一起编译打包成一个安装帧。若前者小于后者,则服务器确定码源文件2属于交互节点2,将码源文件2、资源文件2和配置文件2与交互节点2相关的其他文件一起编译打包成一个安装帧。图7示出了码源文件2属于交互节点1的情况。
还需要说明的是,有些码源文件、资源文件和配置文件可能同时与多个交互节点相关,则服务器也可以根据码源文件涉及到的页面的分级情况确定属于哪个交互节点。例如:某些码源文件、资源文件和配置文件同时与第一级页面和第二级页面相关,则可以将该码源文件、资源文件和配置文件确定为属于第一级页面,也可以将这些文件确定为第二级页面,本申请实施例对相关不做限定。
S502b、服务器根据拓扑图生成多个可运行的安装帧。
示例性的,将拓扑图中的一个或多个交互节点相关的文件编译打包成一个安装帧,而这一个或多个安装帧可以对应于该应用程序的一个功能模块。
需要说明的是,各个安装帧还需要做数据校验,校验的方法包括但不限于用哈希(hash)做快速的数据校验,或者用签名做完整性保护等,本申请对此不做限定。需要注意的是,在现有技术中服务器对应用程序的原始编译文件的打包后生成的安装包内,是针对整个安装包的内容进行数据校验的。因此,在现有技术中,只有对整个安装包进行下载和解析,以及使用解析后的整个安装包进行安装。而在本申请中,可以只对某个安装帧进行下载和解析,使用解析后的某个安装帧进行安装。
还需要说明的是,安装帧与安装帧之间可以存在一定的耦合关系,那么可以将这个耦合关系放到接口层中。而这个接口层会被打包入相关的两个或多个安装帧中。
例如:如图8所示,安装帧1中的组件A(Activity A)引用了组件B(Activity B) 中的方法1(Method 1),而Activity B的方法1的定义在安装帧2中进行定义的。那么,在生成安装帧1中,可以将Activity B的方法1放到接口层1中。
示例性的,图9示出了一种安装包的组成示意图,该安装包为服务器根据拓扑图组装的包含多个安装帧的文件。其中,该安装包包含有4个安装帧,分别为安装帧1、安装帧2、安装帧3和安装帧4。其中,每一个安装帧都是由一部分的码源文件、资源文件和配置文件组成的。其中安装帧之间还存在接口层。例如:安装帧1和安装帧2 之间存在接口层1,安装帧1和安装帧3之间存在接口层2,安装帧2和安装帧4之间存在接口层3。
服务器还可以将接口层打包到与该接口层相关的安装帧里。例如:如图9所示,服务器还需要将接口层1和接口层2的内容打包到安装帧1里,将接口层1和接口层 3的内容打包到安装帧2里,将接口层2的内容打包到安装帧3里,将接口层3的内容打包到安装帧4里。
这样,若终端下载了安装帧1,未下载安装帧2,也是可以执行接口层1的内容,使得终端在只下载安装帧1的情况下,也可以安装和使用安装帧1对应的功能模块。可见,本申请实现了终端可以分部分下载和安装应用程序中的部分功能模块,使得用户下载和更新应用程序变得更加灵活性,有利于提升用户体验。
S503、服务器将多个安装帧组装成一个安装包。
具体的,服务器在组装多个安装帧时,需要添加标记。其中,该标记用于定位各个安装帧在安装包中的位置,以便服务器和终端进行交互时,服务器可以使用该标记获取相应安装帧在安装包中的位置。示例性的,终端可以在各个安装帧的文件头中携带该标记的信息,用于标记一个安装帧的开始,或者标记前一个安装帧的结束。
如图10所示,安装帧1和安装帧2中间有标记1,标记1用于指示安装帧1的结束,和/或安装帧2的开始。需要说明的是,图10仅示出了一种标记的方式,服务器也可以在安装帧1前使用开始标记,用于标记安装帧1的开始,或在安装帧1后使用结束标记,用于标记安装帧1的结束,本申请实施例不限定标记的具体方式。
服务器在组装的过程中,还可以加入对齐操作,也可以加入相关安全机制,其中安全机制包含但是不限于分块签名,整体签名等机制,本申请实施例不做限定。
可选的,为了提升服务器的兼容性,在步骤S503之后,服务器还可以将组装完成的安装包进行转换,转换成符合现有的打包格式的安装包,使得不支持分功能模块的安装方式的终端根据转换后的安装包安装该应用程序。
如图17所示,为本申请中终端下载应用程序的安装包,并进行安装的过程的示意图,该过程具体包括:
S601、终端接收选择下载某应用程序的操作。
其中,选择下载某应用程序的操作可以是用户选择按照预设顺序下载该应用程序的各个功能模块的操作,也可以是用户选择下载某应用程序中某个或某些功能模块的操作。本申请实施例不做限定。
示例性,选择下载某应用程序的操作可以是点击如图5F中的分功能下载的按钮501,也可以是选择应用程序中某些功能模块对应的选项按钮502以及点击继续按钮 508。
S602、终端检测服务器和终端是否支持分功能模块的安装方式。若都支持分功能模块的安装方式,则执行步骤S603。若有不支持分功能模块的安装方式的,则终端采用现有的下载安装方法,下载整个安装包后,再安装(图中以S606示出)。
S603、终端确定是否检测到用户选择下载某个安装帧的操作,若检测到,则终端下载并安装用户选择的安装帧(图中以S604示出)。否则,终端按照预设顺序依次下载并安装各个安装帧(图中以S605示出)。
需要说明的是,在本申请中,终端可以对安装包中的各个安装帧进行校验、下载、解析、安装等。终端可以根据安装帧的标记确定安装帧的位置,读取特定的安装帧的信息。也就是说,该特定的安装帧是独立可运行的文件,终端可以对该特定的安装帧进行下载、解析和安装。因此,终端可以实现对单个安装帧进行下载和安装,能够实现对单个功能模块进行下载和安装。
然而,在现有的标准安装包中,终端只能对整个安装包进行校验、下载、解析和安装等。因此,终端不能实现对单个功能模块进行下载和安装。
可选的,在终端按照预设顺序依次下载并安装各个安装帧的过程中,若终端检测到用户选择下载某个安装帧的操作,则终端响应于该操作,下载并安装用户选择的安装帧。
可选的,在终端下载安装帧的过程中,若终端检测到用户选择暂停下载的操作,则终端响应于该操作,暂停下载的动作、安装的动作。
可选的,在终端下载安装帧的过程中,或者终端已经安装了部分安装帧之后,若终端检测到用户选择删除的操作,则终端响应于该操作,卸载该应用程序已经安装的安装帧对应的功能模块,并删除终端中缓存的已经下载的安装帧。若终端检测到用户选择某个或某些安装帧的操作,以及选择删除的操作,则终端响应于该操作,卸载该应用程序中用户选择的安装帧对应的功能模块,并删除终端中缓存的用户选择的安装帧。
可选的,终端在下载和安装了部分安装帧之后,若终端检测到用户选择合成操作,则终端响应于该操作,将已经下载的安装帧转换成符合现有打包标准格式的安装包,并保存在本地,可使得不支持分功能模块的安装方式的终端根据转换后的安装包安装该应用程序。
可选的,终端在下载和安装了安装帧之后,会在本地缓存一段时间,在一定时间后,可以自动清除这些安装帧的缓存。若终端检测到用户选择保存缓存的操作,则终端响应于该操作,可以将这些已经下载的安装帧保存下来。这样,当应用程序有更新时,可以根据保存的这些安装帧更新相应的内容,则终端可以利用这些更新后的安装帧进行部分更新。
示例性的,如图11所示,终端侧缓存的安装包中包含有安装帧1104(安装帧1) 和安装帧1105(安装帧2)。在终端与服务器的交互过程中,终端发现服务器侧的某应用的安装包包含有安装帧1101(内容为安装帧1),安装帧1102(内容为安装帧2) 和安装帧1103(内容为安装帧3)。其中,安装帧1103为服务器新增的安装帧,且与安装帧1103关联的安装帧1102也是发生更新的。那么终端可以请求服务器将安装帧 1102和安装帧1103的信息发送给终端,终端对安装帧1105进行更新,并新增安装帧 1106。而后,终端根据更新的安装帧内容更新应用程序对应的功能模块的安装。可选的,也可以是服务器在更新相应的安装帧后,就通知终端该应用程序有更新。本申请对此不做限定。
可选的,若终端接收到服务器的更新通知时,终端正运行该应用程序,则终端可以生成提示信息,用于提示用户可以进行更新。终端可根据用户的指示,进行安装更新的内容。
可以理解的是,上述终端等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述终端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图18示出了上述实施例中所涉及的终端的一种可能的结构示意图。如图18所示,终端1800包括:获取单元1801、处理单元1802。
其中,获取单元1801用于支持终端获取第一应用程序的安装请求,和/或用于本文所描述的技术的其它过程。处理单元1802用于支持终端下载第一安装文件,根据第一安装文件安装第一应用程序的第一功能模块,下载第二安装文件,根据第二安装文件安装第一应用程序的第二功能模块,和/或用于本文所描述的技术的其它过程。
进一步的,终端1800还可以包括显示单元1803,其中,显示单元1803用于支持终端执行显示第一界面,第一界面包括第一应用程序的第一功能模块对应的界面元素,显示第二界面,第二界面包括第一应用程序的第二功能模块对应的界面元素,和/或用于本文所描述的技术的其它过程。
进一步的,终端1800还可以包括通信单元1804,用于支持终端执行与服务器以及其他设备进行通信。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,上述获取单元1801、处理单元1802可以集成在一起,可以是终端的处理模块。上述的通信单元1804可以是终端的通信模块,如RF电路、WiFi模块或者蓝牙模块。上述的显示单元1803可以是显示模块,例如触摸屏等。
图19示出了上述实施例中所涉及的终端的一种可能的结构示意图。该终端1900包括:处理模块1901、存储模块1902和通信模块1903。处理模块1901用于对终端的动作进行控制管理。存储模块1902,用于保存终端的程序代码和数据。通信模块1903 用于与其他终端通信。其中,处理模块1901可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1903 可以是收发器、收发电路或通信接口等。存储模块1902可以是存储器。
当处理模块1901为处理器(如图2所示的处理器101),通信模块1903为RF收发电路(如图2所示的射频电路102),存储模块1902为存储器(如图2所示的存储器103)时,本申请实施例所提供的终端可以为图2所示的终端100。其中,上述通信模块1903不仅可以包括RF电路,还可以包括WiFi模块和蓝牙模块。RF电路、WiFi 模块和蓝牙模块等通信模块可以统称为通信接口。其中,上述处理器、通信接口和存储器可以通过总线耦合在一起。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种终端中安装应用程序的方法,其特征在于,包括:
终端获取第一应用程序的安装请求;
响应于所述第一应用程序的安装请求,所述终端下载第一安装文件,所述第一安装文件包括所述第一应用程序中第一功能模块对应的安装文件;
所述终端根据所述第一安装文件安装所述第一应用程序的所述第一功能模块;
所述终端下载第二安装文件,所述第二安装文件包括所述第一应用程序中第二功能模块对应的安装文件;
所述终端根据所述第二安装文件安装所述第一应用程序的所述第二功能模块;
其中,所述第一应用程序的安装文件包括所述第一安装文件、所述第二安装文件、所述第一安装文件的标记、以及所述第二安装文件的标记;所述第一安装文件的标记用于标识所述第一安装文件在所述第一应用程序的安装文件中的位置;所述第二安装文件的标记用于标识所述第二安装文件在所述第一应用程序的安装文件中的位置;
所述第一安装文件包括所述第一应用程序中第一功能模块对应的码源文件、所述第一应用程序中第一功能模块对应的配置文件,以及所述第一应用程序中第一功能模块对应的资源文件;
所述第二安装文件包括所述第一应用程序中第二功能模块对应的码源文件、所述第一应用程序中第二功能模块对应的配置文件,以及所述第一应用程序中第二功能模块对应的资源文件;
所述第一安装文件或第二安装文件包括至少一个安装帧,所述安装帧的生成方式为:根据各个码源文件、资源文件和配置文件与交互节点的相关性,将各个码源文件、资源文件和配置文件划分到不同的交互节点,形成以交互节点为中心的拓扑图,将拓扑图中的一个或多个交互节点相关的文件编译打包成一个安装帧;其中,交互节点是终端与用户进行交互的节点,包括UI场景描述文件,UI交互场景文件,UI的层级文件。
2.根据权利要求1所述的方法,其特征在于,所述终端获取第一应用程序的安装请求包括:
所述终端接收第一输入操作,所述第一输入操作为选择安装所述第一应用程序的所述第一功能模块的操作;
在所述终端下载第二安装文件之前,所述方法还包括:
所述终端接收第二输入操作,所述第二输入操作为选择安装所述第一应用程序的所述第二功能模块的操作。
3.根据权利要求1所述的方法,其特征在于,所述终端获取第一应用程序的安装请求包括:
所述终端接收第三输入操作,所述第三输入操作为选择安装所述第一应用程序的所述第一功能模块和所述第一应用程序的所述第二功能模块的操作。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述终端根据所述第一安装文件安装所述第一应用程序的所述第一功能模块之后,所述方法还包括:
所述终端显示第一界面,所述第一界面包括所述第一应用程序的所述第一功能模块对应的界面元素。
5.根据权利要求1-3任一项所述的方法,其特征在于,在所述终端根据所述第二安装文件安装所述第一应用程序的所述第二功能模块之后,所述方法还包括:
所述终端显示第二界面,所述第二界面包括所述第一应用程序的所述第二功能模块对应的界面元素。
6.根据权利要求1-3任一项所述的方法,其特征在于,在所述终端根据所述第二安装文件安装所述第一应用程序的所述第二功能模块之后,所述方法还包括:
所述终端接收第五输入操作,所述第五输入操作为选择删除所述第一应用程序的所述第一功能模块;
响应于所述第五输入操作,所述终端卸载所述第一应用程序的所述第一功能模块。
7.根据权利要求6所述的方法,其特征在于,在所述终端卸载所述第一应用程序的所述第一功能模块之后,所述方法还包括:
所述终端从本地删除所述第一安装文件。
8.根据权利要求1-3任一项所述的方法,其特征在于,在所述终端根据所述第二安装文件安装所述第一应用程序的所述第二功能模块之后,所述方法还包括:
所述终端接收第六输入操作,所述第六输入操作为选择更新所述第一应用程序的所述第一功能模块的操作:
响应于所述第六输入操作,所述终端下载第三安装文件,所述第三安装文件为所述第一应用程序中第一功能模块对应的更新后的安装文件;
所述终端根据所述第三安装文件安装所述第一应用程序的第一功能模块。
9.一种终端,其特征在于,包括:
获取单元,用于获取第一应用程序的安装请求;
处理单元,用于响应于所述第一应用程序的安装请求,下载第一安装文件,所述第一安装文件包括所述第一应用程序中第一功能模块对应的安装文件;
所述处理单元,还用于根据所述第一安装文件安装所述第一应用程序的所述第一功能模块;
所述处理单元,还用于下载第二安装文件,所述第二安装文件包括所述第一应用程序中第二功能模块对应的安装文件;
所述处理单元,还用于根据所述第二安装文件安装所述第一应用程序的所述第二功能模块;
其中,所述第一应用程序的安装文件包括所述第一安装文件、所述第二安装文件、所述第一安装文件的标记、以及所述第二安装文件的标记;所述第一安装文件的标记用于标识所述第一安装文件在所述第一应用程序的安装文件中的位置;所述第二安装文件的标记用于标识所述第二安装文件在所述第一应用程序的安装文件中的位置;
所述第一安装文件包括所述第一应用程序中第一功能模块对应的码源文件、所述第一应用程序中第一功能模块对应的配置文件,以及所述第一应用程序中第一功能模块对应的资源文件;
所述第二安装文件包括所述第一应用程序中第二功能模块对应的码源文件、所述第一应用程序中第二功能模块对应的配置文件,以及所述第一应用程序中第二功能模块对应的资源文件;
所述第一安装文件或第二安装文件包括至少一个安装帧,所述安装帧的生成方式为:根据各个码源文件、资源文件和配置文件与交互节点的相关性,将各个码源文件、资源文件和配置文件划分到不同的交互节点,形成以交互节点为中心的拓扑图,将拓扑图中的一个或多个交互节点相关的文件编译打包成一个安装帧;其中,交互节点是终端与用户进行交互的节点,包括UI场景描述文件,UI交互场景文件,UI的层级文件。
10.根据权利要求9所述的终端,其特征在于,所述获取单元,用于获取第一应用程序的安装请求包括:
接收第一输入操作,所述第一输入操作为选择安装所述第一应用程序的所述第一功能模块的操作;
在所述处理单元下载第二安装文件之前,接收第二输入操作,所述第二输入操作为选择安装所述第一应用程序的所述第二功能模块的操作。
11.根据权利要求10所述的终端,其特征在于,所述获取单元,用于获取第一应用程序的安装请求包括:
接收第三输入操作,所述第三输入操作为选择安装所述第一应用程序的所述第一功能模块和所述第一应用程序的所述第二功能模块的操作。
12.根据权利要求9-11任一项所述的终端,其特征在于,所述终端还包括显示单元;
所述显示单元,用于显示第一界面,所述第一界面包括所述第一应用程序的所述第一功能模块对应的界面元素。
13.根据权利要求12所述的终端,其特征在于,
所述显示单元,还用于显示第二界面,所述第二界面包括所述第一应用程序的所述第二功能模块对应的界面元素。
14.根据权利要求9-11任一项所述的终端,其特征在于,
所述获取单元,还用于接收第五输入操作,所述第五输入操作为选择删除所述第一应用程序的所述第一功能模块;
所述处理单元,还用于响应于所述第五输入操作,卸载所述第一应用程序的所述第一功能模块。
15.根据权利要求14所述的终端,其特征在于,
所述处理单元,还用于在卸载所述第一应用程序的所述第一功能模块之后,从本地删除所述第一安装文件。
16.根据权利要求9-11任一项所述的终端,其特征在于,
所述获取单元,还用于接收第六输入操作,所述第六输入操作为选择更新所述第一应用程序的所述第一功能模块的操作:
所述处理单元,还用于响应于所述第六输入操作,下载第三安装文件,所述第三安装文件为所述第一应用程序中第一功能模块对应的更新后的安装文件;
所述处理单元,还用于根据所述第三安装文件安装所述第一应用程序的第一功能模块。
17.一种终端,其特征在于,包括:处理器、存储器和触摸屏,所述存储器、所述触摸屏与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以执行如权利要求1-8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端上运行时,使得所述终端执行如权利要求1-8中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/078343 WO2019169587A1 (zh) | 2018-03-07 | 2018-03-07 | 一种分功能模块安装应用程序的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111712794A CN111712794A (zh) | 2020-09-25 |
CN111712794B true CN111712794B (zh) | 2022-05-13 |
Family
ID=67845517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880089122.9A Active CN111712794B (zh) | 2018-03-07 | 2018-03-07 | 一种分功能模块安装应用程序的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111712794B (zh) |
WO (1) | WO2019169587A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711445B (zh) * | 2019-10-26 | 2023-12-12 | 广州星际悦动股份有限公司 | 一种应用程序的管理方法及系统 |
CN112256520B (zh) * | 2020-09-17 | 2023-12-15 | 北京一亩田新农网络科技有限公司 | 应用程序的网页发布渠道的监控方法和装置 |
CN112764782B (zh) * | 2021-01-28 | 2024-07-05 | 维沃移动通信有限公司 | 应用程序的更新方法、应用程序的更新装置 |
CN115242628A (zh) * | 2022-06-20 | 2022-10-25 | 平安普惠企业管理有限公司 | 基于模块部署的应用下载方法、装置、设备及存储介质 |
CN115292158B (zh) * | 2022-06-29 | 2024-01-23 | 优视科技(中国)有限公司 | 获取和配置页面加载进度的方法及装置 |
CN118245097A (zh) * | 2022-12-22 | 2024-06-25 | 华为技术有限公司 | 免安装应用的升级方法及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005368A (zh) * | 2006-01-18 | 2007-07-25 | 腾讯科技(深圳)有限公司 | 一种客户端软件加载功能扩展文件的方法 |
CN101593102A (zh) * | 2008-05-30 | 2009-12-02 | 国际商业机器公司 | 用于管理软件的方法和系统 |
CN102314351A (zh) * | 2011-09-29 | 2012-01-11 | 用友软件股份有限公司 | 安装程序生成装置和安装程序生成方法 |
CN103176769A (zh) * | 2011-12-20 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种可定制软件的部署及安装方法和系统 |
CN103473080A (zh) * | 2012-06-07 | 2013-12-25 | 腾讯科技(深圳)有限公司 | 软件安装方法、终端及系统 |
CN103777970A (zh) * | 2012-10-22 | 2014-05-07 | 联想(北京)有限公司 | 一种软件升级方法以及一种电子设备 |
CN104391728A (zh) * | 2014-12-12 | 2015-03-04 | 北京奇虎科技有限公司 | 软件升级差量包获取方法和相应的升级方法以及装置 |
CN105468936A (zh) * | 2014-08-20 | 2016-04-06 | 中兴通讯股份有限公司 | 应用的加固方法及装置 |
CN106775838A (zh) * | 2016-11-29 | 2017-05-31 | 暴风集团股份有限公司 | 插件化下载应用程序安装包的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1178131C (zh) * | 2001-03-14 | 2004-12-01 | 明基电通股份有限公司 | 以模块化方式更新执行中应用软件的系统及其方法 |
JP4605273B2 (ja) * | 2008-08-27 | 2011-01-05 | ソニー株式会社 | 情報処理装置及び機能拡張方法 |
-
2018
- 2018-03-07 WO PCT/CN2018/078343 patent/WO2019169587A1/zh active Application Filing
- 2018-03-07 CN CN201880089122.9A patent/CN111712794B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005368A (zh) * | 2006-01-18 | 2007-07-25 | 腾讯科技(深圳)有限公司 | 一种客户端软件加载功能扩展文件的方法 |
CN101593102A (zh) * | 2008-05-30 | 2009-12-02 | 国际商业机器公司 | 用于管理软件的方法和系统 |
CN102314351A (zh) * | 2011-09-29 | 2012-01-11 | 用友软件股份有限公司 | 安装程序生成装置和安装程序生成方法 |
CN103176769A (zh) * | 2011-12-20 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种可定制软件的部署及安装方法和系统 |
CN103473080A (zh) * | 2012-06-07 | 2013-12-25 | 腾讯科技(深圳)有限公司 | 软件安装方法、终端及系统 |
CN103777970A (zh) * | 2012-10-22 | 2014-05-07 | 联想(北京)有限公司 | 一种软件升级方法以及一种电子设备 |
CN105468936A (zh) * | 2014-08-20 | 2016-04-06 | 中兴通讯股份有限公司 | 应用的加固方法及装置 |
CN104391728A (zh) * | 2014-12-12 | 2015-03-04 | 北京奇虎科技有限公司 | 软件升级差量包获取方法和相应的升级方法以及装置 |
CN106775838A (zh) * | 2016-11-29 | 2017-05-31 | 暴风集团股份有限公司 | 插件化下载应用程序安装包的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2019169587A1 (zh) | 2019-09-12 |
CN111712794A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111712794B (zh) | 一种分功能模块安装应用程序的方法 | |
CN110633090B (zh) | 补丁方法、相关装置及系统 | |
CN111434132A (zh) | 一种eSIM卡的开户方法及终端 | |
CN110865837B (zh) | 一种进行系统升级的方法和终端 | |
CN111684778A (zh) | 应用功能的实现方法及电子设备 | |
CN112148579B (zh) | 一种用户界面的测试方法和装置 | |
CN112988213B (zh) | 一种程序数据更新方法、电子设备及计算机存储介质 | |
CN108235812B (zh) | 一种广告展示方法及终端 | |
CN108415741A (zh) | 对象序列化和反序列化方法及相关装置 | |
KR20170073930A (ko) | 웹푸시를 이용한 푸시 서비스 제공 방법 및 이를 지원하는 전자 장치 | |
CN113727333A (zh) | 定制应用的下载方法和系统 | |
CN112394906B (zh) | 一种应用切换运行的方法及设备 | |
CN109684123B (zh) | 问题资源定位方法、装置、终端及存储介质 | |
CN111506237A (zh) | 终端及应用中操作功能启动方法 | |
CN111125602A (zh) | 页面构建方法、装置、设备和存储介质 | |
CN112650540B (zh) | 一种启动快应用的方法及相关装置 | |
JP7319431B2 (ja) | アプリケーション機能の実施方法及び電子装置 | |
CN112579191A (zh) | 一种组件加载方法、装置及系统 | |
CN113485709B (zh) | 应用优化方法、装置以及电子设备 | |
CN112783533A (zh) | 版本信息更新方法、装置、终端及存储介质 | |
CN110989987A (zh) | 一种门户网页的生成方法、装置、客户端、服务器及存储介质 | |
CN113642010A (zh) | 一种获取扩展存储设备数据的方法及移动终端 | |
WO2024131823A1 (zh) | 免安装应用的升级方法及电子设备 | |
WO2024067004A1 (zh) | 推广方法、电子设备及系统 | |
WO2023207890A1 (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 |