HK1247691B - Application program updating method, device and equipment - Google Patents
Application program updating method, device and equipment Download PDFInfo
- Publication number
- HK1247691B HK1247691B HK18107097.7A HK18107097A HK1247691B HK 1247691 B HK1247691 B HK 1247691B HK 18107097 A HK18107097 A HK 18107097A HK 1247691 B HK1247691 B HK 1247691B
- Authority
- HK
- Hong Kong
- Prior art keywords
- file
- upgrade
- loader
- files
- installation package
- Prior art date
Links
Description
技术领域Technical Field
本说明书涉及软件升级技术领域,尤其涉及应用程序升级方法、装置及设备。This specification relates to the field of software upgrade technology, and in particular to application program upgrade methods, devices, and equipment.
背景技术Background Art
随着移动通信技术的发展,为了满足用户的需求,或者完善软件产品的功能,需要对终端中安装的应用程序(Application,APP)进行升级,以使升级后的应用程序比旧版本的性能更好,得到优化的效果。With the development of mobile communication technology, in order to meet user needs or improve the functions of software products, it is necessary to upgrade the applications (Application, APP) installed in the terminal so that the upgraded application has better performance than the old version and obtains an optimized effect.
在Android系统中,在检测到新版程序安装包时,若用户确认进行升级,则可以利用新版程序安装包进行覆盖安装。可见,提供一种免覆盖即可进行应用程序升级的方案显得尤为重要。In the Android system, when a new version of the program installation package is detected, if the user confirms to upgrade, the new version of the program installation package can be used to overwrite the installation. Therefore, it is particularly important to provide a solution for upgrading applications without overwriting.
发明内容Summary of the Invention
为克服相关技术中存在的问题,本说明书提供了应用程序升级方法、装置及设备。To overcome the problems existing in the related art, this specification provides an application program upgrade method, apparatus, and device.
一种应用程序升级方法,所述方法应用在目标应用程序中,所述方法包括:An application program upgrade method, the method being applied to a target application program, the method comprising:
在所述目标应用程序启动时,若获得所述目标应用程序的新版程序安装包,基于所述新版程序安装包获得升级所需的升级文件;When the target application is started, if a new version of the target application is installed, obtaining an upgrade file required for the upgrade based on the new version of the target application;
在可写存储区中为所述升级文件创建目录,并将所述升级文件存放在创建的目录中;Creating a directory for the upgrade file in a writable storage area, and storing the upgrade file in the created directory;
构建用于替换旧加载器的新加载器;Build a new loader to replace the old one;
利用所构建的新加载器从所述目录中加载升级文件。The upgrade file is loaded from the directory using the newly constructed loader.
可选的,所述升级文件包括可执行文件和资源文件,所述基于所述新版程序安装包获得升级所需的升级文件包括:Optionally, the upgrade file includes an executable file and a resource file, and the upgrade file required for the upgrade obtained based on the new version program installation package includes:
从所述新版程序安装包中提取出可执行文件;Extracting an executable file from the new version program installation package;
将所述新版程序安装包作为资源文件。The new version program installation package is used as a resource file.
可选的,所述可执行文件包括可执行代码文件和动态链接库,所述可执行代码文件、动态链接库、资源文件分别存放在不同的目录中。Optionally, the executable file includes an executable code file and a dynamic link library, and the executable code file, dynamic link library, and resource file are stored in different directories respectively.
可选的,所构建的加载器继承于DexClassLoader,所述构建用于替换旧加载器的新加载器,包括:Optionally, the constructed loader inherits from DexClassLoader, and the construction of a new loader to replace the old loader includes:
构建继承于DexClassLoader的加载器;基于所创建的目录获得所述升级文件的目录路径,将所述目录路径传给所构建的加载器;基于所构建的加载器修改LoadedAPK类中ClassLoader的属性值以及Resources的属性值,获得用于替换旧加载器的新加载器。Construct a loader that inherits from DexClassLoader; obtain the directory path of the upgrade file based on the created directory, and pass the directory path to the constructed loader; based on the constructed loader, modify the attribute values of ClassLoader and Resources in the LoadedAPK class to obtain a new loader for replacing the old loader.
可选的,所述基于所述新版程序安装包获得升级所需的升级文件,包括:Optionally, obtaining the upgrade file required for the upgrade based on the new version program installation package includes:
对所述新版程序安装包进行合法性验证,若验证通过,则基于所述新版程序安装包获得升级所需的升级文件。The legitimacy of the new version program installation package is verified, and if the verification passes, the upgrade file required for the upgrade is obtained based on the new version program installation package.
可选的,所述方法还包括:若验证失败,则清除所述新版程序安装包。Optionally, the method further includes: if the verification fails, clearing the new version program installation package.
可选的,所述构建新加载器之前,所述方法还包括:Optionally, before constructing the new loader, the method further includes:
若所述升级文件存放失败,则清除所述升级文件。If the upgrade file fails to be stored, the upgrade file is deleted.
一种应用程序升级装置,所述装置应用在目标应用程序中,所述装置包括:An application program upgrade device, the device being applied to a target application program, comprising:
文件获得模块,用于在所述目标应用程序启动时,若获得所述目标应用程序的新版程序安装包,基于所述新版程序安装包获得升级所需的升级文件;A file acquisition module is configured to obtain an upgrade file required for the upgrade based on a new version of the target application program installation package when the target application program is started;
信息存放模块,用于在可写存储区中为所述升级文件创建目录,并将所述升级文件存放在创建的目录中;An information storage module, configured to create a directory for the upgrade file in a writable storage area and store the upgrade file in the created directory;
加载器构建模块,用于构建用于替换旧加载器的新加载器;Loader construction module, used to build new loaders to replace old loaders;
信息加载模块,用于利用所构建的新加载器从所述目录中加载升级文件。The information loading module is used to load the upgrade file from the directory using the constructed new loader.
可选的,所述升级文件包括可执行文件和资源文件,所述文件获得模块,用于:Optionally, the upgrade file includes an executable file and a resource file, and the file acquisition module is used to:
从所述新版程序安装包中提取出可执行文件;Extracting an executable file from the new version program installation package;
将所述新版程序安装包作为资源文件。The new version program installation package is used as a resource file.
可选的,所述可执行文件包括可执行代码文件和动态链接库,所述可执行代码文件、动态链接库、资源文件分别存放在不同的目录中。Optionally, the executable file includes an executable code file and a dynamic link library, and the executable code file, dynamic link library, and resource file are stored in different directories respectively.
可选的,所构建的加载器继承于DexClassLoader,所述加载器构建模块用于:Optionally, the constructed loader inherits from DexClassLoader, and the loader construction module is used to:
构建继承于DexClassLoader的加载器;基于所创建的目录获得所述升级文件的目录路径,将所述目录路径传给所构建的加载器;基于所构建的加载器修改LoadedAPK类中ClassLoader的属性值以及Resources的属性值,获得用于替换旧加载器的新加载器。Construct a loader that inherits from DexClassLoader; obtain the directory path of the upgrade file based on the created directory, and pass the directory path to the constructed loader; based on the constructed loader, modify the attribute values of ClassLoader and Resources in the LoadedAPK class to obtain a new loader for replacing the old loader.
一种计算机设备,包括:A computer device comprising:
处理器;processor;
用于存储处理器可执行指令的存储器;a memory for storing processor-executable instructions;
其中,所述处理器被配置为:Wherein, the processor is configured to:
在所述目标应用程序启动时,若获得所述目标应用程序的新版程序安装包,基于所述新版程序安装包获得升级所需的升级文件;When the target application is started, if a new version of the target application is installed, obtaining an upgrade file required for the upgrade based on the new version of the target application;
在可写存储区中为所述升级文件创建目录,并将所述升级文件存放在创建的目录中;Creating a directory for the upgrade file in a writable storage area, and storing the upgrade file in the created directory;
构建用于替换旧加载器的新加载器;Build a new loader to replace the old one;
利用所构建的新加载器从所述目录中加载升级文件。The upgrade file is loaded from the directory using the newly constructed loader.
本说明书的实施例提供的技术方案可以包括以下有益效果:The technical solutions provided by the embodiments of this specification may have the following beneficial effects:
应用本说明书实施例,可以在目标应用程序启动过程中,若获得目标应用程序的新版程序安装包,则可以基于该新版程序安装包获得升级所需的升级文件,在可写存储区中为该升级文件创建目录,并将该升级文件存放在创建的目录中,此外,还可以动态构建用于替换旧加载器的新加载器,以便利用所构建的新加载器从所创建的目录中加载升级文件,实现无需用户确认、也无需覆盖安装,即可实现应用程序升级,提高了新版程序安装包的安装率。By applying the embodiments of this specification, during the startup process of the target application, if a new version of the program installation package of the target application is obtained, the upgrade file required for the upgrade can be obtained based on the new version of the program installation package, a directory can be created for the upgrade file in the writable storage area, and the upgrade file can be stored in the created directory. In addition, a new loader can be dynamically constructed to replace the old loader, so that the upgrade file can be loaded from the created directory using the constructed new loader, thereby realizing application upgrade without user confirmation or overwriting installation, thereby improving the installation rate of the new version of the program installation package.
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the specification and, together with the description, serve to explain the principles of the specification.
图1为本说明书根据一示例性实施例示出的一种应用程序升级方法的流程图。FIG1 is a flowchart of a method for upgrading an application program according to an exemplary embodiment of the present specification.
图2为本说明书根据一示例性实施例示出的另一种应用程序升级方法的流程图。FIG2 is a flowchart of another application program upgrade method according to an exemplary embodiment of this specification.
图3为本说明书根据一示例性实施例示出的一种应用程序升级方法的类图。FIG3 is a class diagram of an application program upgrade method according to an exemplary embodiment of this specification.
图4为本说明书应用程序升级装置所在计算机设备的一种硬件结构图。FIG4 is a hardware structure diagram of the computer device where the application program upgrading device of this specification is located.
图5为本说明书根据一示例性实施例示出的一种应用程序升级装置的框图。FIG5 is a block diagram of an application program upgrading device according to an exemplary embodiment of this specification.
具体实施方式DETAILED DESCRIPTION
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。Exemplary embodiments will be described in detail herein, with examples illustrated in the accompanying drawings. In the following description, when referring to the drawings, identical numerals in different figures represent identical or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all embodiments consistent with this specification. Rather, they are merely examples of apparatus and methods consistent with certain aspects of this specification, as detailed in the appended claims.
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。The terms used in this specification are for the purpose of describing specific embodiments only and are not intended to limit this specification. As used in this specification and the appended claims, the singular forms "a," "an," "the," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items.
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。It should be understood that although the terms first, second, third, etc. may be used in this specification to describe various information, such information should not be limited to these terms. These terms are merely used to distinguish information of the same type from one another. For example, first information may also be referred to as second information, and similarly, second information may also be referred to as first information without departing from the scope of this specification. Depending on the context, the term "if" as used herein may be interpreted as "when," "when," or "in response to determining."
应用程序升级,可以是应用程序从低版本向高版本的更新。由于高版本常常修复低版本的部分漏洞(bug)或者相对于低版本新增更多功能等,所以更新后的应用程序往往比原版本的性能更好,得到优化的效果,用户也能有更好的体验。在Android设备中首次安装应用程序时,直接进行安装。当有新版本推送到Android设备时,往往先下载最新的APP,再跳转到APP Installer进行覆盖安装。基于终端与用户的博弈,每次更新都需要用户确认后才能覆盖安装,即接收到确认升级指令后才能覆盖安装,鉴于此,提供一种免覆盖就能自动进行应用程序升级的方案显得尤为重要。An application upgrade can be an update from a lower version to a higher version. Since higher versions often fix some vulnerabilities (bugs) in lower versions or add more features compared to lower versions, the updated application often has better performance than the original version, achieves optimized results, and users can have a better experience. When installing an application on an Android device for the first time, it is installed directly. When a new version is pushed to an Android device, the latest APP is often downloaded first, and then the APP Installer is jumped to for overwriting the installation. Based on the game between the terminal and the user, each update requires user confirmation before it can be overwritten and installed, that is, it can be overwritten and installed only after receiving the confirmation upgrade instruction. In view of this, it is particularly important to provide a solution that can automatically upgrade the application without overwriting.
本说明书实施例可以应用在需要升级应用程序的电子设备中。电子设备可以是各种可以运行软件的电子设备,电子设备可以是手持电子设备或其它电子设备。例如,可以是蜂窝电话、媒体播放器或其它手持便携式设备、诸如腕表设备、吊坠设备的稍微更小的便携式设备或其它可穿戴或小型化设备、游戏装备、平板计算机、笔记本计算机、集成于计算机显示器中的计算机或其它的电子装备。The embodiments of this specification can be applied to electronic devices that require application upgrades. The electronic device can be any electronic device that can run software, and the electronic device can be a handheld electronic device or other electronic device. For example, it can be a cellular phone, a media player, or other handheld portable device, a slightly smaller portable device such as a wristwatch or pendant, or other wearable or miniaturized device, gaming equipment, a tablet computer, a notebook computer, a computer integrated into a computer display, or other electronic equipment.
本说明书提供了应用程序升级方法,该方法可以应用在目标应用程序中,该方法的部分流程可参照图1所示,图1为本说明书根据一示例性实施例示出的一种应用程序升级方法的流程图,方法可以包括步骤101、102、103和104。This specification provides an application upgrade method, which can be applied in a target application. Part of the process of the method can be shown with reference to Figure 1. Figure 1 is a flowchart of an application upgrade method shown in this specification according to an exemplary embodiment. The method may include steps 101, 102, 103 and 104.
在步骤101中,在所述目标应用程序启动时,若获得所述目标应用程序的新版程序安装包,基于所述新版程序安装包获得升级所需的升级文件。In step 101, when the target application is started, if a new version program installation package of the target application is obtained, an upgrade file required for the upgrade is obtained based on the new version program installation package.
在步骤102中,在可写存储区中为所述升级文件创建目录,并将所述升级文件存放在创建的目录中。In step 102, a directory is created for the upgrade file in a writable storage area, and the upgrade file is stored in the created directory.
在步骤103中,构建用于替换旧加载器的新加载器。In step 103, a new loader is constructed to replace the old loader.
在步骤104中,利用所构建的新加载器从所述目录中加载升级文件。In step 104, the upgrade file is loaded from the directory using the constructed new loader.
其中,Android APP可以运行在一个独立空间里,即可以运行在一个单独的进程中。如果需要启动应用程序,Android系统可以为应用程序创建一个新的进程并启动,这个进程会持续运行直到被系统杀死。目前,Android中往往使用PathClassLoader类作为Android的默认的类加载器,PathClassLoader可以从文件系统中加载类文件。PathClassLoade本身继承自BaseDexClassLoader。PathClassLoade只能加载已经安装到Android系统中的Apk(AndroidPackage,即Android安装包)文件,即/data/app目录下的Apk文件,因此,在有新版程序安装包时,需要将Apk文件复制到程序目录下,实现覆盖安装。Among them, Android APP can run in an independent space, that is, it can run in a separate process. If you need to start the application, the Android system can create a new process for the application and start it. This process will continue to run until it is killed by the system. At present, Android often uses the PathClassLoader class as the default class loader of Android. PathClassLoader can load class files from the file system. PathClassLoade itself inherits from BaseDexClassLoader. PathClassLoade can only load Apk (AndroidPackage, that is, Android installation package) files that have been installed in the Android system, that is, Apk files in the /data/app directory. Therefore, when there is a new version of the program installation package, the Apk file needs to be copied to the program directory to achieve overwriting installation.
而本说明书把旧版APP作为新版APP的启动加载器,通过替换APP原生Application为New Application,以实现替换入口逻辑,利用新版程序安装包获得的升级文件替换运行期的可执行文件和资源文件,从而实现加载新的可执行文件和新的资源文件。其中,Android Application可以作为程序的入口。This specification uses the old version of the app as the bootloader for the new version of the app. By replacing the app's native Application with a New Application, the replacement entry logic is implemented. The upgraded files obtained from the new version of the program installation package replace the executable files and resource files at runtime, thereby loading the new executable files and new resource files. Among them, the Android Application can serve as the program's entry point.
在目标应用程序需要启动时,系统可以为目标应用程序创建一个新的进程。在目标应用程序启动过程中,可以获得目标应用程序的新版程序安装包。新版程序安装包可以是升级应用程序所需的完整安装包。When the target application needs to be started, the system can create a new process for the target application. During the target application startup process, a new version installation package of the target application can be obtained. The new version installation package can be the complete installation package required to upgrade the application.
在一个例子中,可以将目标应用程序的当前版本标识与线上发布的最新版本标识进行比较,根据比较结果下载所述目标应用程序的新版应用程序包。In one example, the current version identifier of the target application may be compared with the latest version identifier published online, and the new version application package of the target application may be downloaded based on the comparison result.
其中,版本标识可以是版本号等能唯一表示版本的标识,以便进行版本区分。例如,版本标识可以是versionCode,则新版程序安装包的versionCode大于当前安装APP的versionCode,该versionCode一般指定在APP配置文件中。最新版本标识,可以是本执行端主动从服务端获取得到,也可以基于服务端推送获得。The version identifier can be a version number or other identifier that uniquely represents the version, allowing for easy version differentiation. For example, the version identifier can be a versionCode. The versionCode of a new version of the app installation package is greater than the versionCode of the currently installed app. This versionCode is typically specified in the app configuration file. The latest version identifier can be obtained proactively from the server by the execution end, or it can be obtained based on a push notification from the server.
该例子中,可以根据版本标识的比较结果,直接从服务器中下载目标应用程序的新版应用程序包,提高获得新版应用程序包的效率。In this example, the new version application package of the target application can be directly downloaded from the server based on the comparison result of the version identifiers, thereby improving the efficiency of obtaining the new version application package.
在另一个例子中,由于服务端下发时可能只下发增量升级包,增量升级包是针对差异部分的升级包,增量升级包中不包括与旧版应用程序中的相同部分。鉴于此,可以将增量升级包与旧版应用程序进行结合,获得一个完整的新版程序安装包。In another example, the server might only deliver an incremental upgrade package. This package addresses the differences and excludes the parts that are identical to the old version of the application. Therefore, the incremental upgrade package can be combined with the old version of the application to create a complete new version installation package.
可见,从网络上下载增量升级包,由于增量升级包比完整程序安装包(全量安装包)小,因此,可以减轻网络传输压力。It can be seen that downloading the incremental upgrade package from the Internet can reduce network transmission pressure because the incremental upgrade package is smaller than the complete program installation package (full installation package).
在某些例子中,可以判断新版程序安装包是否下载成功,若成功,则执行基于该新版程序安装包获得升级所需的升级文件步骤,若失败,则清除下载的文件。In some examples, it can be determined whether the new version program installation package is downloaded successfully. If successful, the upgrade file step required for the upgrade is obtained based on the new version program installation package. If unsuccessful, the downloaded file is deleted.
在获得目标应用程序的新版程序安装包后,可以基于该新版程序安装包获得升级所需的升级文件。升级文件可以包括可执行文件和资源文件。其中,可执行文件可以包括可执行代码文件以及动态链接库。例如,可执行代码文件可以包括Android Dalvik/ARTruntime的可执行代码;动态链接库可以是由C或C++语言生成的动态链接库等;资源文件可以包括可访问/可渲染的图片、音频、视频、资源和ID的映射文件等。作为一个例子,可以从所述新版程序安装包中提取可执行文件。例如,将新版程序安装包进行解压,然后提取出可执行文件。作为一个例子,可以直接将新版程序安装包作为资源文件,以便后续将老资源替换为新资源。Android中合法的资源包可以是APP文件,因此可以将新版程序安装包直接作为新的资源包。After obtaining the new version of the target application program installation package, the upgrade files required for the upgrade can be obtained based on the new version of the program installation package. The upgrade files may include executable files and resource files. Among them, the executable files may include executable code files and dynamic link libraries. For example, the executable code file may include the executable code of Android Dalvik/ARTruntime; the dynamic link library may be a dynamic link library generated by C or C++ language, etc.; the resource file may include accessible/renderable images, audio, video, resources and ID mapping files, etc. As an example, the executable file can be extracted from the new version of the program installation package. For example, the new version of the program installation package is decompressed, and then the executable file is extracted. As an example, the new version of the program installation package can be directly used as a resource file so that the old resources can be replaced with new resources later. The legal resource package in Android can be an APP file, so the new version of the program installation package can be directly used as a new resource package.
在某些例子中,为了提高执行效率,所述基于所述新版程序安装包获得升级所需的升级文件,可以包括:对基于所述新版程序安装包获得的初始可执行文件进行优化,从而获得优化后的可执行文件。优化过程可以是将初始可执行文件执行一遍,以将初始可执行文件转换为在当前设备上执行效率最高的可执行文件。例如,通过调用dex 2oat接口将dex文件转换为oat文件,从而提高执行效率。In some examples, to improve execution efficiency, obtaining the upgrade file required for the upgrade based on the new version of the program installation package may include optimizing the initial executable file obtained based on the new version of the program installation package to obtain an optimized executable file. The optimization process may include executing the initial executable file once to convert the initial executable file into an executable file with the highest execution efficiency on the current device. For example, by calling the dex2oat interface to convert the dex file into an oat file, execution efficiency is improved.
进一步的,在获得升级文件过程中,还可以对新版程序安装包进行合法性验证,若验证通过,再基于该新版程序安装包获得升级所需的升级文件。在进行合法性验证时,如果新版程序安装包是被压缩的安装包,则可以先进行解压缩后再验证合法性。合法性验证的目的是为了保证安装包的安全性,作为例子,可以验证新版程序安装包的包名、签名等。例如,验证包名和签名是否分别与当前安装APP的包名和签名一致等。只有在新版程序安装包合法的情况下才进行后续升级过程,从而提高安全性。Furthermore, in the process of obtaining the upgrade file, the legitimacy of the new version of the program installation package can also be verified. If the verification is passed, the upgrade file required for the upgrade can be obtained based on the new version of the program installation package. When performing the legitimacy verification, if the new version of the program installation package is a compressed installation package, it can be decompressed first and then the legitimacy can be verified. The purpose of legitimacy verification is to ensure the security of the installation package. As an example, the package name and signature of the new version of the program installation package can be verified. For example, verify whether the package name and signature are consistent with the package name and signature of the currently installed APP, etc. The subsequent upgrade process will only be carried out if the new version of the program installation package is legal, thereby improving security.
进一步的,如果验证失败,则清除该新版程序安装包。可见,针对不合法的新版程序安装包,可以通过验证的方式实现自动清除。在清除新版程序安装包后,可以加载当前版本(旧版)应用程序中的文件,实现运行当前版本的应用程序。Furthermore, if the verification fails, the new version of the program installation package is cleared. As can be seen, for illegal new version of the program installation package, it can be automatically cleared by verification. After clearing the new version of the program installation package, the files in the current version (old version) of the application can be loaded to run the current version of the application.
在某些例子中,在获得升级文件后,还可以对升级文件进行合法性验证,可以验证升级文件的完整性、签名等信息,避免升级文件被篡改,如果升级文件不满足合法性验证(如被篡改),则清除升级文件,并加载当前版本(旧版)应用程序中的文件,实现运行当前版本的应用程序。In some examples, after obtaining the upgrade file, the legitimacy of the upgrade file can also be verified. The integrity, signature and other information of the upgrade file can be verified to prevent the upgrade file from being tampered with. If the upgrade file does not meet the legitimacy verification (such as being tampered with), the upgrade file is cleared and the file in the current version (old version) application is loaded to run the current version of the application.
在基于所述新版程序安装包获得升级所需的升级文件后,可以在可写存储区中为该升级文件创建目录,并将所述升级文件存放在创建的目录中。于应用程序而言,对某些存储区域只有读取的权限,对某些存储区域具有读写权限。鉴于此,可以在目标应用程序可写存储区中为升级文件创建目录。针对不同类型的升级文件创建不同目录,以使不同类型的升级文件存放在不同的目录中。例如,所述可执行代码文件、动态链接库、资源文件分别存放在不同的目录中,以便从不同的存储路径中加载不同的文件。After obtaining the upgrade files required for the upgrade based on the new version of the program installation package, a directory can be created for the upgrade files in the writable storage area and the upgrade files can be stored in the created directory. For applications, some storage areas only have read permissions, while other storage areas have read and write permissions. In view of this, a directory can be created for the upgrade files in the writable storage area of the target application. Different directories are created for different types of upgrade files so that different types of upgrade files are stored in different directories. For example, the executable code files, dynamic link libraries, and resource files are stored in different directories respectively, so that different files can be loaded from different storage paths.
将所述升级文件存放到创建的目录中后,可以获得不同升级文件的目录路径,因此,可以基于各升级文件的目录路径更新目标应用程序中当前版本的可执行文件的目录路径以及资源文件的目录路径,以便后续加载时,根据可执行文件的目录路径,将可执行文件传给ClassLoader,实现利用ClassLoader替换可执行文件;根据资源文件的目录路径,将资源文件传给Resources,实现利用Resources替换资源。After storing the upgrade file in the created directory, the directory path of different upgrade files can be obtained. Therefore, the directory path of the current version of the executable file and the directory path of the resource file in the target application can be updated based on the directory path of each upgrade file, so that during subsequent loading, the executable file can be passed to ClassLoader according to the directory path of the executable file to replace the executable file with ClassLoader; the resource file can be passed to Resources according to the directory path of the resource file to replace the resource with Resources.
在本实施例中,可以构建用于替换旧加载器的新加载器,例如,构建继承于DexClassLoader的NewClassLoader,以实现动态替换旧APP中的PathClassLoader,因此,可以hook住代码逻辑执行,包括dex code和native code。In this embodiment, a new loader can be constructed to replace the old loader. For example, a NewClassLoader inherited from DexClassLoader can be constructed to dynamically replace the PathClassLoader in the old APP. Therefore, the code logic execution can be hooked, including dex code and native code.
例如,构建继承于DexClassLoader的加载器;基于所创建的目录获得所述升级文件的目录路径,将所述目录路径传给所构建的加载器,在目录路径传给新加载器后可以构建一个全新的DexPathList。基于所构建的加载器修改LoadedAPK类中ClassLoader的属性值以及Resources的属性值,获得用于替换旧加载器的新加载器,以便在后续加载时,利用所构建的新加载器从所述目录中加载可执行文件和资源文件。本实施例通过动态修改LoadedAPK类里面的属性值,便于后续加载可执行文件或资源时,从新的目录路径中加载相应的可执行文件或资源,实现可执行文件和资源的替换。For example, a loader inherited from DexClassLoader is constructed; the directory path of the upgrade file is obtained based on the created directory, and the directory path is passed to the constructed loader. After the directory path is passed to the new loader, a new DexPathList can be constructed. Based on the constructed loader, the attribute values of ClassLoader and Resources in the LoadedAPK class are modified to obtain a new loader to replace the old loader, so that the executable file and resource file can be loaded from the directory using the constructed new loader during subsequent loading. This embodiment dynamically modifies the attribute values in the LoadedAPK class to facilitate the subsequent loading of executable files or resources, thereby loading the corresponding executable files or resources from the new directory path and realizing the replacement of executable files and resources.
可见,本实施例通过修改Class Loader的属性值实现可执行文件的替换,通过修改Resources的属性值,实现资源替换,从而无需用户确认,即可通过应用程序本身实现自动升级,既可以提高新版本程序安装包的使用率,又可以使用户在无需操作的情况下享受升级带来的高性能。It can be seen that this embodiment realizes the replacement of executable files by modifying the attribute value of Class Loader, and realizes resource replacement by modifying the attribute value of Resources, thereby realizing automatic upgrade through the application itself without user confirmation, which can not only improve the utilization rate of the new version program installation package, but also allow users to enjoy the high performance brought by the upgrade without any operation.
在某些例子中,第一次安装目标应用程序时,目标应用程序的文件存储在目标应用程序只有读权限的存储区域中,而针对后续升级版本,目标应用程序可以基于当前版本进行目录节点区分,将不同版本的升级文件存储在不同的目录中。在一个例子中,不同版本的升级文件可以同时保存,以便后续查找历史版本的升级文件。在另一个例子中,比当前版本低的升级文件可以清除,以节省存储空间。例如,第一次安装目标应用程序时版本号为1.0,目标应用程序由1.0版本升级为2.0版本时,可以将升级文件存放在2.0的目录下(可以理解的是2.0目录中可以有多个子目录,用于分别存放不同类型的文件),在加载文件时,直接加载2.0目录下的可执行文件和资源文件;当目标应用程序由2.0版本升级为3.0版本时,可以将升级文件存放在3.0的目录下,与此同时,还可以清除2.0目录下的可执行文件和资源文件。在加载文件时,直接加载2.0目录下的可执行文件和资源文件。In some examples, when a target application is first installed, the target application's files are stored in a storage area to which the target application has only read permissions. However, for subsequent upgrades, the target application can distinguish between directory nodes based on the current version, storing upgrade files for different versions in different directories. In one example, upgrade files for different versions can be stored simultaneously to facilitate subsequent retrieval of upgrade files for older versions. In another example, upgrade files with versions lower than the current version can be cleared to conserve storage space. For example, if the target application is first installed with version 1.0, and the target application is upgraded from version 1.0 to version 2.0, the upgrade files can be stored in the 2.0 directory (it will be appreciated that the 2.0 directory can contain multiple subdirectories for storing different types of files). When loading files, the executable and resource files in the 2.0 directory are directly loaded. When the target application is upgraded from version 2.0 to version 3.0, the upgrade files can be stored in the 3.0 directory, and the executable and resource files in the 2.0 directory can be cleared. When loading files, the executable and resource files in the 2.0 directory are directly loaded.
在构建新加载器后,还可以判断存放、构建等操作是否成功,若成功,则进入下一步,若失败,则清除文件,加载当前版本的应用程序文件。进一步的,若成功,还可以进行文件合法性验证,以避免信息被篡改等。验证通过后,可以利用所构建的新加载器从所述目录中加载升级文件,从而实现加载新资源和新可执行文件。After building a new loader, it can also determine whether operations such as storage and building are successful. If successful, it proceeds to the next step. If not, it clears the file and loads the current version of the application file. Furthermore, if successful, it can also perform file legitimacy verification to prevent information tampering. After verification, the newly built loader can be used to load the upgrade file from the directory, thereby loading new resources and new executable files.
以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。The various technical features in the above embodiments can be combined arbitrarily as long as there is no conflict or contradiction between the combinations of features. However, due to space limitations, they are not described one by one. Therefore, the arbitrary combination of the various technical features in the above embodiments also falls within the scope of disclosure of this specification.
以下以其中一种组合进行示例说明。The following is an example of one of the combinations.
如图2所示,图2为本说明书根据一示例性实施例示出的另一种应用程序升级方法的流程图,在该实施例中,可以将目标应用程序的当前版本标识与线上发布的最新版本标识进行比较,若根据比较结果确定存在新版程序安装包时,下载新版程序安装包(步骤201),如果下载失败,则清除文件,加载当前版本(老APP)的文件(步骤202)。如果下载成功,则基于所述新版程序安装包获得升级所需的升级文件,在可写存储区中为所述升级文件创建目录,并将所述升级文件存放在创建的目录中,构建用于替换旧加载器的新加载器(步骤203)。若步骤203释放APP过程释放失败,则执行步骤202,若释放成功,则进行安全性验证(步骤204),例如,验证升级文件是否完整,签名是否与当前版本的签名相同等等。若验证失败,则执行步骤202,若验证成功,则利用所构建的新加载器从创建的目录中加载升级文件(步骤205)。As shown in Figure 2, Figure 2 is a flowchart of another application upgrade method shown in this specification according to an exemplary embodiment. In this embodiment, the current version identifier of the target application can be compared with the latest version identifier released online. If it is determined based on the comparison result that there is a new version program installation package, the new version program installation package is downloaded (step 201). If the download fails, the file is cleared and the file of the current version (old APP) is loaded (step 202). If the download is successful, the upgrade file required for the upgrade is obtained based on the new version program installation package, a directory is created for the upgrade file in the writable storage area, and the upgrade file is stored in the created directory, and a new loader is constructed to replace the old loader (step 203). If the release process of step 203 fails, step 202 is executed. If the release is successful, security verification is performed (step 204), for example, to verify whether the upgrade file is complete, whether the signature is the same as the signature of the current version, etc. If the verification fails, step 202 is executed. If the verification is successful, the upgrade file is loaded from the created directory using the constructed new loader (step 205).
相应的,本说明书还结合其中一个实施例的类图进行示例说明。如图3所示,图3为本说明书根据一示例性实施例示出的一种应用程序升级方法的类图。Accordingly, this specification also provides an example description in conjunction with a class diagram of one embodiment. As shown in FIG3 , FIG3 is a class diagram of an application program upgrade method according to an exemplary embodiment of this specification.
在该示意图中,可以包括LoadedAPK、NewClassLoader、DeexClassLoader、BaseDexClassLoader、DexPathList、Element以及DexFile等。In this diagram, LoadedAPK, NewClassLoader, DeexClassLoader, BaseDexClassLoader, DexPathList, Element, and DexFile, etc. may be included.
LoadedApk:代表Android APP运行过程中进程的实例,包含了可执行文件的加载器ClassLoader和加载资源的实例Resources。LoadedApk: Represents an instance of the process during the running of the Android APP, including the executable file loader ClassLoader and the instance Resources for loading resources.
NewClassLoader:代表着升级后APP的类加载器,是DexClassLoader的子类,指向着新APP的可执行文件路径。通过运行时构造一个全新的ClassLoader去修改LoadedAPK类中mClassLoader的属性值以及mResources的属性值,这样就能在程序运行过程中完成代码逻辑的替换以及资源的替换,以实现升级的目的。NewClassLoader: This represents the class loader for the upgraded app. It is a subclass of DexClassLoader and points to the executable file path of the new app. By constructing a new ClassLoader at runtime and modifying the mClassLoader and mResources properties in the LoadedAPK class, code logic and resources can be replaced during runtime to achieve the upgrade.
BaseDexClassLoader:Android运行时的实际可执行文件加载器,是DexClassLoader的父类。通过findClass(String name)查找并加载Java类,通过findLibrary(String name)查找静态链接库,而此操作都是由pathList属性完成。BaseDexClassLoader将findClass方法委托给pathList对象的findClass方法,pathList对象是在NewDexClassLoader的构造函数中new出来的,它的类型是DexPathList。直接遍历dexElements列表,然后通过调用element.dexFile对象上的loadClass()方法来加载类,如果返回值不是null,就表示加载类成功,会将这个Class对象返回。BaseDexClassLoader: The actual executable file loader of the Android runtime, it is the parent class of DexClassLoader. It finds and loads Java classes through findClass(String name) and finds static link libraries through findLibrary(String name), and these operations are all completed by the pathList attribute. BaseDexClassLoader delegates the findClass method to the findClass method of the pathList object. The pathList object is newly created in the constructor of NewDexClassLoader, and its type is DexPathList. It directly traverses the dexElements list and then loads the class by calling the loadClass() method on the element.dexFile object. If the return value is not null, it means that the class is loaded successfully and the Class object will be returned.
DexPathList:包含dex文件的集合dexElements和动态链接库文件路径集合nativeLibraryDirectories,是真正负责加载可执行文件的地方。DexPathList对象中的dexElements列表是类加载的一个核心,一个类如果能被成功加载,则它的dex会出现在dexElements所对应的dex文件中。DexPathList: Contains the dexElements collection of DEX files and the nativeLibraryDirectories collection of dynamic link library file paths. It is the place where executable files are actually loaded. The dexElements list in the DexPathList object is the core of class loading. If a class can be successfully loaded, its dex will appear in the dex file corresponding to the dexElements.
Element:包含Dex文件的地址file和dex映射到内存里的对象dexFile。Element: Contains the address file of the Dex file and the object dexFile that maps dex to memory.
DexFile:负责映射dex文件到内存,并负责执行加载Java类。DexFile: responsible for mapping the dex file to memory and executing the loading of Java classes.
可见,本实施例将基于新版程序安装包获得的可执行文件和资源存放在创建的目录中,通过替换可执行文件和资源的方式,实现无需用户确认,即实现应用程序自动升级。It can be seen that this embodiment stores the executable files and resources obtained based on the new version of the program installation package in the created directory, and realizes automatic application upgrade without user confirmation by replacing the executable files and resources.
与前述应用程序升级方法的实施例相对应,本说明书还提供了应用程序升级装置及其所应用的电子设备的实施例。Corresponding to the aforementioned embodiment of the application program upgrading method, this specification also provides an embodiment of an application program upgrading apparatus and an electronic device to which the apparatus is applied.
本说明书应用程序升级装置的实施例可以应用在计算机设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在计算机设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书应用程序升级装置所在计算机设备的一种硬件结构图,除了图4所示的处理器410、内存430、网络接口420、以及非易失性存储器440之外,实施例中装置431所在的计算机设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。The embodiments of the application program upgrade device of this specification can be applied to computer equipment. The device embodiments can be implemented by software, or by hardware or a combination of software and hardware. Taking software implementation as an example, as a device in a logical sense, it is formed by the processor of the computer device where it is located reading the corresponding computer program instructions in the non-volatile memory into the memory and running them. From the hardware level, as shown in Figure 4, it is a hardware structure diagram of the computer device where the application program upgrade device of this specification is located. In addition to the processor 410, memory 430, network interface 420, and non-volatile memory 440 shown in Figure 4, the computer device where the device 431 in the embodiment is located can generally include other hardware according to the actual function of the device, which will not be described in detail.
如图5所示,是本说明书根据一示例性实施例示出的一种应用程序升级装置的框图,所述装置包括:FIG5 is a block diagram of an application program upgrade device according to an exemplary embodiment of the present disclosure, wherein the device includes:
文件获得模块510,用于在所述目标应用程序启动时,若获得所述目标应用程序的新版程序安装包,基于所述新版程序安装包获得升级所需的升级文件。The file obtaining module 510 is configured to obtain an upgrade file required for the upgrade based on a new version of the program installation package if a new version of the program installation package of the target application is obtained when the target application is started.
信息存放模块520,用于在可写存储区中为所述升级文件创建目录,并将所述升级文件存放在创建的目录中。The information storage module 520 is configured to create a directory for the upgrade file in the writable storage area and store the upgrade file in the created directory.
加载器构建模块530,用于构建用于替换旧加载器的新加载器。The loader construction module 530 is used to construct a new loader for replacing the old loader.
信息加载模块540,用于利用所构建的新加载器从所述目录中加载升级文件。The information loading module 540 is used to load the upgrade file from the directory using the constructed new loader.
在一个可选的实现方式中,所述升级文件包括可执行文件和资源文件,所述文件获得模块510,用于:In an optional implementation, the upgrade file includes an executable file and a resource file, and the file obtaining module 510 is used to:
从所述新版程序安装包中提取出可执行文件;Extracting an executable file from the new version program installation package;
将所述新版程序安装包作为资源文件。The new version program installation package is used as a resource file.
在一个可选的实现方式中,所述可执行文件包括可执行代码文件和动态链接库,所述可执行代码文件、动态链接库、资源文件分别存放在不同的目录中。In an optional implementation, the executable file includes an executable code file and a dynamic link library, and the executable code file, dynamic link library, and resource file are stored in different directories respectively.
在一个可选的实现方式中,所述加载器构建模块530用于:In an optional implementation, the loader construction module 530 is configured to:
构建继承于DexClassLoader的加载器;基于所创建的目录获得所述升级文件的目录路径,将所述目录路径传给所构建的加载器;基于所构建的加载器修改LoadedAPK类中ClassLoader的属性值以及Resources的属性值,获得用于替换旧加载器的新加载器。Construct a loader that inherits from DexClassLoader; obtain the directory path of the upgrade file based on the created directory, and pass the directory path to the constructed loader; based on the constructed loader, modify the attribute values of ClassLoader and Resources in the LoadedAPK class to obtain a new loader for replacing the old loader.
在一个可选的实现方式中,所述文件获得模块510,用于:In an optional implementation, the file obtaining module 510 is configured to:
对所述新版程序安装包进行合法性验证,若验证通过,则基于所述新版程序安装包获得升级所需的升级文件。The legitimacy of the new version program installation package is verified, and if the verification passes, the upgrade file required for the upgrade is obtained based on the new version program installation package.
在一个可选的实现方式中,所述装置还包括清除模块(图5未示出),用于:In an optional implementation, the apparatus further includes a clearing module (not shown in FIG5 ) configured to:
若验证失败,则清除所述新版程序安装包。If the verification fails, the new version program installation package is cleared.
在一个可选的实现方式中,所述构建新加载器之前,所述装置还包括清除模块(图5未示出),用于:In an optional implementation, before constructing the new loader, the apparatus further includes a clearing module (not shown in FIG5 ) configured to:
若所述升级文件存放失败,则清除所述升级文件。If the upgrade file fails to be stored, the upgrade file is deleted.
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。For the device embodiments, since they basically correspond to the method embodiments, the relevant parts can be referred to the partial description of the method embodiments. The device embodiments described above are merely illustrative, wherein the modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules, that is, they may be located in one place, or they may be distributed on multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this specification. A person of ordinary skill in the art can understand and implement it without paying any creative work.
相应的,本说明书实施例还提供一种计算机设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:Accordingly, an embodiment of this specification further provides a computer device, comprising: a processor; and a memory for storing processor-executable instructions; wherein the processor is configured to:
在所述目标应用程序启动时,若获得所述目标应用程序的新版程序安装包,基于所述新版程序安装包获得升级所需的升级文件;When the target application is started, if a new version of the target application is installed, obtaining an upgrade file required for the upgrade based on the new version of the target application;
在可写存储区中为所述升级文件创建目录,并将所述升级文件存放在创建的目录中;Creating a directory for the upgrade file in a writable storage area, and storing the upgrade file in the created directory;
构建用于替换旧加载器的新加载器;Build a new loader to replace the old one;
利用所构建的新加载器从所述目录中加载升级文件。The upgrade file is loaded from the directory using the newly constructed loader.
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。The various embodiments in this specification are described in a progressive manner. Similar parts between the various embodiments can be referred to in conjunction with each other. Each embodiment focuses on the differences between the other embodiments. In particular, the device embodiments are generally similar to the method embodiments, so the description is relatively simple. For relevant parts, refer to the description of the method embodiments.
一种计算机存储介质,所述存储介质中存储有程序指令,所述程序指令包括:A computer storage medium, wherein program instructions are stored in the storage medium, and the program instructions include:
在所述目标应用程序启动时,若获得所述目标应用程序的新版程序安装包,基于所述新版程序安装包获得升级所需的升级文件;When the target application is started, if a new version of the target application is installed, obtaining an upgrade file required for the upgrade based on the new version of the target application;
在可写存储区中为所述升级文件创建目录,并将所述升级文件存放在创建的目录中;Creating a directory for the upgrade file in a writable storage area, and storing the upgrade file in the created directory;
构建用于替换旧加载器的新加载器;Build a new loader to replace the old one;
利用所构建的新加载器从所述目录中加载升级文件。The upgrade file is loaded from the directory using the newly constructed loader.
本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。The embodiments of this specification may take the form of a computer program product implemented on one or more storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing program code. Computer-usable storage media include permanent and non-permanent, removable and non-removable media, and information storage can be achieved by any method or technology. Information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include but are not limited to: phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission medium that can be used to store information that can be accessed by a computing device.
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。Other embodiments of the present invention will readily occur to those skilled in the art upon consideration of the present invention and practice of the invention claimed herein. This specification is intended to cover any variations, uses, or adaptations of the present invention that follow the general principles of this specification and include common knowledge or customary techniques in the art not claimed herein. The description and examples are to be considered as exemplary only, with the true scope and spirit of the present invention being indicated by the following claims.
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。It should be understood that the present description is not limited to the exact structure that has been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present description is limited only by the appended claims.
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。The above description is only a preferred embodiment of this specification and is not intended to limit this specification. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of this specification should be included in the scope of protection of this specification.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| HK18107097.7A HK1247691B (en) | 2018-05-30 | Application program updating method, device and equipment |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| HK18107097.7A HK1247691B (en) | 2018-05-30 | Application program updating method, device and equipment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1247691A1 HK1247691A1 (en) | 2018-09-28 |
| HK1247691B true HK1247691B (en) | 2021-03-26 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107506221B (en) | Application program upgrading method, device and equipment | |
| US12363196B2 (en) | Demand resources | |
| US9389878B1 (en) | Pre-boot management of drivers and programs | |
| US9880824B2 (en) | On demand resources | |
| US9454356B2 (en) | Method of and terminal for updating library file in system application | |
| US9727327B1 (en) | Software distribution framework | |
| US8874892B1 (en) | Assessing BIOS information prior to reversion | |
| US10019256B2 (en) | Systems and methods for incremental software development | |
| KR101963912B1 (en) | Application compatibility with library operating systems | |
| CN100449524C (en) | Servicing a component-based software product | |
| US9009663B2 (en) | Cartridge-based package management | |
| CN105786538B (en) | software upgrading method and device based on android system | |
| US20090216811A1 (en) | Dynamic composition of an execution environment from multiple immutable file system images | |
| CN107220074B (en) | Method and device for accessing and upgrading supporting layer software function | |
| CN110543369A (en) | Construction method and device of storage space structure of android system and construction structure of storage space structure of android system | |
| CN103559065B (en) | Method and system for OTA (Over-the-Air Technology) upgrade | |
| WO2007070295A1 (en) | Metadata driven deployment of applications | |
| CN112463191A (en) | File updating method and device, equipment and storage medium | |
| US12265812B2 (en) | Immutable image for deployment to edge devices | |
| KR101985524B1 (en) | On-demand resources | |
| CN113419756A (en) | File upgrading method and device and electronic equipment | |
| CN113867768A (en) | Operating system processing method and device, electronic equipment and storage medium | |
| CN118069191A (en) | Software source construction method, equipment and medium based on Xinchuang operating system | |
| CN101326515A (en) | Metadata-driven application deployment | |
| HK1247691B (en) | Application program updating method, device and equipment |