WO2021057411A1 - 一种组件加载方法、装置及系统 - Google Patents

一种组件加载方法、装置及系统 Download PDF

Info

Publication number
WO2021057411A1
WO2021057411A1 PCT/CN2020/112875 CN2020112875W WO2021057411A1 WO 2021057411 A1 WO2021057411 A1 WO 2021057411A1 CN 2020112875 W CN2020112875 W CN 2020112875W WO 2021057411 A1 WO2021057411 A1 WO 2021057411A1
Authority
WO
WIPO (PCT)
Prior art keywords
party component
component
party
electronic device
ams
Prior art date
Application number
PCT/CN2020/112875
Other languages
English (en)
French (fr)
Inventor
刘小强
吴勇辉
孙斐
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2021057411A1 publication Critical patent/WO2021057411A1/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
    • 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
    • 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/451Execution arrangements for user interfaces

Definitions

  • This application relates to the field of terminal technology, and in particular to a component loading method, device and system.
  • the upgraded third-party component cannot be dynamically distributed, so that the upgraded third-party component cannot be dynamically loaded and embedded in the corresponding native application for display.
  • developers usually package and install the latest version of third-party components along with the corresponding native application, and release the packaged new version of the native application to the application market so that users can update the native application.
  • the flexibility of this scheme is poor.
  • third-party components are integrated and run in the native application process, and the vulnerabilities of the third-party components directly affect the security of the native application. Terminals need to track the version updates of third-party components from time to time to ensure that the vulnerabilities are fixed.
  • JS JavaScript
  • JS cards can be dynamically embedded into native applications as independent components to solve the problem that third-party components cannot be dynamically distributed.
  • third-party application developers deploy the JS card on the cloud side, and then the native application installed on the terminal dynamically loads the JS card through a uniform resource locator (URL), and the native application integrates a JS engine to complete the JS card Rendering and layout.
  • URL uniform resource locator
  • the integration of the JS engine in the native application will increase the additional memory overhead of the native application.
  • the V8 engine requires an additional memory overhead of 25MB.
  • JS cards and JS engines are prone to introduce security issues such as injection, which can pollute native applications. As users pay more and more attention to personal data security, how to ensure that third-party components achieve dynamic distribution without affecting the data security of the application itself is an urgent problem in the industry.
  • the present application provides a component loading method, device, and system, which can realize dynamic loading and safe isolation of third-party components, and ensure application performance while improving application security.
  • this application provides a component loading method applied to an electronic device.
  • the electronic device includes a native application and an operation management service AMS.
  • the method may include: the native application sends a third-party component activation request to the AMS, and the third-party component The start request is used to start a third-party component.
  • the AMS obtains the package information of the third-party component according to the third-party component's startup request.
  • the AMS sends third-party component loading notification information to the process corresponding to the third-party component according to the package information of the third-party component, and the third-party component loading notification information is used to instruct the process to load the third-party component.
  • After the process loads the third-party component it sends the layout information of the third-party component to the native application.
  • the native application displays the user interface based on the layout information of the third-party component.
  • the third-party component start request can be sent to the AMS, so that the third-party component runs in an independent process isolated from the native component.
  • the native application receives the layout information of the third-party component, so that the corresponding user interface can be displayed.
  • the electronic device further includes a package management service BMS.
  • the AMS sends a third-party component package information query request to the BMS according to the third-party component startup request.
  • the AMS receives the package information of the third-party component sent by the BMS.
  • the BMS determines whether the electronic device has installed the third-party component. If the electronic device does not have third-party components installed, BMS downloads and installs the third-party components.
  • the package information of the third-party component includes signature information.
  • the AMS determines whether the electronic device is running a third-party component process based on the signature information. In the case that the electronic device is not running the process, AMS creates a process and sends third-party component loading notification information to the process; in the case that the electronic device has already run the process, AMS sends the third-party component loading notification information to the process.
  • the process that can be used to run the third-party component can be determined according to the third-party component package information, and then the third-party component is loaded in an independent process, so that the third-party application is isolated from the native application, and the running safety of the native application is ensured.
  • AMS creates a process in a fork manner.
  • the AMS sends the interface information of the native application to the process, and the interface information of the native application is used to indicate the interface of the native application.
  • the process loads the third-party component, it sends the layout information of the third-party component to the native application through the RemoteViews mechanism.
  • the process corresponding to the third-party application component can enable the native application to obtain the layout information of the third-party component through the RemoteViews mechanism, and then realize the display of the user interface. There is no need to run the third-party component in a third-party application, which realizes the dynamic loading and safe isolation of the third-party component.
  • this application provides an electronic device, which may include: one or more processors, a memory, a display screen, and one or more computer programs.
  • One or more computer programs are stored in the memory, and the one or more computer programs include instructions.
  • the electronic device is executed: the native application sends a third-party component activation request to the application management service AMS, and the third-party component activation request is used to activate the third-party component; AMS obtains the third-party component according to the third-party component activation request The package information of the component; AMS sends third-party component loading notification information to the process corresponding to the third-party component according to the package information of the third-party component.
  • the third-party component loading notification information is used to instruct the process to load the third-party component; the process is loading the third-party component After that, the layout information of the third-party component is sent to the native application; the native application displays the user interface according to the layout information of the third-party component.
  • the electronic device when the instruction is executed by the electronic device, the electronic device is caused to execute: AMS sends a third-party component package information query request to the package management service BMS according to the third-party component startup request; AMS receives The package information of the third-party component sent by the BMS.
  • the electronic device when the instruction is executed by the electronic device, the electronic device is caused to execute: after receiving the third-party component package information query request, the BMS determines whether the electronic device has installed the third-party component; if If the electronic device does not have third-party components installed, BMS downloads and installs the third-party components.
  • AMS determines whether the electronic device is running a process according to the signature information; when the electronic device is not running the process, AMS creates Process, and send third-party component loading notification information to the process; in the case that the electronic device is already running the process, AMS sends the third-party component loading notification information to the process.
  • AMS creates a process, including: AMS creates a process in a fork manner.
  • the electronic device when the instruction is executed by the electronic device, the electronic device is caused to execute: the AMS sends the interface information of the native application to the process, and the interface information of the native application is used to indicate the interface of the native application.
  • the electronic device when the instruction is executed by the electronic device, the electronic device is caused to execute: after the process loads the third-party component, the process sends the layout information of the third-party component to the native application through the RemoteViews mechanism.
  • the present application provides an electronic device that has the function of implementing the component loading method described in the first aspect and any one of its possible implementation manners.
  • This function can be realized by hardware, or by hardware executing corresponding software.
  • the hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • the present application provides a component loading system configured to execute the component loading method described in the first aspect and any one of its possible implementation manners.
  • the present application provides a computer storage medium, including computer instructions, which when the computer instructions run on an electronic device, cause the electronic device to execute the components described in the first aspect and any one of its possible implementations. Loading method.
  • the present application provides a computer program product, which when the computer program product runs on an electronic device, causes the electronic device to execute the component loading method described in the first aspect and any one of its possible implementation manners.
  • a circuit system in a seventh aspect, includes a processing circuit, and the processing circuit is configured to execute the component loading method described in the first aspect and any one of its possible implementation manners.
  • an embodiment of the present application provides a chip system, which includes at least one processor and at least one interface circuit.
  • the at least one interface circuit is used to perform a transceiver function and send instructions to at least one processor.
  • at least one processor executes the component loading method described in the first aspect and any one of its possible implementation manners.
  • FIG. 1 is a schematic structural diagram of a communication system provided by an embodiment of this application.
  • FIG. 2 is a schematic structural diagram of an electronic device provided by an embodiment of the application.
  • FIG. 3 is a first schematic flowchart of a component loading method provided by an embodiment of the application.
  • FIG. 4 is a schematic diagram of the system architecture of a component loading method provided by an embodiment of the application.
  • FIG. 5 is a second schematic diagram of the system architecture of the component loading method provided by an embodiment of the application.
  • FIG. 6 is a schematic diagram 1 of an application scenario of a component loading method provided by an embodiment of the application.
  • FIG. 7 is a second schematic diagram of an application scenario of the component loading method provided by an embodiment of the application.
  • FIG. 8 is a schematic structural diagram of an electronic device provided by an embodiment of the application.
  • FIG. 9 is a schematic structural diagram of a chip system provided by an embodiment of the application.
  • FIG. 10 is a schematic structural diagram of a component loading system provided by an embodiment of the application.
  • the communication system 100 shown in FIG. 1 is taken as an example to describe in detail the wireless communication system applicable to the embodiments of the present application.
  • the communication system 100 includes a cloud server and electronic equipment.
  • the aforementioned cloud server may be a server deployed in the cloud.
  • the developer will package and upload the latest version of the third-party component resource and code to the cloud server for storage, that is, bind the latest version of the third-party component resource and code together to generate one
  • the resource data package can be downloaded from the server when the user needs it.
  • the above-mentioned electronic devices can download third-party components from the cloud server.
  • the electronic equipment in the embodiments of the present application may be a mobile phone (mobile phone), a tablet computer (Pad), a computer with wireless transceiver function, virtual reality (VR) electronic equipment, and augmented reality (AR) electronic equipment.
  • Equipment wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical, wireless terminals in smart grid, transportation safety ( Wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, vehicle-mounted terminals, etc.
  • FIG. 1 shows that the electronic device is a mobile phone as an example.
  • the electronic device is a mobile phone as an example for description.
  • the following is a detailed introduction to the components of the mobile phone in conjunction with the accompanying drawings:
  • the mobile phone may include: a touch screen 21, a processor 22, a memory 23, a power supply 24, a radio frequency (RF) circuit 25, a gravity sensor 26, an audio circuit 27, a speaker 28, a microphone 29 and other components , These components can be connected by bus or directly connected.
  • RF radio frequency
  • FIG. 2 does not constitute a limitation on the mobile phone, and may include more components than shown in the figure, or combine some components, or arrange different components.
  • the touch screen 21 can be called a touch display panel, which is used to realize the input and output functions of the mobile phone, and can collect the user's touch operations on or near it (for example, the user uses any suitable objects or accessories such as fingers, stylus, etc.) Operations on the touch screen 21 or near the touch screen 21), and drive the corresponding connection device according to a preset program. It can also be used to display the information input by the user or the information provided to the user (such as the image collected by the camera) and various menus of the mobile phone.
  • the touch screen 21 may be realized by multiple types such as resistive type, capacitive type, infrared light sensor, ultrasonic wave, etc., which is not limited in the embodiment of the present application.
  • the user's operation near the touch screen 21 can be referred to as floating touch, and the touch screen capable of floating touch can be implemented by capacitive, infrared light sensing, ultrasonic waves, and the like.
  • the touch screen 21 may include a detection module 211 and a display module 212.
  • the detection module 211 can detect the user's touch operation on the touch screen 21, and can transmit the parameters generated by the touch screen 21 after the touch operation on the touch screen 21 to the processor 22 (exemplarily, assuming If the touch screen 21 is realized by the capacitive type, the detection module 211 can transmit the change parameter on the touch screen 21 to the processor 22, and the change parameter refers to the size, shape, number, and distribution of the capacitor whose capacitance value changes. Circumstances), so that the processor 22 performs corresponding processing according to the touch operation.
  • the display module 212 can display information input by the user, information provided to the user by the mobile phone, various menus of the mobile phone, and the like.
  • the processor 22 is the control center of the mobile phone. It uses various interfaces and lines to connect various parts of the entire mobile phone. It executes by running or executing software programs and/or modules stored in the memory 23 and calling data stored in the memory 23. Various functions and processing data of the mobile phone can be used to monitor the mobile phone as a whole.
  • the processor 22 may include one or more processing units; the processor 22 may integrate an application processor and a modem processor. Among them, the application processor mainly deals with operating system, user interface and application program, etc., and the modem processor mainly deals with wireless communication. It can be understood that the foregoing modem processor may not be integrated into the processor 22.
  • the memory 23 can be used to store data, software programs, and modules, and can be a volatile memory (volatile memory), such as a random-access memory (RAM); or a non-volatile memory (non-volatile memory), For example, read-only memory (ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (SSD); or a combination of the above types of memory.
  • volatile memory such as a random-access memory (RAM); or a non-volatile memory (non-volatile memory), For example, read-only memory (ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (SSD); or a combination of the above types of memory.
  • ROM read-only memory
  • flash memory flash memory
  • HDD hard disk drive
  • SSD solid-state drive
  • the memory 23 may store program code, and the program code is used to enable the processor 22 to execute the component loading method provided in the embodiment of the present application by executing the program code.
  • the RF circuit 25 can be used for receiving and sending signals during the process of sending and receiving information or talking.
  • the received information is sent to the processor 22 for processing; in addition, the signal generated by the processor 22 is sent out.
  • the RF circuit includes, but is not limited to, an antenna, at least one amplifier, a transceiver, a coupler, a low noise amplifier (LNA), a duplexer, and the like.
  • the RF circuit 25 can also communicate with the network and other devices through wireless communication.
  • the Gravity Sensor 26 can detect the acceleration of the mobile phone in various directions (usually three-axis), and can detect the magnitude and direction of gravity when it is stationary, and can be used to identify the application of the mobile phone's posture (such as horizontal and vertical screen switching, related Games, magnetometer posture calibration), vibration recognition related functions (such as pedometer, percussion), etc.
  • the mobile phone may also include other sensors, such as pressure sensors, light sensors, gyroscopes, barometers, hygrometers, thermometers, infrared sensors and other sensors, which will not be described here.
  • the audio circuit 27, the speaker 28, and the microphone 29 can provide an audio interface between the user and the mobile phone.
  • the audio circuit 27 can transmit the received audio data converted electrical signal to the speaker 28, and the speaker 28 converts it into a sound signal for output; on the other hand, the microphone 29 converts the collected sound signal into an electrical signal, which is then output by the audio circuit 27. After being received, it is converted into audio data, and then the audio data is output to the RF circuit 25 to be sent to, for example, another mobile phone, or the audio data is output to the processor 22 for further processing.
  • the mobile phone may also include components such as a wireless fidelity (WiFi) module, a Bluetooth module, and a camera.
  • WiFi wireless fidelity
  • the WiFi module may be a module including a WiFi chip and a driver of the WiFi chip, and the WiFi chip has the ability to run wireless Internet standard protocols.
  • the Bluetooth module is a printed circuit board assembly (PCBA) that integrates the Bluetooth function and is used for short-range wireless communication.
  • the trigger operation in the embodiment of the present application can be an operation on the touch screen, such as a pressing operation, a long-press operation, a sliding operation, a click operation, etc., or a user's operation near the touch screen, that is,
  • the hovering touch is not specifically limited in the embodiment of the present application.
  • Native applications native applications, written in Java language, and can be downloaded from the Android application market. Native applications can use phone hardware functions, such as speakers, acceleration sensors, and cameras.
  • Third-party applications For an application, applications provided by other manufacturers can be regarded as third-party applications. For example, for WeChat applications, Didi Chuxing can be regarded as a third-party application.
  • Component is a simple encapsulation of data and methods.
  • C++Builder a component is a specific object derived from TComponent.
  • Components can have their own properties and methods. Properties are simple visitors to component data. Methods are simple and visible functions of components. Using components can realize drag-and-drop programming, fast attribute processing, and true object-oriented design.
  • Third-party components Compared with native components of native applications, components written by third-party software providers can be called third-party components. Common third-party components include user interface components, form components, report components, and so on.
  • a user interface component is a component used to develop and construct a user interface (UI) to help complete the development of interface elements such as windows, text boxes, buttons, and drop-down menus in software development.
  • UI user interface
  • third-party components can have other names, such as third-party embedded components, embedded components, or third-party software development kit (SDK) components, which are not specifically described in the embodiments of this application. limited.
  • SDK software development kit
  • View It is a basic control, and the View class represents the most basic component of user interface components.
  • Process is a running activity of a program in a computer on a certain data set. It is the basic unit of the system for resource allocation and scheduling, and is the foundation of the operating system structure. In the early process-oriented computer architecture, the process is the basic execution entity of the program; in the contemporary thread-oriented computer architecture, the process is the thread container. A program is a description of instructions, data and its organization, and a process is the entity of the program.
  • Fork is a Unix term for process management, which is a function of creating a process. The essence is to create a process, but not to load the code from the disk, but to copy a copy from the existing process in memory. Create a child process by copying the current process.
  • the Fork function can be used to create the process so that the process loads the corresponding component.
  • an embodiment of the present application provides a component loading method, the basic principle of which is to embed the components provided by the same original equipment manufacturer (OEM) Ability components are isolated in the same independent process, and the layout information of embedded components is sent to other processes through the remote view (RemoteViews) mechanism, and displayed in the Ability View in other processes, thereby realizing the third party Dynamic loading of components. It is understandable that an application can load the layout information of one or more third-party components.
  • FIG. 3 is a schematic flowchart of a component loading method provided by an embodiment of the application.
  • the component loading method is applied to electronic devices, which include native applications and application management services (AMS).
  • AMS application management services
  • the method may include S101-S105:
  • the native application sends a third-party component start request to the AMS.
  • the third-party component start request is used to request to start the third-party component.
  • the native application may be WeChat
  • the third-party component may be a component of Didi Chuxing
  • the native application is pre-installed on the electronic device.
  • the native application calls the AMS interface (for example, StartAbility) to send the third-party component start request to the AMS.
  • the AMS interface for example, StartAbility
  • the native application calls the AMS interface to send a third-party component activation request to the AMS.
  • the electronic device includes the processes of a native application App A and App B, which is a third-party application for App A.
  • the Ability A component exists in App A.
  • the Ability A component includes the Ability View B control and the Ability View C control.
  • the Ability B component and the Ability C component can be pre-stored in APP B.
  • APP B can download the Ability B component and the Ability C component from the cloud.
  • APP B can be a process run by a third-party component, and the Ability B component and the Ability C component are equivalent to third-party components.
  • the Ability B component and the Ability C component are third-party components provided by the same OEM, so they can be loaded in the same process (APP B process).
  • the Ability View B control corresponds to the Ability B component of App B
  • the Ability View C control corresponds to the Ability C component.
  • APP A When APP A needs to display the user interface corresponding to the Ability B component, APP A runs the Ability A component to start the Ability B component through the Ability A component. In this process, APP A calls the AMS interface to start the Ability B component.
  • the AMS obtains package information of the third-party component according to the third-party component start request.
  • the third-party component startup request may include the identification of the third-party component, so that the AMS can learn the third-party component that the native application is about to start.
  • the AMS can learn that the native application is ready to start the Didi Chuxing component.
  • the AMS can learn that the native application is ready to activate the Meituan component.
  • step S102 may include the following steps S102a and S102b:
  • the AMS sends a third-party component package information query request to a package management service (bundle management service, BMS) according to the third-party component startup request.
  • BMS package management service
  • the AMS after the AMS receives the third-party component start request sent by the native application, it will send a third-party component package information query request to the BMS.
  • the third-party component package information query request is used to query the third-party component's information.
  • Package information the package information of the third-party component includes the signature information of the third-party component.
  • the signature information of the third-party component is used to determine the OEM that provides the third-party component, and then determine the corresponding process.
  • AMS and BMS are started in the system server.
  • AMS receives the third-party component startup request sent by the native application, it will send the third-party component to the BMS according to the third-party component startup request.
  • the BMS sends the package information of the third-party component to the AMS.
  • the BMS after receiving the third-party component package information query request sent by the AMS, the BMS queries whether the third-party component has been installed in the electronic device. If the electronic device has installed a third-party component, the BMS directly sends the package information of the third-party component to the AMS. If the electronic device does not have a third-party component installed, the BMS downloads the third-party component package from the cloud server to the local electronic device. After the third-party component is installed on the electronic device, the BMS sends the package information of the third-party component to the AMS.
  • the BMS queries whether the Ability B component has been installed on the electronic device. If the electronic device has installed the Ability B component, the BMS returns the package information of the Ability B component to the AMS. If the BMS does not install the Ability B component, the BMS downloads the Ability B component from the cloud, so that the electronic device can install the Ability B component. After the electronic device installs the Ability B component, the BMS returns the package information of the Ability B component to the AMS.
  • the process of obtaining the package information of the Ability C component by the AMS may refer to the process of obtaining the package information of the Ability B component by AMS.
  • the AMS sends the third-party component loading notification information to the process according to the package information of the third-party component.
  • the process refers to a pre-created process that can run in the background of the electronic device, or a process in a third-party application.
  • the third-party component loading notification information is used to instruct the process to load the third-party component.
  • AMS searches for process records based on the signature information in the third-party component package information to determine whether the process corresponding to the third-party component has started, or whether the electronic device is running the third-party component corresponding process. If the electronic device is running the process corresponding to the third-party component, the AMS sends the third-party component loading notification information to the process. If the electronic device does not run the process corresponding to the third-party component, the AMS creates the process by fork. After the process is created, AMS sends the third-party component loading notification information to the corresponding process of the third-party component.
  • the AMS can also send the native application interface information to the process corresponding to the third-party component.
  • the interface information of the native application is used to indicate the interface of the native application. It is understandable that the process corresponding to the third-party component can communicate with the native application based on the interface information of the native application.
  • the AMS searches for the process record according to the signature information of the Ability B component to determine whether the APP B process is running.
  • the AMS sends the Ability B component loading notification information to the APP B process, so that the APP B process loads the Ability B component.
  • the process loads the third-party component, and sends the layout information of the third-party component to the native application.
  • the layout information of the third-party component is the display content of the third-party application function required when the native application user interface is displayed. If the smart assistant user interface can display the express information card in Taobao, then the layout information of the express information card component needs to be obtained when the smart assistant user interface is displayed.
  • the process loads the third-party component and obtains content such as layout information of the third-party component.
  • the process sends the layout information of the third-party component to the native application through the RemoteViews mechanism.
  • the App B process loads the Ability B component according to the notification message of the Ability B component, and the App B loads the Ability B component, and obtains the layout information of the Ability B component. After that, the App B process sends the layout information of the Ability B component to App A through the RemoteViews mechanism.
  • the native application displays a user interface according to the layout information of the third-party component.
  • App A obtains the layout information of the Ability B component, and displays the corresponding user interface through the Ability View B control.
  • One or more applications are running in the electronic device.
  • some applications can dynamically display certain functions in other applications.
  • the native application when the native application needs to use a third-party component, the native application sends a third-party component startup request to AMS, so that the third-party component runs in an independent process isolated from the native component (That is, the process mentioned above). After that, the native application receives the layout information of the third-party component, so that the corresponding user interface can be displayed.
  • the operation of the third-party component is independent of the operation of the native application, so the data security of the native application can be guaranteed.
  • the third-party components are not packaged in the native application, so when the third-party components are upgraded, the upgraded third-party components can be dynamically distributed.
  • Example 1 Some applications can dynamically display function cards in other applications. It is understandable that the above function card is equivalent to the third-party component mentioned in this article.
  • the user interface 601 of the smart assistant application can display native components of the smart assistant application (for example, the "plus” icon in the upper right corner), or third-party components (for example, running on Taobao). Courier information cards corresponding to some components in the component process).
  • the electronic device When the electronic device detects that the user has clicked the "plus” icon in the upper right corner of the user interface 601, it can display the user interface 602 as shown in (b) in Figure 6, and the user can select to display more information in the user interface 602. Function cards for many other applications.
  • the smart assistant application can use the component loading method provided in the embodiment of the application to start the Taobao component from the process of running Taobao.
  • the user interface may be the user interface 603 of (c) in FIG. 6. It is understandable that the content of the express information card and the order information card will change with the update of relevant information such as express logistics information and user order information. For example, the display content of the card changes with the update of logistics information and order information.
  • Example 2 The realization of some functions in some applications needs to load components of other applications to display the user interface.
  • the current WeChat application can implement the taxi-hailing function in the Didi Travel application.
  • the user interface 701 of the WeChat application shown in Figure 7(a) the electronic device detects that the user slides down the screen in the direction of the arrow in the current user interface 701 of the WeChat application, and it will enter Figure 7 The user interface 702 shown in (b). On the user interface 702, one or more different recently used applets can be displayed.
  • the WeChat application needs to start the third-party component corresponding to the small program to display the corresponding user interface and implement the corresponding third-party application function in the WeChat application.
  • the WeChat application can use the component loading method provided in this embodiment of the application to enter The user interface 703 of Didi Travel is shown in (c) of FIG. 7.
  • the user can implement the taxi-hailing function through operations on the user interface 703.
  • FIG. 8 shows a schematic diagram of a possible structure of the electronic device involved in the foregoing embodiment, including: a processing unit 802 and a communication unit 803.
  • the communication unit 803 may also be divided into a sending unit (not shown in FIG. 8) and a receiving unit (not shown in FIG. 8).
  • the sending unit is used to support the electronic device to send information to other network elements.
  • the receiving unit is used to support the electronic device to receive information from other network elements.
  • the electronic device may further include a storage unit 801 for storing program codes and data of the electronic device, and the data may include but not limited to raw data or intermediate data.
  • the processing unit 802 may be used to support the electronic device to determine whether there is a native application that needs to call a third-party component, and realize the dynamic loading of the third-party component, and/or other processes used in the solution described herein.
  • the communication unit 803 is used to support communication between the electronic device and other network elements (such as cloud servers, etc.).
  • the sending unit is used to support the electronic device to send information to other network elements.
  • the receiving unit is used to support the electronic device to receive information from other network elements.
  • the communication unit 803 supports the electronic device to download the second component package from the cloud server, etc., and/or other processes used in the solution described herein.
  • the processing unit 802 may be a controller or the processor 22 shown in FIG. 2, for example, a central processing unit (CPU), a general-purpose processor, or digital signal processing (digital signal processing, DSP), application specific integrated circuit (ASIC), field-programmable gate array (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. It can implement or execute various exemplary logical blocks, modules, and circuits described in conjunction with the disclosure of this application.
  • the processor may also be a combination of computing functions, for example, a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and so on.
  • the communication unit 803 may be the RF circuit 25 shown in FIG. 2, or may be a transceiver circuit or the like.
  • the storage unit 801 may be the memory 23 shown in FIG. 2.
  • the embodiment of the present application also provides a component loading system.
  • the component loading system includes an electronic device 1001 and a cloud server 1002.
  • the electronic device 1001 can download third-party components from the cloud server 1002, and/or other processes used in the solution described herein.
  • the component loading system can enable the electronic device 1001 to execute each step in the component loading method in the foregoing embodiment.
  • the embodiment of the present application also provides a chip system.
  • the chip system includes at least one processor 901 and at least one interface circuit 902.
  • the processor 901 and the interface circuit 902 may be interconnected by wires.
  • the interface circuit 902 can be used to receive signals from other devices.
  • the interface circuit 902 may be used to send signals to other devices (such as the processor 901).
  • the interface circuit 902 can read an instruction stored in the memory, and send the instruction to the processor 901.
  • the electronic device can be made to execute each step in the component loading method in the foregoing embodiment.
  • the chip system may also include other discrete devices, which are not specifically limited in the embodiment of the present application.
  • the embodiment of the present application also provides a computer storage medium, the computer storage medium stores computer instructions, and when the computer instructions run on the electronic device, the electronic device executes the above-mentioned related method steps to implement the component loading method in the above-mentioned embodiment .
  • the embodiments of the present application also provide a computer program product, which when the computer program product runs on a computer, causes the computer to execute the above-mentioned related steps, so as to implement the component loading method in the above-mentioned embodiment.
  • the embodiments of the present application also provide a device, which may specifically be a component or a module.
  • the device may include a connected processor and a memory; wherein the memory is used to store computer execution instructions.
  • the processor When the device is running, the processor The computer-executable instructions stored in the executable memory are executed to cause the device to execute the component loading methods in the foregoing method embodiments.
  • the electronic devices, computer storage media, computer program products, or chips provided in the embodiments of the present application are all used to execute the corresponding methods provided above. Therefore, the beneficial effects that can be achieved can refer to the corresponding methods provided above. The beneficial effects of the method are not repeated here.
  • the disclosed method can be implemented in other ways.
  • the electronic device embodiments described above are merely illustrative.
  • the division of the modules or units is only a logical function division, and there may be other divisions in actual implementation, such as multiple units or components. It can be combined or integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, modules or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit 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 all or 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 to make a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor execute all or part of the steps of the method described in each embodiment of the present application.
  • the aforementioned storage media include: flash memory, mobile hard disk, read-only memory, random access memory, magnetic disk or optical disk and other media that can store program instructions.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Abstract

本申请提供一种组件加载方法、装置及系统,涉及终端技术领域,能够实现第三方组件的动态加载及安全隔离。该方法应用于电子设备,电子设备包括原生应用以及应用管理服务AMS,该方法包括:原生应用向AMS发送第三方组件启动请求,第三方组件启动请求用于启动第三方组件;AMS根据第三方组件启动请求,获取第三方组件的包信息;AMS根据第三方组件的包信息,向第三方组件对应的进程发送第三方组件加载通知信息,第三方组件加载通知信息用于指示进程加载第三方组件;进程在加载第三方组件之后,向原生应用发送第三方组件的布局信息;原生应用根据第三方组件的布局信息,显示用户界面。

Description

一种组件加载方法、装置及系统
本申请要求于2019年09月29日提交国家知识产权局、申请号为201910947274.4、发明名称为“一种组件加载方法、装置及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及终端技术领域,尤其涉及一种组件加载方法、装置及系统。
背景技术
随着移动智能技术的进步,智能化、轻量化、组件化将是应用的发展方向。当前软件应用(Application,App)开发过程中,安卓(Android)原生组件需要内嵌到原生应用内,随原生应用发布、安装和运行。如果原生应用需要用到第三方厂商或软件的功能,通常方案是集成对方提供的第三方组件,把第三方组件打包到原生应用中,随原生应用发布、安装和运行。
在第三方组件升级的情况下,升级后的第三方组件无法动态分发,导致升级后的第三方组件无法动态加载并嵌入到对应的原生应用内显示。目前,开发者通常会将最新版本的第三方组件随对应的原生应用一起打包安装,将打包后的新版本原生应用发布到应用市场,以便用户对该原生应用进行更新。这种方案的灵活性较差。并且,第三方组件集成在原生应用进程中运行,第三方组件的漏洞直接影响原生应用的安全性。终端需要不定期跟踪第三方组件的版本更新,以确保漏洞得到修复。
现有技术中,开发者提出一种技术方案:JS(JavaScript)卡片可作为独立组件动态嵌入到原生应用中,以解决第三方组件无法动态分发的问题。首先,第三方应用开发者会将JS卡片部署在云侧,然后终端安装的原生应用通过统一资源定位符(uniform resource locator,URL)动态加载JS卡片,并且,原生应用集成JS引擎以完成JS卡片的渲染和布局。但是,原生应用集成JS引擎会增加原生应用的额外内存开销,如V8引擎需要25MB的额外内存开销。并且,JS卡片和JS引擎容易引入注入等安全问题,污染原生应用。随着用户越来越重视个人数据安全,如何确保第三方组件实现动态分发且不影响应用本身的数据安全是业界急需解决的问题。
发明内容
本申请提供一种组件加载方法、装置及系统,能够实现第三方组件的动态加载及安全隔离,保障应用性能的同时提高了应用的安全性。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种组件加载方法,应用于电子设备,该电子设备包括原生应用以及运行管理服务AMS,该方法可以包括:原生应用向AMS发送第三方组件启动请求,该第三方组件启动请求用于启动第三方组件。AMS根据第三方组件启动请求,获取第三方组件的包信息。AMS根据第三方组件的包信息,向第三方组件对应的进程发送第三方组件加载通知信息,该第三方组件加载通知信息用于指示进程加载第三方组件。进程在加载第三方组件之后,向原生应用发送第三方组件的布局信息。原 生应用根据第三方组件的布局信息,显示用户界面。
如此,在原生应用待显示用户界面需要启动第三方组件时,可以向AMS发送第三方组件启动请求,从而使得第三方组件运行在一个与原生组件相隔离的独立进程中。之后,原生应用接收第三方组件的布局信息,从而可以显示相应的用户界面。
在一种可能的实现方式中,电子设备还包括包管理服务BMS。AMS根据第三方组件启动请求,向BMS发送第三方组件包信息查询请求。AMS接收BMS发送的第三方组件的包信息。
在一种可能的实现方式中,BMS在接收到第三方组件包信息查询请求之后,判断电子设备是否已安装第三方组件。若电子设备未安装第三方组件,则BMS下载并安装第三方组件。
在一种可能的实现方式中,第三方组件的包信息包括签名信息。AMS根据该签名信息,判断电子设备是否运行第三方组件进程。在电子设备未运行该进程的情况下,AMS创建进程,并向进程发送第三方组件加载通知信息;在电子设备已运行该进程的情况下,AMS向进程发送第三方组件加载通知信息。
如此,可以根据第三方组件包信息确定可以用于运行该第三方组件的进程,进而将第三方组件在一个独立进程中加载,使第三方应用于原生应用相隔离,保证原生应用的运行安全。
在一种可能的实现方式中,AMS以fork的方式创建进程。
在一种可能的实现方式中,AMS向进程发送原生应用的接口信息,该原生应用的接口信息用于指示原生应用的接口。
在一种可能的实现方式中,进程在加载第三方组件之后,通过远程视图RemoteViews机制向原生应用发送第三方组件的布局信息。
如此,第三方应用组件对应的进程通过RemoteViews机制就可以使原生应用获得该第三方组件的布局信息,进而实现用户界面的显示。而不必在第三方应用中运行该第三方组件,实现了第三方组件的动态加载和安全隔离。
第二方面,本申请提供一种电子设备,该电子设备可以包括:一个或多个处理器,存储器,显示屏,以及一个或多个计算机程序。其中一个或多个计算机程序被存储在存储器中,一个或多个计算机程序包括指令。当指令被电子设备执行时,使得电子设备执行:原生应用向应用管理服务AMS发送第三方组件启动请求,第三方组件启动请求用于启动第三方组件;AMS根据第三方组件启动请求,获取第三方组件的包信息;AMS根据第三方组件的包信息,向第三方组件对应的进程发送第三方组件加载通知信息,第三方组件加载通知信息用于指示进程加载第三方组件;进程在加载第三方组件之后,向原生应用发送第三方组件的布局信息;原生应用根据第三方组件的布局信息,显示用户界面。
在一种可能的实现方式中,当所述指令被电子设备执行时,使得所述电子设备执行:AMS根据第三方组件启动请求,向包管理服务BMS发送第三方组件包信息查询请求;AMS接收BMS发送的第三方组件的包信息。
在一种可能的实现方式中,当所述指令被电子设备执行时,使得所述电子设备执行:BMS在接收到第三方组件包信息查询请求之后,判断电子设备是否已安装第三方 组件;若电子设备未安装第三方组件,则BMS下载并安装第三方组件。
在一种可能的实现方式中,当所述指令被电子设备执行时,使得所述电子设备执行:AMS根据签名信息,判断电子设备是否运行进程;在电子设备未运行进程的情况下,AMS创建进程,并向进程发送第三方组件加载通知信息;在电子设备已运行进程的情况下,AMS向进程发送第三方组件加载通知信息。
在一种可能的实现方式中,AMS创建进程,包括:AMS以fork的方式创建进程。
在一种可能的实现方式中,当所述指令被电子设备执行时,使得所述电子设备执行:AMS向进程发送原生应用的接口信息,原生应用的接口信息用于指示原生应用的接口。
在一种可能的实现方式中,当所述指令被电子设备执行时,使得所述电子设备执行:进程在加载第三方组件之后,通过远程视图RemoteViews机制向原生应用发送第三方组件的布局信息。
第三方面,本申请提供一种电子设备,该电子设备具有实现如上述第一方面及其中任一种可能的实现方式中所述的组件加载方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请提供一种组件加载系统,被配置为执行如上述第一方面及其中任一种可能的实现方式中所述的组件加载方法。
第五方面,本申请提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上述第一方面及其中任一种可能的实现方式中所述的组件加载方法。
第六方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如上述第一方面及其中任一种可能的实现方式中所述的组件加载方法。
第七方面,提供一种电路系统,电路系统包括处理电路,处理电路被配置为执行如上述第一方面及其中任一种可能的实现方式中所述的组件加载方法。
第八方面,本申请实施例提供一种芯片系统,包括至少一个处理器和至少一个接口电路,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,当至少一个处理器执行指令时,至少一个处理器执行如上述第一方面及其中任一种可能的实现方式中所述的组件加载方法。
附图说明
图1为本申请实施例提供的通信系统的结构示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3为本申请实施例提供的组件加载方法的流程示意图一;
图4为本申请实施例提供的组件加载方法的系统架构示意图;
图5为本申请实施例提供的组件加载方法的系统架构示意图二;
图6为本申请实施例提供的组件加载方法的应用场景示意图一;
图7为本申请实施例提供的组件加载方法的应用场景示意图二;
图8为本申请实施例提供的电子设备的结构示意图;
图9为本申请实施例提供的一种芯片系统的结构示意图;
图10为本申请实施例提供的一种组件加载系统的结构示意图。
具体实施方式
下面结合附图对本申请实施例提供的一种组件加载方法、装置及系统进行详细地描述。
为便于理解本申请实施例,首先以图1中示出的通信系统100为例详细说明适用于本申请实施例的无线通信系统。如图1所示,该通信系统100包括云服务器和电子设备。其中,上述云服务器可以是部署在云端的服务器。在本申请实施例中,第三方应用升级之后,开发者会将最新版本的第三方组件资源和代码打包上传到云服务器中储存,即将最新版本的第三方组件资源和代码绑定在一起生成一个资源数据包,用户需要时可以从服务器中下载使用。上述电子设备,可以从云服务器下载第三方组件。
本申请的实施例中的电子设备可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)电子设备、增强现实(augmented reality,AR)电子设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、车载终端等。作为一种示例,图1中以电子设备是手机为例示出。
在本申请实施例中以电子设备为手机为例进行说明。下面结合附图对手机的各个构成部件进行具体的介绍:
如图2所示,手机可以包括:触控屏21、处理器22、存储器23、电源24、射频(Radio Frequency,RF)电路25、重力传感器26、音频电路27、扬声器28、麦克风29等部件,这些部件之间可以以总线连接,也可以直连连接。本领域技术人员可以理解,图2中示出的手机结构并不构成对手机的限定,可以包括比图示更多的部件,或者组合某些部件,或者不同的部件布置。
其中,触控屏21可称为触控显示面板,用于实现手机的输入和输出功能,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控屏21上或在触控屏21附近的操作),并根据预先设定的程式驱动相应的连接装置。还可用于显示由用户输入的信息或提供给用户的信息(如通过摄像头采集到的图像)以及手机的各种菜单。例如,可以采用电阻式、电容式、红外光感以及超声波等多种类型实现触控屏21,本申请实施例对此不进行限定。其中,用户在触控屏21附近的操作可以称之为悬浮触控,能够进行悬浮触控的触控屏可以采用电容式、红外光感以及超声波等实现。
示例性的,在本申请实施例中,触控屏21可以包括检测模块211和显示模块212。其中,检测模块211可以检测出用户对触控屏21的触摸操作,并可以将对触控屏21进行触摸操作后,触控屏21所产生的参数传送给处理器22(示例性的,假设采用电容式实现触控屏21,则检测模块211可以将触控屏21上的变化参数传送给处理器22,该变化参数指的是电容值发生变化的电容的大小、形状、个数以及分布情况),以便 于处理器22根据触摸操作进行相应的处理。显示模块212可以显示用户输入的信息、手机提供给用户的信息、手机的各种菜单等。
处理器22是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器23内的软件程序和/或模块,以及调用存储在存储器23内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。在具体实现中,作为一种实施例,处理器22可包括一个或多个处理单元;处理器22可集成应用处理器和调制解调处理器。其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器22中。
存储器23可用于存储数据、软件程序以及模块,可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合。具体的,存储器23内可存储程序代码,该程序代码用于使处理器22通过执行该程序代码,执行本申请实施例提供的组件加载方法。
电源24,可以为电池,通过电源管理系统与处理器22逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
RF电路25可用于收发信息或通话过程中,信号的接收和发送,特别地,将接收到的信息给处理器22处理;另外,将处理器22生成的信号发送出去。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路25还可以通过无线通信与网络和其他设备通信。
重力传感器(Gravity Sensor)26,可以检测手机在各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等。需要说明的是,手机还可以包括其它传感器,比如压力传感器、光传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路27、扬声器28、麦克风29可提供用户与手机之间的音频接口。音频电路27可将接收到的音频数据转换后的电信号,传输到扬声器28,由扬声器28转换为声音信号输出;另一方面,麦克风29将收集的声音信号转换为电信号,由音频电路27接收后转换为音频数据,再将音频数据输出至RF电路25以发送给比如另一手机,或者将音频数据输出至处理器22以便进一步处理。
另外,在上述部件之上,可以安装运行应用程序,例如支付宝、PayPal、微信、twitter、WhatsApp、电子邮件、QQ、天气等。且,尽管未示出,手机还可以包括无线保真(wireless fidelity,WiFi)模块、蓝牙模块、摄像头等部件。其中,WiFi模块,可以是包括WiFi芯片和WiFi芯片的驱动程序的模块,WiFi芯片具备运行无线互联网标准协议的能力。蓝牙模块,是一种集成蓝牙功能的印刷电路板组件(printed circuit board assembly,PCBA),用于短距离无线通讯。
需要说明的是,本申请实施例中的触发操作可以是在触控屏上操作,如按压操作、 长按操作、滑动操作、点击操作等,也可以是用户在触控屏附近的操作,即悬浮触控,本申请实施例在此不做具体限制。
为了便于理解本申请实施例中的方案,首先对下述概念进行解释。
(1)原生应用:即原生应用程序,为Java语言编写,能够从安卓应用市场中下载。原生应用能够使用手机硬件功能,如扬声器、加速度传感器、摄像头等。
(2)第三方应用:对于一个应用来说,其他厂商所提供应用可以视为第三方应用。例如,对于微信应用来说,滴滴出行可以视为第三方应用。
(3)组件:组件(Component)是对数据和方法的简单封装。C++Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。
(4)第三方组件:相对于原生应用的原生组件来说,由第三方软件提供商编写的组件可以称为第三方组件。常见的第三方组件包括用户界面组件、表格组件、报表组件等。比如,用户界面组件,是用于开发构建用户界面(user interface,UI)的组件,帮助完成软件开发中视窗、文本框、按钮、下拉式菜单等界面元素的开发。
需要说明的是,第三方组件可以有其他的名称,例如第三方嵌入式组件、嵌入式组件、或者第三方软件开发工具包(software development kit,SDK)组件,本申请实施例对此不做具体限定。
(5)View:是一种基本控件,View类代表了用户界面组件最基本的构件。
(6)进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
(7)Fork:Fork是Unix关于进程管理的一个术语,是创建进程函数。本质是创建一个进程,但是不从磁盘加载代码,而是从内存现有进程复制一份。采用复制当前进程的方式来创建子进程。在本申请实施例中,当某进程未启动时,可以通过Fork函数,创建进程,使得该进程加载相应的组件。
为了能够实现第三方组件的动态分发且无需增加额外的内存开销,本申请实施例提供一种组件加载方法,其基本原理是:将同一个原设备生产厂商(original equipment manufacturer,OEM)提供的嵌入式组件(Ability组件)隔离在同一个独立的进程中,通过远程视图(RemoteViews)机制,将嵌入式组件的布局信息发送给其他进程,并在其他进程中的Ability View中显示,进而实现第三方组件的动态加载。可以理解的是,某一应用可以加载一个或多个第三方组件的布局信息。
图3为本申请实施例提供的一种组件加载方法流程示意图。该组件加载方法应用于电子设备,电子设备包含原生应用、以及应用管理服务(application management service,AMS)。如图3所示,该方法可以包括S101-S105:
S101、原生应用向AMS发送第三方组件启动请求。
其中,第三方组件启动请求用于请求启动第三方组件。
示例性的,原生应用可以为微信,第三方组件可以为滴滴出行的组件。
在本申请实施例中,原生应用预先安装在电子设备上。
作为一种实现方式,原生应用在需要使用到第三方组件的情况下,原生应用调用AMS接口(例如StartAbility),以向AMS发送第三方组件启动请求。
举例来说,在原生应用显示用户界面的情况下,若待显示的用户界面包含第三方组件,则原生应用调用AMS接口,以向AMS发送第三方组件启动请求。
示例性的,如图4所示,电子设备包含原生应用App A和对于App A而言为第三方应用的App B的进程。App A中存在Ability A组件。Ability A组件包含Ability View B控件和Ability View C控件。APP B中可以预先存储Ability B组件和Ability C组件。或者,APP B可以从云端下载Ability B组件和Ability C组件。
对于APP A来说,APP B可以为第三方组件运行的进程,Ability B组件和Ability C组件相当于第三方组件。Ability B组件和Ability C组件为同一OEM提供的第三方组件,故可以在同一个进程中(APP B进程)加载。Ability View B控件与App B的Ability B组件对应,Ability View C控件与Ability C组件。
当APP A需要显示Ability B组件对应的用户界面时,APP A运行Ability A组件,以通过Ability A组件启动Ability B组件。在这一过程中,APP A调用AMS接口,以启动Ability B组件。
S102、AMS根据第三方组件启动请求,获取第三方组件的包信息。
可以理解的是,第三方组件启动请求可以包含第三方组件的标识,从而AMS可以获知原生应用准备启动的第三方组件。
举例来说,第三方组件启动请求包含滴滴出行的组件的标识,则AMS可以获知原生应用准备启动滴滴出行的组件。
举例来说,第三方组件启动请求包含美团的组件的标识,则AMS可以获知原生应用准备启动美团的组件。
可选的,如图5所示,步骤S102可以包含下述步骤S102a和步骤S102b:
S102a、AMS根据第三方组件启动请求,向包管理服务(bundle management service,BMS)发送第三方组件包信息查询请求。
在一种可能的实现方式中,AMS接收到原生应用发送的第三方组件启动请求后,会向BMS发送第三方组件包信息查询请求,第三方组件包信息查询请求用于查询该第三方组件的包信息。其中,第三方组件的包信息包括第三方组件的签名信息。第三方组件的签名信息用于确定提供该第三方组件的OEM,进而确定对应的进程。
示例性的,如图4所示,AMS和BMS在系统服务(system server)中启动,当AMS接收到原生应用发送的第三方组件启动请求后,会根据第三方组件启动请求,向BMS发送第三方组件包信息查询请求。
S102b、BMS向AMS发送第三方组件的包信息。
在一种可能的实现方式中,BMS接收到AMS发送的第三方组件包信息查询请求后,查询第三方组件在电子设备中是否已经安装。若电子设备已安装第三方组件,则BMS直接将第三方组件的包信息发送给AMS。若电子设备未安装第三方组件,则BMS从云服务器下载该第三方组件包到本地的电子设备。在电子设备安装第三方组件之后,BMS将该第三方组件的包信息发送给AMS。
示例性的,如图4所示,在BMS接收到Ability B组件包信息查询请求之后,BMS查询电子设备是否已安装Ability B组件。若电子设备已安装Ability B组件,则BMS将Ability B组件的包信息返回给AMS。若BMS未安装Ability B组件,则BMS从云端下载Ability B组件,以使得电子设备可以安装Ability B组件。在电子设备安装Ability B组件之后,BMS将Ability B组件的包信息返回给AMS。
示例性的,如图4所示,对于Ability C组件,AMS获取Ability C组件的包信息的流程,可以参考AMS获取Ability B组件的包信息的流程。
S103、AMS根据第三方组件的包信息,向进程发送第三方组件加载通知信息。
其中,进程是指预先创建的可以运行在电子设备后台中的进程,或者为第三方应用中的进程。
在本申请实施例中,第三方组件加载通知信息用于指示进程加载第三方组件。
在一种可能的实现方式中,AMS根据第三方组件包信息中的签名信息,查找进程记录,以判断第三方组件对应的进程是否已启动,或者说判断电子设备是否正在运行第三方组件对应的进程。若电子设备正在运行第三方组件对应的进程,则AMS向进程发送第三方组件加载通知信息。若电子设备未运行第三方组件对应的进程,则AMS通过fork的方式,创建进程。在进程创建之后,AMS向第三方组件对应的进程发送第三方组件加载通知信息。
另外,AMS在向进程发送第三方组件加载通知信息之外,AMS还可以向第三方组件对应的进程发送原生应用的接口信息。
在本申请实施例中,原生应用的接口信息用于指示原生应用的接口。可以理解的是,第三方组件对应的进程可以根据原生应用的接口信息,与原生应用进行通信。
示例性的,如图4所示,AMS在获取到Ability B组件的包信息之后,AMS根据Ability B组件的签名信息,查找进程记录,以判断APP B进程是否正在运行。在APP B进程正在运行的情况下,AMS向APP B进程发送Ability B组件加载通知信息,以使得APP B进程加载Ability B组件。
S104、进程加载第三方组件,并将第三方组件的布局信息发送给原生应用。
其中,第三方组件的布局信息为在原生应用用户界面显示时所需的第三方应用功能的显示内容。如智能助手用户界面中可以显示淘宝中的快递信息卡片,那么,在智能助手用户界面显示时就需要获得快递信息卡片组件的布局信息。
在一种可能的实现方式中,在接收到第三方组件加载通知信息后,进程加载第三方组件,并获取第三方组件的布局信息等内容。进程在获得第三方组件的布局信息之后,进程通过RemoteViews机制向原生应用发送第三方组件的布局信息。
示例性的,如图4所示,App B进程根据Ability B组件加载通知消息,APP B加载Ability B组件,并获取Ability B组件的布局信息。之后,App B进程通过RemoteViews机制将Ability B组件的布局信息发给App A。
S105、原生应用根据第三方组件的布局信息,显示用户界面。
示例性的,在图4所示,App A获得Ability B组件的布局信息,并通过Ability View B控件显示相应的用户界面。
电子设备中运行有一个或多个应用。在一种可能的实现方式中,某些应用可以动 态显示显示其他应用中的某些功能。
基于本申请提供的一种组件加载方法,在原生应用需要使用第三方组件的情况下,原生应用向AMS发送第三方组件启动请求,从而使得第三方组件运行在一个与原生组件相隔离的独立进程(也即上文提到的进程)中。之后,原生应用接收第三方组件的布局信息,从而可以显示相应的用户界面。在上述过程中,第三方组件的运行是与原生应用的运行是相互独立的,因此可以保证原生应用的数据安全。另外,第三方组件并不是打包在原生应用中,从而第三方组件升级的情况下,升级后的第三方组件可以实现动态分发。
下面结合具体示例,对本申请实施例所提供的组件加载方法进行说明。
示例一、某些应用可以动态显示显示其他应用中的功能卡片。可以理解的是,上述功能卡片即相当于本文中提到的第三方组件。如图6中的(a)所示,智能助手应用的用户界面601中可以显示智能助手应用的原生组件(例如右上角的“加号”图标),也可以显示第三方组件(例如运行在淘宝组件进程中的部分组件对应的快递信息卡片)。
当电子设备检测到用户点击用户界面601右上角的“加号”图标的操作时,可以显示如图6中的(b)所示的用户界面602,用户可以在用户界面602中选择再显示更多的其他应用的功能卡片。
例如,电子设备检测到用户点击图6中的(b)的用户界面601中的订单信息选项时,智能助手应用可以采用本申请实施例所提供的组件加载方法,以从运行淘宝组件的进程中获得最新的订单信息卡片的布局信息,并显示相应的用户界面。该用户界面可以如图6中的(c)的用户界面603。可以理解的是,快递信息卡片与订单信息卡片内容会随快递物流信息及用户订单信息等相关信息更新变化,例如,卡片的显示内容随物流信息和订单信息的更新而变化。
示例二、某些应用中的一些功能的实现需要加载其他应用的组件用于用户界面的显示。比如,目前微信应用可以实现滴滴出行应用中的打车功能。示例性的,如图7中的(a)所示的微信应用的用户界面701,电子设备检测到用户在微信应用当前用户界面701中延箭头方向向下滑动屏幕的操作,则会进入如图7中的(b)所示的用户界面702。在用户界面702,可以显示一个或多个不同的最近使用过的小程序。当用户点击其中一个小程序时,微信应用需要启动该小程序对应的第三方组件,以显示相应的用户界面,在微信应用中实现相应的第三方应用功能。举例来说,电子设备检测到用户点击图7中的(b)中用户界面702上显示的滴滴出行小程序图标,则微信应用可以采用本申请实施例所提供的组件加载方法,以进入如图7中的(c)所示的滴滴出行的用户界面703。从而,用户可以通过在用户界面703的操作实现打车功能。
图8示出了上述实施例中所涉及的电子设备的一种可能的结构示意图,包括:处理单元802和通信单元803。可选的,通信单元803还可以划分为发送单元(并未在图8中示出)和接收单元(并未在图8中示出)。其中,发送单元,用于支持电子设备向其他网元发送信息。接收单元,用于支持电子设备从其他网元接收信息。
可选的,电子设备还可以包括存储单元801,用于存储电子设备的程序代码和数据,数据可以包括不限于原始数据或者中间数据等。
处理单元802,可以用于支持电子设备判断是否存在原生应用需要调用第三方组 件,并实现第三方组件的动态加载,和/或用于本文所描述的方案的其它过程。通信单元803用于支持电子设备和其他网元(例如云服务器等)之间的通信。可选的,在将通信单元划分为发送单元和接收单元的情况下,发送单元,用于支持电子设备向其他网元发送信息。接收单元,用于支持电子设备从其他网元接收信息。如通信单元803支持电子设备从云服务器中下载第二组件包等,和/或用于本文所描述的方案的其它过程。
一种可能的方式中,处理单元802可以是控制器或图2所示的处理器22,例如可以是中央处理器(central processing unit,CPU),通用处理器,数字信号处理(digital signal processing,DSP),应用专用集成电路(application specific integrated circuit,ASIC),现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元803可以是图2所示的RF电路25、还可以是收发电路等。存储单元801可以是图2所示的存储器23。
本申请实施例还提供一种组件加载系统,如图10所示,该组件加载系统包括电子设备1001和云服务器1002。电子设备1001可以从云服务器1002下载第三方组件,和/或用于本文所描述的方案的其它过程。该组件加载系统可使得电子设备1001执行上述实施例中的组件加载方法中的各个步骤。
本申请实施例还提供一种芯片系统,如图9所示,该芯片系统包括至少一个处理器901和至少一个接口电路902。处理器901和接口电路902可通过线路互联。例如,接口电路902可用于从其它装置接收信号。又例如,接口电路902可用于向其它装置(例如处理器901)发送信号。示例性的,接口电路902可读取存储器中存储的指令,并将该指令发送给处理器901。当所述指令被处理器901执行时,可使得电子设备执行上述实施例中的组件加载方法中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的组件加载方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的组件加载方法。
另外,本申请的实施例还提供一种装置,该装置具体可以是组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使装置执行上述各方法实施例中的组件加载方法。
其中,本申请实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的 方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法,可以通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序指令的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (18)

  1. 一种组件加载方法,其特征在于,所述组件加载方法应用于电子设备,所述电子设备包括原生应用以及应用管理服务AMS,所述方法包括:
    所述原生应用向所述AMS发送第三方组件启动请求,所述第三方组件启动请求用于启动所述第三方组件;
    所述AMS根据所述第三方组件启动请求,获取所述第三方组件的包信息;
    所述AMS根据第三方组件的包信息,向第三方组件对应的进程发送所述第三方组件加载通知信息,所述第三方组件加载通知信息用于指示进程加载第三方组件;
    所述进程在加载所述第三方组件之后,向所述原生应用发送所述第三方组件的布局信息;
    所述原生应用根据所述第三方组件的布局信息,显示用户界面。
  2. 根据权利要求1所述的组件加载方法,其特征在于,所述电子设备还包括包管理服务BMS;所述AMS根据所述第三方组件启动请求,获取第三方组件的包信息,包括:
    所述AMS根据所述第三方组件启动请求,向所述BMS发送第三方组件包信息查询请求;
    所述AMS接收所述BMS发送的所述第三方组件的包信息。
  3. 根据权利要求2所述的组件加载方法,其特征在于,所述方法还包括:
    所述BMS在接收到所述第三方组件包信息查询请求之后,判断所述电子设备是否已安装所述第三方组件;
    若所述电子设备未安装所述第三方组件,则所述BMS下载并安装所述第三方组件。
  4. 根据权利要求1至3任一项所述的组件加载方法,其特征在于,所述第三方组件的包信息包括签名信息;所述AMS根据第三方组件的包信息,向进程发送第三方组件加载通知信息,包括:
    所述AMS根据所述签名信息,判断所述电子设备是否运行所述进程;
    在所述电子设备未运行所述进程的情况下,所述AMS创建所述进程,并向所述进程发送所述第三方组件加载通知信息;
    在所述电子设备已运行所述进程的情况下,所述AMS向所述进程发送所述第三方组件加载通知信息。
  5. 根据权利要求4所述的组件加载方法,其特征在于,所述AMS创建所述进程,包括:
    所述AMS以fork的方式创建所述进程。
  6. 根据权利要求1至5任一项所述的组件加载方法,其特征在于,所述方法还包括:
    所述AMS向所述进程发送原生应用的接口信息,所述原生应用的接口信息用于指示所述原生应用的接口。
  7. 根据权利要求1至6任一项所述的组件加载方法,其特征在于,所述进程在加载所述第三方组件之后,向所述原生应用发送所述第三方组件的布局信息,包括:
    所述进程在加载所述第三方组件之后,通过远程视图RemoteViews机制向所述原 生应用发送所述第三方组件的布局信息。
  8. 一种电子设备,其特征在于,包括:
    一个或多个处理器;
    存储器;
    显示屏;
    以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令;当所述指令被所述电子设备执行时,使得所述电子设备执行:
    原生应用向应用管理服务AMS发送第三方组件启动请求,所述第三方组件启动请求用于启动所述第三方组件;
    所述AMS根据所述第三方组件启动请求,获取所述第三方组件的包信息;
    所述AMS根据第三方组件的包信息,向第三方组件对应的进程发送所述第三方组件加载通知信息,所述第三方组件加载通知信息用于指示进程加载第三方组件;
    所述进程在加载所述第三方组件之后,向所述原生应用发送所述第三方组件的布局信息;
    所述原生应用根据所述第三方组件的布局信息,显示用户界面。
  9. 根据权利要求8所述的电子设备,其特征在于,当所述指令被电子设备执行时,使得所述电子设备执行:
    所述AMS根据所述第三方组件启动请求,向包管理服务BMS发送第三方组件包信息查询请求;
    所述AMS接收所述BMS发送的所述第三方组件的包信息。
  10. 根据权利要求9所述的电子设备,其特征在于,当所述指令被电子设备执行时,使得所述电子设备执行:
    所述BMS在接收到所述第三方组件包信息查询请求之后,判断所述电子设备是否已安装所述第三方组件;
    若所述电子设备未安装所述第三方组件,则所述BMS下载并安装所述第三方组件。
  11. 根据权利要求8至10任一项所述的电子设备,其特征在于,所述第三方组件的包信息包括签名信息;所述AMS根据第三方组件的包信息,向进程发送第三方组件加载通知信息,包括:
    所述AMS根据所述签名信息,判断所述电子设备是否运行所述进程;
    在所述电子设备未运行所述进程的情况下,所述AMS创建所述进程,并向所述进程发送所述第三方组件加载通知信息;
    在所述电子设备已运行所述进程的情况下,所述AMS向所述进程发送所述第三方组件加载通知信息。
  12. 根据权利要求11所述的电子设备,其特征在于,所述AMS创建所述进程,包括:
    所述AMS以fork的方式创建所述进程。
  13. 根据权利要求8至12任一项所述的电子设备,其特征在于,当所述指令被电子设备执行时,使得所述电子设备执行:
    所述AMS向所述进程发送原生应用的接口信息,所述原生应用的接口信息用于指示所述原生应用的接口。
  14. 根据权利要求8至13任一项所述的电子设备,其特征在于,当所述指令被电子设备执行时,使得所述电子设备执行:
    所述进程在加载所述第三方组件之后,通过远程视图RemoteViews机制向所述原生应用发送所述第三方组件的布局信息。
  15. 一种组件加载系统,其特征在于,所述系统用于执行权利要求1-7任一项所述的组件加载方法。
  16. 一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-7中任一项所述的组件加载方法。
  17. 一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-7中任一项所述的组件加载方法。
  18. 一种芯片系统,其特征在于,包括至少一个处理器和至少一个接口电路,所述至少一个接口电路用于执行收发功能,并将指令发送给所述至少一个处理器,当所述至少一个处理器执行所述指令时,所述至少一个处理器执行如权利要求1-7中任一项所述的组件加载方法。
PCT/CN2020/112875 2019-09-29 2020-09-01 一种组件加载方法、装置及系统 WO2021057411A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910947274.4 2019-09-29
CN201910947274.4A CN112579191A (zh) 2019-09-29 2019-09-29 一种组件加载方法、装置及系统

Publications (1)

Publication Number Publication Date
WO2021057411A1 true WO2021057411A1 (zh) 2021-04-01

Family

ID=75117135

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/112875 WO2021057411A1 (zh) 2019-09-29 2020-09-01 一种组件加载方法、装置及系统

Country Status (2)

Country Link
CN (1) CN112579191A (zh)
WO (1) WO2021057411A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114461205A (zh) * 2022-04-13 2022-05-10 杭州比智科技有限公司 数据可视化平台及适用于数据可视化平台的组件管理方法
CN115033396B (zh) * 2022-05-27 2023-05-02 荣耀终端有限公司 一种通信方法及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090235189A1 (en) * 2008-03-04 2009-09-17 Alexandre Aybes Native support for manipulation of data content by an application
CN104750528A (zh) * 2015-03-31 2015-07-01 北京奇虎科技有限公司 一种Android程序中的组件管理方法和装置
CN105912362A (zh) * 2016-04-11 2016-08-31 北京金山安全软件有限公司 一种加载插件的方法、装置及电子设备
CN106855772A (zh) * 2015-12-09 2017-06-16 阿里巴巴集团控股有限公司 一种信息展示方法及装置
CN106874020A (zh) * 2015-12-10 2017-06-20 五八同城信息技术有限公司 启动插件的方法及装置
CN109144692A (zh) * 2018-07-16 2019-01-04 北京奇虎科技有限公司 一种用于分配进程的方法、装置及终端

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100262953A1 (en) * 2009-04-14 2010-10-14 Barboni Michael P Systems and methods for automatically enabling and disabling applications and widgets with a computing device based on compatibility and/or user preference
US8615772B2 (en) * 2010-09-28 2013-12-24 Qualcomm Incorporated Apparatus and methods of extending application services
CN104714824B (zh) * 2015-01-09 2017-12-22 青岛海信电器股份有限公司 一种应用程序启动方法
CN106775608B (zh) * 2015-11-24 2020-09-04 腾讯科技(深圳)有限公司 独立系统进程的实现方法和装置
CN106331178B (zh) * 2016-10-28 2019-08-02 宇龙计算机通信科技(深圳)有限公司 一种信息共享方法及移动终端
CN107133064B (zh) * 2017-03-16 2020-02-07 武汉斗鱼网络科技有限公司 原生应用的页面热更新方法及装置
CN107656750A (zh) * 2017-10-16 2018-02-02 深圳大宇无限科技有限公司 插件更新方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090235189A1 (en) * 2008-03-04 2009-09-17 Alexandre Aybes Native support for manipulation of data content by an application
CN104750528A (zh) * 2015-03-31 2015-07-01 北京奇虎科技有限公司 一种Android程序中的组件管理方法和装置
CN106855772A (zh) * 2015-12-09 2017-06-16 阿里巴巴集团控股有限公司 一种信息展示方法及装置
CN106874020A (zh) * 2015-12-10 2017-06-20 五八同城信息技术有限公司 启动插件的方法及装置
CN105912362A (zh) * 2016-04-11 2016-08-31 北京金山安全软件有限公司 一种加载插件的方法、装置及电子设备
CN109144692A (zh) * 2018-07-16 2019-01-04 北京奇虎科技有限公司 一种用于分配进程的方法、装置及终端

Also Published As

Publication number Publication date
CN112579191A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
US11853820B2 (en) Cross-process communication method, apparatus, and device
JP6072441B2 (ja) ハプティックテーマフレームワーク
CN106502703B (zh) 一种函数调用方法和装置
CN111434132A (zh) 一种eSIM卡的开户方法及终端
CN110865837B (zh) 一种进行系统升级的方法和终端
EP3637251B1 (en) Method, device and terminal for executing hotpatch
CN110869907A (zh) 一种浏览应用页面的方法及终端
CN110046497B (zh) 一种函数挂钩实现方法、装置和存储介质
WO2021057411A1 (zh) 一种组件加载方法、装置及系统
CN112162795B (zh) 一种插件启动方法、装置、计算机设备和存储介质
CN108090345B (zh) linux系统外部命令执行方法及装置
EP2869604B1 (en) Method, apparatus and device for processing a mobile terminal resource
WO2020014926A1 (zh) 一种补丁包生成方法及设备
WO2021027772A1 (zh) 一种应用切换运行的方法及设备
WO2022068475A1 (zh) 插件运行系统、插件运行方法以及电子设备
WO2019169587A1 (zh) 一种分功能模块安装应用程序的方法
CN106095423B (zh) 提供浏览服务的方法、终端及服务器
CN109145598B (zh) 脚本文件的病毒检测方法、装置、终端及存储介质
CN107463395B (zh) 组件调用方法及装置
US11991040B2 (en) Network configuration method and device
US20230139886A1 (en) Device control method and device
US10839037B2 (en) Connected application experience
CN114675786A (zh) 一种大容量存储挂载方法、装置、终端及介质
KR20200118980A (ko) 이종 운영체제를 실행하는 전자 장치 및 그 방법
WO2024032022A1 (zh) 一种应用图标的可视化方法和设备

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: 20870348

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20870348

Country of ref document: EP

Kind code of ref document: A1