应用程序安装方法和系统与流程

文档序号:13743295阅读:339来源:国知局
技术领域本申请公开的内容涉及一种用于在用户设备上安装应用程序的方法和系统,具体而言,涉及一种与用户设备适配且动态的应用程序安装方法和系统。

背景技术:
诸如智能手机、平板计算机之类的便携式智能电子设备已越来越广泛地得到应用。这些智能电子设备具有强大的处理能力,并且可以在其上运行各种应用程序。通常在出厂时,这些电子设备上已经预装了一些应用程序。此外,用户可以根据个人需要在这些电子设备上额外地安装其他一些应用程序。在现有技术中,在便携式智能电子设备上安装应用程序的方式大致可以分为两种:一种方式是,用户直接利用其电子设备上的“应用程序商店”之类的应用程序(例如,Android系统上的“GooglePlay”应用程序)来选择需要安装的应用程序,然后下载所选应用程序的应用程序安装包并在电子设备上安装在电子设备上;另一种方式是,用户利用诸如个人计算机之类的设备访问特定的应用程序服务器来选择需要安装的应用程序,然后将所选应用程序的应用程序安装包下载或推送到用户的便携式智能电子设备上以进行安装。然而,无论采取何种形式,都是通过一次下载或推送来得到应用程序安装包的。也就是说,在安装应用程序之前,不能动态地配置应用程序的安装包。然而,各种电子设备在硬件配置方面存在有差异,例如,屏幕的像素密度可以包括lDPI(例如,120DPI)、mDPI(例如,160DPI)、hDPI(例如,240DPI)以及xhDPI(320DPI)四个基本像素密度,对于同一像素密度存在有多种不同的分辨率,并且硬件的架构可以包括x86、ARM、MIPS等等。为了能够在各种不同配置的电子设备上正常地运行和显示,应用程序安装包的尺寸通常较大以涵盖各种可能的硬件配置,从而在下载或推送过程中会占用更多的网络资源。此外,“应用程序商店”之类的服务型应用程序会定期扫描安装在电子设备上的各个应用程序的版本,并且与应用程序服务器上该应用程序的最新版本进行比较。当发现安装在电子设备上的应用程序不是最新版本时,会提示用户将应用程序升级。升级的方式是将最新版本的应用程序安装包下载或推送至用户的电子设备进行安装,以替换或覆盖旧版本的应用程序。由于应用程序安装包不是动态配置的,因而会出现这样一种情况:应用程序服务器上的最新版本应用程序是针对某一特定硬件配置的设备所进行的改进,例如,修复了在特定屏幕分辨率下的显示问题。然而,这样的改进对其他类硬件配置的设备是没有任何意义的。因而,用户经常会进行一些不必要的应用程序升级操作,浪费了更多的网络资源。

技术实现要素:
针对现有技术中的这些问题提出了本发明构思。根据本发明的应用程序安装方法和系统,可以根据用户设备的实际情况动态地配置应用程序安装包,使得针对特定用户设备的应用程序安装包的尺寸最小化,从而节省了网络资源。此外,还可以为用户避免不必要的应用程序升级操作。根据本发明的一个方面,提供了一种应用程序安装方法,用于在用户设备上安装应用程序,所述方法包括步骤:获取用户设备的屏幕信息;将用户设备的屏幕信息连同待安装的应用程序的标识信息一起发送至应用程序服务器;响应于接收到的应用程序的标识信息,应用程序服务器根据与该标识信息一起接收到的用户设备的屏幕信息来选择应用程序安装包,所述应用程序安装包包括与用户设备的屏幕适配的用户界面模块;应用程序服务器发送所选择的应用程序安装包;以及响应于接收到的应用程序安装包,在用户设备上安装应用程序。根据本发明的实施例,所述方法还可以包括步骤:响应于对已安装的应用程序的操作,判定在用户设备上是否存在用于实现该操作的构件;当不存在所述构件时,获取用户设备的架构信息,并且将用户设备的架构信息与所述构件的构件信息一起发送至应用程序服务器;应用程序服务器根据用户设备的架构信息来选择与构件信息相对应的构件;应用程序服务器发送所选择的构件;以及响应于接收到的构件,在用户设备上将接收到的构件拼装至所述已安装的应用程序。根据本发明的实施例,可以通过应用程序安装服务器来获取用户设备的屏幕信息,并且将用户设备的屏幕信息连同待安装的应用程序的标识信息一起发送至应用程序服务器,并且响应于接收到的应用程序安装包,所述应用程序安装服务器可以在用户设备上安装应用程序。根据本发明的实施例,可以通过应用程序安装服务器获取用户设备的架构信息,并且将用户设备的架构信息与所述构件信息一起发送至应用程序服务器,并且响应于接收到的构件,所述应用程序安装服务器可以在用户设备上将接收到的构件拼装至所述已安装的应用程序。根据本发明的实施例,用户设备的屏幕信息可以包括屏幕的像素密度信息和/或分辨率信息。根据本发明的实施例,构件信息可以包括构件的唯一标识、名称和/或版本号。根据本发明的实施例,所述应用程序安装包可以包括操作逻辑模块,所述操作逻辑模块与用户设备的屏幕无关。根据本发明的另一个方面,提供了一种应用程序安装系统,用于在用户设备上安装应用程序。所述应用程序安装系统包括:信息获取单元,用于获取用户设备的屏幕信息;信息发送单元,用于将用户设备的屏幕信息连同待安装的应用程序的标识信息一起发送至应用程序服务器;以及应用程序安装单元,用于在用户设备上安装应用程序。所述应用程序服务器包括:应用程序选择单元,响应于接收到的应用程序的标识信息,所述应用程序选择单元根据与该标识信息一起接收到的用户设备的屏幕信息来选择应用程序安装包,所述应用程序安装包包括与用户设备的屏幕适配的用户界面模块;以及应用程序发送单元,用于发送由所述应用程序选择单元所选择的应用程序安装包。响应于接收到的应用程序安装包,所述应用程序安装单元在用户设备上安装应用程序。根据本发明的实施例,响应于对已安装的应用程序的操作,判定在用户设备上是否存在用于实现该操作的构件,当不存在所述构件时:所述信息获取单元可以获取用户设备的架构信息;并且所述信息发送单元可以将用户设备的架构信息与所述构件的构件信息一起发送至应用程序服务器。所述应用程序服务器还可以包括:构件选择单元,用于根据用户设备的架构信息来选择与构件信息相对应的构件;以及构件发送单元,用于发送由所述构件选择单元所选择的构件。所述应用程序安装系统还可以包括构件拼装单元,响应于接收到的构件,所述构件拼装单元在用户设备上将接收到的构件拼装至所述已安装的应用程序。根据本发明的实施例,所述应用程序安装系统可以实现在用户设备中。可替换地,所述应用程序安装系统可以实现在应用程序安装服务器中。根据本发明的应用程序安装方法和系统,可以实现对应用程序安装包的动态配置,即,选取与用户设备适配的各个模块来拼装应用程序安装包,并且仅在需要时才将与用户设备适配的构件拼装至已安装的应用程序,从而使得针对特定用户设备的应用程序安装包的尺寸最小化,以节省传输应用程序安装包所需的网络资源。此外,当在应用程序服务器上仅针对特定硬件配置的用户界面模块或构件进行了升级时,与该硬件配置无关的用户设备可以不必进行升级操作,从而为用户避免了不必要的应用程序升级操作。附图说明通过以下参考附图的详细说明,本发明的上述以及其他方面、特征和优点将得以呈现。在附图中:图1示出了根据本发明的实施例的应用程序安装包的示意性结构框图;图2示出了根据本发明的实施例在已安装的应用程序中拼装构件的示图;图3示出了根据本发明的一个实施例的应用程序安装系统的示意图;图4示出了根据本发明的另一个实施例的应用程序安装系统的示意图;以及图5示出了根据本发明的一个实施例的应用程序安装方法的示意流程图。具体实施方式下文中,将参照附图详细描述本公开的实施例。然而,本发明可按照多种不同形式具体实现,并且不应理解为限于本文阐述的实施例。提供这些实施例是为了使得本公开将是彻底和完整的,并且将把本发明的范围完全传递给本领域技术人员。在附图中,为了清楚起见,没有按照比例绘制各个部件,并且相同的标号将始终用于指代相同或相似的部件。除非另有说明或者在上下文中明确地指出,否则在描述本发明的上下文中使用的术语“一”、“一个”和“该”以及类似的所指对象应当解释为涵盖单数形式和复数形式。除非另有所指,否则术语“包括”、“具有”、“包含”和“含有”应当解释为开放式术语(即,表示“包括但不限于”)。除非另有定义,否则在本文中使用的所有技术术语和科学术语具有与本发明所属领域的任一普通技术人员通常理解相同的含义。还应当理解,除非另有所指,否则本文使用的任何和所有实例或示例性术语仅用来更好地阐明本发明的而不是用来限制本发明的范围。此外,除非另有定义,否则不可以过度地解释在通常使用的字典中定义的所有术语。本发明提供了一种能够与用户设备适配且动态的应用程序安装方法和系统。在本发明的各项技术方案中,应用程序安装包是动态拼装而成的。图1示出了根据本发明的实施例的应用程序安装包的示意性结构框图。如图1所示,根据本发明的实施例的应用程序安装包10可以包括动态配置的用户界面模块11和操作逻辑模块12。用户界面模块11与用户设备的屏幕相关。具体而言,用户界面模块11可以与用户设备的屏幕的像素密度相关和/或与屏幕的分辨率相关。屏幕的像素密度可以包括lDPI(例如,120DPI)、mDPI(例如,160DPI)、hDPI(例如,240DPI)以及xhDPI(320DPI)四个基本像素密度。因而,对同一应用程序而言,可以存在有四个不同的用户界面模块11-1至11-4以分别对应于四个像素基本。然而,本发明构思不限于此。例如,用户界面模块11可以对应于四个基本像素密度以外的像素密度;对于同一像素密度可以存在多个用户界面模块11以对应于不同的分辨率;或者对同一应用程序而言,可以存在少于或多于四个不同的用户界面模块11。在用户界面模块11中,例如,可以实现窗口、菜单、按钮等应用程序的显示元素,并且可以实现各个显示元素之间的相互位置关系。操作逻辑模块12与用户设备的屏幕无关。对同一应用程序而言,只需要一个操作逻辑模块12。具体而言,在操作逻辑模块12中可以实现有各种算法、数据结构等与显示无关的应用程序部分,并且还可以实现各个显示元素之间的调用关系,例如,通过点击当前窗口中的某一菜单项来切换至另一窗口。在现有技术中,为了能够适配多种不同的硬件配置,在一个应用程序安装包中包括有多个用户界面模块11和操作逻辑模块12,从而应用程序安装包的尺寸较大。根据本发明的技术方案,可以动态地配置用户界面模块11以适配用户设备的屏幕(比如,屏幕的像素密度),使得针对特定用户设备的应用程序安装包的尺寸最小化。如图1所示,可以根据用户设备的屏幕来选择用户界面模块11-1至11-4之一来作为用户界面模块11,并使其包括在应用程序安装包中。此外,以Android系统为例,其上的应用程序实际运行在Java虚拟机(JavaVirtualMachine,JVM)中,通过JVM来获得/访问底层的系统资源。有些时候,JVM并不能满足全部的需求,于是Java提供了Java本地接口(JavaNativeInterface,JNI),来使得用诸如C/C++等语言编写的代码可以通过JNI与运行在JVM中的Java代码集成。在一些应用程序中,为了实现某一特定功能或提高应用程序的运行效率,需要调用底层硬件平台的指令集。开发人员可以例如通过C/C++等语言编写的代码来访问底层硬件平台的指令集,进而实现某一特定功能或提高应用程序的运行效率。因而,同一应用程序在不同的硬件平台上的运行库(或构件)是不同的,这是因为不同的硬件平台所提供的指令集是不同的。在现有技术中,为了使得同一应用程序能够在具有不同硬件架构的多种用户设备上运行,在一个应用程序安装包中包括有针对不同硬件架构编写的运行库,从而应用程序安装包的尺寸较大。以Android系统的应用程序安装包为例,为了实现跨硬件平台,在一个Android包(AndroidPacKage,APK)文件中可以包括针对ARM和x86两种硬件架构的运行库。根据本发明的技术方案,可以动态地配置运行库(或构件)以适配不同的硬件架构(比如,ARM、x86、MIPS等),使得针对特定用户设备的应用程序安装包的尺寸最小化。此外,如图1所示,在拼装应用程序安装包10时并没有包括构件1至构件3(仅以虚线框示出),而是在用户对已安装的应用程序进行操作时,才将相应的构件拼装至已安装的应用程序,使得应用程序安装包的尺寸进一步减小。图2示出了根据本发明的实施例在已安装的应用程序中拼装构件的示图。如图2所示,例如,可以响应于对已安装的应用程序的操作,根据用户设备的架构选择构件1-1(例如,针对ARM架构的构件)或构件1-2(例如,针对x86架构的构件)来作为构件1,并使其拼装在已安装的应用程序中。此外,可以根据构件的构件信息来选择相应的构件。构件信息可以包括(但不限于)构件的唯一标识、名称和/或版本号。图3示出了根据本发明的一个实施例的应用程序安装系统100的示意图。应用程序安装系统100用于在用户设备200上安装应用程序。参考图3,根据本发明的一个实施例的应用程序安装系统100可以包括信息获取单元101、信息发送单元102和应用程序安装单元103。信息获取单元101用于获取用户设备200的屏幕信息。信息发送单元102用于将用户设备200的屏幕信息连同待安装的应用程序的标识信息一起发送至应用程序服务器300。应用程序安装单元103用于在用户设备200上安装应用程序。根据本发明的一个实施例,应用程序服务器300可以包括应用程序选择单元301和应用程序发送单元302。响应于接收到的应用程序的标识信息,应用程序选择单元301可以根据与该标识信息一起接收到的用户设备200的屏幕信息来选择应用程序安装包。应用程序安装包可以包括与用户设备200的屏幕适配的用户界面模块。应用程序发送单元302用于发送由应用程序选择单元301所选择的应用程序安装包。响应于接收到的应用程序安装包,应用程序安装单元103可以在用户设备200上安装应用程序。应用程序安装系统100与应用程序安装单元103可以通过网络400相互通信。网络400可以是任何有线网络、无线网络或它们的组合。图4示出了根据本发明的另一个实施例的应用程序安装系统100'的示意图。与图3所示的应用程序安装系统100相比,图4所示的应用程序安装系统100'还包括构件拼装单元104。此外,图4所示的应用程序服务器300'还包括构件选择单元303和构件发送单元304。如上所述,应用程序有可能包括有需要调用底层硬件平台的指令集的构件以实现特定的功能。在此情况下,响应于对已安装的应用程序的操作,首先判定在用户设备上是否存在用于实现该操作的构件,当不存在所述构件时:信息获取单元101获取用户设备200的架构信息;并且信息发送单元102将用户设备200的架构信息与所述构件的构件信息一起发送至应用程序服务器300。构件选择单元303可以根据用户设备200的架构信息来选择与构件信息相对应的构件。构件发送单元304用于发送由构件选择单元303所选择的构件。响应于接收到的构件,构件拼装单元104可以在用户设备200上将接收到的构件拼装至已安装的应用程序。根据本发明的实施例,当应用程序初始安装在用户设备200上时,用于安装应用程序的应用程序安装包可以不包括需要调用底层硬件平台的指令集的各种构件,以使得应用程序安装包的尺寸进一步减小。在运行应用程序时,如果用户的操作(例如,点击了某一按钮或选择了某一菜单项)需要调用一个(或多个)构件来实现特定功能,则首先判断在用户设备上是否存在有所述一个(或多个)构件。如果不存在,则可以通过上述方式从应用程序服务器300获得相应的构件,并将构件拼装至已安装的应用程序以实现特定功能。通过上述方式获得的构件是与用户设备的硬件平台适配的构件,因而能够使得应用程序正常运行。此外,无需得到与用户设备的硬件平台无关的构件,从而节省了网络资源。虽然图3和图4将应用程序安装系统100和100'示出为与用户设备200分离,然而根据本发明的实施例,应用程序安装系统可以实现在用户设备中200。可替换地,应用程序安装系统也可以实现为单独的应用程序安装服务器。此外,本领域技术人员可以根据各自实际需要,将根据本发明的应用程序安装系统的一部分功能实现在用户设备中,而将另一部分功能实现在与用户设备分离的其他设备中(例如,应用程序安装服务器)。例如,将信息获取单元实现在用户设备中,而将信息发送单元实现在与用户设备分离的其他设备中。图5示出了根据本发明的一个实施例的应用程序安装方法的示意流程图。如图5所示,首先获取用户设备的屏幕信息(S501)。用户设备的屏幕信息可以包括有屏幕的像素密度信息和/或分辨率信息。随后,将用户设备的屏幕信息连同待安装的应用程序的标识信息一起发送至应用程序服务器(S502)。响应于接收到的应用程序的标识信息,应用程序服务器根据与该标识信息一起接收到的用户设备的屏幕信息来选择应用程序安装包(S503)。应用程序安装包可以包括与用户设备的屏幕适配的用户界面模块。此外,应用程序安装包还可以包括与用户设备的屏幕无关操作逻辑模块。应用程序服务器发送所选择的应用程序安装包(S504)。响应于接收到的应用程序安装包,在用户设备上安装应用程序(S505)。此外,响应于对已安装的应用程序的操作,判定在用户设备上是否存在用于实现该操作的构件。当不存在所述构件时,可以获取用户设备的架构信息(S506),并且将用户设备的架构信息与所述构件的构件信息一起发送至应用程序服务器(S507)。应用程序服务器根据用户设备的架构信息来选择与构件信息相对应的构件(S508),并且发送所选择的构件(S509)。响应于接收到的构件,在用户设备上将接收到的构件拼装至已安装的应用程序(S510)。可以在用户设备上来执行根据本发明的应用程序安装方法。可替换地,可以通过与用户设备分离的应用程序安装服务器来执行根据本发明的应用程序安装方法。虽然已经结合实施例显示并描述了本发明的各实施例,但是本领域技术人员应当清楚的是,在不脱离本发明的精神和范围的情况下,可作出各种修改和改变。本发明的保护范围旨在涵盖所有这些修改和改变。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1