WO2023109607A1 - 应用界面跨设备显示方法、设备*** - Google Patents

应用界面跨设备显示方法、设备*** Download PDF

Info

Publication number
WO2023109607A1
WO2023109607A1 PCT/CN2022/137134 CN2022137134W WO2023109607A1 WO 2023109607 A1 WO2023109607 A1 WO 2023109607A1 CN 2022137134 W CN2022137134 W CN 2022137134W WO 2023109607 A1 WO2023109607 A1 WO 2023109607A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
data
interface
user
display
Prior art date
Application number
PCT/CN2022/137134
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 WO2023109607A1 publication Critical patent/WO2023109607A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • 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

  • the embodiments of the present application relate to the field of electronic devices, and in particular to a method and a device system for displaying an application interface across devices.
  • the application programs (application, APP) installed on the terminal device are diversified, and may be the same or different.
  • the application interface is displayed across devices, such as launching applications across devices or the application program interface (hereinafter referred to as the application interface) is migrated between multiple terminal devices across devices (for example, the interface of application A on the second device is migrated displayed on the first device) can provide users with a convenient and fast experience.
  • the first device needs to be satisfied that the application A is also installed, so that the application can be launched across devices or the interface of the application A can be migrated from the second device to the first device for display.
  • this method takes a long time to complete launching applications across devices or migrating application interfaces.
  • the user does not wish to have too many APPs installed on the device.
  • This application provides an application interface cross-device display method and a device system, which can conveniently and quickly realize cross-device application operation.
  • a method for displaying an application interface across devices comprising: a first device establishes a communication connection with a second device; the first device obtains from the second device application data and application data of a first application installed in the second device The user data of the first application; wherein the application data includes the application package required by the second device to run the first application; the first device starts the the first application and display the corresponding interface of the first application.
  • the terminal device such as the first device
  • the terminal device can obtain the installed first application of the second device from other terminal devices, such as the second device, without installing the application program of the first application.
  • the application data and user data run the first application and display the corresponding interface of the first application, smoothly realize the cross-device operation of the application and the cross-device display of the application interface, and are consistent with the application function and interface display of the native application.
  • the method can realize cross-device application running conveniently and quickly, and improve user experience.
  • the user data of the first application includes account information of the first application in the second device.
  • the first device can directly log in the corresponding account when running the first application across devices, thereby running the first application in guest mode.
  • the method can be applied to application interface migration, application interface connection and other scenarios.
  • the user data of the first application includes historical usage data corresponding to the first application in the second device.
  • the first device can synchronize the historical usage records (such as chat records, play records, browsing records, etc.) when running the first application across devices.
  • the method can be applied to application interface migration, application interface connection and other scenarios.
  • the above-mentioned first device starts the first application and displays a corresponding interface of the first application according to the application data of the first application and user data of the first application acquired from the second device, including: A device starts the first application according to the application data of the first application obtained from the second device; the first device loads the user data of the first application to the first application, and continues the interface of the first application displayed on the second device.
  • the first device starts the first application according to the application data of the first application installed on the second device obtained from the second device, and according to the user data of the first application obtained from the second device, loads the corresponding interface, conveniently and quickly realize cross-device application running.
  • the above-mentioned first device starts the first application according to the application data of the first application obtained from the second device, including: the application data of the first application to be obtained by the first device from the second device
  • the first application is loaded into the memory of the first device, and the first application is started.
  • the first device directly loads the application data of the first application installed on the second device obtained from the second device into the memory, so as to realize the convenient and fast cross-device startup and operation of the first application.
  • the above method further includes: the first device acquires service data from the second device, where the service data includes information about applications installed in the second device Installing package data; the first device displays an application list interface according to the business data, and the application list interface is used to represent the applications installed in the second device.
  • the first device displays the application icons of multiple applications installed on the second device according to the business data obtained from the second device, so as to provide users with the ability to quickly and cross-device run any application in the second device on the first device experience.
  • the above method further includes: the first device acquires service data from the second device, where the service data includes the application currently running in the second device the installation package data; the first device displays an application list interface according to the business data, and the application list interface is used to represent the applications currently running in the second device.
  • the first device displays the application icons of multiple applications running on the second device according to the business data obtained from the second device, so as to provide users with a quick way to run any application running on the second device across devices on the first device use experience.
  • the acquisition of the application data of the first application and the user data of the first application by the first device from the second device includes: responding to receiving an operation of opening the first application on the application list interface by the user , the first device obtains the application data of the first application and the user data of the first application from the second device.
  • the solution provided by the present application can run the user experience of the application in the second device across devices on the first device according to the shortcut trigger operation of the user on the first device.
  • the application data of the first application and the user data of the first application are sent by the second device to the second device in response to receiving the user's selection operation on the first application on the transferable application list interface A device; wherein, the above portable application list interface is used to represent the applications installed in the second device or the applications currently running on the second device.
  • the solution provided by the present application can run the user experience of the application in the second device across devices on the first device according to the shortcut trigger operation of the user on the second device.
  • the above-mentioned first device obtains the application data of the first application from the second device, including: the application data obtained by the first device from the second device according to the data transmission policy determined by the user; wherein, the data
  • the transmission strategy includes: transmitting all application data, first transmitting the application data of the minimum executable version of the first application; the application data of the minimum executable version of the first application includes files necessary for starting the first application.
  • This application does not limit the specific transmission method of the second device to transmit the application data to the first device, which depends on the specific settings.
  • the first device obtaining the application data of the first application from the second device includes: the first device obtaining a first part of the application data from the second device, the first part including the minimum The executable version of the application data; the first device obtains the second part of the application data from the second device.
  • the acquiring the second part of the application data by the first device from the second device includes: in response to detecting the preset alarm, the first device acquires the second part of the application data from the second device; Wherein, the preset alarm includes a missing code segment alarm and/or an alarm that the file cannot be loaded.
  • the second device obtains the corresponding data according to the demand while starting, which can solve the problem that the first device responds to the user's opening operation of the first application on the application list interface due to the long time spent in data transmission due to the large amount of application data. untimely problem.
  • the above method further includes: when receiving verification of the preset information, the first device acquires corresponding information from the second device to complete the verification.
  • the foregoing preset information includes information related to hardware.
  • the application data of the above-mentioned first application further includes one or more of the following: application information, permission information, resource files, and library files.
  • a method for displaying an application interface across devices comprising: establishing a communication connection between the second device and the first device; and sending the application data of the first application running in the second device to the first device by the second device and the user data of the first application; the application data includes the application package required by the second device to run the first application; wherein, the first application runs in the second device, and the first device does not have the first application installed; the first application The application data of the first application and the user data of the first application are used by the first device to start the first application based on the application data of the first application, and to continue the interface of the first application displayed on the first device based on the user data of the first application.
  • the terminal device such as the first device
  • the terminal device can use the first application running on the second device obtained from other terminal devices, such as the second device, without installing the application program of the first application.
  • the application data and user data run the first application and display the corresponding interface of the first application, smoothly realize the cross-device operation of the application and the cross-device display of the application interface, and are consistent with the application function and interface display of the native application.
  • the method can realize cross-device application running conveniently and quickly, and improve user experience.
  • the user data of the first application includes account information of the first application in the second device.
  • the first device can directly log in the corresponding account when running the first application across devices, thereby running the first application in guest mode.
  • the method can be applied to application interface migration, application interface connection and other scenarios.
  • the user data of the first application includes historical usage data corresponding to the first application in the second device.
  • the first device can synchronize historical usage records (such as chat records, play records, browsing records, etc.)
  • the method can be applied to scenarios such as application interface migration and application interface connection.
  • the above method further includes: the second device sends service data to the first device, where the service data includes information about applications installed in the second device.
  • the installation package data wherein, the service data is used by the first device to display an application list interface to the user, and the application list interface is used to represent the applications installed in the second device.
  • the second device facilitates the first device to display the application icons of multiple applications installed on the second device according to the service data, providing users with a quick way to run the second application on the first device across devices. The experience of using any application on the device.
  • the above-mentioned second device sending the application data of the first application and the user data of the first application to the first device includes: responding to receiving the selection operation, the second device sends the application data of the first application and the user data of the first application to the first device; wherein, the above-mentioned transferable application list interface is used to indicate the applications installed in the second device or the applications currently running on the second device Applications.
  • the solution provided by the present application can run the user experience of the application in the second device across devices on the first device according to the shortcut trigger operation of the user on the first device.
  • the above-mentioned second device sending the application data of the first application and the user data of the first application to the first device includes: the second device sends the first application data to the first device according to a data transmission strategy determined by the user.
  • the data includes files necessary to start the first application. This application does not limit the specific transmission method of the second device to transmit the application data to the first device, which depends on the specific settings.
  • the above-mentioned second device sending the application data of the first application to the first device includes: the second device sending a first part of the application data to the first device, the first part including the minimum possible The running version of the application data; the second device sends the second part of the application data to the first device.
  • the application data of the above-mentioned first application further includes one or more of the following: application information, permission information, resource files, and library files.
  • a first device in a third aspect, includes: a connection establishing unit, configured to establish a communication connection with a second device; a transceiver unit, configured to acquire a first application installed in the second device from the second device The application data of the first application and the user data of the first application; wherein the application data includes the application package required by the second device to run the first application; the processing unit is configured to obtain the application data of the first application and the first application from the second device The user data of the application is used to start the first application and display the corresponding interface of the first application.
  • the terminal device such as the first device
  • the terminal device can obtain the installed first application of the second device from other terminal devices, such as the second device, without installing the application program of the first application.
  • the application data and user data run the first application and display the corresponding interface of the first application, smoothly realize the cross-device operation of the application and the cross-device display of the application interface, and are consistent with the application function and interface display of the native application.
  • the method can realize cross-device application running conveniently and quickly, and improve user experience.
  • the user data of the first application includes account information of the first application in the second device.
  • the first device can directly log in to the corresponding account when running the first application across devices, thereby running the first application in guest mode.
  • the method can be applied to application interface migration, application interface connection and other scenarios.
  • the user data of the first application includes historical usage data corresponding to the first application in the second device.
  • the first device can synchronize historical usage records (such as chat records, play records, browsing records, etc.)
  • the method can be applied to application interface migration, application interface connection and other scenarios.
  • the processing unit is specifically configured to: start the first application according to the application data of the first application acquired from the second device; and load the user data of the first application to the first application, The interface of the first application displayed on the second device is continued.
  • the first device starts the first application according to the application data of the first application installed on the second device obtained from the second device, and according to the user data of the first application obtained from the second device, loads the corresponding interface, conveniently and quickly realize cross-device application running.
  • the transceiver unit is further configured to: acquire service data from the second device, where the service data includes installation of applications installed in the second device Package data;
  • the above-mentioned first device further includes: a display unit, configured to display an application list interface according to the service data, and the application list interface is used to represent the applications installed in the second device.
  • the first device displays the application icons of multiple applications installed on the second device according to the business data obtained from the second device, so as to provide users with the ability to quickly and cross-device run any application in the second device on the first device experience.
  • the transceiver unit is further configured to: acquire service data from the second device, where the service data includes information about an application currently running in the second device Install package data;
  • the above-mentioned first device further includes: a display unit, configured to display an application list interface according to the business data, where the application list interface is used to represent the applications currently running in the second device.
  • the first device displays the application icons of multiple applications running on the second device according to the business data obtained from the second device, so as to provide users with a quick way to run any application running on the second device across devices on the first device use experience.
  • the above-mentioned transceiver unit is specifically configured to: after the first device receives the user's opening operation of the first application on the application list interface, obtain the application data of the first application and the first App user data.
  • the solution provided by the present application can run the user experience of the application in the second device across devices on the first device according to the shortcut trigger operation of the user on the first device.
  • the application data of the first application and the user data of the first application are sent by the second device to the second device in response to receiving the user's selection operation on the first application on the transferable application list interface A device; wherein, the above portable application list interface is used to represent the applications installed in the second device or the applications currently running on the second device.
  • the solution provided by the present application can run the user experience of the application in the second device across devices on the first device according to the shortcut trigger operation of the user on the second device.
  • the above-mentioned transceiver unit is specifically configured to: obtain application data from the second device according to a data transmission policy determined by the user; wherein, the data transmission policy includes: transmitting all application data, first transmitting the first application data
  • the application data of the minimum executable version of the first application; the application data of the minimum executable version of the first application includes files necessary to start the first application.
  • This application does not limit the specific transmission method of the second device to transmit the application data to the first device, which depends on the specific settings.
  • the above-mentioned transceiver unit is specifically configured to: firstly, obtain the first part of the application data from the second device, the first part including the application data of the minimum executable version of the first application; then, obtain the first part of the application data from the second device; The device gets the second part of the application data.
  • the device gets the second part of the application data.
  • the above-mentioned transceiving unit is specifically configured to: obtain the second part of the application data from the second device after the first device detects a preset warning; wherein the preset warning includes a missing warning of a code segment and/or file could not load warning.
  • the second device obtains the corresponding data according to the demand while starting, which can solve the problem that the first device responds to the user's opening operation of the first application on the application list interface due to the long time spent in data transmission due to the large amount of application data. untimely problem.
  • the above-mentioned transceiving unit is further configured to: when the first device receives verification of the preset information, obtain corresponding information from the second device to complete the verification.
  • the foregoing preset information includes information related to hardware.
  • the application data of the above-mentioned first application further includes one or more of the following: application information, permission information, resource files, and library files.
  • a second device in a fourth aspect, includes: a connection establishing unit, configured to establish a communication connection with the first device; a transceiver unit, configured to send the first device running in the second device to the first device
  • the application data of the application and the user data of the first application includes the application package required by the second device to run the first application; wherein, the first application runs on the second device, and the first device does not install the first application ;
  • the application data of the first application and the user data of the first application are used for the first device to start the first application based on the application data of the first application, and to continue the first application displayed on the first device based on the user data of the first application interface.
  • the terminal device such as the first device
  • the terminal device can use the first application running on the second device obtained from other terminal devices, such as the second device, without installing the application program of the first application.
  • the application data and user data run the first application and display the corresponding interface of the first application, smoothly realize the cross-device operation of the application and the cross-device display of the application interface, and are consistent with the application function and interface display of the native application.
  • the method can realize cross-device application running conveniently and quickly, and improve user experience.
  • the user data of the first application includes account information of the first application in the second device.
  • the first device can directly log in the corresponding account when running the first application across devices, thereby running the first application in guest mode.
  • the method can be applied to application interface migration, application interface connection and other scenarios.
  • the user data of the first application includes historical usage data corresponding to the first application in the second device.
  • the first device can synchronize historical usage records (such as chat records, play records, browsing records, etc.)
  • the method can be applied to application interface migration, application interface connection and other scenarios.
  • the transceiver unit is further configured to: send service data to the first device, where the service data includes the installation of the application installed in the second device Package data; wherein, the service data is used by the first device to display an application list interface to the user, and the application list interface is used to represent the applications installed in the first device.
  • the second device facilitates the first device to display the application icons of multiple applications installed on the second device according to the service data, providing users with a quick way to run the second application on the first device across devices. The experience of using any application on the device.
  • the above-mentioned transceiving unit is specifically configured to: send the application data of the first application to the first device after the second device receives the user's selection operation on the first application on the transferable application list interface and user data of the first application; wherein, the above-mentioned transferable application list interface is used to indicate the applications installed in the second device or the applications currently running on the second device.
  • the solution provided by the present application can run the user experience of the application in the second device across devices on the first device according to the shortcut trigger operation of the user on the first device.
  • the above-mentioned transceiver unit is specifically configured to: send the application data of the first application and the user data of the first application to the first device according to a data transmission strategy determined by the user; wherein, the data transmission strategy includes: All application data are transmitted, and the application data of the minimum executable version of the first application is transmitted first; the application data of the minimum executable version of the first application includes files necessary for starting the first application.
  • This application does not limit the specific transmission method of the second device to transmit the application data to the first device, which depends on the specific settings.
  • the above-mentioned transceiver unit is specifically configured to: firstly, send the first part of the application data to the first device, where the first part includes the application data of the minimum executable version of the first application; then, send the first part of the application data to the first device Send the second part of the application data.
  • the application data of the above-mentioned first application further includes one or more of the following: application information, permission information, resource files, and library files.
  • a first device in a fifth aspect, includes: a memory for storing a computer program; a transceiver for receiving or sending a radio signal; a processor for executing the computer program, so that the first The device executes the method in any possible implementation manner of the first aspect.
  • a second device includes: a memory for storing a computer program; a transceiver for receiving or sending a radio signal; a processor for executing the computer program, so that the second The device executes the method in any possible implementation manner of the second aspect.
  • a seventh aspect provides a communication system, the communication system includes the first device in any possible implementation manner of the third aspect or the fifth aspect, and any possible implementation manner of the fourth aspect or the sixth aspect second device.
  • a computer-readable storage medium is provided, and computer program code is stored on the computer-readable storage medium.
  • the processor implements any one of the first aspect or the second aspect. method in one possible implementation.
  • a chip system the chip system includes a processor, a memory, and computer program code is stored in the memory; when the computer program code is executed by the processor, the processor implements the first aspect or the first aspect.
  • the system-on-a-chip may consist of chips, or may include chips and other discrete devices.
  • a computer program product including computer instructions is provided.
  • the computer instructions When the computer instructions are run on the computer, the computer is made to implement the method in any possible implementation manner of the first aspect or the second aspect.
  • FIG. 1A is an example diagram of a display interface of a first device and a second device provided in an embodiment of the present application;
  • FIG. 1B is an example diagram of the display interface of the first device and the second device after the application interface is displayed across devices according to the embodiment of the present application;
  • FIG. 1C is an example diagram of the display interface of the first device and the second device after another application interface is displayed across devices according to the embodiment of the present application;
  • FIG. 2 is a schematic diagram of a hardware structure of a terminal device (such as a first device or a second device) provided in an embodiment of the present application;
  • FIG. 3 is a schematic diagram of a software structure of a terminal device (such as a first device or a second device) provided in an embodiment of the present application;
  • FIG. 4 is a schematic diagram of a cross-device display process of an application interface provided by an embodiment of the present application
  • FIG. 5 is a schematic diagram of another application interface cross-device display process provided by the embodiment of the present application.
  • Fig. 6 is an application interface cross-device display interaction diagram 1 provided by the embodiment of the present application.
  • FIG. 7 is a schematic diagram of an application interface cross-device display interaction process provided by an embodiment of the present application.
  • FIG. 8 is a schematic diagram of three application list interfaces provided by the embodiment of the present application.
  • FIG. 9 is a schematic diagram of another application interface cross-device display interaction process provided by the embodiment of the present application.
  • FIG. 10 is a second schematic diagram of the application interface cross-device display interaction process provided by the embodiment of the present application.
  • FIG. 11 is a third schematic diagram of the application interface cross-device display interaction process provided by the embodiment of the present application.
  • FIG. 12 is a schematic diagram 4 of the application interface cross-device display interaction process provided by the embodiment of the present application.
  • FIG. 13 is a schematic diagram five of the application interface cross-device display interaction process provided by the embodiment of the present application.
  • Figure 14 is the first example of cross-device display of the application interface provided by the embodiment of the present application.
  • Figure 15 is the second example of cross-device display of the application interface provided by the embodiment of the present application.
  • Figure 16 is the third example of cross-device display of the application interface provided by the embodiment of the present application.
  • FIG. 17 is a structural block diagram of a terminal device provided by an embodiment of the present application.
  • first and second are used for descriptive purposes only, and cannot be understood as indicating or implying relative importance or implicitly specifying the quantity of indicated technical features. Thus, a feature defined as “first” and “second” may explicitly or implicitly include one or more of these features. In the description of this embodiment, unless otherwise specified, “plurality” means two or more.
  • the second device may project the application interface to the first device through a screen projection technology (such as the same source screen projection technology or heterogeneous screen projection technology, etc.).
  • screen projection technology requires huge system codec resources.
  • the second device renders the application interface on a virtual screen (virtual display).
  • the second device encodes the Surface corresponding to the virtual screen into a standard video stream and transmits it to the first device.
  • the first device decodes the received standard video stream.
  • the first device displays the application interface of the screen projection of the second device.
  • screen projection technology also has problems such as screen color difference and display delay.
  • the native application refers to an application program that can directly run on the current operating system.
  • the embodiment of the present application provides a method for cross-device display of an application interface, which can be used in the process of cross-device running an application installed in another device on one device.
  • the method can be used in the process of migrating the application interface from one terminal device (such as the second device) to display on another terminal device (such as the first device).
  • the method may be used in the process of starting an application installed on another terminal device (such as the second device) on one terminal device (such as the first device).
  • the method provided in the embodiment of the present application can be used in the process of displaying the video playback interface on the smart phone 1 on the smart phone 2 across devices as shown in FIG. 1A .
  • the interfaces of the smart phone 1 and the smart phone 2 change from the state shown in FIG. 1A to the state shown in FIG. 1B .
  • the embodiment of the present application does not limit the specific interface displayed on the second device after running an application installed in another device (such as the second device) across devices on one device (such as the first device).
  • the smart phone 1 can also display the main interface (as shown in Figure 1B, the desktop of the mobile phone), and synchronously display the above-mentioned application interface with the smart phone 2 (as shown in Figure 1C) or The upper-level application interface and the like of the above application interface are displayed.
  • the basic idea of the application interface cross-device display method provided by the embodiment of the present application is: when a device (such as the first device) needs to start an application installed in another device (such as the second device) across devices, The application data is obtained from the second device, and a start activity (startActivity) and a process are initiated through simulation, so as to achieve the purpose of not installing the corresponding application program but normally launching the application program.
  • a device when a device (such as the first device) needs to migrate the application interface from another device (such as the second device) to the device, it can obtain the application data and user information from the second device. Data, as well as launching startActivity, starting process, loading user data, etc. through simulation, so as to achieve the purpose of not installing the corresponding application program, but normally continuing the application interface displayed on the second device before.
  • the first device can quickly and conveniently implement cross-device operation of the application and cross-device display of the application interface without installing a corresponding APP.
  • the first device can implement the same application function and interface display as the native application.
  • the terminal devices may include but are not limited to personal computers (personal computers, PCs), smart phones, netbooks, tablet computers, smart watches, smart bracelets, phone watches, Smart cameras, PDAs, personal digital assistants (PDAs), portable multimedia players (PMPs), augmented reality (AR)/virtual reality (VR) devices, televisions Or somatosensory game consoles in human-computer interaction scenarios.
  • personal computers personal computers, PCs
  • smart phones netbooks
  • tablet computers smart watches
  • smart bracelets phone watches
  • Smart cameras PDAs
  • PDAs personal digital assistants
  • PMPs portable multimedia players
  • PMPs portable multimedia players
  • AR augmented reality
  • VR virtual reality
  • FIG. 2 takes a smart phone as an example and shows a schematic diagram of a hardware structure of a terminal device (including a first device and a second device) provided in an embodiment of the present application.
  • the terminal device may include a processor 210, a memory (comprising an external memory interface 220 and an internal memory 221), a universal serial bus (universal serial bus, USB) interface 230, a charging management module 240, and a power management module 241 , battery 242, antenna 1, antenna 2, mobile communication module 250, wireless communication module 260, audio module 270, speaker 270A, receiver 270B, microphone 270C, earphone jack 270D, sensor module 280, button 290, motor 291, indicator 292 , a camera 293, a display screen 294, and a subscriber identification module (subscriber identification module, SIM) card interface 295, etc.
  • SIM subscriber identification module
  • the sensor module 280 may include a pressure sensor, a gyroscope sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a distance sensor, a proximity light sensor, a fingerprint sensor, a temperature sensor, a touch sensor, an ambient light sensor, a bone conduction sensor, and the like.
  • the structure shown in the embodiment of the present invention does not constitute a specific limitation on the terminal device.
  • the terminal device may include more or fewer components than shown in the figure, or combine certain components, or separate certain components, or arrange different components.
  • the illustrated components can be realized in hardware, software or a combination of software and hardware.
  • Processor 210 may include one or more processing units.
  • the processor 210 may include an application processor (application processor, AP), a modem processor, a graphics processing unit (graphics processing unit, GPU), an image signal processor (image signal processor, ISP), a flight controller, Video codec, digital signal processor (digital signal processor, DSP), baseband processor, and/or neural network processor (neural-network processing unit, NPU), etc.
  • application processor application processor
  • AP application processor
  • modem processor graphics processing unit
  • image signal processor image signal processor
  • ISP image signal processor
  • flight controller Video codec
  • digital signal processor digital signal processor
  • DSP digital signal processor
  • baseband processor baseband processor
  • neural network processor neural-network processing unit
  • a memory may also be provided in the processor 210 for storing instructions and data.
  • the memory in processor 210 is a cache memory.
  • the memory may hold instructions or data that the processor 210 has just used or recycled. If the processor 210 needs to use the instruction or data again, it can be called directly from the memory. Repeated access is avoided, and the waiting time of the processor 310 is reduced, thereby improving the efficiency of the system.
  • processor 210 may include one or more interfaces.
  • the interface may include an integrated circuit (inter-integrated circuit, I2C) interface, an integrated circuit built-in audio (inter-integrated circuit sound, I2S) interface, a pulse code modulation (pulse code modulation, PCM) interface, a universal asynchronous transmitter (universal asynchronous receiver/transmitter, UART) interface, mobile industry processor interface (mobile industry processor interface, MIPI), general-purpose input and output (general-purpose input/output, GPIO) interface, subscriber identity module (subscriber identity module, SIM) interface, and /or universal serial bus (universal serial bus, USB) interface, etc.
  • I2C integrated circuit
  • I2S integrated circuit built-in audio
  • PCM pulse code modulation
  • PCM pulse code modulation
  • UART universal asynchronous transmitter
  • MIPI mobile industry processor interface
  • GPIO general-purpose input and output
  • subscriber identity module subscriber identity module
  • SIM subscriber identity module
  • USB universal serial bus
  • the charging management module 240 is configured to receive charging input from the charger.
  • the power management module 241 is used for connecting the battery 242 , the charging management module 240 and the processor 210 .
  • the power management module 241 receives the input from the battery 242 and/or the charging management module 240 to provide power for the processor 210 , the internal memory 221 , the display screen 294 , the camera 293 , and the wireless communication module 260 .
  • the wireless communication function of the terminal device can be realized through the antenna 1, the antenna 2, the mobile communication module 250, the wireless communication module 260, the modem processor and the baseband processor.
  • Antenna 1 and Antenna 2 are used to transmit and receive electromagnetic wave signals.
  • Each antenna in an end device can be used to cover single or multiple communication bands. Different antennas can also be multiplexed to improve the utilization of the antennas.
  • Antenna 1 can be multiplexed as a diversity antenna of a wireless local area network.
  • the antenna may be used in conjunction with a tuning switch.
  • the mobile communication module 250 can provide wireless communication solutions including 2G/3G/4G/5G/6G applied on terminal equipment.
  • the mobile communication module 250 may include at least one filter, switch, power amplifier, low noise amplifier (low noise amplifier, LNA) and the like.
  • the mobile communication module 250 can receive electromagnetic waves through the antenna 1, filter and amplify the received electromagnetic waves, and send them to the modem processor for demodulation.
  • the mobile communication module 250 can also amplify the signal modulated by the modem processor, convert it into electromagnetic wave and radiate it through the antenna 1 .
  • at least part of the functional modules of the mobile communication module 250 may be set in the processor 210 .
  • at least part of the functional modules of the mobile communication module 250 and at least part of the modules of the processor 210 may be set in the same device.
  • a modem processor may include a modulator and a demodulator.
  • the modulator is used for modulating the low-frequency baseband signal to be transmitted into a medium-high frequency signal.
  • the demodulator is used to demodulate the received electromagnetic wave signal into a low frequency baseband signal. Then the demodulator sends the demodulated low-frequency baseband signal to the baseband processor for processing.
  • the low-frequency baseband signal is passed to the application processor after being processed by the baseband processor.
  • the application processor outputs a sound signal through an audio device (not limited to a speaker 270A, a receiver 270B, etc.), or displays an image or video through a display screen 294 .
  • the modem processor may be a stand-alone device. In some other embodiments, the modem processor may be independent of the processor 210, and be set in the same device as the mobile communication module 250 or other functional modules.
  • the wireless communication module 260 can provide wireless local area networks (wireless local area networks, WLAN) (such as WiFi network), Bluetooth (Bluetooth, BT), global navigation satellite system (global navigation satellite system, GNSS), frequency modulation (frequency modulation, FM), near field communication technology (near field communication, NFC), infrared technology (infrared, IR) and other wireless communication solutions.
  • the wireless communication module 260 may be one or more devices integrating at least one communication processing module.
  • the wireless communication module 260 receives electromagnetic waves via the antenna 2 , frequency-modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 210 .
  • the wireless communication module 260 can also receive the signal to be sent from the processor 210 , frequency-modulate it, amplify it, and convert it into electromagnetic waves through the antenna 2 to radiate out.
  • the antenna 1 of the terminal device is coupled to the mobile communication module 250, and the antenna 2 is coupled to the wireless communication module 260, so that the terminal device can communicate with the network and other devices through wireless communication technology.
  • the wireless communication technology may include global system for mobile communications (GSM), general packet radio service (general packet radio service, GPRS), code division multiple access (code division multiple access, CDMA), broadband Code division multiple access (wideband code division multiple access, WCDMA), time division code division multiple access (time-division code division multiple access, TD-SCDMA), long term evolution (long term evolution, LTE), new wireless (new radio, NR ), BT, GNSS, WLAN, NFC, FM, and/or IR technologies, etc.
  • GSM global system for mobile communications
  • general packet radio service general packet radio service
  • CDMA code division multiple access
  • CDMA broadband Code division multiple access
  • WCDMA wideband code division multiple access
  • time division code division multiple access time-division code division multiple access
  • LTE long term evolution
  • new wireless new radio
  • the GNSS may include a global positioning system (global positioning system, GPS), a global navigation satellite system (global navigation satellite system, GLONASS), a Beidou navigation satellite system (beidou navigation satellite system, BDS), a quasi-zenith satellite system (quasi -zenith satellite system, QZSS) and/or satellite based augmentation systems (satellite based augmentation systems, SBAS), etc.
  • GPS global positioning system
  • GLONASS global navigation satellite system
  • Beidou navigation satellite system beidou navigation satellite system
  • BDS Beidou navigation satellite system
  • QZSS quasi-zenith satellite system
  • SBAS satellite based augmentation systems
  • the terminal device realizes the display function through the GPU, the display screen 294, and the application processor.
  • the GPU is a microprocessor for image processing, and is connected to the display screen 294 and the application processor. GPUs are used to perform mathematical and geometric calculations for graphics rendering.
  • Processor 210 may include one or more GPUs that execute program instructions to generate or alter display information.
  • the display screen 294 is used to display images, videos and the like.
  • Display 394 includes a display panel.
  • the display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active matrix organic light emitting diode or an active matrix organic light emitting diode (active-matrix organic light emitting diode, AMOLED), flexible light-emitting diode (flex light-emitting diode, FLED), Miniled, MicroLed, Micro-oLed, quantum dot light emitting diodes (quantum dot light emitting diodes, QLED), etc.
  • the terminal device may include 1 or N display screens 294, where N is a positive integer greater than 1.
  • the terminal device may render the application interface through the GPU, and display the application interface through the display screen 294 .
  • the terminal device can realize the shooting function through ISP, camera 293 , video codec, GPU, display screen 294 and application processor.
  • the external memory interface 220 may be used to connect an external memory card, such as a micro (storage card, SD) card, so as to expand the storage capacity of the terminal device.
  • the external memory card communicates with the processor 210 through the external memory interface 220 to implement a data storage function. Such as saving music, video and other files in the external memory card.
  • the internal memory 221 may be used to store computer-executable program codes including instructions.
  • the internal memory 221 may include an area for storing programs and an area for storing data. Wherein, the stored program area can store an operating system, an application program required by at least one function, and the like.
  • the data storage area can store data (such as application data, user data, etc.) created during the use of the terminal device.
  • the internal memory 221 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, flash memory device, universal flash storage (universal flash storage, UFS) and the like.
  • the processor 210 executes various functional applications and data processing of the terminal device by executing instructions stored in the internal memory 221 and/or instructions stored in the memory provided in the processor.
  • the terminal device can implement audio functions through the audio module 270, the speaker 270A, the receiver 270B, the microphone 270C, and the application processor. Such as music playback, recording, etc.
  • audio module 270 the speaker 270A, the receiver 270B and the microphone 270C, reference may be made to the introduction in conventional technologies.
  • the keys 290 include a power key, a volume key and the like.
  • the key 290 may be a mechanical key. It can also be a touch button.
  • the terminal device can receive key input and generate key signal input related to user settings and function control of the terminal device.
  • the hardware modules included in the terminal device shown in FIG. 2 are only described as examples, and do not limit the specific structure of the terminal device.
  • the terminal device may also include components such as a keyboard and a mouse.
  • the operating system (operating system, OS) of the terminal device may include but not limited to OS and other operating systems.
  • the software of the terminal equipment can be divided into several layers, and each layer has a clear role and division of labor. Layers communicate through software interfaces.
  • the software structure of the terminal device can be divided into three layers from top to bottom: the application program layer (abbreviated as the application layer), the application program framework layer (referred to as the framework layer), the system library, the Android runtime and the kernel layer ( Also known as the driver layer).
  • the application program layer may include a series of application program packages.
  • the application program is referred to as application for short below.
  • the applications on the terminal device may include applications installed in the terminal device when the operating system is installed before the terminal device leaves the factory (such as camera, gallery, calendar, call, Bluetooth, music, video, short message, etc.), and may also include user Apps downloaded and installed through app stores and other channels (such as E-mail, maps, navigation and other applications)
  • the embodiment of this application does not limit the specific type and source of the application.
  • the application on the terminal device may include an application responsible for the application interface migration service (a parallel space application as shown in FIG. 3 ).
  • the parallel space application can be used to support the terminal device to perform cross-device application data transmission, cross-device application list display, cross-device user data transmission, cross-device hardware information transmission, application interface migration, etc. .
  • FIG. 3 is only an example of a manner of providing an application interface migration service and a manner of cross-device communication, and the present application does not limit the specific manner in which a terminal device provides an application interface migration service and cross-device communication.
  • a functional module or a functional interface for providing application interface migration service and cross-device communication may also be integrated in the terminal device.
  • the application framework layer provides an application programming interface (application programming interface, API) and a programming framework for applications in the application layer. As shown in FIG. 3 , the application framework layer may provide interfaces implemented by a service process (Service) and a client process (Client).
  • Service service process
  • Client client process
  • the client process includes activity manager (activity manager, AM), program package management (package manager, PM) and network management (network management, NM).
  • the corresponding service process may include activity management service (activity manager service, AMS), program package management service (package manager service, PMS) and network management service (network management service, NMS) .
  • AMS is One of the core services in the system, mainly responsible for the management of the Activity, responsible for the startup, switching, scheduling of each component in the system, and the management and scheduling of the application process.
  • AMS defines data classes for storing processes (Process), activities (Activity) and tasks (Task).
  • the data class corresponding to a process may include process file information, memory state information of the process, and Activities and Services included in the process.
  • AMS reports to AMS when it wants to start a new Activity or stop the current Activity.
  • AMS records all application processes internally.
  • AMS receives a start or stop report, it first updates the internal records, and then notifies the corresponding client process (Client) to run or stop the specified Activity. Since there are records of all activities in AMS, these activities can be scheduled, and activities in the background can be automatically closed according to the state of activities and system memory.
  • the application framework layer is also used to change the capability of the system API, for example, capable of intercepting (hooking) API call events.
  • interception refers to intercepting and monitoring the transmission of events before they are transmitted to the end point.
  • the hook technology before the event is transmitted to the terminal, the event can be hooked like a hook, and the event can be processed and responded to in time.
  • the application framework layer may also include a window management server (window manager service, WMS) responsible for window management, an input event management server (input manager service, IMS) content provider, a view system, a phone management Manager, Resource Manager, Notification Manager, etc. (not shown in Figure 3).
  • WMS window management server
  • IMS input event management server
  • view system a phone management Manager, Resource Manager, Notification Manager, etc.
  • the system library and the Android runtime contain the functions that the framework layer needs to call, the core library, and virtual machine.
  • a system library can include multiple function modules. For example: browser kernel, three-dimensional (3 dimensional, 3D) graphics, font library, etc.
  • a system library can include multiple function modules. For example: surface manager (surface manager), media library (Media Libraries), 3D graphics processing library (eg: OpenGL ES), 2D graphics engine (eg: SGL), etc.
  • the kernel layer is the layer between hardware and software.
  • the kernel layer can include display drivers, input/output device drivers (for example, keyboards, touch screens, earphones, speakers, microphones, etc.), device nodes, camera drivers, audio drivers, and sensor drivers.
  • the user performs an input operation through the input device, and the kernel layer can generate corresponding original input events according to the input operation, and store them in the device node.
  • Input/output device drivers can detect user input events.
  • the microphone can detect the voice uttered by the user
  • the touch screen can detect the user's touch operation
  • the keyboard can detect the information or operation (such as selection operation) input by the user.
  • Figure 3 only uses the layered architecture Taking the system as an example, a software structure of a terminal device is introduced.
  • the present application does not limit the specific architecture of the software system of the terminal device, and for the specific introduction of software systems of other architectures, reference may be made to conventional technologies.
  • the operating systems installed in the first device and the second device are consistent, such as system.
  • the major versions of the operating systems installed on the first device and the second device are consistent, for example, the major version numbers of the operating systems installed on the first device and the second device are the same.
  • the versions of the operating systems installed in the first device and the second device are consistent, such as the main version number, sub-version number, revision number, etc. are the same.
  • the application interface migration service provided in the form of an application (such as a parallel space application) will be used as an example below.
  • the application responsible for the application interface migration service in the embodiment of this application (parallel space application as shown in Figure 3, implemented in this application) Examples are not limited to the specific name) for a specific introduction.
  • the parallel space application is installed in the first device and the second device.
  • the Parallel Space application can pull up the Parallel Space user interface process and the Parallel Space service process when running.
  • the parallel space user interface process is used for displaying and managing the application startup interface.
  • the parallel space user interface process is responsible for receiving touch events (such as click, long press, touch, etc.) initiated by the user on the screen, and jumping to the corresponding interface.
  • the parallel space user interface process launched by the second device may be used to display an application list interface to the user, and the application list interface includes information (such as application icons) of multiple applications installed on the first device.
  • the parallel space service process is used to fork the running host process of the application, load the application code and resources, associate with the corresponding process, virtual Framework software development kit (software development kit, SDK), and perform native AM/PM/NM proxy , isolate preset calls (such as hardware calls, etc.), create transmission channel services, obtain resources, function calls, etc.
  • the parallel space service process may use RESTful (representation layer state transformation system) or remote procedure call (remote procedure call, RPC) to perform resource acquisition and/or function invocation.
  • RESTful representsation layer state transformation system
  • remote procedure call remote procedure call
  • the specific technology can be determined according to the area where the call occurs, such as using RESTful for resource acquisition and/or function invocation when making a service external call, and using RPC for resource acquisition and/or function invocation when making a service internal call.
  • RESTful refers to a system that satisfies representational state transfer (REST), such as a client/server (client/serve, C/S) structure, layered system, interface, etc. that satisfy REST.
  • RESTful representational state transfer
  • the parallel space application may have higher system authority.
  • the Parallel Space application can always run in the background after the device is turned on, so that application interface migration services can be provided at any time.
  • the terminal device (such as the second device) may have the ability to display to the user the application information installed on other terminal devices (such as the first device) with which a communication connection has been established, so that the user can choose the application information according to actual needs. Apps that run across devices.
  • APP service data (such as application installation package data, etc.) may be exchanged between the first device and the second device to support the ability of the second device to display application information installed on the first device.
  • the parallel space application running in the second device acquires service data of the second device.
  • the service data of the second device includes the application installed in the second device or the installation package data of the application currently running (including running in the foreground and/or running in the background) in the second device (for example, including application A).
  • Cross-device application information can be displayed based on business data.
  • the second device sends the above service data to the first device through the established communication connection.
  • the first device may receive the above service data from the second device through the service provided by the parallel space application.
  • the first device will launch a parallel space user interface process to display application information (such as an application list) corresponding to the service data of the second device on the display screen of the first device.
  • application information such as an application list
  • the application list includes application icons of multiple applications.
  • the first device displays the application icons of multiple applications on the second device to provide the user with the experience of running any application in the second device quickly and across devices on the first device.
  • the first device displays an application list interface according to the service data acquired by the parallel space application.
  • the application list interface includes an application icon of application A.
  • the first device acquires (eg downloads) the application data of application A from the second device through the parallel space application.
  • the application data of the application A is acquired by the parallel space application from the storage space of the second device, and the first device may directly download the application data of the application A from the parallel space application.
  • the application data of application A may include but not limited to application information of application A, permission information, application package, resource file (such as res file), library file (such as lib file) and so on.
  • the parallel space application running in the first device loads the application A into the memory of the first device according to the obtained application data of the application A and runs it without installing the application A.
  • the application A shown in Figure 4 is currently running on the second device, that is, the above-mentioned cross-device running application scenario specifically migrates the application A interface on the second device to the first device, so that the first device can continue to the second device. 2.
  • the first device may also acquire (for example, download) user data of application A from the second device.
  • the user data of the application A is acquired by the parallel space application from the storage space of the second device, and the first device may directly download the user data of the application A from the parallel space application.
  • the user data of application A may include but not limited to account information of application A, historical usage data (such as chat records, play records, browsing records, etc.) and the like. And, as shown in S407 in FIG. 4 , the first device loads the user data of application A into application A.
  • the terminal device (such as the second device) may be capable of migrating the application interface running on the device to another terminal device (such as the second device) that has established a communication connection with it according to the user's operation on the device The ability to continuously display on a device), so that the user can select the application interface to be migrated according to actual needs.
  • the second device in response to receiving the user's operation of migrating the interface of application A to the first device, the second device obtains the application data of application A through the parallel space application. Then, as shown in S502 in FIG. 5 , the second device sends the above application data to the first device through the established communication connection with the first device. Afterwards, as shown in S503 in FIG. 5 , the parallel space application running in the first device loads the application A into the memory of the first device according to the obtained application data of the application A and runs it without installing the application A. Finally, as shown in S504 in FIG. 5 , the first device obtains the user data of application A from the second device. And, as shown in S505 in FIG. 5 , the first device loads the user data of application A into application A.
  • FIG. 4 and FIG. 5 only use the first device acquiring application data from the second device first, and then acquiring user data from the second device as an example.
  • the embodiment of the present application does not limit the specific form and timing of acquiring application data and user equipment.
  • the first device may also acquire user data and application data from the second device at the same time.
  • the first device may acquire user data of the application from the second device during the process of loading the application according to the application data.
  • the first device and the second device may transmit related data based on a remote proxy technology.
  • the first device first obtains application data from the second device, and then obtains the application data from the second device during the process of loading the application according to the application data.
  • the method of user data of the application can speed up the display of the application interface across devices. The reason is that this method can reduce the transmission time of the application data, thereby facilitating the timely loading and running of the application by the first device.
  • the first device may obtain (eg download) the application data of application A from the second device through the REST API.
  • the REST API since the REST API does not require additional protocols, it can directly implement resource acquisition and function calls through the addition, deletion, and modification of adaptive verbs based on the hypertext transfer protocol (hyper text transfer protocol, HTTP), so it has the characteristics of lightweight.
  • the data description of the REST API is simple, for example, data communication is generally performed through a lightweight data exchange format based on the JavaScript language (JavaScript object notation, JSON) or an extensible markup language (extensive markup language, xml).
  • the first device can display the application information installed on the second device to the user, and according to the user's actual cross-device application running requirements, without installing the corresponding application program , to smoothly realize the cross-device operation of the application and the cross-device display of the application interface, and it is consistent with the application function and interface display of the native application.
  • the second device can smoothly migrate the application interface running on the device to the one that has established a communication connection with it according to the user's actual cross-device application running requirements and the user's operations on the device. The display continues on the first device without losing the task progress, and the first device does not need to install application A.
  • the first device can delete application data and/or user data, such as application package and other related data, so as to realize application-related processes on the go, and It will not cause any impact on the subsequent use of the first device. Therefore, the method greatly improves the cross-device display experience of the application interface.
  • the first device may return the latest application data and/or user data, such as application package and other related data, to the second device, so that the second Device-to-application interface continuation display.
  • Embodiment 1 and Embodiment 2 will be combined, and the method for displaying the cross-device application interface provided by the embodiment of the present application will be specifically introduced by taking the first device running the application installed on the second device across devices as an example.
  • Embodiment 1 of the present application after the first device establishes a communication connection with the second device, the first device and the second device have the ability to display the application information installed on the peer device to the user, so that the user can choose a cross-connect application according to actual needs.
  • the application running on the device after the first device establishes a communication connection with the second device, the first device and the second device have the ability to display the application information installed on the peer device to the user, so that the user can choose a cross-connect application according to actual needs.
  • the application running on the device is not limited to the application.
  • the method for displaying a cross-device application interface may mainly include an initial stage and a cross-device running stage.
  • the initial stage is used to establish a communication connection and display a cross-device application list, as shown in FIG. 6
  • the initial stage includes S601-S603.
  • the cross-device running phase is used to obtain application data and run applications across devices.
  • the cross-device running phase includes S604-S606.
  • the first device and the second device run an application responsible for the application interface migration service (a parallel space application as shown in FIG. 3 ).
  • S601 The first device establishes a communication connection with the second device.
  • the first device establishes a communication connection with the second device, for example, the first device establishes a Bluetooth connection, a WiFi direct connection, or a peer-to-peer (P2P) connection with the second device.
  • the first device and the second device access the same wireless network. Local area network, etc., this application does not limit the specific way of communication connection.
  • the first device and the second device may establish a communication connection based on a device interconnection technology.
  • establishing a communication connection between the first device and the second device may include: first, establishing a signaling channel between the first device and the second device through Bluetooth low energy (BLE). Then, the first device and the second device exchange communication parameters between the two through the established signaling channel. Finally, the first device establishes a P2P connection for data transmission with the second device.
  • BLE Bluetooth low energy
  • the device may establish a communication connection with the discovered device based on the device discovery technology.
  • the first device may establish a communication connection with the second device after discovering the second device.
  • the second device may establish a communication connection with the first device after discovering the first device.
  • the device may establish a communication connection with the device represented by the input device information based on the device information manually input by the user.
  • the first device receives the identifier of the second device input by the user on an interface such as a device discovery interface on the first device, and establishes a communication connection with the second device.
  • the identifier of the second device may be a media access control (media access control, MAC) address, an identity number (identity, ID), an international mobile equipment identity (international mobile equipment identity, IMEI) etc. of the second device,
  • MAC media access control
  • ID identity, ID
  • IMEI international mobile equipment identity
  • the device may also establish a communication connection with other devices based on touching, approaching, scanning a device code, and the like.
  • a communication connection may also establish a communication connection with other devices based on touching, approaching, scanning a device code, and the like.
  • S602 The first device exchanges service data with the second device.
  • the exchange of service data between the first device and the second device includes: the first device obtains the service data of the second device from the second device, and the second device obtains the service data of the first device from the first device.
  • the service data includes but is not limited to installed applications in the device or installation package data of applications (such as application A) currently running (including foreground running and/or background running) in the device.
  • the application installation package data includes but not limited to the icon (application icon), action (such as android.intent.action.MAIN), category (such as android.intent.category.LAUNCHER), flags and ResovleActivityInfo of the application.
  • action is used to determine the entry Activity of the application, that is, which Activity is displayed first when we start the application.
  • category is used to determine the display of the application in the program list.
  • Flags are the flag bits of the Activity, such as marking the startup mode and running status of the Activity.
  • ResovleActivityInfo is used to store meta data of an application package such as an Android package (Android Package, APK). Exemplarily, it includes all interface activity (Activity) information of the application, opening method or jumping method, and the like. Based on the foregoing service data, the display of application icons in the subsequent application list interface may be determined.
  • the first device and the second device can call the PMS (program package management service) to obtain their respective business data.
  • PMS program package management service
  • the first device and the second device may obtain the service data from the peer device through the established communication connection after the parallel space application obtains their respective service data.
  • the first device and the second device may use the established communication connection to transfer from the The peer device obtains service data.
  • the user starts the application interface migration service, for example, the user opens an application responsible for the application interface migration service (such as a parallel space application) on the first device and/or the second device.
  • the present application does not limit the specific timing for exchanging service data between the first device and the second device.
  • the first device after the first device exchanges business data with the second device, the first device has the ability to display the application list of the second device, and similarly, the second device also has the ability to display the application list of the first device.
  • both the first device and the second device are capable of displaying the application list of the opposite end through the application interface of the parallel space. Based on the capabilities of the first device and the second device, the user can pull up an application list interface on any device according to actual usage scenarios and needs.
  • S603 In response to the user's operation of opening the application list interface, the first device displays the application list interface according to the service data of the second device.
  • the application list interface includes at least one application icon or a floating and slidable page.
  • the application corresponding to the at least one application icon or the floating slidable page is installed and/or runs on the second device.
  • the application list interface is the startup interface (also called HomeScreen) of the parallel space application.
  • the application responsible for the application interface migration service can pull up the parallel space user interface process and the parallel space service process when running.
  • the parallel space application can create a virtual package manager service (virtual package manager service, VPMS) and a virtual activity management service (virtual activity manager service, VAMS) consistent with the function of the PMS by simulating the PMS.
  • the parallel space service process can call VPMS and VAMS.
  • the parallel space user interface process can call virtual package manager (virtual package manager, VPM) and virtual activity manager (virtual activity manager, VAM).
  • the parallel space user interface process and the parallel space service process may be based on inter-process communication (inter-process communication, IPC) technology to communicate.
  • IPC inter-process communication
  • the first device can display on the display screen of the first device according to Intent information such as action and category indicated by the service data of the second device by launching the Parallel Space user interface process, including: The launch screen of the Parallel Space application with the application icon.
  • the application represented by the application icon in the application list interface displayed by the first device is as if installed locally on the first device for the user, and the user can operate on the application list interface (such as clicking any application icon) , start any application on the second device on the first device.
  • FIG. 8 shows three examples of application list interfaces.
  • the application list interface is displayed in the form of a parallel space application interface.
  • the user's operation of opening the application list interface is like the user's operation of enabling the application list display function on the parallel space application interface.
  • the application list function can be displayed in the form of a function folder on the desktop of the first device (such as the "second device" folder shown in (b) in Figure 8), the application list The interface is the interface after opening the function folder.
  • the user's operation of opening the application list interface is the same as the user's operation of opening the above-mentioned function folder.
  • the application list function can be displayed in the form of a function icon on the desktop (such as the "migration" function icon shown in (c) in Figure 8), and the application list interface can include multiple floating Swipeable pages.
  • the user's operation of opening the application list interface is the user's operation of clicking the above-mentioned function icon.
  • the user can open the application list interface on the first device, and realize the migration of the application interface from the second device to the first device through operations on the application list interface.
  • the first device performs the following S604-S606:
  • the application data of the first application may include but not limited to application information, permission information, application package, resource file, lib file and so on.
  • the application information includes application name, functions and services that the application can provide, and the like.
  • Permission information such as the permission of the application to access the device hardware (such as camera, microphone, storage unit, etc.), the permission of the application to access other applications (such as address book, location information, call records, information, etc.).
  • Application packages such as APKs.
  • Resource files such as res files.
  • the lib file is the static data connection library.
  • the application data of the first application may be obtained from the storage space of the second device by the parallel space application installed in the second device. Usually, after the application is installed, the second device will save the application data of the application in the storage space.
  • the application data of the first application may be stored in the following path: /data/app/.
  • the storage path of the application package of the first application is /data/app/com.xxx.xx/first application.apk, wherein com.xxx.xx is com.android.vending.
  • MainActivity when each APP is developed, a MainActivity will be defined, and MainActivity is usually configured in the AndroidManifest file.
  • the AndroidManifest file specify the action of the Activity as android.intent.action.MAIN, and the category as android.intent.category.LAUNCHER, which means that when the Activity is started through an Intent, only the Intent whose category is LAUNCHER is accepted.
  • the Parallel Space user interface process receives the user's touch event (such as click, long press, touch, etc.) Start the MainActivity of the application through this Intent, thereby starting the application.
  • the transmission of application data may take a long time.
  • the file size of the application program package is such as 140M (megabytes)
  • the data transmission speed of the second device to the first device is such as 10M/S (megabytes per second). Therefore, the second device receives the first application on the application list interface. After opening the operation, it will be opened after 14 seconds at the earliest A delay of 14 seconds would give a very poor user experience.
  • the second device may first transmit the first part of the first application to the first device, so as to speed up the loading and running of the first application by the first device . Then, the first device acquires the second part from the second device during the process of loading and running the first application.
  • the first part is the application data of the minimum runnable version of the first application (such as apklite package), and the second part is other untransmitted application data (such as dex file, so file, res file or arsc file and other files).
  • the so file is the lib file.
  • the res file is the compiled resource file. dex file such as classes.dex file.
  • the classes.dex file is Executable files in the system.
  • the virtual machine can support the bytecode file format of the classes.dex file.
  • arsc file such as resources.arsc file.
  • the resources.arsc file is resource packaging tool ( The resource index table generated by assets packaging tools, AAPT).
  • the resources.arsc file records information about all application resource directories, including each resource name, type, value, ID, and configured dimension information.
  • the application data of the minimum executable version of the first application includes necessary files that can successfully start the first application.
  • the application data of the minimum executable version of the first application includes a certificate file, a manifest file and a class.dex file of the first application.
  • the manifest file is used to define the entry Activity and IntentFilter.
  • the IntentFilter can be defined in the AndroidManifest.xml file.
  • IntentFilter is used to declare which Intent (including action, category, etc.) the component accepts. For example, if an IntentFilter is set for an Activity, the Activity can be started with a specific implicit Intent in the application or other applications; if the IntentFilter is not set for the Activity, the Activity can only be started by displaying the Intent.
  • the second device may also prompt the user (such as prompting the user in a pop-up window) to select a data transmission policy when the amount of application data is greater than a preset threshold, and select the data transmission policy to the first device according to the data transmission policy selected by the user.
  • Application data of the first application is sent.
  • the data transmission strategy includes transmitting all application data, transmitting the minimum runnable version first, and so on.
  • the second device may prompt the user (such as prompting the user through a pop-up window) to select an application interface cross-device display strategy, and perform corresponding tasks according to the application interface cross-device display strategy selected by the user.
  • the application interface cross-device display strategy such as screen projection (such as source projection or heterogeneous projection, etc.), APP installation, and continuous transmission of application data (such as transmitting the smallest runnable version first), etc.
  • the Parallel Space user interface process may request the application data of the first application from the Parallel Space service process (as shown in shown in S701). For example, the parallel space user interface process may send a Binder request to the parallel space service process to request application data of the first application. Then, the parallel space service process may request the application data of the first application from the parallel space service process of the second device through the VPMS (as shown in S702 in FIG. 7 ). For example, the parallel space service process may send a socket request to the parallel space service process of the second device through the VPMS to request application data of the first application. Further, as shown in FIG.
  • the parallel space service process of the second device analyzes the application data through VPackageLite to determine the application data required by the minimum executable version of the first application (as shown in S703 in FIG. 7 ). Then, the application data of the minimum executable version of the first application is sent to the first device through the VPMS, and the first device can directly analyze the application data of the minimum executable version of the first application (such as including APK) in the memory ( As shown in S704-1 and S704-2 in Figure 7).
  • the opening operation of the first application on the application list interface may include but not limited to click (such as single-click, double-click, etc.) The operation of the option, the operation of selecting the open option after right-clicking, the operation of dragging to the preset position, or other preset operations, etc.
  • the opening operation can be as shown in (a) in Figure 8 or on the application list interface as shown in (b) in Figure 8 Operations such as clicking the application icon, selecting the option to open after long pressing, selecting the option to open after right-clicking, or will be as shown in (c) in Figure 8 The operation of dragging the floating slidable page to the migration start icon.
  • the first device parses the application data of the first application, and simulates launching a start activity (startActivity) of the first application.
  • the application in the first device is responsible for the application interface migration service, such as the parallel space application, which can provide virtual services (such as VAMS, VPMS, VNMS, etc.) and application programming interface (application programming interface, API) Invoke the ability to initiate the start activity (startActivity), start the process, etc. through simulation when the user chooses to run the first application installed in the second device across devices, so that the corresponding application program is not installed, but the application is run normally the goal of.
  • the application interface migration service such as the parallel space application, which can provide virtual services (such as VAMS, VPMS, VNMS, etc.) and application programming interface (application programming interface, API) Invoke the ability to initiate the start activity (startActivity), start the process, etc. through simulation when the user chooses to run the first application installed in the second device across devices, so that the corresponding application program is not installed, but the application is run normally the goal of.
  • the parallel space user interface process of the first device may instruct the parallel space service process to simulate launching the start activity (startActivity) of the first application through the VAM, so as to start the first application process.
  • startActivity start activity
  • the first device initiates the start activity (startActivity) of the first application according to the intent indicated by the application data, such as starting the occupation activity (StubActivity) of the application, creating the first application process, and A standard environment is provided for the first application launch.
  • startActivity start activity of the first application according to the intent indicated by the application data, such as starting the occupation activity (StubActivity) of the application, creating the first application process, and A standard environment is provided for the first application launch.
  • the system is taken as an example, and the standard environment is such as the standard zygote environment. Among them, in In the system, most application processes and system processes are generated through the standard zygote environment. Exemplarily, based on the zygote environment, a first application process and an application thread (ApplicationThread) of the first application may be created. Wherein, the application thread (ApplicationThread) is used to provide the Binder communication interface.
  • the application thread is used to provide the Binder communication interface.
  • startActivity when simulating start activity (startActivity), it usually enters the hooked StartActivity method. When the method finds that the activity inside the plug-in needs to be started, it will perform ActivityInfo analysis, and then call the corresponding method of VAMS through VAM , initiate the start activity (startActivity) and create a process.
  • the first application process initializes the first application process by calling its own callback, takes over the API, AMS, and PMS, and analyzes the Activity to be started (such as the location of the actual application code to be loaded, the application corresponding files in the data (such as dex files, so files and res files, etc.), and then map the parsed data to the memory space of the first application process.
  • S606 The first device runs the first application.
  • the first application process calls the stub function to modify the application package name to a real package name through hook means before the application thread (ApplicationThread) is created, and creates a context (context) for the first application process, Furthermore, the application thread (ApplicationThread) of the first application is successfully created.
  • the context (context) is used to access various resource files (such as pictures, layout files, etc.) related to the application. So far, the first application process enters the life cycle of the first application's Activity in the standard (standard) mode.
  • the first device has completed the cross-device running of the application installed on the second device.
  • the first device simulates the starting activity of launching the first application through the Framework layer according to the application data of the first application obtained from the second device, and starts and runs the first application.
  • the first device takes over the capabilities of API, AMS, PMS and other Framework layers by calling its own callback, and successfully starts and runs after application process initialization, application data parsing and mapping, modification of program package name after hook, creation of context, etc. first application. Therefore, the operating system will regard the first application as an application installed in the first device, and run the first application according to the standard life cycle of the first application. Therefore, the cross-device usage experience of applications can be realized based on the method provided by the embodiment of the present application.
  • the first device in order to ensure normal startup of the first application on the first device.
  • the first device can also detect in real time whether it has received abnormal alarms such as missing code segments (such as class not found), so cannot be loaded, etc. And, when an abnormal alarm is detected, a corresponding file (such as a dex file) is obtained from the second device, reloaded and mapped into the first application process.
  • the first application process can call HookManager to request the corresponding file from the second device (the APK management class (VApkManager) in the second device as shown in FIG. 9 ). (such as dex files).
  • the first application process may call the HookManager to reload and map the obtained corresponding file (such as a dex file) into the first application process.
  • the cross-device operation of the method provided by the embodiment of the present application Phases can also include S1001-S1002:
  • the first device acquires user data of the first application from the second device.
  • the user data of the first application is account information of the first application.
  • the user data of the first application may be obtained from the storage space of the second device by the parallel space application installed in the second device. Usually, when a user uses an application, relevant user data will be saved in the storage space in real time.
  • the user data of the first application may be stored in the following path: /data/data/.
  • the storage path of the account information of the first application is /data/data/com.xxx.xx/login information, wherein com.xxx.xx is com.android.vending.
  • the first device loads user data of the first application to the first application, and logs in a corresponding account.
  • the cross-device operation phase of the method provided by the embodiment of the present application may also include S1101-S1102:
  • the first device acquires user data of the first application from the second device.
  • the user data of the first application may include but not limited to account information, historical usage data and the like of the first application.
  • historical usage data such as chat records, play records, browsing records and other related data.
  • the first application is Taking an application as an example, the user data of the first application includes WeChat account information, chat history, address book, whitelist/blacklist, friend permissions, circle of friends dynamics, official account, favorites and other related information.
  • the user data of the first application includes relevant information such as video application account information, playback records, recent playback progress, and favorites.
  • the present application does not limit the type of user data of the first application, which depends on the specific application.
  • the user data of the first application can be obtained from the storage space of the second device (such as under the /data/data/ path) by the parallel space application installed in the second device.
  • the first device loads user data of the first application into the first application, and then displays a first interface of the first application.
  • the first device continues to display the first interface of the first application means that the first device does not lose the corresponding application process when the second device displays the first interface of the first application, and continues to follow the application process.
  • UI graphical user interface
  • the first application is not installed in the first device as an example. In fact, the first application may already be installed in the first device.
  • the method for displaying the application interface across devices includes Figure 11 As shown in S601-S603 and S1101, then, the first device starts the first application installed in the first device, and executes S606 and S1102. It can be seen that the embodiment of the present application can be applied to the cross-device launch of the first application and the migration of the first application interface when the first application is not installed on the first device, and can also be applied to the first application already installed on the first device. In the case of application, the migration of the first application interface has strong versatility.
  • the first application may The verification information.
  • the verification information is hardware verification information (such as device ID) or subscriber identity module (subscriber identity module, SIM) verification information.
  • the first device can intercept (hook) the call to the above verification API, obtain relevant hardware information (such as device ID) or verify the Information (such as a verification code) to successfully complete the verification.
  • the conventional processing flow of the system API can be used to call the corresponding memory, network and Camera.
  • interception (hook) scenario of the API call is only an example, and this application does not limit the specific scenario and type of the interception (hook) API, depending on the specific situation and actual needs.
  • the user can display the application interface on the second device by initiating cross-device display on the first device, or cross-device the application interface on the second device by initiating the second device.
  • the device is displayed on the first device.
  • the above-mentioned embodiment 1 specifically introduces the situation that the user initiates cross-device display of the application interface on the second device on the first device.
  • the specific process of displaying the application interface across devices can refer to the following embodiment 2.
  • the second device after the second device establishes a communication connection with the first device, the second device is capable of migrating the application interface running on the device to the first device for continuous display according to the user's operations on the device.
  • the cross-device application interface display method provided by the embodiment of the present application may include S1201-S1205:
  • S1201 The second device establishes a communication connection with the first device.
  • the transferable application list interface includes at least one application icon or a floating slidable page.
  • the application corresponding to the at least one application icon or the floating slidable page is installed and/or runs on the second device.
  • the trigger entry of the application interface migration function is integrated in the parallel space application.
  • the user's operation of enabling the user interface migration function is like the user's operation of enabling the application interface migration function on the parallel space application interface.
  • the transferable application list interface is displayed in the form of the parallel space application interface.
  • the application interface migration function may provide a service for the user in the form of a function folder on the desktop of the second device.
  • the operation of the user to open the user interface migration function is the same as the operation of the user to open the function folder.
  • the portable application list interface is the interface after opening the function folder.
  • the application interface migration function may provide a service to the user in the form of a function icon on the desktop.
  • the user's operation of enabling the user interface migration function is as the user's operation of clicking the above-mentioned function icon.
  • the transferable application list interface is the main interface after the user activates the user interface transfer function, for example, the main interface includes multiple floating and slidable pages.
  • the application data of the first application may include but not limited to application information, permission information, application package, resource file, lib file and so on.
  • the application data of the first application may be stored in the following path: /data/app/.
  • the second device may first transmit the first part of the first application to the first device, so as to speed up the loading and running of the first application by the first device. Then, the second device sends the second part of the first application to the first device while the first device is loading and running the first application.
  • the first part of the first application is the application data of the minimum executable version of the first application (such as apklite package), and the second part of the first application is other untransmitted application data (such as dex files, so files, res files or other files such as arsc files). In this manner, it is possible to avoid the problem that the transmission of the application data takes a long time, which causes the problem that the first device does not respond in time to the user's opening operation of the first application on the application list interface.
  • the second device may also prompt the user (such as prompting the user in a pop-up window) to select an application interface cross-device display strategy, and perform corresponding tasks according to the application interface cross-device display strategy selected by the user .
  • the application interface cross-device display strategy such as screen projection (such as source projection or heterogeneous projection, etc.), APP installation, and continuous transmission of application data (such as transmitting the smallest runnable version first), etc.
  • the first device parses the application data of the first application, and simulates launching a start activity (startActivity) of the first application.
  • S1205 The first device runs the first application.
  • the stages may also include S1001-S1002.
  • the cross-device operation phase of the method provided by the embodiment of the present application may also include S1101-S1102 .
  • the first device can delete the application data and/or user data of the application package, such as APK files and other related data, so as to realize the application-related processes on the go, and The subsequent use of the first device will not be affected in any way, and the user experience when the application interface is displayed across devices is improved.
  • the first device directly opens and runs the application installed on the second device, and ensures that the application interface is consistent with the application function and interface display of the native application.
  • the user can use the navigation application installed in the mobile phone through the tablet computer without the navigation application installed.
  • the tablet computer can directly open the navigation application installed in the mobile phone based on the cross-device display method of the application interface provided by the embodiment of the present application, as shown in FIG. 14 .
  • the first device can dynamically load the application package (such as an APK file) from the second device without installing the corresponding application program, so as to achieve
  • the device directly runs the application installed on the second device with the account logged in by the application on the second device, and ensures that the application interface is consistent with the application function and interface display of the native application.
  • the user can use the navigation application installed in the mobile phone through the tablet computer without the navigation application installed. Also, the user does not need to manually enter login information for the navigation application into the tablet.
  • the tablet computer can automatically log in the account registered by the navigation application in the mobile phone based on the cross-device display method of the application interface provided by the embodiment of the present application, as shown in FIG. 15 .
  • the first device can dynamically load the application package (such as an APK file) from the second device without installing the corresponding application program.
  • the display of the application interface by the second device is continued on the device, and the application interface is guaranteed to be consistent with the application function and interface display of the native application.
  • users can app's tablet, which continues to display the Application interface (such as chat interface, official account browsing interface, Moments browsing interface, etc.).
  • the user can continue playing the video in the mobile phone through the TV without the video application installed.
  • the user can continue to display the navigation application interface (such as the navigation interface) in the mobile phone through the tablet computer without the navigation application installed, as shown in FIG. 16 .
  • the navigation application interface such as the navigation interface
  • serial numbers of the above-mentioned processes do not mean the order of execution, and the order of execution of the processes should be determined by their functions and internal logic, and should not be implemented in this application.
  • the implementation of the examples constitutes no limitation.
  • the terminal device includes corresponding hardware structures and/or software modules for performing various functions.
  • the present application can be implemented in the form of hardware or a combination of hardware and computer software in combination with the units and algorithm steps of each example described in the embodiments disclosed herein. Whether a certain function is executed by hardware or computer software drives hardware depends on the specific application and design constraints of the technical solution. Skilled artisans may use different methods to implement the described functions for each specific application, but such implementation should not be regarded as exceeding the scope of the present application.
  • the functional modules of the terminal device can be divided.
  • each functional module can be divided corresponding to each function, or two or more functions can be integrated into one processing module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or in the form of software function modules. It should be noted that the division of modules in the embodiment of the present application is schematic, and is only a logical function division, and there may be other division methods in actual implementation.
  • the terminal device may include a connection establishment unit 1710 , a transceiver unit 1720 , a processing unit 1730 and a display unit 1740 .
  • the connection establishing unit 1710 is configured to support the first device to establish a communication connection with the second device, and/or other processes related to the embodiment of the present application.
  • the transceiver unit 1720 is configured to support the first device to obtain one or more of the following data from the second device: application data, service data, user data, verification information, and/or other processes related to the embodiment of the present application.
  • the processing unit 1730 is configured to support the first device to start the corresponding application according to the application data obtained from the second device, load the corresponding interface according to the user data obtained from the second device, process information verification instructions, and/or be related to the embodiment of the present application other processes.
  • the display unit 1740 is configured to support the first device to display an application list interface, display an application interface, and/or other interfaces related to the embodiment of the present application.
  • connection establishing unit 1710 is configured to support the second device to establish a communication connection with the first device, and/or other processes related to the embodiment of the present application.
  • the transceiver unit 1720 is configured to support the second device to send one or more of the following data to the first device: application data, service data, user data, verification information, and/or other processes related to this embodiment of the application.
  • the processing unit 1730 is configured to support the second device to process tasks related to cross-device application launching and/or application interface migration, and/or other processes related to this embodiment of the present application.
  • the display unit 1740 is configured to support the second device to display an application interface, display a transferable application list interface, and/or other interfaces related to the embodiment of the present application.
  • the transceiver unit 1720 may include a radio frequency circuit.
  • the terminal device can receive and send wireless signals through a radio frequency circuit.
  • radio frequency circuitry includes, but is not limited to, an antenna, at least one amplifier, transceiver, coupler, low noise amplifier, duplexer, and the like.
  • the radio frequency circuit can also communicate with other devices through wireless communication.
  • the wireless communication may use any communication standard or protocol, including but not limited to Global System for Mobile Communications, General Packet Radio Service, Code Division Multiple Access, Wideband Code Division Multiple Access, Long Term Evolution, Email, Short Message Service, etc.
  • each module in the terminal device may be implemented in the form of software and/or hardware, which is not specifically limited.
  • electronic equipment is presented in the form of functional modules.
  • the "module” here may refer to an application-specific integrated circuit ASIC, a circuit, a processor and memory executing one or more software or firmware programs, an integrated logic circuit, and/or other devices that can provide the above-mentioned functions.
  • the computer program product includes one or more computer instructions.
  • the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server or data center Transmission to another website site, computer, server or data center by wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.).
  • the computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or a data center that includes one or more available mediums.
  • the available medium can be a magnetic medium, (such as a floppy disk, a hard disk, etc. , tape), optical media (such as digital video disk (digital video disk, DVD)), or semiconductor media (such as solid state disk (SSD)), etc.
  • the steps of the methods or algorithms described in conjunction with the embodiments of the present application may be implemented in hardware, or may be implemented in a manner in which a processor executes software instructions.
  • the software instructions can be composed of corresponding software modules, and the software modules can be stored in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, mobile hard disk, CD-ROM or any other form of storage known in the art medium.
  • An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium.
  • the storage medium may also be a component of the processor.
  • the processor and storage medium can be located in the ASIC.
  • the ASIC may be located in the electronic device.
  • the processor and the storage medium may also exist in the terminal device as discrete components.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)

Abstract

本申请公开了应用界面跨设备显示方法、设备***,涉及电子设备领域,可以在不安装相应应用程序(application,APP)的前提下,实现应用界面的跨设备显示。本申请中通过跨设备动态加载来自其他设备的应用程序包(如应用程序包(Android Package,APK)文件),在不安装相应APP的前提下,实现跨设备直接运行应用的目的,且保证应用界面与原生应用的应用功能和界面显示一致。上述方法突破了设备之间的壁垒,极大提高了应用界面跨设备显示的便捷性,提高了跨设备场景下用户的使用体验。

Description

应用界面跨设备显示方法、设备***
本申请要求于2021年12月13日提交国家知识产权局、申请号为202111522667.4、申请名称为“应用界面跨设备显示方法、设备***”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及电子设备领域,尤其涉及应用界面跨设备显示方法、设备***。
背景技术
随着终端技术的多样化发展,用户使用终端设备的范围从一个终端设备扩展到了多个终端设备。其中,终端设备上安装的应用程序(application,APP)呈现多样化,可能相同,可能不同。在一些使用场景下,应用界面跨设备显示,如跨设备启动应用或应用程序界面(以下简称应用界面)在多个终端设备之间跨设备迁移(例如将第二设备上的应用A的界面迁移至第一设备显示)可以为用户提供方便快捷的使用体验。
作为一种实现方式,第一设备需要满足也安装有应用A,才能实现跨设备启动应用或者将应用A的界面由第二设备迁移至第一设备显示。但是该方法需要花费较长时间才能完成跨设备启动应用或者应用界面迁移。另外,在一些情况下,用户并不希望设备上安装有过多的APP。
发明内容
本申请提供应用界面跨设备显示方法、设备***,可以方便、快捷地实现跨设备应用运行。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种应用界面跨设备显示方法,该方法包括:第一设备与第二设备建立通信连接;第一设备从第二设备获取第二设备中安装的第一应用的应用数据和第一应用的用户数据;其中应用数据包括第二设备运行第一应用所需的应用程序包;第一设备根据从第二设备获取的第一应用的应用数据和第一应用的用户数据,启动第一应用并显示第一应用的相应界面。
上述第一方面提供的方案,终端设备,如第一设备可以在不安装第一应用的应用程序的情况下,根据从其它终端设备,如第二设备获取的第二设备已安装的第一应用的应用数据和用户数据,运行第一应用并显示第一应用的相应界面,平滑地实现应用跨设备运行和应用界面跨设备显示,且与原生应用的应用功能和界面显示一致。该方法可以方便、快捷地实现跨设备应用运行,提高用户体验。
在一种可能的实现方式中,上述第一应用的用户数据包括第二设备中第一应用的账号信息。第一设备通过从第二设备获取第二设备中安装的第一应用的账号信息,可以在跨设备运行第一应用时直接登录相应账号,从而以访客模式运行第一应用。示例性的,该方法可以应用于应用界面迁移、应用界面接续等场景中。
在一种可能的实现方式中,上述第一应用的用户数据包括第二设备中第一应用对应的历史使用数据。第一设备通过从第二设备获取第二设备中安装的第一应用对应的历史使用数据,可以在跨设备运行第一应用时同步历史使用记录(如聊天记录、播放 记录、浏览记录等)。示例性的,该方法可以应用于应用界面迁移、应用界面接续等场景中。
在一种可能的实现方式中,上述第一设备根据从第二设备获取的第一应用的应用数据和第一应用的用户数据,启动第一应用并显示第一应用的相应界面,包括:第一设备根据从第二设备获取的第一应用的应用数据,启动第一应用;第一设备将第一应用的用户数据加载至第一应用,接续第二设备上显示的第一应用的界面。第一设备通过根据从第二设备获取的第二设备已安装的第一应用的应用数据启动第一应用,以及根据从第二设备获取的第一应用的用户数据,加载至第一应用的相应界面,方便、快捷地实现跨设备应用运行。
在一种可能的实现方式中,上述第一设备根据从第二设备获取的第一应用的应用数据,启动第一应用,包括:第一设备将从第二设备获取的第一应用的应用数据加载到第一设备的内存,启动第一应用。第一设备通过直接将从第二设备获取的第二设备已安装的第一应用的应用数据加载至内存,以实现方便、快捷地第一应用跨设备启动和运行。
在一种可能的实现方式中,在第一设备与第二设备建立通信连接之后,上述方法还包括:第一设备从第二设备获取业务数据,其中业务数据包括第二设备中安装的应用的安装包数据;第一设备根据业务数据显示应用列表界面,应用列表界面用于表示第二设备中安装的应用。第一设备根据从第二设备获取的业务数据展示第二设备上安装的多个应用的应用图标,用于为用户提供快捷地、在第一设备上跨设备运行第二设备中任意应用的使用体验。
在一种可能的实现方式中,在第一设备与第二设备建立通信连接之后,上述方法还包括:第一设备从第二设备获取业务数据,该业务数据包括第二设备中当前运行的应用的安装包数据;第一设备根据业务数据显示应用列表界面,该应用列表界面用于表示第二设备中当前运行的应用。第一设备根据从第二设备获取的业务数据展示第二设备上运行的多个应用的应用图标,用于为用户提供快捷地、在第一设备上跨设备运行第二设备中运行的任意应用的使用体验。
在一种可能的实现方式中,上述第一设备从第二设备获取第一应用的应用数据和第一应用的用户数据,包括:响应于接收到用户对应用列表界面上第一应用的打开操作,第一设备从第二设备获取第一应用的应用数据和第一应用的用户数据。本申请提供的方案可以根据用户在第一设备上的快捷触发操作,在第一设备上跨设备运行第二设备中应用的使用体验。
在一种可能的实现方式中,上述第一应用的应用数据和第一应用的用户数据由第二设备响应于接收到用户在可迁移应用列表界面上对第一应用的选择操作,发送给第一设备;其中,上述可迁移应用列表界面用于表示第二设备中安装的应用或者第二设备当前运行的应用。本申请提供的方案可以根据用户在第二设备上的快捷触发操作,在第一设备上跨设备运行第二设备中应用的使用体验。
在一种可能的实现方式中,上述第一设备从第二设备获取第一应用的应用数据,包括:第一设备根据用户确定的数据传输策略,从第二设备获取的应用数据;其中,数据传输策略包括:传输所有应用数据、先传输第一应用的最小可运行版本的应用数 据;第一应用的最小可运行版本的应用数据包括启动第一应用所必须的文件。本申请不限定第二设备向第一设备传输应用数据的具体传输方式,视具体设置而定。
在一种可能的实现方式中,上述第一设备从第二设备获取第一应用的应用数据,包括:第一设备从第二设备获取应用数据的第一部分,该第一部分包括第一应用的最小可运行版本的应用数据;第一设备从第二设备获取应用数据的第二部分。通过先传输最小可运行版本的应用数据,然后边启动边传输,以解决由于应用数据量较大导致的数据传输花费时间较长,造成的第一设备对用户对应用列表界面上第一应用的打开操作响应的不及时的问题。
在一种可能的实现方式中,上述第一设备从第二设备获取应用数据的第二部分,包括:响应于检测到预设告警,第一设备从第二设备获取应用数据的第二部分;其中,预设告警包括代码段的缺失告警和/或文件不能加载告警。第二设备通过边启动边根据需求获取相应数据,可以解决由于应用数据量较大导致的数据传输花费时间较长,造成的第一设备对用户对应用列表界面上第一应用的打开操作响应的不及时的问题。
在一种可能的实现方式中,上述方法还包括:在接收到对预设信息的校验时,第一设备从第二设备获取相应信息,以完成校验。通过该方法,可以避免由于信息校验时校验不通过导致的应用不能正常跨设备运行的问题。
在一种可能的实现方式中,上述预设信息包括与硬件有关的信息。通过该方法,可以避免由于硬件相关信息校验时校验不通过导致的应用不能正常跨设备运行的问题。
在一种可能的实现方式中,上述第一应用的应用数据还包括以下中的一种或多种:应用信息,权限信息,资源文件,库文件。
第二方面,提供一种应用界面跨设备显示方法,该方法包括:第二设备与第一设备建立通信连接;第二设备向第一设备发送运行在第二设备中的第一应用的应用数据和第一应用的用户数据;应用数据包括第二设备运行第一应用所需的应用程序包;其中,第一应用运行在第二设备中,且第一设备未安装第一应用;第一应用的应用数据和第一应用的用户数据用于第一设备基于第一应用的应用数据启动第一应用,以及基于第一应用的用户数据接续第一设备上显示的第一应用的界面。
上述第二方面提供的方案,终端设备,如第一设备可以在不安装第一应用的应用程序的情况下,根据从其它终端设备,如第二设备获取的第二设备中运行的第一应用的应用数据和用户数据,运行第一应用并显示第一应用的相应界面,平滑地实现应用跨设备运行和应用界面跨设备显示,且与原生应用的应用功能和界面显示一致。该方法可以方便、快捷地实现跨设备应用运行,提高用户体验。
在一种可能的实现方式中,上述第一应用的用户数据包括第二设备中第一应用的账号信息。第一设备通过从第二设备获取第二设备中安装的第一应用的账号信息,可以在跨设备运行第一应用时直接登录相应账号,从而以访客模式运行第一应用。示例性的,该方法可以应用于应用界面迁移、应用界面接续等场景中。
在一种可能的实现方式中,上述第一应用的用户数据包括第二设备中第一应用对应的历史使用数据。第一设备通过从第二设备获取第二设备中安装的第一应用对应的历史使用数据,可以在跨设备运行第一应用时同步历史使用记录(如聊天记录、播放记录、浏览记录等)。示例性的,该方法可以应用于应用界面迁移、应用界面接续等 场景中。
在一种可能的实现方式中,在第二设备与第一设备建立通信连接之后,上述方法还包括:第二设备向第一设备发送业务数据,该业务数据包括第二设备中安装的应用的安装包数据;其中,业务数据用于第一设备向用户展示应用列表界面,应用列表界面用于表示第二设备中安装的应用。第二设备通过向第一设备发送业务数据,便于第一设备根据该业务数据展示第二设备上安装的多个应用的应用图标,为用户提供快捷地、在第一设备上跨设备运行第二设备中任意应用的使用体验。
在一种可能的实现方式中,上述第二设备向第一设备发送第一应用的应用数据和第一应用的用户数据,包括:响应于接收到用户在可迁移应用列表界面上对第一应用的选择操作,第二设备向第一设备发送第一应用的应用数据和第一应用的用户数据;其中,上述可迁移应用列表界面用于表示第二设备中安装的应用或者第二设备当前运行的应用。本申请提供的方案可以根据用户在第一设备上的快捷触发操作,在第一设备上跨设备运行第二设备中应用的使用体验。
在一种可能的实现方式中,上述第二设备向第一设备发送第一应用的应用数据和第一应用的用户数据,包括:第二设备根据用户确定的数据传输策略,向第一设备发送第一应用的应用数据和第一应用的用户数据;其中,数据传输策略包括:传输所有应用数据、先传输第一应用的最小可运行版本的应用数据;第一应用的最小可运行版本的应用数据包括启动第一应用所必须的文件。本申请不限定第二设备向第一设备传输应用数据的具体传输方式,视具体设置而定。
在一种可能的实现方式中,上述第二设备向第一设备发送第一应用的应用数据,包括:第二设备向第一设备发送应用数据的第一部分,第一部分包括第一应用的最小可运行版本的应用数据;第二设备向第一设备发送应用数据的第二部分。通过先传输最小可运行版本的应用数据,然后边启动边传输,以解决由于应用数据量较大导致的数据传输花费时间较长,造成的第一设备对用户对应用列表界面上第一应用的打开操作响应的不及时的问题。
在一种可能的实现方式中,上述第一应用的应用数据还包括以下中的一种或多种:应用信息,权限信息,资源文件,库文件。
第三方面,提供一种第一设备,该第一设备包括:连接建立单元,用于与第二设备建立通信连接;收发单元,用于从第二设备获取第二设备中安装的第一应用的应用数据和第一应用的用户数据;其中应用数据包括第二设备运行第一应用所需的应用程序包;处理单元,用于根据从第二设备获取的第一应用的应用数据和第一应用的用户数据,启动第一应用并显示第一应用的相应界面。
上述第三方面提供的方案,终端设备,如第一设备可以在不安装第一应用的应用程序的情况下,根据从其它终端设备,如第二设备获取的第二设备已安装的第一应用的应用数据和用户数据,运行第一应用并显示第一应用的相应界面,平滑地实现应用跨设备运行和应用界面跨设备显示,且与原生应用的应用功能和界面显示一致。该方法可以方便、快捷地实现跨设备应用运行,提高用户体验。
在一种可能的实现方式中,上述第一应用的用户数据包括第二设备中第一应用的账号信息。第一设备通过从第二设备获取第二设备中安装的第一应用的账号信息,可 以在跨设备运行第一应用时直接登录相应账号,从而以访客模式运行第一应用。示例性的,该方法可以应用于应用界面迁移、应用界面接续等场景中。
在一种可能的实现方式中,上述第一应用的用户数据包括第二设备中第一应用对应的历史使用数据。第一设备通过从第二设备获取第二设备中安装的第一应用对应的历史使用数据,可以在跨设备运行第一应用时同步历史使用记录(如聊天记录、播放记录、浏览记录等)。示例性的,该方法可以应用于应用界面迁移、应用界面接续等场景中。
在一种可能的实现方式中,上述处理单元具体用于:根据从第二设备获取的第一应用的应用数据,启动第一应用;以及,将第一应用的用户数据加载至第一应用,接续第二设备上显示的第一应用的界面。第一设备通过根据从第二设备获取的第二设备已安装的第一应用的应用数据启动第一应用,以及根据从第二设备获取的第一应用的用户数据,加载至第一应用的相应界面,方便、快捷地实现跨设备应用运行。
在一种可能的实现方式中,在第一设备与第二设备建立通信连接之后,上述收发单元还用于:从第二设备获取业务数据,其中业务数据包括第二设备中安装的应用的安装包数据;上述第一设备还包括:显示单元,用于根据业务数据显示应用列表界面,应用列表界面用于表示第二设备中安装的应用。第一设备根据从第二设备获取的业务数据展示第二设备上安装的多个应用的应用图标,用于为用户提供快捷地、在第一设备上跨设备运行第二设备中任意应用的使用体验。
在一种可能的实现方式中,在第一设备与第二设备建立通信连接之后,上述收发单元还用于:从第二设备获取业务数据,该业务数据包括第二设备中当前运行的应用的安装包数据;上述第一设备还包括:显示单元,用于根据业务数据显示应用列表界面,该应用列表界面用于表示第二设备中当前运行的应用。第一设备根据从第二设备获取的业务数据展示第二设备上运行的多个应用的应用图标,用于为用户提供快捷地、在第一设备上跨设备运行第二设备中运行的任意应用的使用体验。
在一种可能的实现方式中,上述收发单元具体用于:在第一设备接收到用户对应用列表界面上第一应用的打开操作之后,从第二设备获取第一应用的应用数据和第一应用的用户数据。本申请提供的方案可以根据用户在第一设备上的快捷触发操作,在第一设备上跨设备运行第二设备中应用的使用体验。
在一种可能的实现方式中,上述第一应用的应用数据和第一应用的用户数据由第二设备响应于接收到用户在可迁移应用列表界面上对第一应用的选择操作,发送给第一设备;其中,上述可迁移应用列表界面用于表示第二设备中安装的应用或者第二设备当前运行的应用。本申请提供的方案可以根据用户在第二设备上的快捷触发操作,在第一设备上跨设备运行第二设备中应用的使用体验。
在一种可能的实现方式中,上述收发单元具体用于:根据用户确定的数据传输策略,从第二设备获取的应用数据;其中,数据传输策略包括:传输所有应用数据、先传输第一应用的最小可运行版本的应用数据;第一应用的最小可运行版本的应用数据包括启动第一应用所必须的文件。本申请不限定第二设备向第一设备传输应用数据的具体传输方式,视具体设置而定。
在一种可能的实现方式中,上述收发单元具体用于:首先,从第二设备获取应用 数据的第一部分,该第一部分包括第一应用的最小可运行版本的应用数据;然后,从第二设备获取应用数据的第二部分。通过先传输最小可运行版本的应用数据,然后边启动边传输,以解决由于应用数据量较大导致的数据传输花费时间较长,造成的第一设备对用户对应用列表界面上第一应用的打开操作响应的不及时的问题。
在一种可能的实现方式中,上述收发单元具体用于:在第一设备检测到预设告警之后,从第二设备获取应用数据的第二部分;其中,预设告警包括代码段的缺失告警和/或文件不能加载告警。第二设备通过边启动边根据需求获取相应数据,可以解决由于应用数据量较大导致的数据传输花费时间较长,造成的第一设备对用户对应用列表界面上第一应用的打开操作响应的不及时的问题。
在一种可能的实现方式中,上述收发单元还用于:在第一设备接收到对预设信息的校验时,从第二设备获取相应信息,以完成校验。通过该方法,可以避免由于信息校验时校验不通过导致的应用不能正常跨设备运行的问题。
在一种可能的实现方式中,上述预设信息包括与硬件有关的信息。通过该方法,可以避免由于硬件相关信息校验时校验不通过导致的应用不能正常跨设备运行的问题。
在一种可能的实现方式中,上述第一应用的应用数据还包括以下中的一种或多种:应用信息,权限信息,资源文件,库文件。
第四方面,提供一种第二设备,该第二设备包括:连接建立单元,用于与第一设备建立通信连接;收发单元,用于向第一设备发送运行在第二设备中的第一应用的应用数据和第一应用的用户数据;应用数据包括第二设备运行第一应用所需的应用程序包;其中,第一应用运行在第二设备中,且第一设备未安装第一应用;第一应用的应用数据和第一应用的用户数据用于第一设备基于第一应用的应用数据启动第一应用,以及基于第一应用的用户数据接续第一设备上显示的第一应用的界面。
上述第四方面提供的方案,终端设备,如第一设备可以在不安装第一应用的应用程序的情况下,根据从其它终端设备,如第二设备获取的第二设备中运行的第一应用的应用数据和用户数据,运行第一应用并显示第一应用的相应界面,平滑地实现应用跨设备运行和应用界面跨设备显示,且与原生应用的应用功能和界面显示一致。该方法可以方便、快捷地实现跨设备应用运行,提高用户体验。
在一种可能的实现方式中,上述第一应用的用户数据包括第二设备中第一应用的账号信息。第一设备通过从第二设备获取第二设备中安装的第一应用的账号信息,可以在跨设备运行第一应用时直接登录相应账号,从而以访客模式运行第一应用。示例性的,该方法可以应用于应用界面迁移、应用界面接续等场景中。
在一种可能的实现方式中,上述第一应用的用户数据包括第二设备中第一应用对应的历史使用数据。第一设备通过从第二设备获取第二设备中安装的第一应用对应的历史使用数据,可以在跨设备运行第一应用时同步历史使用记录(如聊天记录、播放记录、浏览记录等)。示例性的,该方法可以应用于应用界面迁移、应用界面接续等场景中。
在一种可能的实现方式中,在第二设备与第一设备建立通信连接之后,上述收发单元还用于:向第一设备发送业务数据,该业务数据包括第二设备中安装的应用的安装包数据;其中,业务数据用于第一设备向用户展示应用列表界面,应用列表界面用 于表示第一设备中安装的应用。第二设备通过向第一设备发送业务数据,便于第一设备根据该业务数据展示第二设备上安装的多个应用的应用图标,为用户提供快捷地、在第一设备上跨设备运行第二设备中任意应用的使用体验。
在一种可能的实现方式中,上述收发单元具体用于:在第二设备接收到用户在可迁移应用列表界面上对第一应用的选择操作之后,向第一设备发送第一应用的应用数据和第一应用的用户数据;其中,上述可迁移应用列表界面用于表示第二设备中安装的应用或者第二设备当前运行的应用。本申请提供的方案可以根据用户在第一设备上的快捷触发操作,在第一设备上跨设备运行第二设备中应用的使用体验。
在一种可能的实现方式中,上述收发单元具体用于:根据用户确定的数据传输策略,向第一设备发送第一应用的应用数据和第一应用的用户数据;其中,数据传输策略包括:传输所有应用数据、先传输第一应用的最小可运行版本的应用数据;第一应用的最小可运行版本的应用数据包括启动第一应用所必须的文件。本申请不限定第二设备向第一设备传输应用数据的具体传输方式,视具体设置而定。
在一种可能的实现方式中,上述收发单元具体用于:首先,向第一设备发送应用数据的第一部分,第一部分包括第一应用的最小可运行版本的应用数据;然后,向第一设备发送应用数据的第二部分。通过先传输最小可运行版本的应用数据,然后边启动边传输,以解决由于应用数据量较大导致的数据传输花费时间较长,造成的第一设备对用户对应用列表界面上第一应用的打开操作响应的不及时的问题。
在一种可能的实现方式中,上述第一应用的应用数据还包括以下中的一种或多种:应用信息,权限信息,资源文件,库文件。
第五方面,提供一种第一设备,该第一设备包括:存储器,用于存储计算机程序;收发器,用于接收或发送无线电信号;处理器,用于执行所述计算机程序,使得第一设备执行如第一方面任一种可能的实现方式中的方法。
第六方面,提供一种第二设备,该第二设备包括:存储器,用于存储计算机程序;收发器,用于接收或发送无线电信号;处理器,用于执行所述计算机程序,使得第二设备执行如第二方面任一种可能的实现方式中的方法。
第七方面,提供一种通信***,该通信***包括如第三方面或第五方面任一种可能的实现方式中第一设备,以及如四方面或第六方面任一种可能的实现方式中第二设备。
第八方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序代码,该计算机程序代码被处理器执行时,使得处理器实现如第一方面或第二方面任一种可能的实现方式中的方法。
第九方面,提供一种芯片***,该芯片***包括处理器、存储器,存储器中存储有计算机程序代码;所述计算机程序代码被所述处理器执行时,使得处理器实现如第一方面或第二方面任一种可能的实现方式中的方法。该芯片***可以由芯片构成,也可以包含芯片和其它分立器件。
第十方面,提供一种计算机程序产品,该计算机程序产品包括计算机指令。当该计算机指令在计算机上运行时,使得计算机实现如第一方面或第二方面任一种可能的实现方式中的方法。
附图说明
图1A为本申请实施例提供的第一设备和第二设备的显示界面示例图;
图1B为本申请实施例提供的一种应用界面跨设备显示之后第一设备和第二设备的显示界面示例图;
图1C为本申请实施例提供的另一种应用界面跨设备显示之后第一设备和第二设备的显示界面示例图;
图2为本申请实施例提供的一种终端设备(如第一设备或第二设备)的硬件结构示意图;
图3为本申请实施例提供的一种终端设备(如第一设备或第二设备)的软件结构示意图;
图4为本申请实施例提供的一种应用界面跨设备显示过程示意图;
图5为本申请实施例提供的另一种应用界面跨设备显示过程示意图;
图6为本申请实施例提供的应用界面跨设备显示交互图一;
图7为本申请实施例提供的一种应用界面跨设备显示交互过程示意图;
图8为本申请实施例提供的三种应用列表界面示意图;
图9为本申请实施例提供的另一种应用界面跨设备显示交互过程示意图;
图10为本申请实施例提供的应用界面跨设备显示交互过程示意图二;
图11为本申请实施例提供的应用界面跨设备显示交互过程示意图三;
图12为本申请实施例提供的应用界面跨设备显示交互过程示意图四;
图13为本申请实施例提供的应用界面跨设备显示交互过程示意图五;
图14为本申请实施例提供的应用界面跨设备显示示例图一;
图15为本申请实施例提供的应用界面跨设备显示示例图二;
图16为本申请实施例提供的应用界面跨设备显示示例图三;
图17为本申请实施例提供的一种终端设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在进行应用界面跨设备显示时,例如将应用界面由一个终端设备(如第二设备)迁移至另一个终端设备(如第一设备)上供用户操作时,为了不进行相应APP安装,作为一种可能的实现方式,第二设备可以通过投屏技术(如同源投屏技术或异源投屏技术等)将应用界面投屏至第一设备。但是,投屏技术需要耗费巨大的***编解码资源。示例性的,首先,第二设备将应用界面渲染到虚拟屏幕(virtual display)上。然 后,第二设备将虚拟屏幕对应的Surface编码成标准视频流传输到第一设备上。之后,第一设备解码接收到的标准视频流。最后,第一设备显示第二设备投屏的应用界面。另外,投屏技术还会有屏幕色差、显示时延等问题。
作为另一种可能的实现方式,可以通过开发与应用适配的轻应用、快应用或者小程序等,使得第一设备不用安装应用,而是直接打开与应用适配的轻应用、快应用或者小程序等,实现应用界面跨设备显示。但是,这种方法需要第三方进行适配轻应用、快应用或者小程序等的开发,花费较高。另外,相比于原生应用,轻应用、快应用或者小程序等能够实现的功能和界面显示也会大打折扣。其中,原生应用是指能直接运行于当前操作***的应用程序。
基于上述考虑,本申请实施例提供了应用界面跨设备显示方法,该方法可以用于在一个设备上跨设备运行另一个设备中安装的应用的过程中。例如,该方法可以用于将应用界面由一个终端设备(如第二设备)迁移至另一个终端设备(如第一设备)上显示的过程中。又如,该方法可以用于在一个终端设备(如第一设备)上启动安装在另一个终端设备(如第二设备)上的应用的过程中。
例如,本申请实施例提供的方法可以用于图1A所示智能手机1上的视频播放界面跨设备显示在智能手机2上的过程中。示例性的,在视频播放界面跨设备显示在智能手机2之后,智能手机1和智能手机2的界面由图1A所示状态变化为图1B所示状态。
需要说明的是,本申请实施例不限定在一个设备(如第一设备)上跨设备运行另一个设备(如第二设备)中安装的应用之后,第二设备上显示的具体界面。例如,在视频播放界面跨设备显示在智能手机2之后,智能手机1还可以显示主界面(如图1B所示手机桌面),与智能手机2同步显示上述应用界面(如图1C所示)或者显示上述应用界面的上一级应用界面等。
其中,本申请实施例提供的应用界面跨设备显示方法的基本思路是:一个设备(如第一设备)可以在有跨设备启动另一个设备(如第二设备)中安装的应用的需求时,从第二设备获取应用数据,以及通过模拟发起开始活动(startActivity)、启动进程等,以实现不安装相应应用程序,但是正常启动该应用的目的。
进一步的,在一些实施例中,一个设备(如第一设备)可以在有将应用界面从另一个设备(如第二设备)迁移至该设备的需求时,从第二设备获取应用数据和用户数据,以及通过模拟发起开始活动(startActivity)、启动进程、加载用户数据等,以实现不安装相应应用程序,但是正常接续之前第二设备上显示的应用界面的目的。
基于本申请实施例提供的应用界面跨设备显示方法,第一设备无需安装相应APP,便可以快速、方便地实现应用跨设备运行和应用界面跨设备显示。另外,基于本申请实施例提供的应用界面跨设备显示方法,第一设备可以实现与原生应用一致的应用功能和界面显示等。
作为一种示例,终端设备(如第一设备和第二设备)可以包括但不限定于个人计算机(personal computer,PC)、智能手机、上网本、平板电脑、智能手表、智能手环、电话手表、智能相机、掌上电脑、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(portable multimedia player,PMP)、增强现实(augmented reality, AR)/虚拟现实(virtual reality,VR)设备、电视机或人机交互场景中的体感游戏机等。本申请对终端设备的具体功能和结构不做限定。
请参考图2,图2以智能手机为例,示出了本申请实施例提供的一种终端设备(包括第一设备和第二设备)的硬件结构示意图。
如图2所示,终端设备可以包括处理器210,存储器(包括外部存储器接口220和内部存储器221),通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。其中传感器模块280可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
可以理解的是,本发明实施例示意的结构并不构成对终端设备的具体限定。在本申请另一些实施例中,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元。例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),飞行控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器310的等待时间,因而提高了***的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
充电管理模块240用于从充电器接收充电输入。电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,显示屏294,摄像头293,和无线通信模块260等供电。
终端设备的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信 模块260,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备中的每个天线可用于覆盖单个或多个通信频段。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在终端设备上的包括2G/3G/4G/5G/6G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频装置(不限于扬声器270A、受话器270B等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块250或其它功能模块设置在同一个器件中。
无线通信模块260可以提供应用在终端设备上的包括无线局域网(wireless local area networks,WLAN)(如WiFi网络),蓝牙(Bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得终端设备可以通过无线通信技术与网络以及其它设备通信。所述无线通信技术可以包括全球移动通讯***(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),新无线(new radio,NR),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位***(global positioning system,GPS),全球导航卫星***(global navigation satellite system,GLONASS),北斗卫星导航***(beidou navigation satellite system,BDS),准天顶卫星***(quasi-zenith satellite system,QZSS)和/或星基增强***(satellite based augmentation  systems,SBAS)等。
终端设备通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏294用于显示图像,视频等。显示屏394包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,终端设备可以包括1个或N个显示屏294,N为大于1的正整数。
在本申请实施例中,终端设备可以通过GPU进行应用界面渲染,通过显示屏294进行应用界面显示等。
终端设备可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。
外部存储器接口220可以用于连接外部存储卡,例如微型(micro)存储(storage card,SD)卡,实现扩展终端设备的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序等。存储数据区可存储终端设备使用过程中所创建的数据(比如应用数据,用户数据等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器210通过运行存储在内部存储器221的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备的各种功能应用以及数据处理。
终端设备可以通过音频模块270,扬声器270A,受话器270B,麦克风270C以及应用处理器等实现音频功能。例如音乐播放,录音等。关于音频模块270,扬声器270A,受话器270B和麦克风270C的具体工作原理和作用,可以参考常规技术中的介绍。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。终端设备可以接收按键输入,产生与终端设备的用户设置以及功能控制有关的键信号输入。
需要说明的是,图2所示终端设备包括的硬件模块只是示例性地描述,并不对终端设备的具体结构做出限定。例如,若终端设备是PC,那么终端设备还可以包括键盘、鼠标等部件。
在本申请中,终端设备(如第一设备或第二设备)的操作***(operating system,OS)可以包括但不限于
Figure PCTCN2022137134-appb-000001
Figure PCTCN2022137134-appb-000002
OS等操作***。
以包括分层架构的
Figure PCTCN2022137134-appb-000003
***的终端设备为例,如图3所示,终端设备的软件可以分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。如图3所示,终端设备的软件结构从上至下可以分为三层:应用程序层(简称应用层),应用程序框架层(简称框架层),***库,安卓运行时和内核层(也称为驱动层)。
其中,应用程序层可以包括一系列应用程序包。为方便描述,以下将应用程序简称为应用。终端设备上的应用可以包括在终端设备出厂前,安装操作***时安装在终端设备中的应用(如相机,图库,日历,通话,蓝牙,音乐,视频,短信息等应用),也可以包括用户通过应用商店等途径下载安装的应用(如
Figure PCTCN2022137134-appb-000004
电子邮箱,地图,导航等应用)本申请实施例不予限定应用的具体类型和来源。
在本申请实施例中,终端设备上的应用可以包括用于应用负责应用界面迁移服务的应用(如图3所示平行空间应用)。作为一种示例,在本申请实施例中,平行空间应用可以用于支持终端设备进行跨设备应用数据传输、跨设备应用列表展示、跨设备用户数据传输、跨设备硬件信息传输、应用界面迁移等。
需要说明的是,图3仅作为一种提供应用界面迁移服务的方式和跨设备通信的方式示例,本申请不限定终端设备提供应用界面迁移服务和跨设备通信的具体方式。例如,终端设备中还可以集成有用于提供应用界面迁移服务和跨设备通信的功能模块或者功能接口。
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。如图3所示,应用程序框架层可以提供包括服务进程(Service)和客户进程(Client)所实现的接口。
如图3所示,客户进程(Client)包括活动管理(activity manager,AM)、程序包管理(package manager,PM)和网络管理(network management,NM)。如图3所示,与之对应的服务进程(Service)可以包括活动管理服务(activity manager service,AMS)、程序包管理服务(package manager service,PMS)和网络管理服务(network management service,NMS)。
其中,AMS是
Figure PCTCN2022137134-appb-000005
***中核心的服务之一,主要用于负责Activity的管理,负责***中各组件的启动、切换、调度及应用进程的管理和调度等工作。具体的,AMS中定义了分别用来保存进程(Process)、活动(Activity)和任务(Task)的数据类。其中,进程(Process)对应的数据类可以包括进程文件信息、进程的内存状态信息和进程中包含的Activity、Service等。
Figure PCTCN2022137134-appb-000006
***中,Activity调度的基本思路是这样的:各应用进程在要启动新的Activity或者停止当前的Activity时,向AMS报告。AMS在内部为所有应用进程都做了记录,当AMS接到启动或停止的报告时,首先更新内部记录,然后再通知相应客户进程(Client)运行或者停止指定的Activity。由于AMS内部有所有Activity的记录,因此能够调度这些Activity,并根据Activity和***内存的状态自动关闭后台的Activity。
在本申请实施例中,应用程序框架层还用于改变***API的能力,例如具备对API调用事件的截取(hook)能力。其中,截取是指在事件传送到终点前截获并监控事件 的传输。例如,通过如hook技术可以在事件传送到终点前,像个钩子钩上该事件,及时处理并响应该事件。
在一些实施例中,应用程序框架层还可以包括用于负责窗口管理的窗口管理服务器(window manager service,WMS),输入事件管理服务器(input manager service,IMS)内容提供器,视图***,电话管理器,资源管理器,通知管理器等(图3中未示出)。
***库和安卓运行时包含框架层所需要调用的功能函数,
Figure PCTCN2022137134-appb-000007
的核心库,以及
Figure PCTCN2022137134-appb-000008
虚拟机。***库可以包括多个功能模块。例如:浏览器内核,三维(3 dimensional,3D)图形,字体库等。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
内核层是硬件和软件之间的层。内核层可以包含显示驱动,输入/输出设备驱动(例如,键盘、触摸屏、耳机、扬声器、麦克风等),设备节点,摄像头驱动,音频驱动以及传感器驱动等。用户通过输入设备进行输入操作,内核层可以根据输入操作产生相应的原始输入事件,并存储在设备节点中。输入/输出设备驱动可以检测到用户的输入事件。例如,麦克风可以检测到用户发出的语音,触摸屏可以检测到用户的触控操作,键盘可以检测到用户输入的信息或者操作(如选择操作)等。
需要说明的是,图3仅以分层架构的
Figure PCTCN2022137134-appb-000009
***为例,介绍一种终端设备的软件结构。本申请不限定终端设备软件***的具体架构,关于其它架构的软件***的具体介绍,可以参考常规技术。
在本申请一些实施例中,第一设备与第二设备中安装的操作***一致,如
Figure PCTCN2022137134-appb-000010
***。
在本申请一些实施例中,第一设备与第二设备中安装的操作***的大版本一致,如第一设备与第二设备中安装的操作***的主版本号相同。
在本申请一些实施例中,第一设备与第二设备中安装的操作***的版本一致,如主版本号、子版本号、修订版本号等均相同。
以下将以应用形式提供应用界面迁移服务(如平行空间应用)为例,结合附图,对本申请实施例中用于负责应用界面迁移服务的应用(如图3所示平行空间应用,本申请实施例不限定具体名称)做具体介绍。
在本申请实施例中,第一设备与第二设备中安装有平行空间应用。平行空间应用在运行时可以拉起平行空间用户界面进程和平行空间服务进程。其中,平行空间用户界面进程用于进行应用启动界面显示和管理。例如,平行空间用户界面进程用于负责接收用户对屏幕发起的触控事件(如点击、长按、触摸等事件),并跳转至相应界面。
示例性的,第二设备拉起的平行空间用户界面进程可以用于向用户展示应用列表界面,应用列表界面包括第一设备上安装的多个应用的信息(如应用图标)。平行空间服务进程用于复刻(Fork)应用运行的宿主进程,加载应用代码和资源,关联至相应进程,虚拟Framework软件开发工具包(software development kit,SDK),进行原生AM/PM/NM代理,隔离预设调用(如硬件调用等),创建传输通道服务,资源获 取,功能调用等。
示例性的,平行空间服务进程可以采用RESTful(表现层状态转化***)或者远程过程调用(remote procedure call,RPC)进行资源获取和/或功能调用等。例如,可以根据调用发生的区域确定具体技术,例如在进行服务外部调用时采用RESTful进行资源获取和/或功能调用,在进行服务内部调用时采用采用RPC进行资源获取和/或功能调用。其中,RESTful是指满足表现层状态转化(representational state transfer,REST)的***,如满足REST的客户机/服务器(client/serve,C/S)结构、分层***、接口等。关于RESTful***和RPC的具体介绍,可以参考常规技术,本申请实施例不做赘述。
在本申请一些实施例中,为了保证应用界面迁移服务能够提供更好的服务,平行空间应用可以具有较高的***权限。例如,平行空间应用可以在设备开机后始终运行在后台,以便可以随时提供应用界面迁移服务。
在本申请一些实施例中,终端设备(如第二设备)可以具备向用户展示与其建立了通信连接的其它终端设备(如第一设备)上安装的应用信息的能力,以便用户根据实际需求选择跨设备运行的应用。
作为一种示例,第一设备与第二设备之间可以通过交换APP的业务数据(如应用的安装包数据等)以支持第二设备展示第一设备上安装的应用信息的能力。
以在第一设备上跨设备运行安装在第二设备上的应用A为例,示例性的,在第一设备与第二设备之间建立通信连接之后,当平行空间应用在第二设备和第一设备中运行时,首先,如图4中S401所示,第二设备中运行的平行空间应用获取第二设备的业务数据。其中,第二设备的业务数据包括第二设备中安装的应用或者第二设备中当前运行(包括前台运行和/或后台运行)应用(如包括应用A)的安装包数据。基于业务数据可以进行跨设备应用信息展示。
然后,如图4中S402所示,第二设备通过建立的通信连接向第一设备发送上述业务数据。对应的,第一设备可以通过平行空间应用所提供的服务从第二设备接收上述业务数据。
接着,第一设备会拉起平行空间用户界面进程,以在第一设备显示屏上展示第二设备的业务数据对应的应用信息(如应用列表)。例如,该应用列表包括多个应用的应用图标。其中,第一设备展示第二设备上多个应用的应用图标用于为用户提供快捷地、在第一设备上跨设备运行第二设备中任意应用的使用体验。如图4中S403所示,第一设备根据平行空间应用获取的业务数据显示应用列表界面。其中应用列表界面包括应用A的应用图标。
之后,如图4中S404所示,响应于接收到用户在应用列表界面上对应用A的选择操作,第一设备通过平行空间应用从第二设备获取(如下载)应用A的应用数据。其中,应用A的应用数据由平行空间应用从第二设备存储空间中获取,第一设备可以直接从平行空间应用下载应用A的应用数据。在一些实施例中,应用A的应用数据可以包括但不限定于应用A的应用信息,权限信息,应用程序包,资源文件(如res文件),库文件(如lib文件)等。
最后,如图4中S405所示,第一设备中运行的平行空间应用在不安装应用A的情况下,根据获取的应用A的应用数据将应用A加载到第一设备内存并运行。
进一步的,若图4所示应用A当前正运行在第二设备中,即上述跨设备运行应用场景具体是将第二设备上的应用A界面迁移至第一设备,使得第一设备可以接续第二设备对应用A界面的显示。如图4中S406所示,第一设备还可以从第二设备获取(如下载)应用A的用户数据。其中,应用A的用户数据由平行空间应用从第二设备存储空间中获取,第一设备可以直接从平行空间应用下载应用A的用户数据。在一些实施例中,应用A的用户数据可以包括但不限定于应用A的账号信息、历史使用数据(如聊天记录、播放记录、浏览记录等)等。以及,如图4中S407所示,第一设备将应用A的用户数据加载至应用A中。
在本申请另一些实施例中,终端设备(如第二设备)可以具备根据用户在该设备上的操作,将该设备上运行的应用界面迁移至与其建立了通信连接的其它终端设备(如第一设备)上接续显示的能力,以便用户根据实际需求选择要迁移的应用界面。
如图5中S501所示,响应于接收到用户将应用A的界面迁移到第一设备的操作,第二设备通过平行空间应用获取应用A的应用数据。然后,如图5中S502所示,第二设备通过建立的与第一设备之间的通信连接,向第一设备发送上述应用数据。之后,如图5中S503所示,第一设备中运行的平行空间应用在不安装应用A的情况下,根据获取的应用A的应用数据将应用A加载到第一设备内存并运行。最后,如图5中S504,第一设备从第二设备获取应用A的用户数据。以及,如图5中S505所示,第一设备将应用A的用户数据加载至应用A中。
需要说明的是,图4和图5仅以第一设备先从第二设备获取应用数据,再从第二设备获取用户数据作为示例。本申请实施例并不限定应用数据和用户设备获取的具体形式和时机。例如第一设备也可以同时从第二设备获取用户数据和应用数据。又如,第一设备可以在根据应用数据加载应用的过程中,从第二设备获取应用的用户数据。
作为一种示例,第一设备与第二设备可以基于远程双端通信(remote proxy)技术传输相关数据。
可以理解,相比于第一设备同时从第二设备获取用户数据与和应用数据,第一设备先从第二设备获取应用数据,再在根据应用数据加载应用的过程中,从第二设备获取应用的用户数据的方式可以加快应用界面跨设备显示。其原因在于,该方式可以减小应用数据的传输时间,进而便于第一设备及时加载并运行应用。
在一些实施例中,为了便于后续业务开发,在图4所示S404或图5所示S502,第一设备可以通过REST API从第二设备获取(如下载)应用A的应用数据。其中,REST API由于不需要额外的协议,可以直接基于超文本传输协议(hyper text transfer protocol,HTTP)通过自适应动词增加、删除、修改等实现资源获取和功能调用等,因此具有轻量化特点。另外,REST API的数据描述简单,例如一般通过基于JavaScript语言的轻量级的数据交换格式(JavaScript object notation,JSON)或者可扩展标示语言(extensive markup language,xml)进行数据通讯。
可以理解,基于图4所示跨设备应用界面显示方法,第一设备可以向用户展示第二设备上安装的应用信息,根据用户的实际跨设备应用运行需求,在不安装相应应用程序的前提下,平滑地实现应用跨设备运行和应用界面跨设备显示,且与原生应用的应用功能和界面显示一致。基于图5所示跨设备应用界面显示方法,第二设备可以根 据用户的实际跨设备应用运行需求和用户在该设备上的操作,将该设备上运行的应用界面平滑迁移至与其建立了通信连接的第一设备上接续显示,不丢失任务进程,且第一设备无需安装应用A。
进一步的,在图4和图5跨设备应用界面显示完成之后,第一设备可以删除应用数据和/或用户数据,如应用程序包等相关数据,以实现应用相关进程的随用随走,并不会对第一设备的后续使用造成任何影响。因此,该方法极大地提高了应用界面跨设备显示使用体验。
可选的,在图4和图5跨设备应用界面显示完成之后,第一设备可以将最新的应用数据和/或用户数据,如应用程序包等相关数据回传至第二设备,以便第二设备对应用界面的接续显示。
以下将结,实施例1和实施例2,以第一设备跨设备运行第二设备上安装的应用为例,对本申请实施例提供的跨设备应用界面显示方法做具体介绍。
实施例1:
在本申请实施例1中,在第一设备与第二设备建立通信连接之后,第一设备和第二设备具备向用户展示对端设备上安装的应用信息的能力,以便用户根据实际需求选择跨设备运行的应用。
如图6所示,本申请实施例提供的跨设备应用界面显示方法主要可以包括初始阶段和跨设备运行阶段。其中,初始阶段用于进行通信连接建立和跨设备应用列表展示,如图6所示,初始阶段包括S601-S603。跨设备运行阶段用于进行应用数据获取和应用跨设备运行,如图6所示,跨设备运行阶段包括S604-S606。其中,第一设备与第二设备中运行有用于负责应用界面迁移服务的应用(如图3所示平行空间应用)。
S601:第一设备与第二设备建立通信连接。
其中,第一设备与第二设备建立通信连接如第一设备与第二设备建立蓝牙连接、WiFi直连或者点对点(peer-to-peer,P2P连接,第一设备与第二设备接入同一无线局域网等,本申请不限定通信连接的具体方式。
作为一种示例,第一设备与第二设备可以基于设备互联技术建立通信连接。
示例性的,第一设备与第二设备建立通信连接可以包括:首先,第一设备与第二设备通过低功耗蓝牙(bluetooth low energy,BLE)建立信令通道。然后,第一设备与第二设备通过建立的信令通道交换双方通信参数。最后,第一设备与第二设备建立用于数据传输的P2P连接。
作为一种可能的实现方式,设备可以基于设备发现技术建立与已发现设备之间的通信连接。例如,第一设备可以在发现第二设备之后,与第二设备建立通信连接。又如,第二设备可以在发现第一设备之后,与第一设备建立通信连接。
作为另一种可能的实现方式,设备可以基于用户手动输入的设备信息建立与已输入的设备信息所表征的设备之间的通信连接。例如,第一设备接收用户在第一设备上设备发现界面等界面上输入的第二设备的标识,建立与第二设备之间的通信连接。示例性的,第二设备的标识可以是第二设备的媒体访问控制(media access control,MAC)地址、身份号(identity,ID)、国际移动设备身份码(international mobile equipment identity,IMEI)等,本申请实施例不限定。
作为另一种可能的实现方式,设备还可以基于碰一碰、靠近、扫描设备码等建立与其它设备之间的通信连接。关于设备之间建立通信连接的具体方式和过程,可以参考常规技术,本申请实施例不做赘述。
S602:第一设备与第二设备进行业务数据交换。
其中,第一设备与第二设备进行业务数据交换包括:第一设备从第二设备获取第二设备的业务数据,以及第二设备从第一设备获取第一设备的业务数据。
在本申请实施例中,业务数据包括但不限于设备中安装的应用或者当前设备中运行(包括前台运行和/或后台运行)应用(如包括应用A)的安装包数据。例如,应用安装包数据包括但不限于应用的icon(应用图标)、action(如android.intent.action.MAIN)、category(如android.intent.category.LAUNCHER)、flags和ResovleActivityInfo等。
其中,action用于决定应用的入口Activity,也就是我们启动应用时首先显示哪一个Activity。category用于决定应用程序在程序列表中的显示。flags即Activity的标记位,如用于标记Activity的启动模式、运行状态等。ResovleActivityInfo用于存储应用程序包如安卓应用程序包(Android Package,APK)的meta数据。示例性的,包含了应用所有的界面活动(Activity)信息,打开方式或跳转方式等。基于上述业务数据,可以确定后续应用列表界面中应用图标的显示。
作为一种可能的实现方式,在第一设备与第二设备建立通信连接之后,第一设备和第二设备可以通过用于负责应用界面迁移服务的应用(如平行空间应用),调用PMS(程序包管理服务)获取各自的业务数据。
进一步的,在一些实施例中,第一设备和第二设备可以在平行空间应用获取各自的业务数据之后,通过已建立的通信连接从对端设备获取业务数据。
在另一些实施例中,在第一设备和第二设备通过平行空间应用获取各自的业务数据之后,第一设备和第二设备可以在用户开启应用界面迁移服务时,通过已建立的通信连接从对端设备获取业务数据。其中,用户开启应用界面迁移服务如用户在第一设备和/或第二设备上打开用于负责应用界面迁移服务的应用(如平行空间应用)。本申请不限定第一设备与第二设备进行业务数据交换的具体时机。
可以理解,在第一设备与第二设备进行业务数据交换之后,第一设备便具备展示第二设备应用列表的能力,同样,第二设备也具备展示第一设备应用列表的能力。例如,第一设备和第二设备均具备通过平行空间应用界面展示对端的应用列表的能力。基于第一设备和第二设备的该能力,用户可以根据实际使用场景和需要在任意设备上拉起应用列表界面。
S603:第一设备响应于用户打开应用列表界面的操作,根据第二设备的业务数据显示应用列表界面。
其中,应用列表界面包括至少一个应用图标或者悬浮可滑动页面。该至少一个应用图标或者悬浮可滑动页面对应的应用安装在第二设备中和/或运行在第二设备中。作为一种示例,应用列表界面是平行空间应用的启动界面(也称HomeScreen)。
如前文所述,用于负责应用界面迁移服务的应用,如平行空间应用在运行时可以拉起平行空间用户界面进程和平行空间服务进程。其中,平行空间应用可以通过模拟 PMS,创建与PMS功能一致的虚拟程序包管理服务(virtual package manager service,VPMS)和虚拟活动管理服务(virtual activity manager service,VAMS)。如图7所示,平行空间服务进程可以调用VPMS和VAMS。平行空间用户界面进程可以调用虚拟程序包管理(virtual package manager,VPM)和虚拟活动管理(virtual activity manager,VAM)。
在一些实施例中,为了保证平行空间用户界面进程和平行空间服务进程之间通信的安全性,平行空间用户界面进程和平行空间服务进程之间可以基于进程间通信(inter-process communication,IPC)技术进行通信。
在一种可能的实现方式中,第一设备可以通过拉起平行空间用户界面进程,以根据第二设备的业务数据所指示的如action、category等Intent信息在第一设备显示屏上显示包括有应用图标的平行空间应用的启动界面。
可以理解,第一设备显示的应用列表界面中应用图标所表示的应用,对于用户来说,就像安装在第一设备本地一样,用户可以通过在应用列表界面上操作(如点击任意应用图标),在第一设备上开启第二设备中的任意应用。
请参考图8,图8示出了三种应用列表界面示例。如图8中的(a)所示,应用列表界面以平行空间应用界面的形式展示。对于这种情况,用户打开应用列表界面的操作如用户在平行空间应用界面上开启应用列表展示功能的操作。如图8中的(b)所示,应用列表功能可以以第一设备桌面上一个功能文件夹(如图8中的(b)所示“第二设备”文件夹)的形式展示,应用列表界面是打开该功能文件夹后的界面。对于这种情况,用户打开应用列表界面的操作如用户打开上述功能文件夹的操作。如图8中的(c)所示,应用列表功能可以以桌面上一个功能图标(如图8中的(c)所示“迁移”功能图标)的形式展示,应用列表界面可以包括多个悬浮可滑动页面。对于这种情况,用户打开应用列表界面的操作如用户点击上述功能图标的操作。
在一些实施例中,用户可以在第一设备上打开应用列表界面,通过在应用列表界面上的操作,实现应用界面从第二设备向第一设备的迁移。
例如,假设用户通过第一设备的应用列表界面打开第一应用,则第一设备执行以下S604-S606:
S604:响应于接收到对应用列表界面上第一应用的打开操作,第一设备从第二设备获取第一应用的应用数据。
其中,第一应用的应用数据可以包括但不限定于应用信息,权限信息,应用程序包,资源文件,lib文件等。
其中,应用信息如应用名称、应用所能提供的功能、服务等。权限信息如应用访问设备硬件(如相机、麦克风、存储单元等)的权限,应用访问其它应用(如通信录、位置信息、通话记录、信息等)的权限等。应用程序包如APK。资源文件如res文件。lib文件即静态数据连接库。
示例性的,第一应用的应用数据可以由第二设备中安装的平行空间应用从第二设备的存储空间中获取。通常,第二设备在安装完应用之后,会将应用的应用数据保存在存储空间中。例如,第一应用的应用数据可以存储在以下路径下:/data/app/。示例性的,第一应用的应用程序包的保存路径为/data/app/com.xxx.xx/第一应用.apk,其中 com.xxx.xx如com.android.vending。
Figure PCTCN2022137134-appb-000011
***为例,可以理解,每一个APP在开发时,都会被定义一个MainActivity,MainActivity通常被配置在AndroidManifest文件中。例如,在配置AndroidManifest文件时,将Activity的action指定为android.intent.action.MAIN,将category指定为android.intent.category.LAUNCHER,表示通过Intent启动此Activity时,只接受category为LAUNCHER的Intent。基于此,平行空间用户界面进程在接收到用户在启动界面上对应用图标的触控事件(如点击、长按、触摸等事件)时,会根据用户的操作对象应用,得到应用的Intent,并通过这个Intent启动应用的MainActivity,从而启动应用。
对于一些应用数据量较大的应用,应用数据的传输可能会花费较长的时间。例如,
Figure PCTCN2022137134-appb-000012
应用程序包的文件大小如140M(兆),第二设备向第一设备进行数据传输的速度如10M/S(兆/秒),因此,第二设备接收到对应用列表界面上第一应用的打开操作之后,最快会在14秒之后才能开启
Figure PCTCN2022137134-appb-000013
14秒的延迟会给用户带来非常差的体验。
为了避免由于应用数据量较大导致的第二设备向第一设备传输应用数据花费时间较长,造成的第一设备对用户对应用列表界面上第一应用的打开操作响应的不及时的问题,在一些实施例中,第二设备可以在向第一设备传输第一应用的应用数据时,先向第一设备传输第一应用的第一部分,以加速第一设备加载并运行第一应用的速度。然后,第一设备在加载并运行第一应用的过程中,再从第二设备获取第二部分。其中,第一部分如第一应用的最小可运行版本的应用数据(如apklite包),第二部分如其它未传输的应用数据(如dex文件,so文件,res文件或arsc文件等其它文件)。
其中,so文件即lib文件。res文件即编译之后的资源文件。dex文件如classes.dex文件。classes.dex文件是
Figure PCTCN2022137134-appb-000014
***中的可执行文件。
Figure PCTCN2022137134-appb-000015
虚拟机可以支持classes.dex文件的字节码文件格式。arsc文件如resources.arsc文件。resources.arsc文件是
Figure PCTCN2022137134-appb-000016
资源打包工具(
Figure PCTCN2022137134-appb-000017
assets packaging tools,AAPT)生成的资源索引表。resources.arsc文件记录了所有的应用程序资源目录的信息,包括每一个资源名称、类型、值、ID以及所配置的维度信息。
可以理解,第一应用的最小可运行版本的应用数据中包括能够成功启动第一应用的必要文件。作为一种示例,第一应用的最小可运行版本的应用数据包括第一应用的证书文件、manifest文件和class.dex文件。
其中,manifest文件用于定义入口Activity和IntentFilter。示例性的,IntentFilter可以定义在AndroidManifest.xml文件中。IntentFilter用于声明组件接受哪种Intent(包括action、category等)。例如,若为一个Activity设置了IntentFilter,则可以在应用内或者其它应用中,用特定的隐式Intent启动这个Activity;若没有为Activity设置IntentFilter,则只能通过显示Intent启动这个Activity。
为了避免由于应用数据量较大导致的第二设备向第一设备传输应用数据花费时间较长,造成的第一设备对用户对应用列表界面上第一应用的打开操作响应的不及时的问题,在另一些实施例中,第二设备还可以在应用数据量大于预设阈值时,提示用户(如弹窗提示用户等)选择数据传输策略,并且根据用户选择的数据传输策略选择向第一设备发送第一应用的应用数据。其中,数据传输策略如传输所有应用数据、先传 输最小可运行版本等。
或者,第二设备还可以在应用数据量大于预设阈值时,提示用户(如弹窗提示用户等)选择应用界面跨设备显示策略,并且根据用户选择的应用界面跨设备显示策略执行相应任务。其中,应用界面跨设备显示策略如投屏(如同源投屏或异源投屏等)、APP安装、继续传输应用数据(如先传输最小可运行版本)等。
作为一种示例,在接收到对应用列表界面上第一应用的打开操作之后,如图7所示,平行空间用户界面进程可以向平行空间服务进程请求第一应用的应用数据(如图7中S701所示)。例如,平行空间用户界面进程可以向平行空间服务进程发送Binder请求,以请求第一应用的应用数据。然后,平行空间服务进程可以通过VPMS,向第二设备的平行空间服务进程请求第一应用的应用数据(如图7中S702所示)。例如,平行空间服务进程可以通过VPMS,向第二设备的平行空间服务进程发送Socket请求,以请求第一应用的应用数据。进一步的,如图7所示,第二设备的平行空间服务进程通过VPackageLite,解析应用数据,确定第一应用的最小可运行版本所需要的应用数据,(如图7中S703所示)。然后,通过VPMS将第一应用的最小可运行版本的应用数据发送给第一设备,第一设备可以直接在内存中对第一应用的最小可运行版本的应用数据(如包括APK)进行解析(如图7中S704-1和S704-2所示)。
其中,在本申请实施例中,对应用列表界面上第一应用的打开操作可以包括但不限于对应用列表界面上第一应用的点击(如单击、双击等)操作、长按后选择打开选项的操作、右键后选择打开选项的操作、拖动至预设位置的操作,或者其它预设操作等。以应用列表界面如图8所示为例,对应用列表界面上第一应用,如
Figure PCTCN2022137134-appb-000018
的打开操作可以如对图8中的(a)或者如对图8中的(b)所示应用列表界面上
Figure PCTCN2022137134-appb-000019
应用图标的点击、长按后选择打开选项的操作、右键后选择打开选项等操作,或者将如对图8中的(c)所示
Figure PCTCN2022137134-appb-000020
悬浮可滑动页面拖动至迁移启动图标处的操作。
S605:第一设备解析第一应用的应用数据,模拟发起第一应用的开始活动(startActivity)。
在本申请实施例中,第一设备中用于负责应用界面迁移服务的应用,如平行空间应用可以提供虚拟的服务(如VAMS、VPMS、VNMS等)和应用编程接口(application programming interface,API)调用能力,以便在用户选择在第一设备跨设备运行第二设备中安装的第一应用时通过模拟发起开始活动(startActivity)、启动进程等,以实现不安装相应应用程序,但是正常运行该应用的目的。
如图7中S705所示,第一设备的平行空间用户界面进程可以通过VAM,指示平行空间服务进程模拟发起第一应用的开始活动(startActivity),以开启第一应用进程。
进一步的,如图7中S706所示,第一设备根据应用数据所指示的intent发起第一应用的开始活动(startActivity),如启动应用的占位Activity(StubActivity),创建第一应用进程,并且为第一应用启动提供标准环境。
Figure PCTCN2022137134-appb-000021
***为例,标准环境如标准zygote环境。其中,在
Figure PCTCN2022137134-appb-000022
***中,大多数应用进程和***进程都是通过标准zygote环境生成的。示例性的,基于zygote环境,可以创建第一应用进程和第一应用的应用线程(ApplicationThread)。其中,应用线程(ApplicationThread)用于提供Binder通信接口。以
Figure PCTCN2022137134-appb-000023
***为例,示例 性的,在模拟发起开始活动(startActivity)时,通常会进入hooked StartActivity方法,该方法在发现需要启动插件内部的Activity时,会进行ActivityInfo解析,然后通过VAM调用VAMS对应的方法,发起开始活动(startActivity)以及创建进程。
然后,如图7中S707所示,第一应用进程通过调用自身回调初始化第一应用进程,接管API、AMS、PMS,以解析真正要启动的Activity(如实际要加载的应用程序代码位置,应用数据中的相应文件(如dex文件,so文件和res文件等)),进而将解析到的数据映射到第一应用进程的内存空间。
S606:第一设备运行第一应用。
如图7中S708所示,第一应用进程在应用线程(ApplicationThread)创建之前通过hook手段,调用桩函数将应用程序包名修改成真正的包名,为第一应用进程创建上下文(context),进而成功创建第一应用的应用线程(ApplicationThread)。其中,上下文(context)用于访问应用相关的各种资源文件(如图片、布局文件等)。至此,第一应用进程进入标准(standard)模式的第一应用的Activity的生命周期。
可以理解,至此,第一设备完成对第二设备上安装的应用的跨设备运行。
其中,在本申请实施例中,第一设备通过Framework层根据从第二设备获取的第一应用的应用数据模拟发起第一应用的开始活动,启动以及运行第一应用。示例性的,第一设备通过调用自身回调,接管API、AMS、PMS等Framework层的能力,经过应用进程初始化、应用数据解析和映射、hook后修改程序包名、创建上下文等,成功启动以及运行第一应用。因此,操作***会把第一应用当做安装在第一设备中的应用,按照第一应用的标准(standard)模式生命周期运行第一应用。因此,基于本申请实施例提供的方法可以实现应用的跨设备使用体验。
进一步的,在本申请一些实施例中,为了保证第一应用在第一设备上的正常启动。第一设备还可以实时检测是否收到代码段的缺失(如class not found),so不能加载等异常告警。以及,在检测到异常告警时,从第二设备获取对应文件(如dex文件),重新加载并映射到第一应用进程中。在截取(hook)到异常告警时,如图9中S709所示,第一应用进程可以调用HookManager向第二设备(如图9所示第二设备中的APK管理类(VApkManager))请求对应文件(如dex文件)。然后,如图9中S710所示,第一应用进程可以调用HookManager将获取的对应文件(如dex文件)重新加载并映射到第一应用进程中。
进一步的,对于第一设备启动第二设备上安装的第一应用,且登录第二设备上第一应用所登录账号的情况,如图10所示,本申请实施例提供的方法的跨设备运行阶段还可以包括S1001-S1002:
S1001:第一设备从第二设备获取第一应用的用户数据。
其中,第一应用的用户数据如第一应用的账号信息。
示例性的,第一应用的用户数据可以由第二设备中安装的平行空间应用从第二设备的存储空间中获取。通常,在用户使用应用的过程中,相关用户数据会实时保存在存储空间中。例如,第一应用的用户数据可以存储在以下路径下:/data/data/。示例性的,第一应用的账号信息的保存路径为/data/data/com.xxx.xx/登录信息,其中com.xxx.xx如com.android.vending。
S1002:第一设备将第一应用的用户数据加载至第一应用,登录对应账号。
在一些可能的情况中,如对于第一设备接续显示第二设备上应用界面(如第一界面)的情况,如图11所示,本申请实施例提供的方法的跨设备运行阶段还可以包括S1101-S1102:
S1101:第一设备从第二设备获取第一应用的用户数据。
其中,第一应用的用户数据可以包括但不限定于第一应用的账号信息、历史使用数据等。其中,历史使用数据如聊天记录、播放记录、浏览记录等相关数据。
以第一应用是
Figure PCTCN2022137134-appb-000024
应用为例,第一应用的用户数据包括微信账号信息、聊天记录、通信录、白名单/黑名单、朋友权限、朋友圈动态、公众号、收藏等相关信息。以第一应用是视频应用为例,第一应用的用户数据包括视频应用账号信息、播放记录、最近播放进度、收藏等相关信息。本申请不限定第一应用的用户数据的类型,视具体应用而定。
示例性的,第一应用的用户数据可以由第二设备中安装的平行空间应用从第二设备的存储空间(如/data/data/路径下)中获取。
S1102:第一设备将第一应用的用户数据加载至第一应用中,接续显示第一应用的第一界面。
其中,在本申请实施例中,第一设备接续显示第一应用的第一界面是指第一设备不丢失第二设备显示第一应用的第一界面时对应的应用进程,继续根据该应用进程显示界面。
需要说明的是,本申请上述实施例仅以第一设备中未安装第一应用作为示例。实际上,第一设备中也有可能已经安装有第一应用。
对于第一设备中已经安装有第一应用的情况,当第一设备接续显示第一应用的第一界面时,在一些实施例中,本申请实施例提供的应用界面跨设备显示方法包括图11所示S601-S603和S1101,然后,第一设备启动安装在第一设备中的第一应用,并执行S606和S1102。可见,本申请实施例既可以适用于第一设备中未安装第一应用的情况下第一应用的跨设备启动和第一应用界面的迁移,也可以适用于第一设备中已经安装有第一应用的情况下第一应用界面的迁移,通用性强。
在一些实施例中,为了安全起见,一些应用在跨设备运行时,需要进行设备或用户等相关信息校验,因此当在第一设备上运行第二设备上安装的应用时,第一应用可能会调用校验信息。示例性的,校验信息如硬件校验信息(如设备ID)或者用户身份识别卡(subscriber identity module,SIM)校验信息等。对于这种情况,为了保证第一应用在第一设备上的正常运行,第一设备可以截取(hook)对上述校验API的调用,从第二设备获取相关硬件信息(如设备ID)或者验证信息(如验证码)以成功完成校验。
在一些实施例中,为了保证应用界面跨设备显示方法的性能稳定,对于独立资源访问,如内存访问申请、互联网资源访问、摄像头调用等,可以采用***API的常规处理流程调用相应内存、网络和摄像头。
需要说明的是,上述对API调用的截取(hook)场景仅作为示例,本申请不限定截取(hook)API的具体场景、类型等,视具体情况和实际需求而定。
如上文所述,在本申请实施例中,用户可以通过在第一设备上发起跨设备显示第二设备上的应用界面,也可以通过在第二设备上发起将第二设备上的应用界面跨设备显示在第一设备上。上述实施例1具体介绍了用户在第一设备上发起跨设备显示第二设备上的应用界面的情况。关于用户在第二设备上发起将第二设备上的应用界面跨设备显示在第一设备上的情况,应用界面跨设备显示具体过程可以参考以下实施例2。
实施例2:
在本申请实施例2中,在第二设备与第一设备建立通信连接之后,第二设备具备根据用户在该设备上的操作,将该设备上运行的应用界面迁移至第一设备上接续显示的能力。
如图12所示,本申请实施例提供的跨设备应用界面显示方法可以包括S1201-S1205:
S1201:第二设备与第一设备建立通信连接。
关于S1201的具体过程,可以参考实施例中对S601的介绍,这里不做赘述。
S1202:响应于用户打开应用界面迁移功能的操作,第二设备显示可迁移应用列表界面。
其中,可迁移应用列表界面包括至少一个应用图标或者悬浮可滑动页面。该至少一个应用图标或者悬浮可滑动页面对应的应用安装在第二设备中和/或运行在第二设备中。
作为一种示例,应用界面迁移功能的触发入口集成在平行空间应用中。对于这种情况,用户打开用户界面迁移功能的操作如用户在平行空间应用界面上开启应用界面迁移功能的操作,相应的,可迁移应用列表界面以平行空间应用界面的形式展示。
作为另一种示例,应用界面迁移功能可以以第二设备桌面上一个功能文件夹的形式为用户提供服务。对于这种情况,用户打开用户界面迁移功能的操作如用户打开该功能文件夹的操作。相应的,可迁移应用列表界面即打开该功能文件夹后的界面。
作为另一种示例,应用界面迁移功能可以以桌面上一个功能图标的形式为用户提供服务。对于这种情况,用户打开用户界面迁移功能的操作如用户点击上述功能图标的操作。示例性的,可迁移应用列表界面即用户打开用户界面迁移功能后的主界面,如该主界面上包括多个悬浮可滑动页面。
S1203:响应于用户在可迁移应用列表界面上对第一应用的选择操作,第二设备向第一设备发送第一应用的应用数据。
其中,第一应用的应用数据可以包括但不限定于应用信息,权限信息,应用程序包,资源文件,lib文件等。例如,第一应用的应用数据可以存储在以下路径下:/data/app/。
在一些实施例中,若第一应用的应用数据量较大,第二设备可以先向第一设备传输第一应用的第一部分,以加速第一设备加载并运行第一应用的速度。然后,第二设备在第一设备加载并运行第一应用的过程中,再向第一设备发送第一应用的第二部分。其中,第一应用的第一部分如第一应用的最小可运行版本的应用数据(如apklite包),第一应用的第二部分如其它未传输的应用数据(如dex文件,so文件,res文件或arsc文件等其它文件)。通过这种方式可以避免应用数据的传输花费时间较长,造成的第一设备对用户对应用列表界面上第一应用的打开操作响应的不及时的问题。
或者,若第一应用的应用数据量较大,第二设备还可以提示用户(如弹窗提示用户等)选择应用界面跨设备显示策略,并且根据用户选择的应用界面跨设备显示策略执行相应任务。其中,应用界面跨设备显示策略如投屏(如同源投屏或异源投屏等)、APP安装、继续传输应用数据(如先传输最小可运行版本)等。
S1204:第一设备解析第一应用的应用数据,模拟发起第一应用的开始活动(startActivity)。
S1205:第一设备运行第一应用。
关于S1204和S1205的具体过程,可以参考实施例1中对S605和S606的介绍,这里不做赘述。
进一步的,对于第一设备启动第二设备上安装的第一应用,且登录第二设备上第一应用所登录账号的情况,如图12所示,本申请实施例提供的方法的跨设备运行阶段还可以包括S1001-S1002。
或者,进一步的,对于第一设备接续显示第二设备上应用界面(如第一界面)的情况,如图13所示,本申请实施例提供的方法的跨设备运行阶段还可以包括S1101-S1102。
关于S1001-S1002,S1101-S1102的具体过程,可以参考实施例1中的介绍,这里不做赘述。
通过上述实施例1和实施例2可知,基于本申请实施例提供的应用界面跨设备显示方法,通过动态加载来自第二设备的应用程序包(如APK文件),实现在第一设备上直接运行第一应用的目的,且保证应用界面与原生应用的应用功能和界面显示一致。上述方法突破了设备之间的壁垒,极大提高了应用界面跨设备显示的便捷性,方便了跨设备场景下用户的使用体验。
并且,上述方法中,在结束应用界面跨设备显示之后,第一设备可以删除应用程序包应用数据和/或用户数据,如APK文件等相关数据,以实现应用相关进程的随用随走,并不会对第一设备的后续使用造成任何影响,提高了应用界面跨设备显示时的用户体验。示例性的,基于图6所示应用界面跨设备显示方法,第一设备可以在不安装相应应用程序的前提下,通过动态加载来自第二设备的应用程序包(如APK文件),实现在第一设备上直接打开并运行第二设备上安装的应用,且保证应用界面与原生应用的应用功能和界面显示一致。
例如,基于本申请实施例提供的应用界面跨设备显示方法,用户可以通过未安装导航应用的平板电脑,使用手机中已安装的导航应用。其中,平板电脑可以基于本申请实施例提供的应用界面跨设备显示方法,直接开启安装在手机中的导航应用,如图14所示。
基于图10和图12所示应用界面跨设备显示方法,第一设备可以在不安装相应应用程序的前提下,通过动态加载来自第二设备的应用程序包(如APK文件),实现在第一设备上直接以第二设备上该应用已登录的账号运行第二设备上安装的该应用,且保证应用界面与原生应用的应用功能和界面显示一致。
例如,基于本申请实施例提供的应用界面跨设备显示方法,用户可以通过未安装导航应用的平板电脑,使用手机中已安装的导航应用。并且,用户无需手动在平板电 脑中输入导航应用的登录信息。其中,平板电脑可以基于本申请实施例提供的应用界面跨设备显示方法,自动登录手机中导航应用所登录的账号,如图15所示。
基于图11和图13所示应用界面跨设备显示方法,第一设备可以在不安装相应应用程序的前提下,通过动态加载来自第二设备的应用程序包(如APK文件),实现在第一设备上接续第二设备对应用界面的显示,且保证应用界面与原生应用的应用功能和界面显示一致。
例如,基于本申请实施例提供的应用界面跨设备显示方法,用户可以通过未安装
Figure PCTCN2022137134-appb-000025
应用的平板电脑,接续显示手机中的
Figure PCTCN2022137134-appb-000026
应用界面(如聊天界面、公众号浏览界面、朋友圈浏览界面等)。又如,用户可以通过未安装视频应用的电视机,接续手机中的视频播放。
又如,基于本申请实施例提供的应用界面跨设备显示方法,用户可以通过未安装导航应用的平板电脑,接续显示手机中导航应用界面(如导航界面),如图16所示。
应理解,本申请实施例的各个方案可以进行合理的组合使用,并且实施例中出现的各个术语的解释或说明可以在各个实施例中互相参考或解释,对此不作限定。
还应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
可以理解的是,终端设备(包括第一设备和第二设备)为了实现上述任一个实施例的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以对终端设备(包括第一设备和第二设备)进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以采用集成的方式划分各个功能模块的情况下,如图17所示,为本申请实施例提供的一种终端设备的结构框图。如图17所示,该终端设备可以包括连接建立单元1710、收发单元1720、处理单元1730和显示单元1740。
其中,在终端设备是第一设备时,连接建立单元1710用于支持第一设备与第二设备建立通信连接,和/或与本申请实施例相关的其它过程。收发单元1720用于支持第一设备从第二设备获取以下数据中的一种或多种:应用数据、业务数据、用户数据、校验信息,和/或与本申请实施例相关的其它过程。处理单元1730用于支持第一设备根据从第二设备获取的应用数据启动相应应用,根据从第二设备获取的用户数据加载相应界面,处理信息校验指示,和/或与本申请实施例相关的其它过程。显示单元1740用于支持第一设备显示应用列表界面,显示应用界面,和/或与本申请实施例相关的其 它界面。
在终端设备是第二设备时,连接建立单元1710用于支持第二设备与第一设备建立通信连接,和/或与本申请实施例相关的其它过程。收发单元1720用于支持第二设备向第一设备发送以下数据中的一种或多种:应用数据、业务数据、用户数据、校验信息,和/或与本申请实施例相关的其它过程。处理单元1730用于支持第二设备处理跨设备应用启动和/或应用界面迁移相关任务,和/或与本申请实施例相关的其它过程。显示单元1740用于支持第二设备显示应用界面,显示可迁移应用列表界面,和/或与本申请实施例相关的其它界面。
作为一种示例,上述收发单元1720可以包括射频电路。具体的,终端设备可以通过射频电路进行无线信号的接收和发送。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频电路还可以通过无线通信和其它设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***、通用分组无线服务、码分多址、宽带码分多址、长期演进、电子邮件、短消息服务等。
应理解,终端设备中的各个模块可以通过软件和/或硬件形式实现,对此不作具体限定。换言之,电子设备是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路ASIC、电路、执行一个或多个软件或固件程序的处理器和存储器、集成逻辑电路,和/或其它可以提供上述功能的器件。
在一种可选的方式中,当使用软件实现数据传输时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地实现本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线((digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如数字化视频光盘(digital video disk,DVD))、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
结合本申请实施例所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于电子设备中。当然,处理器和存储介质也可以作为分立组件存在于终端设备中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

Claims (28)

  1. 一种应用界面跨设备显示方法,其特征在于,所述方法包括:
    第一设备与第二设备建立通信连接;
    所述第一设备从所述第二设备获取第一应用的应用数据和所述第一应用的用户数据;所述应用数据包括所述第二设备运行所述第一应用所需的应用程序包;其中,所述第一应用安装在所述第二设备中;
    所述第一设备根据从所述第二设备获取的所述第一应用的应用数据和所述第一应用的用户数据,启动所述第一应用并显示所述第一应用的界面。
  2. 根据权利要求1所述的方法,其特征在于,所述第一应用的用户数据包括所述第二设备中所述第一应用的账号信息。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一应用的用户数据包括所述第二设备中所述第一应用对应的历史使用数据。
  4. 根据权利要求3所述的方法,其特征在于,所述第一设备根据从所述第二设备获取的所述第一应用的应用数据和所述第一应用的用户数据,启动所述第一应用并显示所述第一应用的界面,包括:
    所述第一设备根据从所述第二设备获取的所述第一应用的应用数据,启动所述第一应用;
    所述第一设备将所述第一应用的用户数据加载至所述第一应用,接续所述第二设备上显示的所述第一应用的界面。
  5. 根据权利要求4所述的方法,其特征在于,所述第一设备根据从所述第二设备获取的所述第一应用的应用数据,启动所述第一应用,包括:
    所述第一设备将从所述第二设备获取的所述第一应用的应用数据加载到所述第一设备的内存,启动所述第一应用。
  6. 根据权利要求1-5中任一项所述的方法,其特征在于,在第一设备与所述第二设备建立通信连接之后,所述方法还包括:
    所述第一设备从所述第二设备获取业务数据,所述业务数据包括所述第二设备中安装的应用的安装包数据;
    所述第一设备根据所述业务数据显示应用列表界面,所述应用列表界面用于表示所述第二设备中安装的应用。
  7. 根据权利要求1-5中任一项所述的方法,其特征在于,在第一设备与所述第二设备建立通信连接之后,所述方法还包括:
    所述第一设备从所述第二设备获取业务数据,所述业务数据包括所述第二设备中当前运行的应用的安装包数据;
    所述第一设备根据所述业务数据显示应用列表界面,所述应用列表界面用于表示所述第二设备中当前运行的应用。
  8. 根据权利要求1-7中任一项所述的方法,其特征在于,所述第一设备从所述第二设备获取第一应用的应用数据和所述第一应用的用户数据,包括:
    响应于接收到用户对应用列表界面上第一应用的打开操作,所述第一设备从所述第二设备获取所述第一应用的应用数据和所述第一应用的用户数据。
  9. 根据权利要求1-5中任一项所述的方法,其特征在于,
    所述第一应用的应用数据和所述第一应用的用户数据由所述第二设备响应于接收到用户在可迁移应用列表界面上对所述第一应用的选择操作,发送给所述第一设备;
    其中,所述可迁移应用列表界面用于表示所述第二设备中安装的应用或者所述第二设备当前运行的应用。
  10. 根据权利要求1-9中任一项所述的方法,其特征在于,所述第一设备从所述第二设备获取第一应用的应用数据,包括:
    所述第一设备根据用户确定的数据传输策略,从所述第二设备获取所述应用数据;
    其中,所述数据传输策略包括:传输所有应用数据、先传输所述第一应用的最小可运行版本的应用数据;所述第一应用的最小可运行版本的应用数据包括启动所述第一应用所必须的文件。
  11. 根据权利要求10所述的方法,其特征在于,所述第一设备从所述第二设备获取第一应用的应用数据,包括:
    所述第一设备从所述第二设备获取所述应用数据的第一部分,所述第一部分包括所述第一应用的最小可运行版本的应用数据;
    所述第一设备从所述第二设备获取所述应用数据的第二部分。
  12. 根据权利要求11所述的方法,其特征在于,所述第一设备从所述第二设备获取所述应用数据的第二部分,包括:
    响应于检测到预设告警,所述第一设备从所述第二设备获取所述应用数据的第二部分;
    其中,所述预设告警包括代码段的缺失告警和/或文件不能加载告警。
  13. 根据权利要求1-12中任一项所述的方法,其特征在于,所述方法还包括:
    在接收到对预设信息的校验时,所述第一设备从所述第二设备获取相应信息,以完成所述校验。
  14. 根据权利要求13所述的方法,其特征在于,所述预设信息包括与硬件有关的信息。
  15. 根据权利要求1-14中任一项所述的方法,其特征在于,所述第一应用的应用数据还包括以下中的一种或多种:应用信息,权限信息,资源文件,库文件。
  16. 一种应用界面跨设备显示方法,其特征在于,所述方法包括:
    第二设备与第一设备建立通信连接;
    所述第二设备向所述第一设备发送第一应用的应用数据和所述第一应用的用户数据;所述应用数据包括所述第二设备运行所述第一应用所需的应用程序包;
    其中,所述第一应用的应用数据和所述第一应用的用户数据用于所述第一设备基于所述第一应用的应用数据启动所述第一应用,以及基于所述第一应用的用户数据接续所述第二设备上显示的所述第一应用的界面。
  17. 根据权利要求16所述的方法,其特征在于,所述第一应用的用户数据包括所述第二设备中所述第一应用的账号信息。
  18. 根据权利要求16或17所述的方法,其特征在于,所述第一应用的用户数据包括所述第二设备中所述第一应用对应的历史使用数据。
  19. 根据权利要求16-18中任一项所述的方法,其特征在于,在所述第二设备与所述第一设备建立通信连接之后,所述方法还包括:
    所述第二设备向所述第一设备发送业务数据,所述业务数据包括所述第二设备中安装的应用的安装包数据;
    其中,所述业务数据用于所述第一设备向用户展示应用列表界面,所述应用列表界面用于表示所述第二设备中安装的应用。
  20. 根据权利要求16-19中任一项所述的方法,其特征在于,所述第二设备向所述第一设备发送第一应用的应用数据和所述第一应用的用户数据,包括:
    响应于接收到用户在可迁移应用列表界面上对所述第一应用的选择操作,所述第二设备向所述第一设备发送第一应用的应用数据和所述第一应用的用户数据;
    其中,所述可迁移应用列表界面用于表示所述第二设备中安装的应用或者所述第二设备当前运行的应用。
  21. 根据权利要求16-20中任一项所述的方法,其特征在于,所述第二设备向所述第一设备发送第一应用的应用数据和所述第一应用的用户数据,包括:
    所述第二设备根据用户确定的数据传输策略,向所述第一设备发送第一应用的应用数据和所述第一应用的用户数据;
    其中,所述数据传输策略包括:传输所有应用数据、先传输所述第一应用的最小可运行版本的应用数据;所述第一应用的最小可运行版本的应用数据包括启动所述第一应用所必须的文件。
  22. 根据权利要求21所述的方法,其特征在于,所述第二设备向所述第一设备发送第一应用的应用数据,包括:
    所述第二设备向所述第一设备发送应用数据的第一部分,所述第一部分包括所述第一应用的最小可运行版本的应用数据;
    所述第二设备向所述第一设备发送应用数据的第二部分。
  23. 一种第一设备,其特征在于,所述第一设备包括:
    存储器,用于存储计算机程序;
    收发器,用于接收或发送无线电信号;
    处理器,用于执行所述计算机程序,使得所述第一设备实现如权利要求1-15中任一项所述的方法。
  24. 一种第二设备,其特征在于,所述第二设备包括:
    存储器,用于存储计算机程序;
    收发器,用于接收或发送无线电信号;
    处理器,用于执行所述计算机程序,使得所述第二设备实现如权利要求16-22中任一项所述的方法。
  25. 一种通信***,其特征在于,所述通信***包括:
    如权利要求23所述的第一设备;以及,
    如权利要求24所述的第二设备。
  26. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序代码,所述计算机程序代码被处理电路执行时实现如权利要求1-15或16-22 任一项所述的方法。
  27. 一种芯片***,其特征在于,所述芯片***包括处理电路、存储介质,所述存储介质中存储有计算机程序代码;所述计算机程序代码被所述处理电路执行时实现如权利要求1-15或16-22中任一项所述的方法。
  28. 一种计算机程序产品,其特征在于,所述计算机程序产品用于在计算机上运行,以实现如权利要求1-15或16-22中任一项所述的方法。
PCT/CN2022/137134 2021-12-13 2022-12-07 应用界面跨设备显示方法、设备*** WO2023109607A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111522667.4A CN116263683A (zh) 2021-12-13 2021-12-13 应用界面跨设备显示方法、设备***
CN202111522667.4 2021-12-13

Publications (1)

Publication Number Publication Date
WO2023109607A1 true WO2023109607A1 (zh) 2023-06-22

Family

ID=86721686

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/137134 WO2023109607A1 (zh) 2021-12-13 2022-12-07 应用界面跨设备显示方法、设备***

Country Status (2)

Country Link
CN (1) CN116263683A (zh)
WO (1) WO2023109607A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168667A (zh) * 2014-09-05 2014-11-26 北京奇虎科技有限公司 数据获取的方法、装置及***
CN104850463A (zh) * 2015-06-08 2015-08-19 三星电子(中国)研发中心 应用程序共享方法及装置
US20190190968A1 (en) * 2016-09-14 2019-06-20 Guangdong Oppo Mobile Telecommunications., Ltd Method for Migrating Data and Terminal
US20200389460A1 (en) * 2017-12-15 2020-12-10 Google Llc Extending application access across devices
CN112291764A (zh) * 2019-08-06 2021-01-29 华为技术有限公司 一种内容接续方法、***及电子设备
CN112463418A (zh) * 2020-12-17 2021-03-09 珠海市魅族科技有限公司 跨设备信息分享方法、装置、介质和电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168667A (zh) * 2014-09-05 2014-11-26 北京奇虎科技有限公司 数据获取的方法、装置及***
CN104850463A (zh) * 2015-06-08 2015-08-19 三星电子(中国)研发中心 应用程序共享方法及装置
US20190190968A1 (en) * 2016-09-14 2019-06-20 Guangdong Oppo Mobile Telecommunications., Ltd Method for Migrating Data and Terminal
US20200389460A1 (en) * 2017-12-15 2020-12-10 Google Llc Extending application access across devices
CN112291764A (zh) * 2019-08-06 2021-01-29 华为技术有限公司 一种内容接续方法、***及电子设备
CN112463418A (zh) * 2020-12-17 2021-03-09 珠海市魅族科技有限公司 跨设备信息分享方法、装置、介质和电子设备

Also Published As

Publication number Publication date
CN116263683A (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
US11947974B2 (en) Application start method and electronic device
AU2022211850B2 (en) Application function implementation method and electronic device
WO2021196970A1 (zh) 一种创建应用快捷方式的方法、电子设备及***
US20240086231A1 (en) Task migration system and method
WO2022057742A1 (zh) 一种跨设备调用应用的方法及电子设备
WO2022135156A1 (zh) 分布式跨设备协同方法、电子设备及通信***
WO2022028494A1 (zh) 一种多设备数据协作的方法及电子设备
WO2022156535A1 (zh) 分布式应用的处理方法和装置
CN114968384B (zh) 一种功能调用方法和装置
EP4095723B1 (en) Permission reuse method, permission reuse-based resource access method, and related device
WO2022161024A1 (zh) 升级提示方法、终端设备及计算机可读存储介质
WO2023029983A1 (zh) 一种控件内容的拖拽方法、电子设备及***
WO2023109607A1 (zh) 应用界面跨设备显示方法、设备***
JP7319431B2 (ja) アプリケーション機能の実施方法及び電子装置
EP4191409A1 (en) Shared library multiplexing method and electronic device
WO2023066036A1 (zh) 一种跨设备文件显示方法、设备及***
WO2023071590A1 (zh) 输入控制方法及电子设备
WO2022228076A1 (zh) 一种自动打印方法及电子设备
WO2023061014A1 (zh) 任务管理方法及装置
WO2024083114A1 (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: 22906355

Country of ref document: EP

Kind code of ref document: A1