WO2016041312A1 - 应用程序运行方法及装置 - Google Patents

应用程序运行方法及装置 Download PDF

Info

Publication number
WO2016041312A1
WO2016041312A1 PCT/CN2015/071360 CN2015071360W WO2016041312A1 WO 2016041312 A1 WO2016041312 A1 WO 2016041312A1 CN 2015071360 W CN2015071360 W CN 2015071360W WO 2016041312 A1 WO2016041312 A1 WO 2016041312A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
component
program component
program
run
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2015/071360
Other languages
English (en)
French (fr)
Inventor
辛显龙
贺瑶
余朝晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiaomi Inc
Original Assignee
Xiaomi Inc
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 Xiaomi Inc filed Critical Xiaomi Inc
Priority to KR1020157009920A priority Critical patent/KR20160046751A/ko
Priority to BR112015008624A priority patent/BR112015008624A2/pt
Priority to JP2016548410A priority patent/JP6068736B2/ja
Priority to MX2015003752A priority patent/MX356175B/es
Priority to RU2015113732A priority patent/RU2647625C2/ru
Priority to US14/693,872 priority patent/US9870239B2/en
Publication of WO2016041312A1 publication Critical patent/WO2016041312A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Definitions

  • the present disclosure relates to the field of mobile terminals, and in particular, to an application running method and apparatus.
  • Android (English: Android) system is a smart operating system that can provide different functions by installing different applications.
  • the developed application is packaged into an installation package with a suffix named apk format and distributed to the user.
  • the installation package is installed on the mobile terminal running Android and then the application is run. But for some users, such as the elderly, the operation of installing an application is more difficult to master.
  • an application running method comprising:
  • the program component of the second application is run by the runtime environment provided by the first application.
  • running the program component of the second application by using the running environment provided by the first application including:
  • the program component is run by the context runtime environment provided by the sandbox program component in the first application.
  • running the program component by using a context running environment provided by the sandbox program component in the first application including:
  • the called program component is run by the context runtime environment provided by the sandbox program component in the first application.
  • loading, by the first application, the installation package of the second application, to obtain the program component of the second application including:
  • At least one program component of the second application is obtained by the first application according to the configuration file parsing, the program component comprising at least one of an active component, a service component, a content provider component, and a broadcast receiver component.
  • the method further includes:
  • the intent Intent message type monitored by each program component in the second application is registered in the operating system according to the configuration file by the first application.
  • determining, by the first application, a program component that needs to be run in the second application including:
  • the default running component of the second application feedback is received by the first application, and the default running component is determined to be a program component that needs to be run.
  • determining, by the first application, a program component that needs to be run in the second application including:
  • the program component for listening to the Intent message is not started in the second application, the program component for monitoring the Intent message is determined as the program component that needs to be run.
  • the method further includes:
  • the Intent message is a message conforming to the registered Intent message type, and forwarding the Intent message to the program component when the program component for monitoring the Intent message is started in the second application Process
  • the Intent message sent by a program component in the second application is obtained by the first application, and the Intent message is forwarded to the operating system.
  • the method further includes:
  • the management operation of the different versions of the installation package of the second application is performed by the first application, and the management operation includes at least one of a download operation, an update operation, and a delete operation.
  • an application running apparatus comprising:
  • a signal receiving module configured to receive a trigger signal for instructing to run the second application in the first application that has been run
  • the installation package parsing module is configured to load and parse the installation package of the second application by using the first application to obtain a program component of the second application;
  • the program execution module is configured to run the program component of the second application through an operating environment provided by the first application.
  • the program runs the module, including:
  • a component determination submodule a sandbox startup submodule, and a component execution submodule
  • a component determining submodule configured to determine, by the first application, a program component that needs to be run in the second application
  • a sandbox launch submodule configured to launch a sandboxed program component corresponding to the program component by the first application
  • the component execution submodule is configured to run the program component through a context runtime environment provided by the sandbox program component in the first application.
  • the component runs the submodule, including: calling the submodule and running the submodule;
  • the running submodule is configured to run the called program component through a context runtime environment provided by the sandbox program component in the first application.
  • the installation package parsing module includes: a file parsing submodule and a component parsing submodule;
  • a file parsing sub-module configured to load and parse the installation package of the second application by using the first application to obtain a configuration file of the second application
  • a component parsing submodule configured to parse at least one program component in the second application according to the configuration file by the first application, the program component including at least one of an active component, a service component, a content provider component, and a broadcast receiver component Kind.
  • the device further includes:
  • the message registration module is configured to register, in the operating system, the intent Intent message type monitored by each program component in the second application according to the configuration file by the first application.
  • the component determining submodule includes: a first determining submodule
  • the first determining submodule is configured to receive, by the first application, a default running component of the second application feedback when the second program is started, and determine the default running component as the program component that needs to be run.
  • the component determining submodule includes: a message receiving submodule and a second determining submodule;
  • the message receiving submodule is configured to receive, by the first application, an Intent message forwarded by the operating system, where the Intent message is a message conforming to the type of the Intent message that has been registered;
  • the second determining submodule is configured to determine, when the program component for monitoring the Intent message in the second application is not started, the program component for monitoring the Intent message as the program component that needs to be run.
  • the device further includes:
  • the first forwarding module is configured to receive, by using the first application, an Intent message forwarded by the operating system, where the Intent message is a message conforming to the type of the Intent message that has been registered, and is used when the program component for monitoring the Intent message is started in the second application. , forward the Intent message to the program component for processing;
  • the second forwarding module is configured to obtain, by using the first application, an Intent message that is sent by a program component in the second application, and forward the Intent message to the operating system.
  • the device further includes:
  • the installation package management module is configured to perform a management operation on a different version of the installation package of the second application by the first application, the management operation including at least one of a download operation, an update operation, and a delete operation.
  • an application running apparatus including:
  • a memory for storing executable instructions of the processor
  • processor is configured to:
  • the program component of the second application is run by the runtime environment provided by the first application.
  • Obtaining a program component of the second application by loading and parsing the installation package of the second application in the first application that has been run; running the program component of the second application by using the running environment provided by the first application; and solving the application must pass The problem that the installation package can be used after installation; the second application does not need to be installed, and the second application can utilize the operating environment provided by the first application to run the effect.
  • FIG. 1 is a flowchart of an application running method according to an exemplary embodiment
  • FIG. 2 is a schematic diagram of an implementation of an application running method according to another exemplary embodiment
  • FIG. 3 is a flowchart of an application running method according to another exemplary embodiment
  • FIG. 4 is a flowchart showing a sub-step of an application running method according to another exemplary embodiment.
  • FIG. 5 is a block diagram of an application running apparatus according to an exemplary embodiment
  • FIG. 6 is a block diagram showing an application running apparatus according to another exemplary embodiment
  • FIG. 7 is a block diagram of an apparatus, according to an exemplary embodiment.
  • the mobile terminal can be a mobile phone, a tablet computer, an e-book reader, an MP3 player (Moving Picture Experts Group Audio Layer III), an MP4 (Moving Picture Experts Group Audio Layer IV), a motion picture expert. Compress standard audio layers 4) Players and laptops, etc.
  • Application installation package A file used to install an application to an operating system. Usually a collection of self-extracting files that include all the files that the application installed at the time of installation. In Android, the application installation package is usually a file wrapped in apk format.
  • an application in an Android operating system, an application usually includes at least one program component.
  • Program components There are four types of program components: Activity: Activity component, Service component, Content Provider component, and Broadcast Receiver component.
  • Active component A component of the Android application that is responsible for interacting with the user, providing a visual user interface for Android applications.
  • An Android app can include zero to more active components.
  • Service component A component of an Android application that runs in the background and does not provide a user interface.
  • An Android app can include zero to more service components.
  • a component of an Android application that provides data for other applications or other components in the current application, such as ringtones, wallpapers, phone books, and so on. It encapsulates data in a variety of formats and provides it to other applications or components in a standard form.
  • Broadcast Receiver Component A message used to receive and respond to broadcasts by the operating system. It can receive messages of interest to itself (or pre-defined messages of a certain message type) and then process or forward them to other components in the current application.
  • Intent (English: Intent) message A message in the Android application that communicates between various program components. Each program component can be a different component in the same application or a different component in a different application. .
  • the Intent message is responsible for describing the action, the action related data and the additional data in the application, and the Android operating system is responsible for finding the corresponding program component according to the description of the Intent message, and transmitting the Intent message to the called program component, and completing. Call of a program component.
  • Intent messages There are two types of Intent messages: explicit Intent messages and implicit Intent messages.
  • an explicit Intent message for an Intent message that explicitly indicates the name of the target program component, called an explicit Intent Message. For example, the A program component needs to send an Intent message of “call 18688888888”. If the A program component wants the B program component to respond to the Intent message, the A program component specifies the target program component in the Intent message to be the B program component. After the Android operating system receives the Intent message, the Intent message is handed over to the B program component for processing.
  • Implicit Intent Message For an Intent message that does not explicitly indicate the name of the target program component, it is called an implicit Intent message. For example, the A component needs to send an Intent message "call 18688888888". If the A component does not know which program component should respond to the Intent message, then the A component can not specify the target program component in the Intent message, then the Android operation After receiving the Intent message, the system will check the type of the Intent message that is pre-registered by each program component. If the B program component monitors the Intent message about the phone call, the Android operating system will hand over the Intent message. B program component processing. Alternatively, the Android operating system can broadcast the Intent message, which is received and processed by a broadcast receiver component interested in an Intent message regarding the phone call.
  • FIG. 1 is a flowchart of an application running method according to an exemplary embodiment. The embodiment is illustrated by using the application running method in a mobile terminal.
  • the application running method can include the following steps.
  • step 102 in the first application that has been executed, a trigger signal for instructing to run the second application is received.
  • step 104 the installation package of the second application is loaded and parsed by the first application to obtain a program component of the second application.
  • step 106 the program component of the second application is run by the runtime environment provided by the first application.
  • the application running method obtained in this embodiment obtains a program component of the second application by loading and parsing the installation package of the second application in the first application that has been run; and the operating environment provided by the first application.
  • Running the program component of the second application solving the problem that the application must be installed after installing the installation package; achieving the effect that the second application does not need to be installed, and the second application can use the running environment provided by the first application.
  • FIG. 2 shows an implementation diagram of an application running method according to an exemplary embodiment.
  • the first application 220 is run in the mobile terminal, and the first application 220 can load and parse the installation package of the second application 240 to obtain the program component in the second application 240.
  • the second application 240 can include one or more program components, each of which can be any of the active component 242, the service component 244, the content provider component 246, and the broadcast receiver component 248.
  • the first application 220 then provides the second application 240 with a sandbox environment that provides the program components in the second application 240 with the context required by the runtime, and the second application 240 can rely on the sandbox environment. run.
  • the first application 220 may run the program component in the second application 240 according to the running logic of the second application 240. For example, when the second application 240 is started, the first application may run the first application.
  • the default running component of the application 240 which is usually the active component corresponding to the main interface of the second application 240; For example, when one of the buttons on the user interaction interface of the second application 240 is pressed, the first application 220 can run another active component of the second application 240 to display the next user interaction interface in the second application 240. .
  • the Android operating system or other application may also send the Intent message monitored by the second application 240 to the first application 220, and the first application 220 may start the second after receiving the Intent message.
  • the corresponding program component in application 240 is forwarded and forwarded to the program component.
  • the Android operating system or other application may also invoke the content provider component 246 in the second application 240 through the first application 220, ie, the Android operating system or other application may use the content provider component 246 in the second application 240.
  • the second application 240 can also send an Intent message to the Android operating system or other applications through the first application 220. After receiving the Intent message, the first application 220 forwards the Intent message to the Android operating system, which is directly Intent messages are processed or forwarded by the Android operating system to other program components for processing.
  • the second application 240 can also invoke content provider components in other applications through the first application 220, that is, the second application 240 can use data provided by content provider components in other applications.
  • the second application 240 does not need to have a special relationship with the first application 220, and a special protocol and interface need not be implemented between the second application 240 and the first application 220, as long as the second application 240 is in conformity.
  • the installation package of the second application 240 is an installation package conforming to the installation package specification of the Android operating system.
  • FIG. 3 is a schematic diagram of an implementation of an application running method according to another exemplary embodiment. This embodiment is exemplified by the application running method applied to the mobile terminal.
  • the mobile terminal may be a mobile terminal running an Android operating system.
  • the application running method can include the following steps.
  • step 301 in the first application that has been executed, a trigger signal for instructing to run the second application is received.
  • the first application is an application that is already installed and running in the mobile terminal.
  • the first application can be implemented as a comprehensive application, a game application, a management application, a system application, and the like.
  • the first application can access the installation package of the second application in the mobile terminal.
  • the second application can be operated in the operating environment provided by the first application without installing in the mobile terminal.
  • the mobile terminal receives a trigger signal for instructing to run the second application in the first application that has been run.
  • the trigger signal may be a touch screen click signal, for example, in a user interface in the first application, an icon of the second application may be displayed.
  • the mobile terminal receives a trigger signal for instructing to run the second application.
  • step 302 the installation package of the second application is loaded and parsed by the first application to obtain a configuration file of the second application.
  • the configuration file is a description file that exists in the installation package of each second application, and is usually the AndroidManifest.xml file in the root directory of the installation package of the second application. This profile provides relevant application information in the second app.
  • the mobile terminal loads the installation package of the second application through the first application, and then parses the installation package of the second application, and first reads the configuration file of the second application from the parsed file.
  • step 303 at least one program component in the second application is obtained according to the configuration file by the first application.
  • Each program component included in the second application is declared in the configuration file, and the program component includes at least one of an active component, a service component, a content provider component, and a broadcast receiver component.
  • the mobile terminal parses the at least one program component in the second application according to the configuration file by the first application.
  • step 304 the Intent message type monitored by each program component in the second application is registered in the operating system according to the configuration file by the first application.
  • the configuration file also declares the type of Intent message that each program component in the second application listens to. For example, activity component A listens for type A Intent messages, and service component B listens for type B Intent messages.
  • the mobile terminal registers the Intent message type monitored by each program component in the second application in the operating system according to the configuration file by the first application.
  • the recipient registered with the Android operating system is the program component in the first application, instead of the second application.
  • Program component For example, the active component A in the second application listens for the Intent message of the A type, and the first application registers the Intent message of the A type with the Android operating system, but the recipient of the registered Intent message of the A type is the first application. Program component.
  • step 305 the program component of the second application is run by the runtime environment provided by the first application.
  • the mobile terminal runs the program component of the second application through the operating environment provided by the first application.
  • the program components in the second application do not need to run all at the same time, and only a part of all the program components can be run as needed.
  • Step 305 can include the following sub-steps, as shown in FIG. 4:
  • the mobile terminal determines, by using the first application, a program component that needs to be run in the second application.
  • the mobile terminal starts a sandbox program component corresponding to the program component by using the first application
  • the mobile terminal runs the program component by using a context running environment provided by the sandbox program component in the first application.
  • step 305a the following two cases are mainly involved:
  • the mobile terminal receives the default running component of the second application feedback through the first application, and determines the default running component as the program component that needs to be run.
  • the default running component is usually the active component corresponding to the main interface in the second application.
  • the second application feeds back the request to the first application according to its own running logic, and the request indicates the default running component, and the first application determines the default running component as the current requirement in the second application.
  • the program component that is running is usually the active component corresponding to the main interface in the second application.
  • the second case the mobile terminal receives the Intent message forwarded by the operating system through the first application, where the Intent message is A message conforming to the registered Intent message type; when the program component for monitoring the Intent message is not started in the second application, the program component for monitoring the Intent message is determined as a program component to be run.
  • the program component in the second application, the system application of the Android operating system, and the program component in other applications may send an Intent message to the Android operating system, where the Intent message is the second application.
  • the Android operating system sends the Intent message to the first application.
  • the program component for monitoring the Intent message in the second application is not started, the first application determines the program component in the second application for listening to the Intent message as the program component that needs to be run.
  • step 305b when running each program component in the second application, the mobile terminal first starts a corresponding sandbox program component in the first application, the sandbox program component is used to provide the program component in the second application.
  • the upper and lower environment required.
  • the sandbox activity component A (English: BoxActivity A) is started in the first application; for example, when the service component B in the second application is run, in the first In the application, the sandbox service component B is started (English: BoxServer B); for example, when the broadcast receiver component C in the second application is run, the broadcast receiver component C is started in the first application (English: Box BroadcastReceiver C) and many more.
  • step 305c the following sub-steps can be included:
  • the mobile terminal invokes the program component in the second application by using a reflection mechanism by using a sandbox program component in the first application;
  • the reflection mechanism is a mechanism in the field of Java programming, which enables the first application to call a specified class in the program component in the second application through a reflection mechanism without knowing the program components in the second application.
  • the mobile terminal runs the called program component through a context running environment provided by the sandbox program component in the first application.
  • step 306 the Intent message is sent and received for the second application by using the first application.
  • the mobile terminal also receives and/or transmits an Intent message for the second application through the first application. among them:
  • the mobile terminal receives the Intent message forwarded by the Android operating system through the first application, the Intent message is a message conforming to the registered Intent message type, and when the program component for monitoring the Intent message is started in the second application And forwarding the Intent message to the program component in the second application for processing.
  • the first application receives the Intent message forwarded by the Android operating system, and the Intent message is the Intent message monitored by the broadcast receiver component D in the second application, and the sand corresponding to the broadcast receiver component D in the first application.
  • the box broadcast receiver component can invoke the onReceive method of the broadcast receiver component D such that the broadcast receiver component D processes the intent message.
  • the mobile terminal needs to send a program component in the second application through the first application
  • the intent message forwards the Intent message to the Android operating system.
  • the active component E in the second application needs to send an Intent message
  • the active component E first sends the Intent message to the sandbox activity component corresponding to the active component E in the first application, and then the sandbox active component
  • the Intent message can be forwarded to the Android operating system by intercepting the SendBroadcast method of the Android operating system and using the SendBroadcast method.
  • the above process is a process of running a second application in the first application, and the second application is generally referred to herein.
  • the second application can refer to different applications.
  • a management operation is performed on different installation packages of the second application by the first application, and the management operation includes at least one of a download operation, an update operation, and a delete operation.
  • the mobile terminal can manage the plurality of second applications through the first application. For each second application, the mobile terminal may perform a management operation on the installation package of different versions of the second application by using the first application, and the management operation includes at least one of a download operation, an update operation, and a deletion operation.
  • the second application has a new version of the installation package
  • the new version of the installation package has more functions
  • the first application can automatically download and update the second application to the latest version
  • the process can be performed without user participation. That is, the user can get the update of the second application without perception.
  • the application running method obtained in this embodiment obtains a program component of the second application by loading and parsing the installation package of the second application in the first application that has been run; and the operating environment provided by the first application.
  • Running the program component of the second application solving the problem that the application must be installed after installing the installation package; achieving the effect that the second application does not need to be installed, and the second application can use the running environment provided by the first application.
  • the application running method provided by the embodiment further provides the context running environment of the corresponding program component in the second application by the sandbox program component in the first application, so that the second application is only in accordance with the application specification of the Android operating system.
  • the application can use the runtime environment provided by the first application to run the effect. There is no need to have a special relationship between the first application and the second application, and no special protocol and interface need to be implemented.
  • the application running method provided in this embodiment further manages the installation package of different versions of the second application by using the first application, and can dynamically update the second application, and the update process does not require any participation of the user. Save user operations and learning costs.
  • User A is an elderly person who needs more learning costs or even cannot operate on a smartphone using the Android operating system.
  • the first application in the smart phone can provide an adding and deleting interface of the second application.
  • the user A only needs to add or delete the second application in the user interface in the first application.
  • the second application can be directly used in the first application without using the installation.
  • the first application can also automatically update the installation package of the second application in the background for the most new version.
  • the whole process only needs the user A to learn to add the second application, delete the second application, and open the second application.
  • the learning cost of the user A is low, and the cumbersome operation such as installing the second application and updating the second application does not need to be performed.
  • the earth simplifies the user's operation and improves the efficiency of the second application.
  • FIG. 5 shows a block diagram of an application running device according to an exemplary embodiment.
  • the application running device may be implemented as all or part of the mobile terminal by software, hardware or a combination of the two, and the mobile terminal may be a terminal running an Android operating system.
  • the application running device includes: a signal receiving module 520, an installation package parsing module 540, and a program running module 560;
  • the signal receiving module 520 is configured to receive a trigger signal for instructing to run the second application in the first application that has been executed.
  • the installation package parsing module 540 is configured to load and parse the installation package of the second application by using the first application to obtain a program component of the second application.
  • the program execution module 560 is configured to run the program component of the second application through an operating environment provided by the first application.
  • the application running apparatus obtains a program component of the second application by loading and parsing the installation package of the second application in the first application that has been run; and the operating environment provided by the first application.
  • Running the program component of the second application solving the problem that the application must be installed after installing the installation package; achieving the effect that the second application does not need to be installed, and the second application can use the running environment provided by the first application.
  • FIG. 6 shows a block diagram of an application running device according to an exemplary embodiment.
  • the application running device may be implemented as all or part of the mobile terminal by software, hardware or a combination of the two, and the mobile terminal may be a terminal running an Android operating system.
  • the application running device includes: a signal receiving module 520, an installation package parsing module 540, and a program running module 560;
  • the signal receiving module 520 is configured to receive a trigger signal for instructing to run the second application in the first application that has been executed.
  • the installation package parsing module 540 is configured to load and parse the installation package of the second application by using the first application to obtain a program component of the second application.
  • the program execution module 560 is configured to run the program component of the second application through an operating environment provided by the first application.
  • the program running module 560 includes: a component determining submodule 562, a sandboxing launching submodule 564, and a component running submodule 566.
  • the component determination sub-module 562 is configured to determine, by the first application, a program component that needs to be run in the second application.
  • a sandbox launch submodule 564 is configured to launch a sandboxed program component corresponding to the program component by the first application.
  • the component execution sub-module 566 is configured to run the program component through a context runtime environment provided by the sandbox program component in the first application.
  • the component running submodule 562 includes: a calling submodule and a running submodule;
  • the calling submodule is configured to invoke the program component by using a reflection mechanism through the sandbox program component in the first application.
  • the running submodule is configured to run the called program component through a context runtime environment provided by the sandbox program component in the first application.
  • the installation package parsing module 540 includes: a file parsing submodule 542 and a component parsing submodule 544;
  • the file parsing sub-module 542 is configured to load and parse the installation package of the second application by using the first application to obtain a configuration file of the second application;
  • the component parsing sub-module 544 is configured to parse, by the first application, at least one program component of the second application according to the configuration file, where the program component includes at least one of an active component, a service component, a content provider component, and a broadcast receiver component.
  • the program component includes at least one of an active component, a service component, a content provider component, and a broadcast receiver component.
  • the device further includes: a message registration module 530, configured to register the intent Intent message type monitored by each program component in the second application in the operating system according to the configuration file by the first application.
  • a message registration module 530 configured to register the intent Intent message type monitored by each program component in the second application in the operating system according to the configuration file by the first application.
  • the component determining submodule 562 includes: a first determining submodule, a message receiving submodule, and a second determining submodule;
  • the first determining submodule is configured to receive, by the first application, a default running component of the second application feedback when the second program is started, and determine the default running component as the program component that needs to be run.
  • the message receiving submodule is configured to receive, by the first application, an Intent message forwarded by the operating system, where the Intent message is a message conforming to the type of the Intent message that has been registered;
  • the second determining submodule is configured to determine, when the program component for monitoring the Intent message in the second application is not started, the program component for monitoring the Intent message as the program component that needs to be run.
  • the device further includes:
  • the first forwarding module 552 is configured to receive, by using the first application, an Intent message forwarded by the operating system, where the Intent message is a message conforming to the registered Intent message type, and when the program component for monitoring the Intent message is started in the second application , forward the Intent message to the program component for processing;
  • the second forwarding module 554 is configured to obtain an Intent message that needs to be sent by a program component in the second application by using the first application, and forward the Intent message to the operating system.
  • the device further includes:
  • the installation package management module 570 is configured to manage different versions of the installation package of the second application by using the first application.
  • the operation, management operation includes at least one of a download operation, an update operation, and a delete operation.
  • the application running apparatus obtains a program component of the second application by loading and parsing the installation package of the second application in the first application that has been run; and the operating environment provided by the first application.
  • Running the program component of the second application solving the problem that the application must be installed after installing the installation package; achieving the effect that the second application does not need to be installed, and the second application can use the running environment provided by the first application.
  • the application running device provided in this embodiment further provides a context running environment of the corresponding program component in the second application by using a sandbox program component in the first application, so that the second application is as long as it conforms to the application specification of the Android operating system.
  • the application can use the runtime environment provided by the first application to run the effect. There is no need to have a special relationship between the first application and the second application, and no special protocol and interface need to be implemented.
  • the application running device provided in this embodiment further manages the installation package of different versions of the second application by using the first application, and can dynamically update the second application, and the update process does not require any participation of the user. Save user operations and learning costs.
  • FIG. 7 is a block diagram of an application running device 700, according to an exemplary embodiment.
  • device 700 can be a mobile phone, a computer, a digital broadcast terminal, a messaging device, a gaming console, a tablet device, a medical device, a fitness device, a personal digital assistant, and the like.
  • apparatus 700 can include one or more of the following components: processing component 702, memory 704, power component 706, multimedia component 708, audio component 710, input/output (I/O) interface 712, sensor component 714, And a communication component 716.
  • Processing component 702 typically controls the overall operation of device 700, such as operations associated with display, telephone calls, data communications, camera operations, and recording operations.
  • Processing component 702 can include one or more processors 720 to execute instructions to perform all or part of the steps described above.
  • processing component 702 can include one or more modules to facilitate interaction between component 702 and other components.
  • processing component 702 can include a multimedia module to facilitate interaction between multimedia component 708 and processing component 702.
  • Memory 704 is configured to store various types of data to support operation at device 700. Examples of such data include instructions for any application or method operating on device 700, contact data, phone book data, messages, pictures, videos, and the like. Memory 704 can be implemented by any type of volatile or non-volatile storage device, or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read only memory (EEPROM), erasable Programmable read only memory (EPROM), programmable read only memory (PROM), read only memory (ROM), magnetic memory, Flash memory, disk or CD.
  • SRAM static random access memory
  • EEPROM electrically erasable programmable read only memory
  • EPROM erasable Programmable read only memory
  • PROM programmable read only memory
  • ROM read only memory
  • magnetic memory Flash memory
  • Flash memory disk or CD.
  • Power component 706 provides power to various components of device 700.
  • Power component 706 can include a power management system, one or more power sources, and other components associated with generating, managing, and distributing power for device 700.
  • the multimedia component 708 includes a screen between the device 700 and the user that provides an output interface.
  • the screen can include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen can be implemented as a touch screen to receive input signals from the user.
  • the touch panel includes one or more touch sensors to sense touches, slides, and gestures on the touch panel. The touch sensor may sense not only the boundary of the touch or sliding action, but also the duration and pressure associated with the touch or slide operation.
  • the multimedia component 708 includes a front camera and/or a rear camera. When the device 700 is in an operation mode, such as a shooting mode or a video mode, the front camera and/or the rear camera can receive external multimedia data. Each front and rear camera can be a fixed optical lens system or have focal length and optical zoom capabilities.
  • the audio component 710 is configured to output and/or input an audio signal.
  • audio component 710 includes a microphone (MIC) that is configured to receive an external audio signal when device 700 is in an operational mode, such as a call mode, a recording mode, and a voice recognition mode.
  • the received audio signal may be further stored in memory 704 or transmitted via communication component 716.
  • audio component 710 also includes a speaker for outputting an audio signal.
  • the I/O interface 712 provides an interface between the processing component 702 and the peripheral interface module, which may be a keyboard, a click wheel, a button, or the like. These buttons may include, but are not limited to, a home button, a volume button, a start button, and a lock button.
  • Sensor assembly 714 includes one or more sensors for providing device 700 with various aspects of status assessment.
  • sensor assembly 714 can detect an open/closed state of device 700, relative positioning of components, such as the display and keypad of device 700, and sensor component 714 can also detect a change in position of one component of device 700 or device 700. The presence or absence of user contact with device 700, device 700 orientation or acceleration/deceleration, and temperature variation of device 700.
  • Sensor assembly 714 can include a proximity sensor configured to detect the presence of nearby objects without any physical contact.
  • Sensor component 714 can also include a light sensor, such as a CMOS or CCD image sensor, for use in imaging applications.
  • the sensor component 714 can also include an acceleration sensor, a gyro sensor, a magnetic sensor, a pressure sensor, or a temperature sensor.
  • Communication component 716 is configured to facilitate wired or wireless communication between device 700 and other devices.
  • the device 700 can access a wireless network based on a communication standard, such as WiFi, 2G or 3G, or a combination thereof.
  • communication component 716 receives broadcast signals or broadcast associated information from an external broadcast management system via a broadcast channel.
  • the communication component 716 also includes a near field communication (NFC) module to facilitate short range communication.
  • NFC near field communication
  • the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
  • RFID radio frequency identification
  • IrDA infrared data association
  • UWB ultra-wideband
  • Bluetooth Bluetooth
  • apparatus 700 may be implemented by one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable A gate array (FPGA), controller, microcontroller, microprocessor, or other electronic component implementation for performing the above methods.
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • FPGA field programmable A gate array
  • controller microcontroller, microprocessor, or other electronic component implementation for performing the above methods.
  • non-transitory computer readable storage medium comprising instructions, such as a memory 704 comprising instructions executable by processor 720 of apparatus 700 to perform the above method.
  • the non-transitory computer readable storage medium may be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device.
  • a non-transitory computer readable storage medium when instructions in the storage medium are executed by a processor of apparatus 700, enabling apparatus 700 to perform an application run provided by the embodiment of FIG. 1 or FIG. method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本公开是关于一种应用程序运行方法及装置,属于操作系统领域。所述方法包括:在已经运行的第一应用中,接收用于指示运行第二应用的触发信号;通过所述第一应用加载并解析所述第二应用的安装包,得到所述第二应用的程序组件;通过所述第一应用提供的运行环境运行所述第二应用的程序组件。本公开解决了应用程序必须通过将安装包进行安装后才能使用的问题;达到了第二应用无需安装,第二应用可以利用第一应用提供的运行环境来运行的效果。

Description

应用程序运行方法及装置
相关申请的交叉引用
本申请基于申请号为201410470307.8、申请日为2014年9月16日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本公开涉及移动终端领域,特别涉及一种应用程序运行方法及装置。
背景技术
安卓(英文:Android)系统是一种智能操作系统,可以通过安装不同的应用程序来提供不同的功能。
相关技术中,开发完成的应用程序会被打包成后缀名为apk格式的安装包发布给用户。用户希望使用该应用程序时,会将该安装包在运行有安卓系统的移动终端上进行安装,然后运行该应用程序。但是对于一些用户来讲,比如老人,安装一个应用程序的操作是较难掌握的。
发明内容
为了解决相关技术中应用程序必须通过将安装包进行安装后才能使用的问题,本公开提供了一种应用程序运行方法及装置。所述技术方案如下:
根据本公开的第一方面,提供了一种应用程序运行方法,该方法包括:
在已经运行的第一应用中,接收用于指示运行第二应用的触发信号;
通过第一应用加载并解析第二应用的安装包,得到第二应用的程序组件;
通过第一应用提供的运行环境运行第二应用的程序组件。
可选地,通过第一应用提供的运行环境运行第二应用的程序组件,包括:
通过第一应用确定第二应用中需要运行的程序组件;
通过第一应用启动与程序组件对应的沙盒程序组件;
通过第一应用中的沙盒程序组件所提供的上下文运行环境运行程序组件。
可选地,通过第一应用中的沙盒程序组件所提供的上下文运行环境运行程序组件,包括:
通过第一应用中的沙盒程序组件采用反射机制调用程序组件;
通过第一应用中的沙盒程序组件所提供的上下文运行环境运行被调用的程序组件。
可选地,通过第一应用加载并解析第二应用的安装包,得到第二应用的程序组件,包括:
通过第一应用加载并解析第二应用的安装包,得到第二应用的配置文件;
通过第一应用根据配置文件解析得到第二应用中的至少一个程序组件,该程序组件包括活动组件、服务组件、内容提供者组件和广播接收器组件中的至少一种。
可选地,该方法,还包括:
通过第一应用根据配置文件将第二应用中的各个程序组件所监听的意图Intent消息类型在操作系统中进行注册。
可选地,通过第一应用确定第二应用中需要运行的程序组件,包括:
在启动第二程序时,通过第一应用接收第二应用反馈的默认运行组件,将默认运行组件确定为需要运行的程序组件。
可选地,通过第一应用确定第二应用中需要运行的程序组件,包括:
通过第一应用接收操作系统转发的Intent消息,该Intent消息是符合已经注册的Intent消息类型的消息;
在第二应用中用于监听Intent消息的程序组件未启动时,将用于监听Intent消息的程序组件确定为需要运行的程序组件。
可选地,方法还包括:
通过第一应用接收操作系统转发的Intent消息,该Intent消息是符合已经注册的Intent消息类型的消息,并在第二应用中用于监听Intent消息的程序组件启动时,将Intent消息转发给程序组件进行处理;
和/或,
通过第一应用获取第二应用中一个程序组件所需要发送的Intent消息,将Intent消息转发给操作系统。
可选地,该方法还包括:
通过第一应用对第二应用的不同版本的安装包进行管理操作,管理操作包括下载操作、更新操作和删除操作中的至少一种。
根据本公开的第二方面,提供了一种应用程序运行装置,装置包括:
信号接收模块,被配置为在已经运行的第一应用中,接收用于指示运行第二应用的触发信号;
安装包解析模块,被配置为通过第一应用加载并解析第二应用的安装包,得到第二应用的程序组件;
程序运行模块,被配置为通过第一应用提供的运行环境运行第二应用的程序组件。
可选地,程序运行模块,包括:
组件确定子模块、沙盒启动子模块和组件运行子模块;
组件确定子模块,被配置为通过第一应用确定第二应用中需要运行的程序组件;
沙盒启动子模块,被配置为通过第一应用启动与程序组件对应的沙盒程序组件;
组件运行子模块,被配置为通过第一应用中的沙盒程序组件所提供的上下文运行环境运行程序组件。
可选地,组件运行子模块,包括:调用子模块和运行子模块;
调用子模块,被配置为通过第一应用中的沙盒程序组件采用反射机制调用程序组件;
运行子模块,被配置为通过第一应用中的沙盒程序组件所提供的上下文运行环境运行被调用的程序组件。
可选地,安装包解析模块,包括:文件解析子模块和组件解析子模块;
文件解析子模块,被配置为通过第一应用加载并解析第二应用的安装包,得到第二应用的配置文件;
组件解析子模块,被配置为通过第一应用根据配置文件解析得到第二应用中的至少一个程序组件,该程序组件包括活动组件、服务组件、内容提供者组件和广播接收器组件中的至少一种。
可选地,该装置,还包括:
消息注册模块,被配置为通过第一应用根据配置文件将第二应用中的各个程序组件所监听的意图Intent消息类型在操作系统中进行注册。
可选地,组件确定子模块,包括:第一确定子模块;
第一确定子模块,被配置为在启动第二程序时,通过第一应用接收第二应用反馈的默认运行组件,将默认运行组件确定为需要运行的程序组件。
可选地,组件确定子模块,包括:消息接收子模块和第二确定子模块;
消息接收子模块,被配置为通过第一应用接收操作系统转发的Intent消息,Intent消息是符合已经注册的Intent消息类型的消息;
第二确定子模块,被配置为在第二应用中用于监听Intent消息的程序组件未启动时,将用于监听Intent消息的程序组件确定为需要运行的程序组件。
可选地,该装置还包括:
第一转发模块,被配置为通过第一应用接收操作系统转发的Intent消息,该Intent消息是符合已经注册的Intent消息类型的消息,并在第二应用中用于监听Intent消息的程序组件启动时,将Intent消息转发给程序组件进行处理;
和/或,
第二转发模块,被配置为通过第一应用获取第二应用中一个程序组件所需要发送的Intent消息,将Intent消息转发给操作系统。
可选地,该装置还包括:
安装包管理模块,被配置为通过第一应用对第二应用的不同版本的安装包进行管理操作,该管理操作包括下载操作、更新操作和删除操作中的至少一种。
根据本公开的第三方面,提供了一种应用程序运行装置,包括:
处理器;
用于存储处理器的可执行指令的存储器;
其中,处理器被配置为:
在已经运行的第一应用中,接收用于指示运行第二应用的触发信号;
通过第一应用加载并解析第二应用的安装包,得到第二应用的程序组件;
通过第一应用提供的运行环境运行第二应用的程序组件。
本公开实施例提供的技术方案可以包括以下有益效果:
通过在已经运行的第一应用中加载并解析第二应用的安装包,得到第二应用的程序组件;通过第一应用提供的运行环境运行第二应用的程序组件;解决了应用程序必须通过将安装包进行安装后才能使用的问题;达到了第二应用无需安装,第二应用可以利用第一应用提供的运行环境来运行的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种应用程序运行方法的流程图;
图2是根据另一示例性实施例示出的一种应用程序运行方法的实施示意图;
图3是根据另一示例性实施例示出的一种应用程序运行方法的流程图;
图4是根据另一示例性实施例示出的一种应用程序运行方法的子步骤流程图
图5是根据一示例性实施例示出的一种应用程序运行装置的框图;
图6是根据另一示例性实施例示出的一种应用程序运行装置的框图;
图7是根据一示例性实施例示出的一种装置的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先对本公开所涉及的几个名词进行简介:
安卓操作系统:由美国谷歌公司出品的一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备。该移动终端可以是手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机等等。
应用程序安装包:是用于将应用程序安装到操作系统上的一种文件。通常是可自行解压缩文件的集合,该集合中包括应用程序在安装时的所有文件。在安卓系统中,应用程序安装包通常是以apk格式封装的文件。
应用程序:简称应用,在安卓操作系统中,一个应用程序通常包括至少一个程序组件。程序组件分为四种:活动(英文:Activity)组件、服务(英文:Service)组件、内容提供者(英文:Content Provider)组件和广播接收器(英文:Broadcast Receiver)组件。
活动组件:安卓应用程序中负责与用户交互的组件,它为安卓应用程序提供可视化的用户界面。一个安卓应用程序可以包括零到多个活动组件。
服务组件:安卓应用程序中运行于后台、不提供用户界面的组件。一个安卓应用程序可以包括零到多个服务组件。
内容提供者组件:安卓应用程序中用于为其它应用或者当前应用中的其它组件提供数据的组件,比如:铃声、壁纸、电话本等。它能够对各种格式的数据进行封装,以标准的形式提供给其它应用或者组件进行使用。
广播接收器组件:用于接收和响应操作系统广播的消息。它能够接收自己感兴趣的消息(或者说预先定义的某种消息类型的消息),然后进行处理或转发给当前应用中的其它组件。
意图(英文:Intent)消息:安卓应用程序中实现各项程序组件之间进行通讯的一种消息,各项程序组件可以是同一应用程序中的不同组件,也可以是不同应用程序中的不同组件。Intent消息负责对应用程序中一次操作的动作、动作涉及数据、附加数据进行描述,安卓操作系统根据该Intent消息的描述,负责找到对应的程序组件,将Intent消息传递给调用的程序组件,并完成程序组件的调用。Intent消息分为两种:显式Intent消息和隐式Intent消息。
显式Intent消息:对于明确指出了目标程序组件名称的Intent消息,称之为显式Intent 消息。比如:A程序组件需要发送一条“拨打电话18688888888”的Intent消息,若A程序组件希望B程序组件来对该Intent消息进行响应,则A程序组件在该Intent消息中指定目标程序组件是B程序组件,则安卓操作系统在接收到该Intent消息后,会将该Intent消息交由B程序组件处理。
隐式Intent消息:对于未明确指出目标程序组件名称的Intent消息,称之为隐式Intent消息。比如:A组件需要发送一条“拨打电话18688888888”的Intent消息,若A组件不知道该Intent消息应当由哪一个程序组件进行响应,则A组件可以不在该Intent消息中指定目标程序组件,则安卓操作系统在接收到该Intent消息后,会查看各个程序组件预先注册的所监听的Intent消息类型,若查看到B程序组件对有关电话呼叫的Intent消息进行监听,则安卓操作系统将该Intent消息交由B程序组件处理。或者,安卓操作系统可以将该Intent消息进行广播,由对有关电话呼叫的Intent消息感兴趣的广播接收器组件来接收并处理。
图1是根据一示例性实施例示出的一种应用程序运行方法的流程图,本实施例以该应用程序运行方法应用于移动终端中来举例说明。该应用程序运行方法可以包括如下几个步骤。
在步骤102中,在已经运行的第一应用中,接收用于指示运行第二应用的触发信号。
在步骤104中,通过第一应用加载并解析第二应用的安装包,得到第二应用的程序组件。
在步骤106中,通过第一应用提供的运行环境运行第二应用的程序组件。
综上所述,本实施例提供的应用程序运行方法,通过在已经运行的第一应用中加载并解析第二应用的安装包,得到第二应用的程序组件;通过第一应用提供的运行环境运行第二应用的程序组件;解决了应用程序必须通过将安装包进行安装后才能使用的问题;达到了第二应用无需安装,第二应用可以利用第一应用提供的运行环境来运行的效果。
为了便于理解,请首先参考图2,其示出了一示例性实施例示出的一种应用程序运行方法的实施示意图。在移动终端中运行有第一应用220,该第一应用220可以加载并解析第二应用240的安装包,得到第二应用240中的程序组件。第二应用240中可以包括一个或者一个以上的程序组件,每个程序组件可以是活动组件242、服务组件244、内容提供者组件246和广播接收器组件248中的任意一种。然后,第一应用220为第二应用240提供一个沙盒环境,该沙盒环境为第二应用240中的程序组件提供运行时所需要的上下文环境,第二应用240可以凭借该沙盒环境进行运行。
在第二应用240中的运行过程中,第一应用220可以按照第二应用240的运行逻辑运行第二应用240中的程序组件,比如:在第二应用240启动时,第一应用可以运行第二应用240的默认运行组件,该默认运行组件通常是第二应用240的主界面所对应的活动组件;又 比如,在第二应用240的用户交互界面上的某一个按钮被按压时,第一应用220可以运行第二应用240中的另一个活动组件,从而显示第二应用240中的下一个用户交互界面。
另外,安卓操作系统或者其它应用程序(图中未示出)还可以向第一应用220发送第二应用240所监听的Intent消息,第一应用220在接收到该Intent消息后,会启动第二应用240中的相应程序组件,并向该程序组件转发该Intent消息。安卓操作系统或者其它应用程序还可以通过第一应用220调用第二应用240中的内容提供者组件246,也即安卓操作系统或者其它应用程序可以使用第二应用240中的内容提供者组件246所提供的数据。
第二应用240也可以通过第一应用220向安卓操作系统或者其它应用程序来发送Intent消息,第一应用220在接收到该Intent消息后,会转发给安卓操作系统,由安卓操作系统直接对该Intent消息进行处理或者由安卓操作系统转发给其它程序组件进行处理。第二应用240还可以通过第一应用220调用其它应用中的内容提供者组件,也即第二应用240可以使用其它应用中的内容提供者组件所提供的数据。
需要补充说明的是,第二应用240不需要与第一应用220有特别的关系,且第二应用240和第一应用220之间不需要实现特别的协议和接口,只要第二应用240是符合安卓操作系统的应用程序规范的应用,第二应用240的安装包是符合安卓操作系统的安装包规范的安装包即可。
图3是根据另一示例性实施例示出的一种应用程序运行方法的实施示意图。本实施例以该应用程序运行方法应用于移动终端中来举例说明,该移动终端可以是运行安卓操作系统的移动终端。该应用程序运行方法可以包括如下几个步骤。
在步骤301中,在已经运行的第一应用中,接收用于指示运行第二应用的触发信号。
第一应用是移动终端中已经安装并运行的应用程序。该第一应用可以实现成为综合应用、游戏应用、管理应用和系统应用等。
第一应用在移动终端中能够访问第二应用的安装包。第二应用在移动终端中无需安装,即可借助第一应用提供的运行环境进行运行。
移动终端在已经运行的第一应用中,接收用于指示运行第二应用的触发信号。该触发信号可以是触摸屏点击信号,比如:在第一应用中的用户界面中,可以显示第二应用的图标。当第二应用的图标被触摸屏上接收到的触摸信号所点击时,移动终端接收到用于指示运行第二应用的触发信号。
在步骤302中,通过第一应用加载并解析第二应用的安装包,得到第二应用的配置文件。
配置文件是每个第二应用的安装包中都存在的一个描述文件,通常是第二应用的安装包的根目录下的AndroidManifest.xml文件。该配置文件会提供第二应用中的相关应用信息。
移动终端通过第一应用加载第二应用的安装包,然后解析第二应用的安装包,从解析得到的文件中首先读取第二应用的配置文件。
在步骤303中,通过第一应用根据配置文件解析得到第二应用中的至少一个程序组件。
配置文件中会声明第二应用中所包括的各个程序组件,该程序组件包括活动组件、服务组件、内容提供者组件和广播接收器组件中的至少一种。
移动终端通过第一应用根据配置文件解析得到第二应用中的至少一个程序组件。
在步骤304中,通过第一应用根据配置文件将第二应用中的各个程序组件所监听的Intent消息类型在操作系统中进行注册。
配置文件中还会声明第二应用中的各个程序组件所监听的Intent消息类型。比如,活动组件A监听A类型的Intent消息,服务组件B监听B类型的Intent消息。
移动终端通过第一应用根据配置文件将第二应用中的各个程序组件所监听的Intent消息类型在操作系统中进行注册。
但需要说明的是,第一应用在注册第二应用中的程序组件所监听的Intent消息类型时,向安卓操作系统所注册的接收者是第一应用中的程序组件,而不是第二应用中的程序组件。比如,第二应用中的活动组件A监听A类型的Intent消息,第一应用会向安卓操作系统注册A类型的Intent消息,但是所注册的A类型的Intent消息的接收者是第一应用中的程序组件。
在步骤305中,通过第一应用提供的运行环境运行第二应用的程序组件。
移动终端通过第一应用提供的运行环境运行第二应用的程序组件。第二应用中的程序组件并不需要同时全部运行,仅根据需要运行所有的程序组件中的一部分即可。步骤305可以包括如下子步骤,如图4所示:
305a,移动终端通过第一应用确定第二应用中需要运行的程序组件;
305b,移动终端通过第一应用启动与程序组件对应的沙盒程序组件;
305c,移动终端通过第一应用中的沙盒程序组件所提供的上下文运行环境运行程序组件。
对于步骤305a,主要分为如下两种情况:
第一种情况:在启动第二程序时,移动终端通过第一应用接收第二应用反馈的默认运行组件,将默认运行组件确定为需要运行的程序组件。
默认运行组件通常是第二应用中主界面所对应的活动组件。在启动第二应用时,第二应用会按照自身的运行逻辑向第一应用反馈请求,该请求指示了默认运行组件,此时第一应用会将该默认运行组件确定为第二应用中当前需要运行的程序组件。
第二种情况:移动终端通过第一应用接收操作系统转发的Intent消息,该Intent消息是 符合已经注册的Intent消息类型的消息;在第二应用中用于监听该Intent消息的程序组件未启动时,将用于监听该Intent消息的程序组件确定为需要运行的程序组件。
在第二应用的运行过程中,第二应用中的程序组件、安卓操作系统的系统应用和其它应用中的程序组件都有可能向安卓操作系统发送Intent消息,在该Intent消息是第二应用中的程序组件所监听的Intent消息时,也即符合步骤304中所注册的Intent消息类型的Intent消息时,安卓操作系统会将该Intent消息发送给第一应用。此时,如果第二应用中用于监听Intent消息的程序组件未启动,第一应用会将第二应用中用于监听该Intent消息的程序组件确定为需要运行的程序组件。
对于步骤305b,在运行第二应用中的每个程序组件时,移动终端会首先在第一应用中启动相应的沙盒程序组件,该沙盒程序组件用于提供第二应用中的程序组件所需要的上下位环境。
比如,当运行第二应用中的活动组件A时,在第一应用中启动沙盒活动组件A(英文:BoxActivity A);又比如,当运行第二应用中的服务组件B时,在第一应用中启动沙盒服务组件B(英文:BoxServer B);再比如,当运行第二应用中的广播接收者组件C时,在第一应用中启动广播接收者组件C(英文:Box BroadcastReceiver C)等等。
也即,第二应用中的程序组件在运行时,在第一应用中都对应存在一个沙盒程序组件。
对于步骤305c,可以包括如下子步骤:
1、移动终端通过第一应用中的沙盒程序组件采用反射机制调用第二应用中的程序组件;
反射机制是Java编程领域中的一种机制,可以使第一应用在对第二应用中的程序组件并不了解的前提下,通过反射机制调用第二应用中的程序组件中的指定类。
2、移动终端通过第一应用中的沙盒程序组件所提供的上下文运行环境运行被调用的程序组件。
在步骤306中,通过第一应用为第二应用收发Intent消息;
移动终端还通过第一应用为第二应用接收和/或发送Intent消息。其中:
对于接收过程:移动终端通过第一应用接收安卓操作系统转发的Intent消息,该Intent消息是符合已经注册的Intent消息类型的消息,并在第二应用中用于监听Intent消息的程序组件已经启动时,将该Intent消息转发给第二应用中的该程序组件进行处理。
比如,第一应用接收到安卓操作系统转发的Intent消息,该Intent消息是第二应用中的广播接收器组件D所监听的Intent消息,则第一应用中与该广播接收器组件D对应的沙盒广播接收器组件可以调用该广播接收器组件D的onReceive方法,使得该广播接收器组件D对该intent消息进行处理。
对于发送过程:移动终端通过第一应用获取第二应用中一个程序组件所需要发送的 Intent消息,将该Intent消息转发给安卓操作系统。
比如,第二应用中的活动组件E需要发送Intent消息,则该活动组件E先把该Intent消息发送给第一应用中与该活动组件E所对应的沙盒活动组件,然后该沙盒活动组件可以通过拦截安卓操作系统的SendBroadcast方法,并通过SendBroadcast方法将该Intent消息转发给安卓操作系统。
上述过程,即为在第一应用中运行第二应用的过程,第二应用在本文中为泛指。第二应用可以指代不同的应用程序。
在步骤307中,通过第一应用对第二应用的不同版本的安装包进行管理操作,管理操作包括下载操作、更新操作和删除操作中的至少一种。
移动终端可以通过第一应用对多个第二应用进行管理。对于每个第二应用,移动终端可以通过第一应用对第二应用的不同版本的安装包进行管理操作,管理操作包括下载操作、更新操作和删除操作中的至少一种。
比如,第二应用存在1个新版本的安装包,该新版本的安装包具有更多的功能,第一应用可以自动下载并更新该第二应用为最新版本,该过程可以不需要用户参与,也即用户可以无感知而得到第二应用的更新。
综上所述,本实施例提供的应用程序运行方法,通过在已经运行的第一应用中加载并解析第二应用的安装包,得到第二应用的程序组件;通过第一应用提供的运行环境运行第二应用的程序组件;解决了应用程序必须通过将安装包进行安装后才能使用的问题;达到了第二应用无需安装,第二应用可以利用第一应用提供的运行环境来运行的效果。
本实施例提供的应用程序运行方法,还通过由第一应用中的沙盒程序组件来提供第二应用中相应程序组件的上下文运行环境,使得第二应用只要是符合安卓操作系统的应用规范的应用,就可以利用第一应用提供的运行环境来运行的效果。第一应用和第二应用之间无需有特别的关系,无需实现特别的协议的和接口。
本实施例提供的应用程序运行方法,还通过第一应用对第二应用的不同版本的安装包进行管理,能够很方便地对第二应用进行动态更新,而且更新过程不需要用户的任何参与,节省用户的操作和学习成本。
在一个实际的例子中,用户A是一个老年人,对使用安卓操作系统的智能手机需要较多的学习成本,甚至无法操作。而使用上述实施例所提供的应用程序运行方法时,智能手机中的第一应用可以提供第二应用的添加和删除界面。用户A仅需要在该第一应用中的用户界面中添加或删除第二应用即可,当需要使用第二应用时,不需要安装就可以直接在第一应用中打开第二应用进行使用。而且,第一应用还可以在后台自动更新第二应用的安装包为最 新版本。整个过程只需要用户A学会添加第二应用、删除第二应用和打开第二应用即可,用户A的学习成本较低,不需要经历安装第二应用、更新第二应用等繁琐的操作,极大地简化了用户的操作,提高了第二应用的使用效率。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图5示出了根据一示例性实施例示出的一种应用程序运行装置的框图。该应用程序运行装置可以通过软件、硬件或者两者的结合实现成为移动终端的全部或者一部分,该移动终端可以是运行有安卓操作系统的终端。该应用程序运行装置包括:信号接收模块520、安装包解析模块540和程序运行模块560;
信号接收模块520,被配置为在已经运行的第一应用中,接收用于指示运行第二应用的触发信号。
安装包解析模块540,被配置为通过第一应用加载并解析第二应用的安装包,得到第二应用的程序组件。
程序运行模块560,被配置为通过第一应用提供的运行环境运行第二应用的程序组件。
综上所述,本实施例提供的应用程序运行装置,通过在已经运行的第一应用中加载并解析第二应用的安装包,得到第二应用的程序组件;通过第一应用提供的运行环境运行第二应用的程序组件;解决了应用程序必须通过将安装包进行安装后才能使用的问题;达到了第二应用无需安装,第二应用可以利用第一应用提供的运行环境来运行的效果。
图6示出了根据一示例性实施例示出的一种应用程序运行装置的框图。该应用程序运行装置可以通过软件、硬件或者两者的结合实现成为移动终端的全部或者一部分,该移动终端可以是运行有安卓操作系统的终端。该应用程序运行装置包括:信号接收模块520、安装包解析模块540和程序运行模块560;
信号接收模块520,被配置为在已经运行的第一应用中,接收用于指示运行第二应用的触发信号。
安装包解析模块540,被配置为通过第一应用加载并解析第二应用的安装包,得到第二应用的程序组件。
程序运行模块560,被配置为通过第一应用提供的运行环境运行第二应用的程序组件。
可选地,程序运行模块560,包括:组件确定子模块562、沙盒启动子模块564和组件运行子模块566。
组件确定子模块562,被配置为通过第一应用确定第二应用中需要运行的程序组件。
沙盒启动子模块564,被配置为通过第一应用启动与程序组件对应的沙盒程序组件。
组件运行子模块566,被配置为通过第一应用中的沙盒程序组件所提供的上下文运行环境运行程序组件。
可选地,组件运行子模块562,包括:调用子模块和运行子模块;
调用子模块,被配置为通过第一应用中的沙盒程序组件采用反射机制调用程序组件。
运行子模块,被配置为通过第一应用中的沙盒程序组件所提供的上下文运行环境运行被调用的程序组件。
可选地,安装包解析模块540,包括:文件解析子模块542和组件解析子模块544;
文件解析子模块542,被配置为通过第一应用加载并解析第二应用的安装包,得到第二应用的配置文件;
组件解析子模块544,被配置为通过第一应用根据配置文件解析得到第二应用中的至少一个程序组件,程序组件包括活动组件、服务组件、内容提供者组件和广播接收器组件中的至少一种。
可选地,该装置,还包括:消息注册模块530,被配置为通过第一应用根据配置文件将第二应用中的各个程序组件所监听的意图Intent消息类型在操作系统中进行注册。
可选地,组件确定子模块562,包括:第一确定子模块、消息接收子模块和第二确定子模块;
第一确定子模块,被配置为在启动第二程序时,通过第一应用接收第二应用反馈的默认运行组件,将默认运行组件确定为需要运行的程序组件。
消息接收子模块,被配置为通过第一应用接收操作系统转发的Intent消息,Intent消息是符合已经注册的Intent消息类型的消息;
第二确定子模块,被配置为在第二应用中用于监听Intent消息的程序组件未启动时,将用于监听Intent消息的程序组件确定为需要运行的程序组件。
可选地,该装置还包括:
第一转发模块552,被配置为通过第一应用接收操作系统转发的Intent消息,Intent消息是符合已经注册的Intent消息类型的消息,并在第二应用中用于监听Intent消息的程序组件启动时,将Intent消息转发给程序组件进行处理;
和/或,
第二转发模块554,被配置为通过第一应用获取第二应用中一个程序组件所需要发送的Intent消息,将Intent消息转发给操作系统。
可选地,该装置还包括:
安装包管理模块570,被配置为通过第一应用对第二应用的不同版本的安装包进行管理 操作,管理操作包括下载操作、更新操作和删除操作中的至少一种。
综上所述,本实施例提供的应用程序运行装置,通过在已经运行的第一应用中加载并解析第二应用的安装包,得到第二应用的程序组件;通过第一应用提供的运行环境运行第二应用的程序组件;解决了应用程序必须通过将安装包进行安装后才能使用的问题;达到了第二应用无需安装,第二应用可以利用第一应用提供的运行环境来运行的效果。
本实施例提供的应用程序运行装置,还通过由第一应用中的沙盒程序组件来提供第二应用中相应程序组件的上下文运行环境,使得第二应用只要是符合安卓操作系统的应用规范的应用,就可以利用第一应用提供的运行环境来运行的效果。第一应用和第二应用之间无需有特别的关系,无需实现特别的协议的和接口。
本实施例提供的应用程序运行装置,还通过第一应用对第二应用的不同版本的安装包进行管理,能够很方便地对第二应用进行动态更新,而且更新过程不需要用户的任何参与,节省用户的操作和学习成本。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种应用程序运行装置700的框图。例如,装置700可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图7,装置700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,输入/输出(I/O)的接口712,传感器组件714,以及通信组件716。
处理组件702通常控制装置700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
存储器704被配置为存储各种类型的数据以支持在装置700的操作。这些数据的示例包括用于在装置700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器, 快闪存储器,磁盘或光盘。
电源组件706为装置700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为装置700生成、管理和分配电力相关联的组件。
多媒体组件708包括在所述装置700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括一个前置摄像头和/或后置摄像头。当装置700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(MIC),当装置700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
I/O接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件714包括一个或多个传感器,用于为装置700提供各个方面的状态评估。例如,传感器组件714可以检测到装置700的打开/关闭状态,组件的相对定位,例如所述组件为装置700的显示器和小键盘,传感器组件714还可以检测装置700或装置700一个组件的位置改变,用户与装置700接触的存在或不存在,装置700方位或加速/减速和装置700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件716被配置为便于装置700和其他设备之间有线或无线方式的通信。装置700可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由装置700的处理器720执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置700的处理器执行时,使得装置700能够执行一种图1或者图3所示实施例所提供的应用程序运行方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (19)

  1. 一种应用程序运行方法,其特征在于,所述方法包括:
    在已经运行的第一应用中,接收用于指示运行第二应用的触发信号;
    通过所述第一应用加载并解析所述第二应用的安装包,得到所述第二应用的程序组件;
    通过所述第一应用提供的运行环境运行所述第二应用的程序组件。
  2. 根据权利要求1所述的方法,其特征在于,所述通过所述第一应用提供的运行环境运行所述第二应用的程序组件,包括:
    通过所述第一应用确定所述第二应用中需要运行的程序组件;
    通过所述第一应用启动与所述程序组件对应的沙盒程序组件;
    通过所述第一应用中的所述沙盒程序组件所提供的上下文运行环境运行所述程序组件。
  3. 根据权利要求2所述的方法,其特征在于,所述通过所述第一应用中的所述沙盒程序组件所提供的上下文运行环境运行所述程序组件,包括:
    通过所述第一应用中的所述沙盒程序组件采用反射机制调用所述程序组件;
    通过所述第一应用中的所述沙盒程序组件所提供的上下文运行环境运行被调用的所述程序组件。
  4. 根据权利要求2所述的方法,其特征在于,所述通过所述第一应用加载并解析所述第二应用的安装包,得到所述第二应用的程序组件,包括:
    通过所述第一应用加载并解析所述第二应用的安装包,得到所述第二应用的配置文件;
    通过所述第一应用根据所述配置文件解析得到所述第二应用中的至少一个程序组件,所述程序组件包括活动组件、服务组件、内容提供者组件和广播接收器组件中的至少一种。
  5. 根据权利要求4所述的方法,其特征在于,所述方法,还包括:
    通过所述第一应用根据所述配置文件将所述第二应用中的各个程序组件所监听的意图Intent消息类型在操作系统中进行注册。
  6. 根据权利要求2所述的方法,其特征在于,所述通过所述第一应用确定所述第二应用中需要运行的程序组件,包括:
    在启动所述第二程序时,通过所述第一应用接收所述第二应用反馈的默认运行组件,将所述默认运行组件确定为需要运行的程序组件。
  7. 根据权利要求5所述的方法,其特征在于,所述通过所述第一应用确定所述第二应用中需要运行的程序组件,包括:
    通过所述第一应用接收所述操作系统转发的Intent消息,所述Intent消息是符合已经注册的所述Intent消息类型的消息;
    在所述第二应用中用于监听所述Intent消息的程序组件未启动时,将所述用于监听所述Intent消息的程序组件确定为需要运行的程序组件。
  8. 根据权利要求5所述的方法,其特征在于,所述方法还包括:
    通过所述第一应用接收所述操作系统转发的Intent消息,所述Intent消息是符合已经注册的所述Intent消息类型的消息,并在所述第二应用中用于监听所述Intent消息的程序组件启动时,将所述Intent消息转发给所述程序组件进行处理;
    和/或,
    通过所述第一应用获取所述第二应用中一个程序组件所需要发送的Intent消息,将所述Intent消息转发给所述操作系统。
  9. 根据权利要求1至8任一所述的方法,其特征在于,所述方法还包括:
    通过所述第一应用对所述第二应用的不同版本的安装包进行管理操作,所述管理操作包括下载操作、更新操作和删除操作中的至少一种。
  10. 一种应用程序运行装置,其特征在于,所述装置包括:
    信号接收模块,被配置为在已经运行的第一应用中,接收用于指示运行第二应用的触发信号;
    安装包解析模块,被配置为通过所述第一应用加载并解析所述第二应用的安装包,得到所述第二应用的程序组件;
    程序运行模块,被配置为通过所述第一应用提供的运行环境运行所述第二应用的程序组件。
  11. 根据权利要求10所述的装置,其特征在于,所述程序运行模块,包括:
    组件确定子模块、沙盒启动子模块和组件运行子模块;
    所述组件确定子模块,被配置为通过所述第一应用确定所述第二应用中需要运行的程序组件;
    所述沙盒启动子模块,被配置为通过所述第一应用启动与所述程序组件对应的沙盒程序组件;
    所述组件运行子模块,被配置为通过所述第一应用中的所述沙盒程序组件所提供的上下文运行环境运行所述程序组件。
  12. 根据权利要求11所述的装置,其特征在于,所述组件运行子模块,包括:调用子模块和运行子模块;
    所述调用子模块,被配置为通过所述第一应用中的所述沙盒程序组件采用反射机制调用所述程序组件;
    所述运行子模块,被配置为通过所述第一应用中的所述沙盒程序组件所提供的上下文运 行环境运行被调用的所述程序组件。
  13. 根据权利要求11所述的装置,其特征在于,所述安装包解析模块,包括:文件解析子模块和组件解析子模块;
    所述文件解析子模块,被配置为通过所述第一应用加载并解析所述第二应用的安装包,得到所述第二应用的配置文件;
    所述组件解析子模块,被配置为通过所述第一应用根据所述配置文件解析得到所述第二应用中的至少一个程序组件,所述程序组件包括活动组件、服务组件、内容提供者组件和广播接收器组件中的至少一种。
  14. 根据权利要求13所述的装置,其特征在于,所述装置,还包括:
    消息注册模块,被配置为通过所述第一应用根据所述配置文件将所述第二应用中的各个程序组件所监听的意图Intent消息类型在操作系统中进行注册。
  15. 根据权利要求11所述的装置,其特征在于,所述组件确定子模块,包括:第一确定子模块;
    所述第一确定子模块,被配置为在启动所述第二程序时,通过所述第一应用接收所述第二应用反馈的默认运行组件,将所述默认运行组件确定为需要运行的程序组件。
  16. 根据权利要求14所述的装置,其特征在于,所述组件确定子模块,包括:消息接收子模块和第二确定子模块;
    所述消息接收子模块,被配置为通过所述第一应用接收操作系统转发的Intent消息,所述Intent消息是符合已经注册的所述Intent消息类型的消息;
    所述第二确定子模块,被配置为在所述第二应用中用于监听所述Intent消息的程序组件未启动时,将所述用于监听所述Intent消息的程序组件确定为需要运行的程序组件。
  17. 根据权利要求14所述的装置,其特征在于,所述装置还包括:
    第一转发模块,被配置为通过所述第一应用接收所述操作系统转发的Intent消息,所述Intent消息是符合已经注册的所述Intent消息类型的消息,并在所述第二应用中用于监听所述Intent消息的程序组件启动时,将所述Intent消息转发给所述程序组件进行处理;
    和/或,
    第二转发模块,被配置为通过所述第一应用获取所述第二应用中一个程序组件所需要发送的Intent消息,将所述Intent消息转发给所述操作系统。
  18. 根据权利要求9至17任一所述的装置,其特征在于,所述装置还包括:
    安装包管理模块,被配置为通过所述第一应用对所述第二应用的不同版本的安装包进行管理操作,所述管理操作包括下载操作、更新操作和删除操作中的至少一种。
  19. 一种应用程序运行装置,其特征在于,包括:
    处理器;
    用于存储所述处理器的可执行指令的存储器;
    其中,所述处理器被配置为:
    在已经运行的第一应用中,接收用于指示运行第二应用的触发信号;
    通过所述第一应用加载并解析所述第二应用的安装包,得到所述第二应用的程序组件;
    通过所述第一应用提供的运行环境运行所述第二应用的程序组件。
PCT/CN2015/071360 2014-09-16 2015-01-22 应用程序运行方法及装置 Ceased WO2016041312A1 (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020157009920A KR20160046751A (ko) 2014-09-16 2015-01-22 애플리케이션 프로그램을 실행하기 위한 방법 및 기기
BR112015008624A BR112015008624A2 (pt) 2014-09-16 2015-01-22 método e aparelho para executar aplicativo
JP2016548410A JP6068736B2 (ja) 2014-09-16 2015-01-22 アプリケーションプログラムの実行方法および装置
MX2015003752A MX356175B (es) 2014-09-16 2015-01-22 Metodo y aparato para ejecutar un programa de aplicacion.
RU2015113732A RU2647625C2 (ru) 2014-09-16 2015-01-22 Способ и устройство для запуска прикладной программы
US14/693,872 US9870239B2 (en) 2014-09-16 2015-04-23 Method and device for running application program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410470307.8A CN104267977B (zh) 2014-09-16 2014-09-16 应用程序运行方法及装置
CN201410470307.8 2014-09-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/693,872 Continuation US9870239B2 (en) 2014-09-16 2015-04-23 Method and device for running application program

Publications (1)

Publication Number Publication Date
WO2016041312A1 true WO2016041312A1 (zh) 2016-03-24

Family

ID=52159501

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/071360 Ceased WO2016041312A1 (zh) 2014-09-16 2015-01-22 应用程序运行方法及装置

Country Status (8)

Country Link
EP (1) EP2998899A1 (zh)
JP (1) JP6068736B2 (zh)
KR (1) KR20160046751A (zh)
CN (1) CN104267977B (zh)
BR (1) BR112015008624A2 (zh)
MX (1) MX356175B (zh)
RU (1) RU2647625C2 (zh)
WO (1) WO2016041312A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870239B2 (en) 2014-09-16 2018-01-16 Xiaomi Inc. Method and device for running application program
CN104267977B (zh) * 2014-09-16 2017-12-29 小米科技有限责任公司 应用程序运行方法及装置
CN105204894B (zh) * 2015-08-28 2019-07-23 小米科技有限责任公司 安装智能设备的插件的方法和装置
JP6800620B2 (ja) * 2016-06-06 2020-12-16 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
CN107515780B (zh) * 2016-06-17 2021-03-16 斑马智行网络(香港)有限公司 应用间调用关系的确定方法、调用规则生成方法及装置
CN106201508B (zh) * 2016-07-08 2020-06-05 北京金山安全软件有限公司 一种信息显示方法、装置及电子设备
CN106528206A (zh) * 2016-10-12 2017-03-22 北京奇虎科技有限公司 应用的启动控制方法、装置和加固应用安装包的装置
CN107992313A (zh) * 2016-10-25 2018-05-04 航天信息软件技术有限公司 软件在线升级方法及装置
CN106598662B (zh) * 2016-12-08 2020-04-10 蓝信移动(北京)科技有限公司 基于android的应用加载方法及装置
CN106775862A (zh) * 2016-12-08 2017-05-31 蓝信工场(北京)科技有限公司 应用加载方法及装置
CN108255545B (zh) * 2016-12-28 2022-09-02 阿里巴巴集团控股有限公司 组件间的功能调用方法、装置及组件化架构系统
CN108287758A (zh) * 2017-01-09 2018-07-17 阿里巴巴集团控股有限公司 一种应用资源管理方法、使用方法及装置
CN106874746B (zh) * 2017-01-13 2020-01-17 北京安云世纪科技有限公司 应用程序调用方法、装置和移动终端
CN107402752B (zh) * 2017-06-09 2021-07-27 中国邮政储蓄银行股份有限公司 应用的定时触发方法和装置
EP3657326B1 (en) 2017-08-08 2023-05-10 Huawei Technologies Co., Ltd. Broadcast event processing method and device
CN108038010A (zh) * 2017-12-25 2018-05-15 青岛海信电器股份有限公司 安卓系统启动阶段广播发送方法、装置和终端
CN108108171B (zh) * 2018-01-18 2019-02-26 西南大学 一种手机远程单片机编译运行系统
CN108595220B (zh) * 2018-04-25 2021-04-16 上海掌门科技有限公司 应用组件的处理方法、设备及计算机可读存储介质
KR102081692B1 (ko) * 2018-11-13 2020-04-27 주식회사 아게르냐 설정된 언어에 맞추어 농어민 정보를 제공하는 터치스크린 키보드
CN110083695A (zh) * 2019-05-10 2019-08-02 百度在线网络技术(北京)有限公司 技能服务调用方法、装置及存储介质
CN110175082A (zh) * 2019-05-31 2019-08-27 三角兽(北京)科技有限公司 通知消息的处理方法、装置、电子设备及存储介质
KR102713970B1 (ko) 2019-07-10 2024-10-08 삼성전자주식회사 어플리케이션을 관리하는 방법 및 그 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593100A (zh) * 2008-05-30 2009-12-02 爱思开电讯投资(中国)有限公司 运行迷你应用程序的方法、执行该方法的装置及机器可读介质
CN102722392A (zh) * 2012-06-07 2012-10-10 腾讯科技(深圳)有限公司 软件运行方法和系统
CN103150166A (zh) * 2013-03-08 2013-06-12 深圳市奇维百纳网络有限公司 一种与设备同步的自助创建移动应用程序的方法
CN104267977A (zh) * 2014-09-16 2015-01-07 小米科技有限责任公司 应用程序运行方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0993631B1 (en) * 1998-05-06 2009-07-22 Sun Microsystems, Inc. Processing apparatus and method
US8196131B1 (en) * 2010-12-17 2012-06-05 Google Inc. Payment application lifecycle management in a contactless smart card
JP5410471B2 (ja) * 2011-05-24 2014-02-05 株式会社Nttドコモ 複数のアプリケーションを連携起動する通信端末、連携起動方法及びコンピュータプログラム
US9081959B2 (en) * 2011-12-02 2015-07-14 Invincea, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
JP5723760B2 (ja) * 2011-12-28 2015-05-27 Kddi株式会社 アプリケーション解析装置、アプリケーション解析システム、およびプログラム
RU2477520C1 (ru) * 2012-03-14 2013-03-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ динамической адаптации функционала антивирусного приложения на основе конфигурации устройства

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593100A (zh) * 2008-05-30 2009-12-02 爱思开电讯投资(中国)有限公司 运行迷你应用程序的方法、执行该方法的装置及机器可读介质
CN102722392A (zh) * 2012-06-07 2012-10-10 腾讯科技(深圳)有限公司 软件运行方法和系统
CN103150166A (zh) * 2013-03-08 2013-06-12 深圳市奇维百纳网络有限公司 一种与设备同步的自助创建移动应用程序的方法
CN104267977A (zh) * 2014-09-16 2015-01-07 小米科技有限责任公司 应用程序运行方法及装置

Also Published As

Publication number Publication date
JP2016534487A (ja) 2016-11-04
MX2015003752A (es) 2017-03-20
CN104267977B (zh) 2017-12-29
MX356175B (es) 2018-05-17
EP2998899A1 (en) 2016-03-23
RU2015113732A (ru) 2016-11-10
CN104267977A (zh) 2015-01-07
KR20160046751A (ko) 2016-04-29
RU2647625C2 (ru) 2018-03-16
JP6068736B2 (ja) 2017-01-25
BR112015008624A2 (pt) 2017-07-04

Similar Documents

Publication Publication Date Title
WO2016041312A1 (zh) 应用程序运行方法及装置
US9870239B2 (en) Method and device for running application program
CN107329742B (zh) 软件开发工具包调用方法及装置
JP6189000B2 (ja) アプリケーションのインストールパッケージの処理方法、装置、プログラム及び記録媒体
CN107066172B (zh) 移动终端的文件传输方法及装置
WO2017071096A1 (zh) 应用程序更新方法、装置及系统
WO2017041397A1 (zh) 设备控制方法及装置
CN105808305B (zh) 静态资源的加载方法和装置
CN105446768B (zh) 系统升级方法及装置
WO2016150104A1 (zh) 应用主题的加载方法及装置
CN107220059B (zh) 应用界面的显示方法及装置
CN115203618A (zh) 页面处理方法、装置、电子设备及存储介质
CN107632835B (zh) 应用安装方法及装置
CN107463372B (zh) 一种数据驱动的页面更新方法和装置
CN109117144A (zh) 页面处理方法、装置、终端及存储介质
CN107911482A (zh) 目标应用打开方法及装置
CN108108206A (zh) 移动支付接入方法及装置
CN107463414B (zh) 应用安装方法及装置
CN110221813A (zh) 应用的数据连接建立方法、装置、存储介质和电子设备
US11394818B2 (en) System updating method and device, and storage medium
CN113778707A (zh) 前端框架的加载方法、装置、电子设备及存储介质
CN107391685A (zh) 页面显示方法及装置
CN108958943B (zh) 内存释放方法及装置
CN107257384B (zh) 服务状态监控方法及装置
CN107315590B (zh) 通知消息处理方法及装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: MX/A/2015/003752

Country of ref document: MX

ENP Entry into the national phase

Ref document number: 2015113732

Country of ref document: RU

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 20157009920

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2016548410

Country of ref document: JP

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112015008624

Country of ref document: BR

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

Ref document number: 15842991

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 112015008624

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20150416

122 Ep: pct application non-entry in european phase

Ref document number: 15842991

Country of ref document: EP

Kind code of ref document: A1