WO2021196597A1 - 业务插件加载实现方法、装置和终端设备 - Google Patents

业务插件加载实现方法、装置和终端设备 Download PDF

Info

Publication number
WO2021196597A1
WO2021196597A1 PCT/CN2020/125564 CN2020125564W WO2021196597A1 WO 2021196597 A1 WO2021196597 A1 WO 2021196597A1 CN 2020125564 W CN2020125564 W CN 2020125564W WO 2021196597 A1 WO2021196597 A1 WO 2021196597A1
Authority
WO
WIPO (PCT)
Prior art keywords
plug
file
loading
service
service plug
Prior art date
Application number
PCT/CN2020/125564
Other languages
English (en)
French (fr)
Inventor
张建飞
Original Assignee
深圳创维-Rgb电子有限公司
深圳市酷开网络科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 深圳创维-Rgb电子有限公司, 深圳市酷开网络科技有限公司 filed Critical 深圳创维-Rgb电子有限公司
Publication of WO2021196597A1 publication Critical patent/WO2021196597A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Definitions

  • This application relates to the field of computer technology, and in particular to a method, device and terminal device for implementing service plug-in loading.
  • one of the objectives of the present application is to overcome the deficiencies in the prior art and provide a method, device and terminal device for implementing service plug-in loading.
  • An embodiment of the present application provides a method for implementing service plug-in loading, including:
  • the file acquisition path and loading mode of the service plug-in to be loaded are obtained from the configuration information;
  • the loading mode includes a loading mode of an uninstalled plug-in and a loading mode of an installed plug-in;
  • the file path is used to store the resource file of the service plug-in
  • the class loader is used for class loading and passed into the context, so that the resources of the service plug-in can be obtained through the context during operation and the corresponding service requirements can be fulfilled.
  • the above-mentioned service plug-in loading implementation method further includes:
  • the at least one file path includes an executable file path and a storage file path
  • the storage file path is used to access the stored files generated or downloaded by the service plug-in during the running process
  • the executable file path is used to access the stored executable file of the service plug-in.
  • the at least one file path includes a local library file path, and after the at least one file path is independently allocated, it further includes:
  • the "using the class loader based on a predefined interface for class loading and passing in the context” includes:
  • the predefined interface is used as the plug-in execution entry, the class is loaded through the class loader, and the class is initialized, then the context of the service plug-in is called, and the context is used to obtain the service Resources for the plugin.
  • the above-mentioned service plug-in loading implementation method further includes:
  • the acquiring context function of the display control class is used to return an interface element to the calling interface for display.
  • the above-mentioned service plug-in loading implementation method further includes:
  • the service plug-in is updated.
  • Another embodiment of the present application provides a device for implementing service plug-in loading, including:
  • the plug-in information obtaining module is configured to obtain the file obtaining path and loading mode of the service plug-in to be loaded from the configuration information according to the received configuration information issued from the server; the loading mode includes a loading mode without a plug-in installed And the loading method of the installed plug-in;
  • the file path allocation module is configured to, if the loading mode in the plug-in information obtaining module is the uninstalled plug-in loading mode, obtain the installation package file of the service plug-in according to the file obtaining path, and obtain the installation package file of the service plug-in according to the The package name information parsed from the installation package file independently allocates at least one file path to the service plug-in for storing the resource file of the service plug-in;
  • the class loader creation module is configured to generate the corresponding first type loader according to the loading mode of the uninstalled plug-in, and generate the resource file of the service plug-in according to the first type loader and the installation package file, and Constructing the context of the business plug-in based on the resource file and the first type loader;
  • the plug-in loading execution module is configured to use the class loader to perform class loading based on a predefined interface and pass it into the context, so that the resources of the service plug-in can be obtained through the context during operation and the corresponding service can be completed need.
  • the file path allocation module is further configured to search for the service plug-in according to the package name of the installed service plug-in if the loading mode in the plug-in information obtaining module is the installed plug-in loading mode.
  • An installation path and independently allocate at least one file path for the service plug-in to store the resource file of the service plug-in;
  • the class loader creation module is further configured to generate a corresponding second type loader according to the loading mode of the installed plug-in, and then use the second type loader and the package name of the business plug-in to construct the business plug-in And use the context to obtain the resource file of the service plug-in.
  • the at least one file path includes an executable file path and a storage file path; the storage file path is used to access the stored service plug-in A file generated or downloaded during running; the executable file path is used to access the stored executable file of the service plug-in.
  • the file path allocation module is further configured to copy the local library content from the installation package file of the service plug-in, and copy the copied content of the local library.
  • the content of the local library is stored in the local library file corresponding to the path of the local library file.
  • the plug-in loading execution module is specifically configured to use the predefined interface as the plug-in execution entry, and perform class loading through the class loader And after the class is initialized, the context of the service plug-in is called, and the context is configured to obtain the resource of the service plug-in.
  • the plug-in information acquisition module is further configured to use the acquisition context of the display control class in the case of acquiring the interface resources in the business plug-in
  • the function returns an interface element to the calling interface for display.
  • the terminal device includes a processor and a memory
  • the memory stores a computer program
  • the processor is configured to execute the computer program to implement the above-mentioned service plug-in loading implementation method.
  • Another embodiment of the present application provides a computer-readable storage medium that stores a computer program, and when the computer program is executed, it implements the foregoing service plug-in loading implementation method.
  • the technical solution of this application proposes to develop and load different business functions in the form of plug-ins.
  • two different loading methods are distinguished, namely the uninstalled loading method and the installed loading method, and are specific to different loading methods.
  • the method type adopts different methods to construct different class loaders and contexts, and resource acquisition.
  • This implementation method uses two different plug-in loading methods, which can well solve the problem that the system cannot run third-party business applications by default; due to the fast development of plug-ins and the small size of a single plug-in, each plug-in is only responsible for the corresponding part of the business function.
  • the smallest system framework and system resources are changed, the engineering complexity is decoupled, and the fastest update can be achieved.
  • FIG. 1 shows a schematic diagram of the first process of a method for implementing loading a service plug-in according to an embodiment of the present application
  • FIG. 2 shows a schematic diagram of a second flow of a method for implementing service plug-in loading according to an embodiment of the present application
  • FIG. 3 shows an application schematic diagram of a method for implementing service plug-in loading according to an embodiment of the present application
  • Fig. 4 shows a schematic structural diagram of an apparatus for implementing service plug-in loading according to an embodiment of the present application.
  • 10-Business plug-in loading implementation device 110-plug-in information acquisition module; 120-file path allocation module; 130-class loader creation module; 140-plug-in loading execution module.
  • This application proposes a method for implementing service plug-in loading, which can be applied to devices that support different service functions, such as smart screens that support home appliance control and user interaction.
  • the terminal device using this method can not only solve the problem that the system cannot run third-party business applications by default, but also can achieve the smallest system framework and system resource changes, decoupling engineering complexity, and so on.
  • the implementation method of loading the service plug-in is described in detail below.
  • Step S110 According to the received configuration information issued from the server, the file obtaining path and loading mode of the service plug-in to be loaded are obtained from the configuration information.
  • the device can read the related information of the plug-in to be loaded from the configuration information, for example, it can include but is not limited to include, used to obtain the service The file acquisition path, loading method, version information, etc. of the plug-in file, as well as descriptions related to business requirements, etc.
  • the implementation method of loading the business plug-in of this application is compatible with two different loading methods, namely the loading method of the uninstalled plug-in and the loading method of the installed plug-in.
  • the loading method of uninstalled plug-ins refers to the loading of plug-in applications that are not installed and running by default without system permissions; while the loading method of installed plug-ins refers to the loading of plug-in applications that have been installed and cannot be run with system permissions. load.
  • Step S120 if it is a plug-in loading mode that is not installed, obtain the installation package file of the service plug-in according to the file acquisition path, and independently allocate at least one file for the service plug-in according to the package name parsed from the installation package file
  • the path is used to store related resource files of the business plug-in.
  • step S120 when the obtained loading mode is the loading mode without the plug-in installed, it means that the plug-in to be loaded is not installed in the system. Therefore, it is necessary to obtain the installation package of the plug-in according to the file obtaining path provided in the configuration information.
  • File for example, the installation package file can be downloaded online to the storage disk of the device from related web pages or connected peripherals and other means.
  • the package name (ie PackageName) of the plug-in application is parsed according to the installation package file, and a corresponding file path is separately allocated for the plug-in to be loaded based on the inclusion. It can be understood that assigning a separate related file path for each plug-in to store the related resource files of the corresponding plug-in can provide a basis for the independent operation of the plug-in to be loaded.
  • the at least one file path may include an executable file path, a storage file path, and so on.
  • the executable file of the service plug-in stored in the corresponding path can be accessed through it.
  • the executable file may be a Dex file containing all operation instructions and running code of the service plug-in.
  • the aforementioned storage file path is mainly used to access stored files that may be generated or downloaded by the service plug-in during operation.
  • a local library file path and the like may also be allocated to the above-mentioned file path.
  • the local library content can be copied from the installation package file of the service plug-in, and the copied local library content can be stored in the local library file of the local library file path allocated above.
  • the native library Native Library
  • the copied native library can be stored separately. Compared with the existing plug-in loading based on the Web solution, by providing a separate local library for the independent operation of the plug-in to be loaded, problems such as the performance of accessing or calling library files can be improved.
  • Step S130 Generate a corresponding first-type loader according to the loading mode of the uninstalled plug-in, generate a resource file of the service plug-in based on the first-type loader and the installation package file, and generate a resource file based on the resource file and the first type of loader.
  • a type of loader constructs the context of the business plug-in.
  • the first type loader that is, DexClassLoader
  • DexClassLoader is generated for the plug-in to be loaded for subsequent class loading and the like.
  • the function newDexClassLoader() can be used to create the class loader without the plug-in installed.
  • the function parameters mainly include the path of the installation package APK, the directory for storing the executable file Dex after the installation package is decompressed, and the local library The directory of the file, and the upper class loader, etc.
  • the resource file of the plug-in is generated through the first loader and based on the installation package file of the service plug-in.
  • the resource object of the corresponding plug-in can be obtained through the reflection call method, and then the resource of the corresponding class can be obtained through the resource object.
  • the resources in the resource file can include multiple internal classes in the R class and so on.
  • the context that is, the Context entity
  • the context can provide a corresponding operating environment for the plug-in to be loaded at runtime, and can also be used to obtain resources of the plug-in.
  • Step S140 Use the class loader to load the class based on the predefined interface and pass in the constructed context, so that the resource of the service plug-in can be obtained through the context during the running process and the corresponding service requirement can be fulfilled.
  • an interface is first defined as the execution entry of the plug-in for transferring context.
  • the context of the service plug-in is called.
  • the context is used to obtain the internal resources of the business plug-in.
  • the internal resources may be image resources related to the plug-in and business functions.
  • the implementation method for loading the business plug-in further includes: using the get context function of the display control class to return an interface element to the calling interface.
  • the context acquisition function getContextView() in the View class of the display control may be used to return a corresponding interface element to the calling interface for display.
  • Implementation methods also include:
  • step S150 if it is an installed plug-in loading mode, search for the installation path of the business plug-in according to the package name of the installed business plug-in, and independently allocate at least one file path for the business plug-in to store related information of the business plug-in resource.
  • the package name of the installed plug-in can be obtained from the configuration information.
  • the package manager (PackageManager) can be used to find all the devices in the device.
  • the plug-in is installed, and the installation path such as the installation package file of the installed plug-in is judged according to the package name of the current business plug-in and the same shareUserId shared with the host. Therefore, multiple file paths for storing related resource files of the business plug-in are allocated separately according to the package name of the business plug-in.
  • a unique storage file path, executable file path, and local library path can be assigned to it.
  • the local library file can be copied from the installation package file of the service plug-in and stored in the file corresponding to the local library path.
  • Step S160 Generate a corresponding second-type loader according to the loading mode of the installed plug-in, then use the second-type loader and the package name of the business plug-in to construct the context of the business plug-in, and use the context to obtain the business plug-in Resource files.
  • a corresponding second-type loader namely PathClassLoader
  • the context of the business plug-in is first constructed according to the package name of the business plug-in.
  • the above-mentioned resource file of the plug-in to be loaded is obtained from the context obtained by the construction. It can be understood that, compared with the loading method of the uninstalled plug-in in step S130, the resource files generated by the two are different, and the resource file and context generation methods are also different.
  • the above step S140 is executed according to the generated PathClassLoader, context, resource files, etc.
  • the problem that the system cannot run uninstalled application APKs by default can be well solved, and it also solves the problem of poor performance of loading uninstalled application APKs.
  • the second loading method Solved the problem of the program in the installed application that the system cannot run. Due to the compatibility of these two loading methods, the device can cope with most applications, greatly improving the scalability of the device; and, because the loaded plug-in does not invade the device's own operating system, it has a better system Stability and so on.
  • the implementation method of loading the business plug-in of this application further includes: obtaining the version information of the business plug-in from the configuration information and comparing the version with the installed plug-in. If the obtained version is a new version, Then the host application will first perform the plug-in update operation, where, during the update process, the entire installation package of the plug-in will be replaced, and then the plug-in will be reloaded after the replacement.
  • the service plug-in loading implementation method of the present application can implement the loading of multiple different plug-ins in the same host process to provide different service capabilities, as shown in FIG. 3.
  • the above-mentioned plug-in installation package file and host application can be standard Android installation package files compiled and generated using tools such as Gradle.
  • each plug-in will run in the process of the host application to provide specific business capabilities; accordingly, the host application is used to be responsible for the loading and scheduling of each plug-in.
  • the scheduling may include, but is not limited to, including version update, removal, or rights management of the plug-in, and so on.
  • the business plug-in loading implementation method of this application proposes to develop and load different business functions in the form of plug-ins.
  • two different loading methods need to be distinguished, namely the uninstalled loading method and the installed loading method, and
  • different methods are used to construct different class loaders, contexts, and resource acquisition.
  • This implementation method adopts two different plug-in loading methods, which can also solve the problems of running third-party applications that are not run by the system by default; due to the fast plug-in development and the small size of a single plug-in, each plug-in is only responsible for the corresponding part of the business function , So as to achieve the smallest changes to the system framework and system resources, decoupling the complexity of the project, and also achieve the fastest update goal.
  • this application proposes a service plug-in loading implementation device 10, which includes:
  • the plug-in information obtaining module 110 is configured to obtain the file obtaining path and loading mode of the service plug-in to be loaded from the configuration information according to the received configuration information issued from the server; the loading mode includes loading without the installed plug-in Mode and loading mode of installed plug-ins.
  • the file path allocation module 120 is configured to, if the loading mode in the plug-in information obtaining module is the uninstalled plug-in loading mode, obtain the installation package file of the service plug-in according to the file obtaining path, and according to The package name information parsed in the installation package file independently allocates at least one file path to the service plug-in for storing the resource file of the service plug-in.
  • the class loader creation module 130 is configured to generate the corresponding first type loader according to the loading mode of the uninstalled plug-in, and generate the resource file of the service plug-in according to the first type loader and the installation package file, And constructing the context of the business plug-in based on the resource file and the first type loader.
  • the plug-in loading execution module 140 is configured to use the class loader to perform class loading based on a predefined interface and pass it into the context, so that the resources of the service plug-in can be obtained through the context during the running process and the corresponding Business needs.
  • the file path allocation module 120 is further configured to search for the service plug-in according to the package name of the installed service plug-in if the loading mode in the plug-in information obtaining module is the installed plug-in loading mode. Installation path, and independently allocate at least one file path for the service plug-in to store the resource file of the service plug-in.
  • the class loader creation module 130 is further configured to generate a corresponding second class loader according to the loading mode of the installed plug-in, and then construct the business plug-in by using the second class loader and the package name of the business plug-in And use the context to obtain the resource file of the service plug-in.
  • the terminal device such as a smart screen supporting multiple service functions.
  • the terminal device includes a processor and a memory.
  • the memory stores a computer program so that the terminal device can execute the above-mentioned service plug-in.
  • the loading implementation method or the foregoing service plug-in loading implementation device implements the functions of each module in order to achieve the purpose of timely expansion of various business functions.
  • This application also provides a computer-readable storage medium configured to store the computer program used in the above-mentioned terminal device.
  • each block in the flowchart or block diagram may represent a module, program segment, or part of the code, and the module, program segment, or part of the code contains one or more functions for realizing the specified logical function.
  • Executable instructions may also occur in a different order from the order marked in the drawings.
  • each block in the structure diagram and/or flowchart, and the combination of the blocks in the structure diagram and/or flowchart can be used as a dedicated hardware-based system that performs the specified functions or actions. It can be implemented, or can be implemented by a combination of dedicated hardware and computer instructions.
  • the functional modules or units in the various embodiments of the present application may be integrated together to form an independent part, or each module may exist alone, or two or more modules may be integrated to form an independent part.
  • the function is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present application essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which can be a smart phone, a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disks or optical disks and other media that can store program codes. .
  • the technical solution of this application proposes to develop and load different business functions in the form of plug-ins.
  • two different loading methods are distinguished, namely the uninstalled loading method and the installed loading method, and are specific to different loading methods.
  • the method type adopts different methods to construct different class loaders and contexts, and resource acquisition.
  • This implementation method uses two different plug-in loading methods, which can well solve the problem that the system cannot run third-party business applications by default; due to the fast development of plug-ins and the small size of a single plug-in, each plug-in is only responsible for the corresponding part of the business function.
  • the smallest system framework and system resources are changed, the engineering complexity is decoupled, and the fastest update can be achieved.

Abstract

一种业务插件加载实现方法、装置和终端设备,该方法包括:根据下发的配置信息,并从该配置信息中获取待加载的业务插件的文件获取路径和加载方式(S110);若为未安装插件加载方式,则根据文件获取路径获取插件的安装包文件,并根据从安装包文件中解析出的包名为业务插件独立分配至少一文件路径(S120);根据未安装插件加载方式生成对应的第一类加载器并生成插件的资源文件以及基于资源文件和第一类加载器构建上下文(S130)。基于预定义接口利用类加载器进行类加载并传入上下文,以使运行过程中通过上下文获取插件资源并完成业务需求(S140)。该方法兼容两种插件加载方式,可很好地解决系统默认不可运行第三方应用的难题,还可以实现快速开发等。

Description

业务插件加载实现方法、装置和终端设备
相关申请的交叉引用
本申请要求于2020年04月02日提交中国专利局的申请号为2020102566809、名称为“业务插件加载实现方法、装置和终端设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务插件加载实现方法、装置和终端设备。
背景技术
对于支持多种业务功能的终端设备而言,如智慧屏等,为响应客户的业务需求,很多时候需要快速开发出新的业务功能。然而,一个应用程序的开发往往需要很多流程,导致应用的设计周期太长,不利于业务功能的及时上线。虽然目前也有提出插件化的加载方式,即在设备中的一应用进程中动态加载插件来提供业务,但是对于现有的设备大多只能针对系统中已安装的安装包(APK)进行插件加载,对于第三方应用,则往往存在无系统权限的问题而无法在该设备中正常安装运行等。
发明内容
有鉴于此,本申请的目的之一是为了克服现有技术中的不足,提供一种业务插件加载实现方法、装置和终端设备。
本申请的一实施例提供一种业务插件加载实现方法,包括:
根据接收到的来自服务器下发的配置信息,并从所述配置信息中获取待加载的业务插件的文件获取路径和加载方式;所述加载方式包括未安装插件加载方式和已安装插件加载方式;
若为所述未安装插件加载方式,则根据所述文件获取路径获取所述业务插件的安装包文件,并根据从所述安装包文件中解析出的包名为所述业务插件独立分配至少一文件路径以用于存储所述业务插件的资源文件;
根据所述未安装插件加载方式生成对应的第一类加载器,并根据所述第一类加载器和所述安装包文件生成所述业务插件的资源文件,以及基于所述资源文件和所述第一类加载器构建所述业务插件的上下文;
基于预先定义的接口利用所述类加载器进行类加载并传入所述上下文,以使运行过程中能够通过所述上下文获取所述业务插件的资源并完成对应的业务需求。
在一种可能的实现方式中,在上述的业务插件加载实现方法中,还包括:
若为所述已安装插件加载方式,则根据已安装的所述业务插件的包名查找所述业务插 件的安装路径,并为所述业务插件独立分配至少一文件路径以用于存储所述业务插件的资源文件;
根据所述已安装插件加载方式生成对应的第二类加载器,则利用所述第二类加载器和所述业务插件的包名构建所述业务插件的上下文,并利用所述上下文获取所述业务插件的资源文件。
在一种可能的实现方式中,在上述的业务插件加载实现方法中,所述至少一文件路径包括可执行文件路径和存储文件路径;
所述存储文件路径用于访问存储的所述业务插件在运行过程中生成或下载的文件;
所述可执行文件路径用于访问存储的所述业务插件的可执行文件。
在一种可能的实现方式中,在上述的业务插件加载实现方法中,所述至少一文件路径包括本地库文件路径,在独立分配至少一文件路径之后,还包括:
从所述业务插件的安装包文件中复制本地库内容,并将复制的所述本地库内容存储于对应于所述本地库文件路径的本地库文件中。
在一种可能的实现方式中,在上述的业务插件加载实现方法中,所述“基于预先定义的接口利用所述类加载器进行类加载并传入所述上下文”包括:
以所述预先定义的接口作为插件执行入口,通过所述类加载器进行类加载,并对所述类进行初始化后,调用所述业务插件的所述上下文,所述上下文用于获取所述业务插件的资源。
在一种可能的实现方式中,在上述的业务插件加载实现方法中,还包括:
在获取所述业务插件内的界面资源的情况下,使用显示控件类的获取上下文函数返回一个界面元素给调用界面进行显示。
在一种可能的实现方式中,在上述的业务插件加载实现方法中,还包括:
从配置信息中获取所述业务插件的版本信息,并将所述业务插件的版本信息与已安装的插件的版本信息进行版本比较;
若所述业务插件的版本高于所述已安装的插件的版本,则更新所述业务插件。
本申请的另一实施例提供一种业务插件加载实现装置,包括:
插件信息获取模块,配置成根据接收到的来自服务器下发的配置信息,并从所述配置信息中获取待加载的业务插件的文件获取路径和加载方式;所述加载方式包括未安装插件加载方式和已安装插件加载方式;
文件路径分配模块,配置成若所述插件信息获取模块中的所述加载方式为所述未安装插件加载方式,则根据所述文件获取路径获取所述业务插件的安装包文件,并根据从所述安装包文件中解析出的包名信息为所述业务插件独立分配至少一文件路径以用于存储所述 业务插件的资源文件;
类加载器创建模块,配置成根据所述未安装插件加载方式生成对应的第一类加载器,并根据所述第一类加载器和所述安装包文件生成所述业务插件的资源文件,以及基于所述资源文件和所述第一类加载器构建所述业务插件的上下文;
插件加载执行模块,配置成基于预先定义的接口利用所述类加载器进行类加载并传入所述上下文,以使运行过程中能够通过所述上下文获取所述业务插件的资源并完成对应的业务需求。
在一种可能的实现方式中,在上述的业务插件加载实现装置中,还包括:
所述文件路径分配模块,还配置成若所述插件信息获取模块中的所述加载方式为所述已安装插件加载方式,则根据已安装的所述业务插件的包名查找所述业务插件的安装路径,并为所述业务插件独立分配至少一文件路径以用于存储所述业务插件的资源文件;
所述类加载器创建模块,还配置成根据所述已安装插件加载方式生成对应的第二类加载器,则利用所述第二类加载器和所述业务插件的包名构建所述业务插件的上下文,并利用所述上下文获取所述业务插件的资源文件。
在一种可能的实现方式中,在上述的业务插件加载实现装置中,所述至少一文件路径包括可执行文件路径和存储文件路径;所述存储文件路径用于访问存储的所述业务插件在运行过程中生成或下载的文件;所述可执行文件路径用于访问存储的所述业务插件的可执行文件。
在一种可能的实现方式中,在上述的业务插件加载实现装置中,所述文件路径分配模块,还配置成从所述业务插件的安装包文件中复制本地库内容,并将复制的所述本地库内容存储于对应于所述本地库文件路径的本地库文件中。
在一种可能的实现方式中,在上述的业务插件加载实现装置中,所述插件加载执行模块,具体配置成以所述预先定义的接口作为插件执行入口,通过所述类加载器进行类加载,并对所述类进行初始化后,调用所述业务插件的所述上下文,所述上下文配置成获取所述业务插件的资源。
在一种可能的实现方式中,在上述的业务插件加载实现装置中,所述插件信息获取模块,还配置成在获取所述业务插件内的界面资源的情况下,使用显示控件类的获取上下文函数返回一个界面元素给调用界面进行显示。
本申请的又一实施例提供一种终端设备,所述终端设备包括处理器和存储器,所述存储器存储有计算机程序,所述处理器配置成执行所述计算机程序以实施上述的业务插件加载实现方法。
本申请的再一实施例提供一种计算机可读存储介质,其存储有计算机程序,所述计算 机程序被执行时,实施上述的业务插件加载实现方法。
本申请的实施例具有如下优点:
本申请的技术方案提出对不同的业务功能均以插件的形式进行开发和加载,其中加载过程中区别两种不同的加载方式,分别是未安装加载方式和已安装加载方式,并针对不同的加载方式类型采用不同的方式来构建不同的类加载器及上下文以及资源获取等。该实现方法采用两种不同的插件加载方式,可以很好地解决系统默认不可运行第三方业务应用的难题;由于插件开发快,单个插件体积小,每一个插件只负责相应的部分业务功能,从而做到了最小的系统框架及系统资源等的改动,解耦了工程复杂度,还可以达到最快更新目的。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例业务插件加载实现方法的第一流程示意图;
图2示出了本申请实施例业务插件加载实现方法的第二流程示意图;
图3示出了本申请实施例业务插件加载实现方法的应用示意图;
图4示出了本申请实施例业务插件加载实现装置的结构示意图。
主要元件符号说明:
10-业务插件加载实现装置;110-插件信息获取模块;120-文件路径分配模块;130-类加载器创建模块;140-插件加载执行模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的本申请实施例中介绍的各实现方式仅仅是本申请一部分可能的实现方式,而不是全部的实现方式。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在下文中,可在本申请的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或 增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。
请参照图1,本申请提出一种业务插件加载实现方法,可应用于支持不同业务功能的设备,如支持家电控制及用户交互的智慧屏等。运用该方法的终端设备不仅可解决系统默认不可运行第三方业务应用的难题,还可以做到最小的系统框架及系统资源等的改动,解耦工程复杂度等。如图1所示,下面对该业务插件加载实现方法进行详细说明。
步骤S110,根据接收到的来自服务器下发的配置信息,并从所述配置信息中获取待加载的业务插件的文件获取路径和加载方式。
示范性地,在接收到来自服务器下发的配置信息的情况下,设备可以从该配置信息中读取出待加载的插件的相关信息,例如,可包括但不限于包括,用于获取该业务插件文件的文件获取路径、加载方式和版本信息等,以及与业务需求的相关描述等。
本申请的业务插件加载实现方法兼容两种不同的加载方式,分别为未安装插件加载方式和已安装插件加载方式。其中,对于未安装插件加载方式,是指对未得到系统权限而默认不可安装及运行的插件应用进行加载;而已安装插件的加载方式,则指对得到系统权限已安装而不可运行的插件应用进行加载。
步骤S120,若为未安装插件加载方式,则根据所述文件获取路径获取该业务插件的安装包文件,并根据从所述安装包文件中解析出的包名为该业务插件独立分配至少一文件路径以用于存储该业务插件的相关资源文件。
对于上述步骤S120,当获取的加载方式为未安装插件的加载方式,则说明该待加载的插件未安装于系统中,因此,需要先根据配置信息中提供的文件获取路径来得到插件的安装包文件,例如,可从相关的网页或连接的外设等其他途径将该安装包文件在线下载到设备的存储磁盘中。
然后,根据该安装包文件解析出该插件应用的包名(即PackageName),并基于该包括为该待加载插件单独分配相应的文件路径。可以理解,为每一插件分配单独的相关文件路径来存储对应插件的相关资源文件,可以为该待加载的插件的独立运行提供基础。
示范性地,该至少一文件路径可包括一可执行文件路径和存储文件路径等。对于上述 的可执行文件路径,通过其可以访问到存储在对应路径的业务插件的可执行文件,例如,该可执行文件可为包含该业务插件的全部操作指令以及运行代码等的Dex文件。而上述的存储文件路径,主要用于访问存储的该业务插件在运行过程中可能生成的或下载的文件等。
在一种可能的实现方式中,对于上述的文件路径还可以分配一本地库文件路径等。例如,可从该业务插件的安装包文件中复制本地库内容,并将复制的本地库内容存储于上述分配的该本地库文件路径的本地库文件中。通过分配该业务插件的本地库(Native Library)文件的存储路径,使得复制的本地库可以单独存储。相对于现有的基于Web方案的插件加载而言,通过为待加载插件的独立运行提供单独的本地库,可提高访问或调用库文件的性能等问题。
步骤S130,根据该未安装插件加载方式生成对应的第一类加载器,并根据该第一类加载器和所述安装包文件生成该业务插件的资源文件,以及基于所述资源文件和该第一类加载器构建该业务插件的上下文。
对于上述步骤S130,对于未安装插件加载方式,将为待加载的插件生成第一类加载器,即DexClassLoader,以用于后续的类加载等。示范性地,可利用函数newDexClassLoader()来创建该未安装插件的类加载器,该函数参数主要包括该安装包APK的路径、安装包解压后的用于存储可执行文件Dex的目录、本地库文件的目录、以及上一级的类加载器等。
然后,通过该第一加载器并基于该业务插件的安装包文件生成该插件的资源文件。示范性地,可通过反射调用方法得到对应插件的资源对象,进而通过该资源对象获取到对应类的资源,例如,该资源文件中的资源可以包括R类中的多种内部类等等。
接着,以上述的第一加载器和资源文件为参数,构建该业务插件的上下文(即Context实体)。可以理解,通过该上下文可以为该待加载插件在运行时提供对应的运行环境,也可以用于获取该插件的资源等。
步骤S140,基于预先定义的接口利用该类加载器进行类加载并传入其构建得到的上下文,以使运行过程中能够通过所述上下文获取所述业务插件的资源并完成对应的业务需求。
对于上述步骤S140,示范性地,先定义一个接口,作为该插件的执行入口以用于传递上下文。通过该类加载器进行类加载,并对加载的类进行初始化后,调用该业务插件的上下文。其中,该上下文用于获取该业务插件的内部资源。例如,该内部资源可以是关于该插件的与业务功能相关的图片资源等。
在一种可能的实现方式中,在获取上述的插件的资源的情况下,如界面资源等,该业务插件加载实现方法还包括:使用显示控件类的获取上下文函数返回一个界面元素给调用界面进行显示。示范性地,可采用显示控件View类中的获取上下文函数getContextView()返回一个对应的界面元素给调用界面进行显示。
此外,考虑到存在一些已安装的应用可能在系统中不可运行的问题,在一种可能的实现方式中,在上述步骤S110与步骤S140之间,如图2所示,本申请的业务插件加载实现方法还包括:
步骤S150,若为已安装插件加载方式,则根据已安装的该业务插件的包名查找该业务插件的安装路径,并为该业务插件独立分配至少一文件路径以用于存储该业务插件的相关资源文件。
对于上述步骤S150,若判断出为已安装插件的加载方式,可以从配置信息中获取该已安装的插件的包名,示范性地,可先通过包管理器(PackageManager)查找该设备中所有的已安装插件,并根据当前业务插件的包名及与宿主共用的相同shareUserId来判断该已安装插件的安装包文件等安装路径。于是,根据该业务插件的包名单独分配该业务插件的多个用于存储相关资源文件的文件路径。
与上述步骤S120的未安装插件加载方式类似,示范性地,可为其分配独有的存储文件路径、可执行文件路径,以及本地库路径等。其中,在分配了本地库路径后,可从该业务插件的安装包文件中复制出本地库文件并存储至该本地库路径对应的文件中。
步骤S160,根据该已安装插件加载方式生成对应的第二类加载器,则利用该第二类加载器和该业务插件的包名构建该业务插件的上下文,并利用所述上下文获取该业务插件的资源文件。
对于上述步骤S160,示范性地,可生成对应的第二类加载器,即PathClassLoader;然后,根据业务插件的包名先构建出该业务插件的上下文。随后,根据构建得到的该上下文再从中获取到该待加载的插件的上述资源文件。可以理解,对于已安装插件的加载方式,相比上述步骤S130的未安装插件加载方式,这两者所生成的资源文件不同,资源文件及上下文的生成方式也均存在差异。最后,根据生成的PathClassLoader、上下文及资源文件等,执行上述步骤S140。
可以理解,对于上述第一种加载方式,可以很好地解决系统默认不可运行未安装应用APK的问题,同时也解决了加载未安装应用APK的性能差等问题;而对于第二种加载方式,解决了系统不可运行的已安装应用内的程序的问题。由于兼容这两种加载方式,使得该设备能够应对大部分的应用场合,大大提高了该设备的可扩展性;并且,由于加载的插件未侵入设备自带的操作系统,因此具有较好的系统稳定性等。
在一种可能的实现方式中,本申请的业务插件加载实现方法还包括:从配置信息中获取该业务插件的版本信息后,并与已安装的插件进行版本比较,若获取的为新版本,则宿主应用将先进行插件更新操作,其中,在更新过程中,将会对插件的整个安装包进行替换操作,然后在替换后再重新进行插件加载。
可以理解,本申请的业务插件加载实现方法可以在同一宿主进程中实现多个不同插件的加载以提供不同的业务能力,如图3所示。上述的插件的安装包文件以及宿主应用均可为使用Gradle等工具编译生成的标准的安卓安装包文件。其中,各插件将在宿主应用的进程中运行,用于提供具体的业务能力;相应地,该宿主应用则用于负责各插件的加载与调度。例如,该调度可包括但不限于包括对该插件进行版本更新、移除或权限管理等等。
本申请的业务插件加载实现方法提出对不同的业务功能均以插件的形式进行开发和加载,其中加载过程中需要区别两种不同的加载方式,分别是未安装加载方式和已安装加载方式,并针对不同的加载方式类型采用不同的方式来构建不同的类加载器及上下文以及资源获取等。该实现方法采用两种不同的插件加载方式,还可以很好地解决系统默认不可运行的第三方应用运行等难题;由于插件开发快,单个插件体积小,每一个插件只负责相应的部分业务功能,从而做到了最小的系统框架及系统资源等的改动,解耦了工程复杂度,还可以达到最快更新目的。
请参照图4,基于上述业务插件加载实现方法,本申请提出一种业务插件加载实现装置10,该装置包括:
插件信息获取模块110,配置成根据接收到的来自服务器下发的配置信息,并从所述配置信息中获取待加载的业务插件的文件获取路径和加载方式;所述加载方式包括未安装插件加载方式和已安装插件加载方式。
文件路径分配模块120,配置成若所述插件信息获取模块中的所述加载方式为所述未安装插件加载方式,则根据所述文件获取路径获取所述业务插件的安装包文件,并根据从所述安装包文件中解析出的包名信息为所述业务插件独立分配至少一文件路径以用于存储所述业务插件的资源文件。
类加载器创建模块130,配置成根据所述未安装插件加载方式生成对应的第一类加载器,并根据所述第一类加载器和所述安装包文件生成所述业务插件的资源文件,以及基于所述资源文件和所述第一类加载器构建所述业务插件的上下文。
插件加载执行模块140,配置成基于预先定义的接口利用所述类加载器进行类加载并传入所述上下文,以使运行过程中能够通过所述上下文获取所述业务插件的资源并完成对应的业务需求。
在一种可能的实现方式中,对于上述的业务插件加载实现装置10,还包括:
该文件路径分配模块120,还配置成若所述插件信息获取模块中的所述加载方式为所述已安装插件加载方式,则根据已安装的所述业务插件的包名查找所述业务插件的安装路径,并为所述业务插件独立分配至少一文件路径以用于存储所述业务插件的资源文件。
该类加载器创建模块130,还配置成根据所述已安装插件加载方式生成对应的第二类加 载器,则利用所述第二类加载器和所述业务插件的包名构建所述业务插件的上下文,并利用所述上下文获取所述业务插件的资源文件。
可以理解,上述的业务插件加载实现装置10对应于本申请的方法。本申请中的任何可选项也适用于本申请,这里不再详述。
本申请的另一实施例提出一种终端设备,如支持多种业务功能的智慧屏等,该终端设备包括处理器和存储器,所述存储器存储有计算机程序,从而使终端设备执行上述的业务插件加载实现方法或者上述的业务插件加载实现装置中的各个模块的功能,以达到多种业务功能及时扩展目的。
本申请还提供了一种计算机可读存储介质,配置成储存上述终端设备中使用的所述计算机程序。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖 在本申请的保护范围之内。
工业实用性
本申请的技术方案提出对不同的业务功能均以插件的形式进行开发和加载,其中加载过程中区别两种不同的加载方式,分别是未安装加载方式和已安装加载方式,并针对不同的加载方式类型采用不同的方式来构建不同的类加载器及上下文以及资源获取等。该实现方法采用两种不同的插件加载方式,可以很好地解决系统默认不可运行第三方业务应用的难题;由于插件开发快,单个插件体积小,每一个插件只负责相应的部分业务功能,从而做到了最小的系统框架及系统资源等的改动,解耦了工程复杂度,还可以达到最快更新目的。

Claims (15)

  1. 一种业务插件加载实现方法,其特征在于,包括:
    根据接收到的来自服务器下发的配置信息,并从所述配置信息中获取待加载的业务插件的文件获取路径和加载方式;所述加载方式包括未安装插件加载方式和已安装插件加载方式;
    若为所述未安装插件加载方式,则根据所述文件获取路径获取所述业务插件的安装包文件,并根据从所述安装包文件中解析出的包名为所述业务插件独立分配至少一文件路径以用于存储所述业务插件的资源文件;
    根据所述未安装插件加载方式生成对应的第一类加载器,并根据所述第一类加载器和所述安装包文件生成所述业务插件的资源文件,以及基于所述资源文件和所述第一类加载器构建所述业务插件的上下文;
    基于预先定义的接口利用所述类加载器进行类加载并传入所述上下文,以使运行过程中能够通过所述上下文获取所述业务插件的资源并完成对应的业务需求。
  2. 根据权利要求1所述的业务插件加载实现方法,其特征在于,还包括:
    若为所述已安装插件加载方式,则根据已安装的所述业务插件的包名查找所述业务插件的安装路径,并为所述业务插件独立分配至少一文件路径以用于存储所述业务插件的资源文件;
    根据所述已安装插件加载方式生成对应的第二类加载器,则利用所述第二类加载器和所述业务插件的包名构建所述业务插件的上下文,并利用所述上下文获取所述业务插件的资源文件。
  3. 根据权利要求1或2所述的业务插件加载实现方法,其特征在于,所述至少一文件路径包括可执行文件路径和存储文件路径;
    所述存储文件路径用于访问存储的所述业务插件在运行过程中生成或下载的文件;
    所述可执行文件路径用于访问存储的所述业务插件的可执行文件。
  4. 根据权利要求3所述的业务插件加载实现方法,其特征在于,所述至少一文件路径包括本地库文件路径,在独立分配至少一文件路径之后,还包括:
    从所述业务插件的安装包文件中复制本地库内容,并将复制的所述本地库内容存储于对应于所述本地库文件路径的本地库文件中。
  5. 根据权利要求1或2所述的业务插件加载实现方法,其特征在于,所述基于预先定义的接口利用所述类加载器进行类加载并传入所述上下文包括:
    以所述预先定义的接口作为插件执行入口,通过所述类加载器进行类加载,并对 所述类进行初始化后,调用所述业务插件的所述上下文,所述上下文用于获取所述业务插件的资源。
  6. 根据权利要求5所述的业务插件加载实现方法,其特征在于,还包括:
    在获取所述业务插件内的界面资源的情况下,使用显示控件类的获取上下文函数返回一个界面元素给调用界面进行显示。
  7. 根据权利要求1-6任一项所述的业务插件加载实现方法,其特征在于,还包括:
    从配置信息中获取所述业务插件的版本信息,并将所述业务插件的版本信息与已安装的插件的版本信息进行版本比较;
    若所述业务插件的版本高于所述已安装的插件的版本,则更新所述业务插件。
  8. 一种业务插件加载实现装置,其特征在于,包括:
    插件信息获取模块,配置成根据接收到的来自服务器下发的配置信息,并从所述配置信息中获取待加载的业务插件的文件获取路径和加载方式;所述加载方式包括未安装插件加载方式和已安装插件加载方式;
    文件路径分配模块,配置成若所述插件信息获取模块中的所述加载方式为所述未安装插件加载方式,则根据所述文件获取路径获取所述业务插件的安装包文件,并根据从所述安装包文件中解析出的包名信息为所述业务插件独立分配至少一文件路径以用于存储所述业务插件的资源文件;
    类加载器创建模块,配置成根据所述未安装插件加载方式生成对应的第一类加载器,并根据所述第一类加载器和所述安装包文件生成所述业务插件的资源文件,以及基于所述资源文件和所述第一类加载器构建所述业务插件的上下文;
    插件加载执行模块,配置成基于预先定义的接口利用所述类加载器进行类加载并传入所述上下文,以使运行过程中能够通过所述上下文获取所述业务插件的资源并完成对应的业务需求。
  9. 根据权利要求8所述的业务插件加载实现装置,其特征在于,还包括:
    所述文件路径分配模块,还配置成若所述插件信息获取模块中的所述加载方式为所述已安装插件加载方式,则根据已安装的所述业务插件的包名查找所述业务插件的安装路径,并为所述业务插件独立分配至少一文件路径以用于存储所述业务插件的资源文件;
    所述类加载器创建模块,还配置成根据所述已安装插件加载方式生成对应的第二类加载器,则利用所述第二类加载器和所述业务插件的包名构建所述业务插件的上下文,并利用所述上下文获取所述业务插件的资源文件。
  10. 根据权利要求8或9所述的业务插件加载实现装置,其特征在于,所述至少一 文件路径包括可执行文件路径和存储文件路径;所述存储文件路径用于访问存储的所述业务插件在运行过程中生成或下载的文件;所述可执行文件路径用于访问存储的所述业务插件的可执行文件。
  11. 根据权利要求10所述的业务插件加载实现装置,其特征在于,所述文件路径分配模块,还配置成从所述业务插件的安装包文件中复制本地库内容,并将复制的所述本地库内容存储于对应于所述本地库文件路径的本地库文件中。
  12. 根据权利要求8或9所述的业务插件加载实现方法,其特征在于,所述插件加载执行模块,具体配置成以所述预先定义的接口作为插件执行入口,通过所述类加载器进行类加载,并对所述类进行初始化后,调用所述业务插件的所述上下文,所述上下文用于获取所述业务插件的资源。
  13. 根据权利要求12所述的业务插件加载实现装置,其特征在于,所述插件信息获取模块,还配置成在获取所述业务插件内的界面资源的情况下,使用显示控件类的获取上下文函数返回一个界面元素给调用界面进行显示。
  14. 一种终端设备,其特征在于,所述终端设备包括处理器和存储器,所述存储器存储有计算机程序,所述处理器配置成执行所述计算机程序以实施权利要求1-7中任一项所述的业务插件加载实现方法。
  15. 一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被执行时,实施根据权利要求1-7中任一项所述的业务插件加载实现方法。
PCT/CN2020/125564 2020-04-02 2020-10-30 业务插件加载实现方法、装置和终端设备 WO2021196597A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010256680.9A CN111475227B (zh) 2020-04-02 2020-04-02 业务插件加载实现方法、装置和终端设备
CN202010256680.9 2020-04-02

Publications (1)

Publication Number Publication Date
WO2021196597A1 true WO2021196597A1 (zh) 2021-10-07

Family

ID=71749725

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/125564 WO2021196597A1 (zh) 2020-04-02 2020-10-30 业务插件加载实现方法、装置和终端设备

Country Status (2)

Country Link
CN (1) CN111475227B (zh)
WO (1) WO2021196597A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114398091A (zh) * 2021-12-03 2022-04-26 贝壳找房(北京)科技有限公司 Flutter组件的配置方法及装置
CN115658184A (zh) * 2022-12-26 2023-01-31 北京海誉动想科技股份有限公司 云应用快速启动的方法、装置、存储介质及电子设备
CN116610387A (zh) * 2023-07-17 2023-08-18 杭州比智科技有限公司 一种基于动态加载和bitmap实现渠道对接及数据分析方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475227B (zh) * 2020-04-02 2022-02-01 深圳创维-Rgb电子有限公司 业务插件加载实现方法、装置和终端设备
CN113419735B (zh) * 2021-05-31 2022-04-19 荣耀终端有限公司 插件优化方法及装置
CN114661376A (zh) * 2022-03-29 2022-06-24 杭州安恒信息技术股份有限公司 一种系统功能拓展方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744669A (zh) * 2013-12-26 2014-04-23 世纪龙信息网络有限责任公司 安卓系统Activity插件的创建、调用方法及系统
CN104731625A (zh) * 2015-03-27 2015-06-24 北京奇虎科技有限公司 一种加载插件的方法、装置和移动终端
US20160315806A1 (en) * 2015-04-27 2016-10-27 Honeywell International Inc. System for optimizing web page loading
CN106775793A (zh) * 2015-11-23 2017-05-31 卓望数码技术(深圳)有限公司 一种安卓应用免安装启动的方法、装置及终端
CN111475227A (zh) * 2020-04-02 2020-07-31 深圳创维-Rgb电子有限公司 业务插件加载实现方法、装置和终端设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8910138B2 (en) * 2012-05-23 2014-12-09 Oracle International Corporation Hot pluggable extensions for access management system
CN103257882A (zh) * 2013-06-03 2013-08-21 贝壳网际(北京)安全技术有限公司 基于浏览器的插件加载方法、浏览器装置及移动终端
CN103530156B (zh) * 2013-10-17 2016-11-16 北京奇虎科技有限公司 动态加载和调用程序的方法及装置
CN105740033A (zh) * 2016-03-15 2016-07-06 广州彩瞳网络技术有限公司 一种终端设备、插件加载运行装置及插件加载运行方法
CN110764836B (zh) * 2019-09-18 2024-02-09 华为技术有限公司 插件实现的方法和插件实现的系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744669A (zh) * 2013-12-26 2014-04-23 世纪龙信息网络有限责任公司 安卓系统Activity插件的创建、调用方法及系统
CN104731625A (zh) * 2015-03-27 2015-06-24 北京奇虎科技有限公司 一种加载插件的方法、装置和移动终端
US20160315806A1 (en) * 2015-04-27 2016-10-27 Honeywell International Inc. System for optimizing web page loading
CN106775793A (zh) * 2015-11-23 2017-05-31 卓望数码技术(深圳)有限公司 一种安卓应用免安装启动的方法、装置及终端
CN111475227A (zh) * 2020-04-02 2020-07-31 深圳创维-Rgb电子有限公司 业务插件加载实现方法、装置和终端设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Plug-in Development - Dynamic Loading Technology to Install and Uninstall APK", CSDN, 21 September 2016 (2016-09-21), XP055855615, Retrieved from the Internet <URL:https://blog.csdn.net/u013378580/article/details/52610958?utm_source=blogkpcl10> [retrieved on 20211027] *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114398091A (zh) * 2021-12-03 2022-04-26 贝壳找房(北京)科技有限公司 Flutter组件的配置方法及装置
CN114398091B (zh) * 2021-12-03 2024-02-23 贝壳找房(北京)科技有限公司 Flutter组件的配置方法及装置
CN115658184A (zh) * 2022-12-26 2023-01-31 北京海誉动想科技股份有限公司 云应用快速启动的方法、装置、存储介质及电子设备
CN115658184B (zh) * 2022-12-26 2023-03-21 北京海誉动想科技股份有限公司 云应用快速启动的方法、装置、存储介质及电子设备
CN116610387A (zh) * 2023-07-17 2023-08-18 杭州比智科技有限公司 一种基于动态加载和bitmap实现渠道对接及数据分析方法
CN116610387B (zh) * 2023-07-17 2023-10-03 杭州比智科技有限公司 一种基于动态加载和bitmap实现渠道对接及数据分析方法

Also Published As

Publication number Publication date
CN111475227B (zh) 2022-02-01
CN111475227A (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
WO2021196597A1 (zh) 业务插件加载实现方法、装置和终端设备
TWI478063B (zh) 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體
US7203696B2 (en) Dynamic registry partitioning
US20110078681A1 (en) Method and system for running virtual machine image
US9674275B1 (en) Providing a file system interface to network-accessible computing resources
JP5352890B2 (ja) 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
US7840967B1 (en) Sharing data among isolated applications
US11474810B2 (en) Run-time application modification
CN109614167B (zh) 一种管理插件的方法和系统
US10379914B2 (en) System and method for achieving specific behaviors by intercepting file access calls in a mainframe rehosting platform
US20150012732A1 (en) Method and device for recombining runtime instruction
CN111736913B (zh) 类加载方法和装置
CN112230857B (zh) 一种混合云系统、混合云盘申请方法和数据存储方法
US20140082275A1 (en) Server, host and method for reading base image through storage area network
US9058576B2 (en) Multiple project areas in a development environment
CN115086166A (zh) 计算系统、容器网络配置方法及存储介质
US20110247010A1 (en) Device Control Call Allocation for Embedded System Design
WO2023185359A1 (zh) 资源操作方法、装置、电子设备及存储介质
CN106843895B (zh) 用于处理请求的方法、系统和可读存储介质
US20220067065A1 (en) Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs
US6636964B1 (en) Method and apparatus for loading an object-oriented operating system by providing an initial execution environment and migrating to a core execution environment thereafter
CN111026452B (zh) 一种远程32位进程注入64位进程的方法及系统
CN115701077A (zh) 一种对接微服务网格的方法以及装置
US20230409716A1 (en) Shared library customization
US20240103818A1 (en) Annotation driven just in time and state-based rbac policy control

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20929546

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 16.02.2023)

122 Ep: pct application non-entry in european phase

Ref document number: 20929546

Country of ref document: EP

Kind code of ref document: A1