WO2019184156A1 - 一种免安装应用程序下载方法及装置 - Google Patents
一种免安装应用程序下载方法及装置 Download PDFInfo
- Publication number
- WO2019184156A1 WO2019184156A1 PCT/CN2018/096892 CN2018096892W WO2019184156A1 WO 2019184156 A1 WO2019184156 A1 WO 2019184156A1 CN 2018096892 W CN2018096892 W CN 2018096892W WO 2019184156 A1 WO2019184156 A1 WO 2019184156A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- page
- application
- sub
- information
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Definitions
- the present application relates to the field of Internet technologies, and in particular, to a download-free application download method and apparatus.
- Free installation of the application no installation process, users can click the application icon to download and run directly from the server, realizing the point-and-click, out-of-the-box operation mode, so that users do not have to worry about installing too many applications.
- the embodiment of the present application provides a download-free application downloading method and apparatus, so that a larger application can meet the requirement of the user “point-and-click”.
- an embodiment of the present application provides a download-free application downloading method, where the method includes:
- the server After receiving the request for downloading the installation-free application sent by the terminal, the server sends the necessary information for running the application, the main page information of the application, and the sub-page information with the highest degree of association with the main page to the terminal.
- the server determines the association degree according to the obtained access order of each terminal of the application included in the application.
- the server may not send the entire content of the application to the terminal at one time, but first sends the necessary information for running the application, the main page information, and the highest degree of association with the main page.
- the sub-page information ensures that the terminal can run the application normally, shortening the initial download time to improve the user experience.
- the sub-page with the highest degree of association with the main page that is, the page that the user is likely to continue to access after accessing the main page, and the sub-page information is sent to the terminal, helps reduce the number of times the terminal subsequently downloads the sub-page information. .
- the server may determine, according to the page currently accessed by the terminal, and the degree of association between the currently accessed page and other pages, the page with the highest relevance to the current visited page in the sub-page information that has not been downloaded by the terminal. Information and send the determined page information to the terminal.
- the server predicts the page to be accessed by the terminal, and sends the information of the page that the terminal is likely to access to the terminal, so that the terminal does not need to download the page after the subsequent access to the page. user experience.
- the server determines the degree of association between the pages, according to the obtained access order of the multiple terminals in the application, if it is determined that the second page is accessed after accessing the first page. The greater the probability, the higher the degree of association between the first page and the second page.
- the server may analyze the user's usage habits according to the obtained big data, and determine the degree of association between the pages according to the usage habits of the user, so that the server subsequently sends the page information with high relevance to the terminal. It can be more suitable for the user's use needs, which helps to reduce the situation where the user operates the terminal to access a certain page and the information of the page is not downloaded.
- the server may further split the application program according to the determined degree of association between the pages, and split the main package and the at least one sub-package. Then, when the server sends the necessary information of the application, the main page information of the application, and the sub-page information with the highest degree of association with the main page to the terminal, the server may send the main package to the terminal, where the main package includes necessary information of the application and the application.
- the main page information and the sub-page information with high degree of association with the main page; or the main package and the first sub-package may be sent to the terminal, where the main package includes necessary information of the application and main page information of the application, first The sub-package includes information on the sub-page with the highest relevance to the main page.
- the server splits the application program into a main package and several sub-packages, so that the server can send the information of each page to the terminal, so that the server can record which information has been sent to the terminal and which information is not sent to the terminal.
- the server may also send the correspondence between the pages and the sub-packets to the terminal, and the terminal may determine, according to the corresponding relationship, that the information of the to-be-accessed page requested by the user has not been downloaded yet.
- the second sub-packet where the page information to be accessed is located the terminal may send a request for downloading the second sub-package to the server.
- the size of the split primary package may be less than a first preset threshold; and/or, each sub-package after splitting The size is smaller than the second preset threshold. If the split package is large and the download time is long, it may affect the user experience. Therefore, setting the preset threshold for the size of the split main package and sub-package helps to meet the user's “point-and-click”. Demand.
- the server when the server splits the application program, the server may carry the signature information of the server in each of the main package and each sub-package. In the above implementation manner, the server adds the signature information of the server to each sub-package after the splitting, so that the terminal can verify the validity of each of the downloaded.
- an embodiment of the present application provides a server, including: a processor, and a memory and a communication interface connected to the processor;
- the processor is configured to read a computer program pre-stored in the memory to execute:
- the server determines the degree of association according to the obtained access order of the plurality of terminals to the pages included in the application.
- the processor is further configured to: determine, according to a page currently accessed by the terminal, and a degree of association between the currently accessed page and other pages, the terminal is not downloaded, and is related to the current The accessed page has the highest degree of relevance; the information of the page determined by the processing unit is sent to the terminal through the communication interface.
- the processor is specifically configured to: determine, according to the access sequence, that a probability that a plurality of terminals access the second page after accessing the first page is greater, determining the first page The degree of association with the second page is higher.
- the processor is further configured to: split a program of the application according to a degree of association between the pages, and split the main package and the at least one sub-packet.
- the processor is specifically configured to: when the necessary information for running the application, the main page information of the application, and the sub-page information with the highest degree of association with the main page are sent to the terminal through the communication interface, specifically Transmitting, by the communication interface, a main package of the application to the terminal, where the main package includes necessary information for running the application, main page information of the application, and the highest degree of association with the main page.
- Sub-page information; or, the main package and the first sub-packet of the application are sent to the terminal by using the communication interface, where the main package includes necessary information for running the application and main page information of the application
- the first sub-package includes information of a sub-page with the highest degree of association with the main page.
- the processor is further configured to: send, by using the communication interface, a correspondence between each page and the at least one sub-package to the terminal; receive, by using the communication interface a request for downloading the second sub-packet sent by the terminal, where the terminal determines, according to the correspondence, the second sub-packet where the information of the to-be-accessed page is located when the information of the to-be-accessed page is not downloaded;
- the communication interface sends a second sub-package to the terminal.
- the size of the primary packet is smaller than a first preset threshold; and/or the size of each of the secondary packets is smaller than a second preset threshold.
- the signature information of the server is included in the primary package and each of the sub-packets.
- the embodiment of the present application further provides a computer storage medium, where the software program stores a software program, where the software program can implement the first aspect or the first step when being read and executed by one or more processors Any of the aspects provided by the design.
- FIG. 1 is a schematic flowchart of a download-free application downloading method provided by an embodiment of the present application
- FIG. 2 is a second schematic flowchart of a download-free application downloading method provided by an embodiment of the present application
- FIG. 3 is a schematic structural diagram of a server according to an embodiment of the present application.
- FIG. 4 is a second schematic structural diagram of a server according to an embodiment of the present application.
- the installation-free application can be run without the installation process, and the terminal can run directly after downloading the package, which is convenient for the user to operate.
- you can load another application free of charge in one application such as WeChat applet.
- the user can click the icon of the free installer B in the application A, the terminal will load the application B package and run, because the application B package is small, the download can be quickly completed, and the installation process is eliminated, the user can quickly
- the application B can be used to achieve the click-to-use effect.
- the terminal can automatically release the resources occupied by the application B, thereby avoiding long-term occupation of the storage space in the terminal, so the user does not have to worry about downloading and installing a large number of applications. The problem of insufficient storage space in the terminal.
- Free-to-install applications can provide users with a better user experience, but there are certain limitations. At present, when downloading the package of the installation-free application, the package is generally loaded at one time. To achieve the click-to-use effect, the package of the installation-free application cannot be too large, otherwise the downloading time will be too long. Reduce the user experience.
- An application or platform that provides an application-free installation usually limits the package size of the installation-free application, limits the package size to no more than 2MB or 4MB, and so on.
- the embodiment of the present application provides a download-free application download method.
- FIG. 1 is a schematic flowchart of a download-free application downloading method provided by an embodiment of the present application. As shown in the figure, the method may include the following steps:
- Step 101 The server receives a request for downloading an installation-free application sent by the terminal.
- the terminal When a user wants to use an instant app, for example, the user clicks on an icon of an instant app, the terminal sends a request to the server to download the instant app.
- Step 102 The server sends the necessary information for running the application, the main page information of the application, and the sub-page information with the highest degree of association with the main page to the terminal.
- the degree of association is obtained by the server according to the obtained access order of each of the plurality of terminals included in the application.
- the necessary information to run the application can be, regardless of which pages in the application the terminal requests to access, the information that should be obtained as long as the application is run. For example, the app's name, icon, global app variables, and more.
- An application can usually include multiple pages.
- the page first displayed to the user is called the main page, and the other pages are called sub-pages.
- the terminal runs a shopping application, and the page first displayed to the user is a main page, and the main page may include product display information recommended for the user, user information, etc.; the user clicks the identifier of “my information” to enter “ On the My Information page, the page is a sub-page; after entering the “My Information” page, the user clicks on the “Member Information” logo to enter the “Member Information” page, which is also a sub-page.
- a game application may include a main page for displaying game information, and may also include a competition game subpage, a stand-alone game subpage, and a performance ranking subpage.
- the server can obtain the access order of multiple terminals to each page in the application in advance, that is, obtain the usage habits of the user, and determine the degree of association between the pages.
- the server determines that the probability that the plurality of terminals access the page 2 after accessing the page 1 is greater, the degree of association between the page 1 and the page 2 is considered to be higher.
- the server can obtain operation information of a large number of terminals, and determine that when the terminal accesses the "My" page, 50% of the terminals will continue to access the "My Favorites” page, and 10% of the terminals will access " On the My Orders page, the server determines that the My Pages are more relevant to the My Favorites page and less relevant to the My Orders page.
- the server determines, according to the operation information of the plurality of terminals, that when the terminal opens the main page of the application, 60% of the terminals access the "real-time battle” page, and play games against other users, and 30% The terminal will access the "single mode” page, and 10% of the terminals will visit the "performance ranking” page to view the leaderboard; the server determines that the main page of the game application has the highest relevance to the "real-time battle” page, and "stand-alone mode” The relevance of the page is second, and the relevance to the "ranking" page is the lowest.
- the information obtained by the server from the terminal to the order of accessing the pages in the application may be obtained from the terminal, or may be sent by the other device to the server, or may be manually input into the server.
- the terminal may periodically access the information of the page after the application is opened, or may report the access page information to the server in time after each page is accessed.
- the server may send an instruction to the terminal to report the page access information, and the terminal periodically reports the page information accessed by the terminal according to the instruction.
- a task of collecting a plurality of terminal access page sequences may be performed by another server, and then the statistical result is sent to the server providing the download-free application download service.
- the page access information of the multiple terminals may be acquired, and the page access information of the same terminal when the application is used multiple times may be acquired, because even if the same user passes through the same terminal multiple times Open an application-free application, and the order of access to each page may not be the same.
- the server may further split the application program, and split the main package and the at least one sub-package.
- the main package includes the necessary information for running the application, and the main page information of the application, that is, the information of the page that the user first enters after opening the application. Further, in addition to running the necessary information of the application and the main page information of the application, the main package may further include information of the sub-page with the highest degree of association with the main page, so that the terminal downloads the main package and runs the application access. After the main page, the information of the page that has a higher probability of continuing to be accessed is also included in the main package to prevent the terminal from downloading multiple times. In addition, the main package may also include information such as the version number of the application, the system environment supported by the application, and the like.
- the sub-package may include information of at least one sub-page, and the information contained in the sub-package may be non-essential information for running the application. For example, when the terminal runs the shopping application, the information of the “completed order” page is not running the application. The necessary information, and considering that the user immediately enters the "Completed Order” page with a small probability after opening the application, the server can package the "Completed Order" page information in the sub-package.
- the page information included in the above main package or sub-package may be the address of the page, such as a uniform resource locator (url) of the page.
- url uniform resource locator
- the server splits the package according to the determined degree of association between the pages, so that the split main package and sub-package can be more suitable for the user's needs. For example, if the server determines a game application, the main page has the highest relevance to the "real-time battle" page, and the "single-machine mode” page has the lowest relevance, and the "my record” page has the lowest relevance. According to the determined degree of association, the server can put the information of the main page and the "real-time battle” page into the main package, and put the information of the "stand-alone mode” page and the "my record” page into the sub-package.
- the terminal In the process of downloading the application, the terminal first downloads the main package, so that the terminal can successfully run the main page of the application; since the user may choose to enter the “real-time battle” page, the information of the “real-time battle” page and the main page is Packaged in the main package, it is convenient for users to directly enter the "real-time battle” page without downloading other sub-packages, which helps to improve the user experience; since the user is smaller, he may choose to enter the "stand-alone mode” page and the "my record” page. Therefore, the "single mode" page and the "my record” page are packaged in a sub-package, and the sub-package can be sent to the terminal when the user needs it.
- the server may send the main package (including the necessary information for running the application, the main page information, and the sub-page information with the highest degree of association with the main page) to the terminal.
- the main package (including the necessary information for running the application and the main page information) and the sub-package containing the sub-page information with the highest degree of association with the main page may be sent to the terminal.
- the server can also limit the size of the split primary package and sub-package when splitting the application package, that is, after splitting.
- the primary packet size is smaller than the first preset threshold
- the sub-packet size is smaller than the second preset threshold.
- the main package size does not exceed 4M
- the sub-packet size does not exceed 2M.
- the first preset threshold and the second preset threshold may also be the same.
- the free-installation application may also be provided to provide a limitation factor of the application package size by the platform. .
- the application package provided by the server for the terminal usually contains the signature information added by the server to prevent the package from being illegally tampered with.
- the server since the server splits the package, the main package and the at least one sub-packet are split. To prevent each main package or sub-package from being tampered with, the server may be each obtained after the split. The package adds the signature information of the server to ensure the security and legality of each package after the split.
- the server may further generate a correspondence between the page and the sub-package. For example, if the server packages the information of the "shopping cart" page (page 1) in the shopping application into sub-package 1, the information of the "completed order” page (page 2) is packaged into sub-package 2, which will be " The information of the My Favorites page (page 3) is packaged into the sub-package 3, and the server determines that the page 1 corresponds to the sub-package 1, the page 2 corresponds to the sub-package 2, and the page 3 corresponds to the sub-package 3; when the user wants to access the page 1 If the program that has been downloaded by the terminal does not include the information of the page 1, the terminal may send a request for accessing the page 1 to the server, and the server may send the sub-package 1 to the terminal according to the correspondence between the page and the sub-packet.
- the correspondence between the above page and the sub-package generated by the server is usually The correspondence between each subpage and subpackages.
- the primary package further includes information of one or more sub-pages that are highly correlated with the main page, the corresponding information may not include corresponding information of the sub-pages included in the main package.
- the corresponding relationship may also include a correspondence between the main page and the main package, and may also include a corresponding relationship between the sub-page and the main package included in the main package, which is not limited in this embodiment of the present application.
- the server may also send the corresponding relationship between the page and the sub-package to the terminal, and when the terminal determines that the information of the to-be-accessed page requested by the user has not been downloaded, the terminal may determine, according to the corresponding relationship, the information of the page to be accessed. Sub-package and send a request to the server to download the sub-package. For example, after the user operates the terminal to open the application A, and wants to access the page 2 in the application A, and the information of the page 2 is not downloaded, the terminal according to the correspondence between the page and the sub-package included in the downloaded main package, It is determined that page 2 corresponds to sub-packet 2, and then a request to download sub-package 2 is sent to the server.
- the terminal determines whether it is necessary to download the sub-package after receiving the instruction of the user accessing the page.
- the terminal may also actively send a request for downloading the sub-package to the server when there is no download task or when the download task is small. For example, after the terminal downloads the main package of the application A and runs the application A, the user is browsing the content displayed on the application B main page. At this time, the terminal may not have the download task being executed, or the terminal only needs to download a small amount of information to update the main page.
- the terminal can actively send a request for obtaining a sub-package to the server, thereby downloading the application sub-package without affecting the current operating experience of the user, thereby facilitating the speed of the user to subsequently open other pages and improving the user experience.
- the server can also actively send sub-packages of the application to the terminal.
- the terminal downloads the main package of the game application B. If the user is currently playing a game, since the terminal may need to download real-time information during the game, the server may send other sub-packages of the application to the terminal during the non-game period, such as “record ranking” The sub-package of the information on the page.
- the server may further send the sub-package of the application to the terminal according to the currently running page of the terminal and the determined degree of association between the pages. For example, if the terminal is currently running page 1, the server determines, according to the degree of association between the pages, the degree of association with the page 1 from high to low is page 2, page 3, page 4, ..., where page 2 and page 1 The information is packaged in sub-package 1, page 3 and page 4 are packaged in sub-package 2, and the terminal has downloaded sub-package 1, so the server can send the sub-packet 2 that the terminal has not downloaded to the terminal.
- the server may determine the information of the page with the highest degree of association with the current access page of the terminal from the page where the terminal does not currently download the corresponding information, and send the information to the terminal.
- the server after receiving the request for downloading the installation-free application, the server does not send the entire content of the application to the terminal at one time, but first sends the necessary information and the main page information of the running application to make the terminal
- the application can be run normally, shortening the initial download time and achieving the click-to-play effect.
- the server since the server also sends the sub-page information with the highest degree of association with the main page to the terminal, that is, the information of the page that the terminal is likely to continue to access is sent to the terminal, which helps reduce the subsequent downloading of the sub-page information by the terminal. frequency.
- the server receives the package of the application-free application A uploaded by the developer. Because the package size of the application A exceeds the threshold, the server performs the initial splitting of the application A. Because the server does not obtain the operation information about the application A by the user during the splitting. The association between the pages in the application A cannot be analyzed. Therefore, the server can perform simple splitting only to ensure that the size of the split primary package and each sub-package does not exceed a preset threshold.
- the server obtains the operation information of the user from the terminal, that is, the order information of the terminal accessing each page, analyzes the degree of association between the pages in the application A, and applies the application A according to the degree of association.
- the package is re-split.
- the main package and sub-package split according to the degree of page relevance are more in line with the user's operation requirements, which helps to reduce the number of times the sub-package is downloaded.
- the interaction process between the terminal and the server may be as shown in FIG. 2 .
- Step 201 The terminal receives an instruction that the user uses the installation-free application A.
- Step 202 The terminal sends a request for downloading the application A to the server.
- Step 203 The server sends the primary packet of the application A to the terminal, where the primary packet may include information as shown in Table 1.
- Application package identifier The unique identifier of the application A package Application Name The name of the application A, the name that can be displayed in the desktop icon, popup, etc.
- icon Application A icon version number Application A version number Main page url The url used to access the application A main page Subpage 1url The url used when accessing the application subpage 1 is the highest. The subpage 1 has the highest relevance to the main page.
- Correspondence Correspondence between each page and sub-package in application A signature Signature information added by the server for validity check
- Step 204 After receiving the primary packet, the terminal performs legality verification according to the signature information. If the verification is successful, proceed to step 205, otherwise the process ends.
- Step 205 The terminal runs the application A according to the primary package.
- Step 206 The terminal receives an instruction to access the sub-page 1, and accesses the sub-page 1 according to the url of the sub-page 1 included in the main package.
- Step 207 The terminal receives an instruction to access the sub-page 3, and the terminal determines that the downloaded main package does not include the information of the sub-page 3, and determines that the information of the sub-page 3 is included in the sub-package 2 according to the correspondence between the page and the sub-package. Then the terminal sends a request to download the sub-packet 2 to the server.
- Step 208 The server sends the sub-packet 2 to the terminal.
- Step 209 The server obtains that the terminal is currently accessing the sub-page 3. According to the degree of association between the pages, determining the degree of association with the sub-page 3 from high to low is sub-page 4, sub-page 5..., and page 4 The sub-packet 2 where the information is located has been sent to the terminal, but the sub-packet 3 where the information of the page 5 is located has not been sent to the terminal, and the server transmits the sub-packet 3 to the terminal.
- the intelligent splitting of the application package helps to shorten the waiting time when the terminal downloads the application, thereby achieving a "point-and-click" user experience; in addition, due to the package splitting Time-sharing, taking into account the user's operating habits, so the split main package, sub-package is more in line with the user's usage habits, helping to reduce the number of times the terminal downloads sub-packages.
- the embodiment of the present application further provides a server for performing the functions of the server in the foregoing method embodiment.
- 4 is a schematic structural diagram of a server 300 according to an embodiment of the present application.
- the server may include at least one processor 301, a communication bus 302, a memory 303, and at least one communication interface 304.
- the processor 301 is configured to read a computer program pre-stored in the memory 303 to execute:
- the server determines the degree of association according to the obtained access order of the plurality of terminals to the pages included in the application.
- the processor 301 is further configured to: determine, according to a page currently accessed by the terminal, and a degree of association between the currently accessed page and other pages, determining that the terminal is not downloaded, and The currently accessed page has the highest degree of relevance; the information of the page determined by the processing unit is sent to the terminal through the communication interface 304.
- the processor 301 is specifically configured to: determine, according to the access sequence, that a probability that a plurality of terminals access the second page after accessing the first page is greater, determining the first The higher the degree of association between the page and the second page.
- the processor 301 is further configured to: split a program of the application according to a degree of association between the pages, and split the main package and the at least one sub-package; The processor 301, when transmitting the necessary information for running the application, the main page information of the application, and the sub-page information with the highest degree of association with the main page to the terminal through the communication interface 304, specifically Transmitting, by the communication interface 304, the main package of the application to the terminal, where the main package includes necessary information for running the application, main page information of the application, and association with the main page.
- the highest sub-page information; or, the main package and the first sub-packet of the application are sent to the terminal through the communication interface 304, where the main package includes necessary information for running the application and the application Main page information, the first sub-package includes information of a sub-page with the highest degree of association with the main page.
- the processor 301 is further configured to: send, by using the communication interface 304, a correspondence between each page and the at least one sub-packet to the terminal;
- the interface 304 receives the request for downloading the second sub-packet sent by the terminal, where the terminal determines, according to the correspondence, the second sub-page of the to-be-accessed page information, when determining that the information of the to-be-accessed page is not downloaded. a packet; the second sub-packet is transmitted to the terminal through the communication interface 304.
- the size of the primary packet is smaller than a first preset threshold; and/or the size of each of the secondary packets is smaller than a second preset threshold.
- the signature information of the server is included in the primary package and each of the sub-packets.
- the processor 301 can be a general central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more for controlling the execution of the program of the present application. integrated circuit.
- CPU central processing unit
- ASIC application-specific integrated circuit
- Communication bus 302 can include a path for communicating information between the components described above.
- the communication interface 304 uses a device such as any transceiver for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area networks (WLAN), etc. .
- a device such as any transceiver for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area networks (WLAN), etc. .
- RAN radio access network
- WLAN wireless local area networks
- the memory 303 can be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type that can store information and instructions.
- the dynamic storage device can also be an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, and a disc storage device. (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store desired program code in the form of instructions or data structures and can be Any other media accessed, but not limited to this.
- the memory can exist independently and be connected to the processor via a bus.
- the memory can also be integrated with the processor.
- the memory 303 is used to store application code for executing the solution of the present application, and is controlled by the processor 301 for execution.
- the processor 301 is configured to execute the application code stored in the memory 303, so as to implement the download-free application downloading method provided by the foregoing embodiment of the present application.
- the processor 301 may perform related functions in the download-free application downloading method provided by the foregoing embodiment of the present application, and the communication interface 304 is responsible for communicating with other devices or the communication network.
- the application examples are not specifically limited thereto.
- processor 301 can include one or more CPUs.
- the server can include multiple processors.
- processors can be a single-CPU processor or a multi-core processor.
- a processor herein may refer to one or more devices, circuits, and/or processing cores for processing data, such as computer program instructions.
- FIG. 4 is a schematic structural diagram of a server according to an embodiment of the present disclosure.
- the server may include: a receiving unit 401, a processing unit 402, and a sending unit 403.
- the receiving unit 401 and the sending unit 403 can be used to implement the functions implemented by the communication interface of the foregoing embodiment, and the processing unit can be used to implement the functions implemented by the foregoing processor, which are not described herein.
- the embodiment of the present application further provides a computer storage medium, where the software program stores a software program, and the software program can implement the above-mentioned download-free application download method when being read and executed by one or more processors.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种免安装应用程序下载方法及装置。在该方法中,服务器接收终端发送的下载免安装应用请求后,将运行该应用的必要信息、该应用的主页面信息以及与该主页面关联度最高的子页面信息发送给终端。其中,服务器根据获取的多个终端对该应用中包括的各页面的访问顺序确定出上述关联度。通过上述方法,服务器可以不一次性将应用程序的全部内容发送给终端,而是先发送运行应用的必要信息、主页面信息以及与主页面关联度最高的子页面信息,保证终端能够正常运行该应用的情况下,缩短初次下载时间,此外,与主页面关联度最高的子页面,即用户在访问主页面后较大可能要继续访问的页面,而将该子页面信息发送给终端,有助于减少终端后续下载子页面信息的次数。
Description
本申请要求在2018年3月28日提交中国专利局、申请号为201810265173.4、发明名称为《一种免安装应用的运行方法和装置》的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及互联网技术领域,尤其涉及一种免安装应用程序下载方法及装置。
随着互联网技术的发展,免安装的应用程序称为一种流行趋势。免安装应用程序,无需安装流程,用户可以在点击应用图标从服务器直接下载并运行,实现了即点即用、用完即走的操作模式,使得用户无需担心安装太多应用程序的问题。
目前,免安装应用程序通常需要一次性下载全部应用程序包。若应用程序包较大,则下载时间会较长,较难实现即点即用,降低用户体验。为了给用户带来较好的操作体验,微信对免安装小程序的应用程序包的大小进行了限制,不能超过2MB;谷歌对瞬时应用(instant App)的应用程序包大小的上限为4MB。
然而,较大应用程序如何实现免安装、即点即用,有待进一步研究。
发明内容
本申请实施例提供了一种免安装应用程序下载方法及装置,以实现较大应用程序也能够满足用户“即点即用”的需求。
第一方面,本申请实施例提供一种免安装应用程序下载方法,该方法包括:
服务器接收终端发送的下载免安装应用的请求后,将运行该应用的必要信息、该应用的主页面信息以及与该主页面关联度最高的子页面信息发送给终端。其中,服务器根据获取的多个终端对该应用中包括的各页面的访问顺序确定出上述关联度。
在上述方法中,服务器在接收到终端下载免安装应用时,可以不一次性将应用程序的全部内容发送给终端,而是先发送运行应用的必要信息、主页面信息以及与主页面关联度最高的子页面信息,保证终端能够正常运行该应用的情况下,缩短初次下载时间,以提高用户体验。此外,与主页面关联度最高的子页面,即用户在访问主页面后较大可能要继续访问的页面,而将该子页面信息发送给终端,有助于减少终端后续下载子页面信息的次数。
在一种可能的实现方式中,服务器可以根据终端当前访问的页面,以及当前访问页面与其他页面的关联度,确定终端还未下载的子页面信息中与该当前访问页面关联度最高的页面的信息,并将确定出的页面信息发送给终端。
在上述实施例中,服务器对终端后续将要访问的页面进行预测,并将终端较大可能要访问的页面的信息发送给终端,以使终端在后续访问该页面时,不必再进行下载,以提高用户体验。
在一种可能的实现方式中,服务器在确定各页面之间的关联度时,根据获取的多个终端对该应用中各页面的访问顺序,若确定在访问第一页面后访问第二页面的概率越大,则 确定第一页面与第二页面之间的关联度越高。通过上述实施例,服务器可以根据获取到的大数据分析用户对该应用的使用习惯,根据用户使用习惯确定各页面之间的关联度,以使服务器后续为终端发送关联度高的页面信息时,能够较为贴合用户的使用需求,有助于减少用户操作终端访问某个页面而该页面的信息未下载的情况发生。
在一种可能的实现方式中,服务器还可以根据确定出的各页面之间的关联度,对该应用的程序进行拆分,拆分为主包和至少一个子包。那么服务器在将应用的必要信息、应用的主页面信息以及与主页面关联度最高的子页面信息发送给终端时,可以将主包发送给终端,该主包中包括应用的必要信息、应用的主页面信息以及与主页面关联度高的子页面信息;或者,也可以将主包和第一子包发送给终端,其中,主包中包括应用的必要信息和应用的主页面信息,第一子包中包括与主页面关联度最高的子页面的信息。在上述方法中,服务器将应用的程序拆分为主包和若干子包,便于服务器向终端发送各页面的信息,便于服务器记录哪些信息已发送给终端、哪些信息未发送给终端。
在一种可能的实现方式中,服务器还可以将各页面与子包之间的对应关系发送给终端,那么终端在确定用户请求的待访问页面的信息还未下载时,可以根据上述对应关系确定待访问页面信息所在的第二子包,终端可以向服务器发送下载该第二子包的请求。
在一种可能的实现方式中,服务器在对应用的程序进行拆分时,可以令拆分后的主包的大小,小于第一预设阈值;和/或,令拆分后的每个子包的大小均小于第二预设阈值。若拆分后的程序包较大,下载时间较长,可能会影响用户体验,因此对拆分后的主包、子包的大小设置预设阈值,有助于满足用户“即点即用”的需求。
在一种可能的实现方式中,服务器在对应用的程序进行拆分时,可以令主包和每个子包中携带有该服务器的签名信息。在上述实现方式中,服务器在拆分后的每个子包中添加该服务器的签名信息,以使终端能够对下载的每个进行合法性验证。
第二方面,本申请实施例提供了一种服务器,包括:处理器,以及与所述处理器连接的存储器和通信接口;
所述处理器,用于读取所述存储器中预先存储的计算机程序执行:
通过所述通信接口接收终端发送的下载免安装应用的请求;
通过所述通信接口将运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息发送给所述终端;
其中,所述服务器根据获取的多个终端对所述应用中包括的各页面的访问顺序确定出所述关联度。
在一种可能的实现方式中,所述处理器,还用于:根据终端当前访问的页面,以及当前访问的页面与其他页面的关联度,确定所述终端未下载的、且与所述当前访问的页面关联度最高的页面;通过所述通信接口将所述处理单元确定出的页面的信息发送给所述终端。
在一种可能的实现方式中,所述处理器,具体用于:根据所述访问顺序,确定多个终端在访问第一页面后访问第二页面的概率越大,则确定所述第一页面与所述第二页面之间的关联度越高。
在一种可能的实现方式中,所述处理器,还用于:根据各页面之间的关联度,对所述应用的程序进行拆分,拆分为主包和至少一个子包。
所述处理器,在通过所述通信接口将运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息发送给所述终端时,具体用于:通过所述通 信接口将所述应用的主包发送给所述终端,所述主包中包括运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息;或者,通过所述通信接口将所述应用的主包和第一子包发送给所述终端,所述主包中包括运行所述应用的必要信息和所述应用的主页面信息,所述第一子包包括与所述主页面关联度最高的子页面的信息。
在一种可能的实现方式中,所述处理器,还用于:通过所述通信接口将各页面与所述至少一个子包之间的对应关系发送给所述终端;通过所述通信接口接收所述终端发送的下载第二子包的请求,其中,所述终端在确定待访问页面的信息未下载时,根据所述对应关系确定出所述待访问页面信息所在的第二子包;通过所述通信接口将第二子包发送给所述终端。
在一种可能的实现方式中,所述主包的大小,小于第一预设阈值;和/或,每个所述子包的大小均小于第二预设阈值。
在一种可能的实现方式中,所述主包和每个所述子包中均包含有所述服务器的签名信息。
第三方面,本申请实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现第一方面或上述第一方面的任意一种设计提供的方法。
图1为本申请实施例提供的免安装应用程序下载方法流程示意图之一;
图2为本申请实施例提供的免安装应用程序下载方法流程示意图之二;
图3为本申请实施例提供的服务器结构示意图之一;
图4为本申请实施例提供的服务器结构示意图之二。
下面将结合附图对本申请实施例作进一步地详细描述。
免安装应用程序可以无需安装过程,终端下载程序包后可以直接运行,便于用户操作。此外,还可以在一个应用中加载另一个免安装应用程序,如微信小程序等。例如,用户可以在应用A中点击免安装程序B的图标,则终端将加载应用B的程序包并运行,由于应用B的程序包较小可以快速下载完成,且免去安装过程,用户可以快速使用应用B,达到即点即用的效果;而当用户关闭应用B后,终端可以自动释放该应用B占用的资源,避免长期占用终端中的存储空间,因此用户不必担心下载、安装大量应用导致终端存储空间不足的问题。
免安装应用程序能够为用户带来较好的用户体验,但也存在一定的局限性。目前,在下载免安装应用的程序包时,一般是将程序包一次性载下完成,若要达到即点即用的效果,免安装应用的程序包不能过大,否则下载时间过长将会降低用户体验。提供免安装应用的应用或平台,通常会对免安装应用的程序包大小进行限制,限制程序包大小不超过2MB或4MB等等。
然而,对于一些功能页面较多的应用来说,想要将程序包大小控制在较小范围内,通常比较困难。为了实现较大应用程序也能够满足用户“即点即用”的需求,本申请实施例 提供了一种免安装应用程序下载方法。
参见图1,为本申请实施例提供的免安装应用程序下载方法的流程示意图,如图所示,该方法可以包括以下步骤:
步骤101、服务器接收终端发送的下载免安装应用的请求。
当用户想要使用某个免安装应用时,例如用户点击某个免安装应用的图标,终端则向服务器发送下载该免安装应用的请求。
步骤102、服务器将运行该应用的必要信息、该应用的主页面信息以及与主页面关联度最高的子页面信息发送给终端。
具体地,上述关联度,是服务器根据获取到的多个终端对该应用中包括的各页面的访问顺序取得出的。
运行该应用的必要信息,可以为,不论终端请求访问应用中的哪些页面,只要运行该应用就应当获取的信息。例如,应用的名称、图标、全局应用变量等等。
一个应用中通常可以包括多个页面。其中,当用户选择打开一个应用后,首先展示给用户的页面称为主页面,其他页面则称为子页面。例如,终端运行一个购物类应用,首先展示给用户的页面为主页面,该主页面上可以包括为用户推荐的商品展示信息,用户信息等;用户通过点击“我的信息”的标识,进入“我的信息”页面,该页面即为子页面;在进入“我的信息”页面后,用户通过点击“会员信息”标识,进入“会员信息”页面,该页面也为子页面。又例如,一个游戏类应用中,可以包括用于展示游戏信息的主页面,还可以包括对战游戏子页面、单机游戏子页面以及战绩排行子页面等。
服务器针对一个免安装应用,可以提前获取多个终端对应用中各页面的访问顺序,即获取用户的使用习惯,确定各页面之间的关联度。可选地,若服务器确定多个终端在访问页面1后,访问页面2的概率越大,则认为页面1与页面2之间的关联度越高。例如,一款购物类应用,服务器可以获取众多终端的操作信息,确定当终端访问“我的”页面后,50%的终端会继续访问“我的收藏”页面,而10%的终端会访问“我的订单”页面,则服务器确定“我的”页面与“我的收藏”页面之间的关联度较高,而与“我的订单”页面的关联度较低。又例如,对游戏类应用,服务器根据众多终端的操作信息,确定当终端打开该应用的主页面后,60%的终端会访问“实时对战”页面,与其他用户进行游戏对战,而30%的终端会访问“单机模式”页面,还有10%的终端会访问“战绩排行”页面查看排行榜;服务器则确定该游戏应用的主页面与“实时对战”页面的关联度最高,与“单机模式”页面的关联度次之,与“战绩排行”页面的关联度最低。
服务器获取到的终端对应用中各页面访问顺序的信息,可以的从终端处获取的,也可以是由其他设备发送给服务器的,或者,还可以是人工输入到服务器中的。例如,终端可以在打开应用后周期性的其访问页面的信息,或者,也可以在每访问一个页面后及时将访问页面信息上报给服务器。又例如,服务器可以向终端发送上报页面访问信息的指令,终端根据指令周期性或实时上报该终端访问的页面信息。再例如,还可以由其他服务器执行收集多个终端访问页面顺序的任务,然后将统计结果发送给该提供免安装应用下载服务的服务器。
此外,在获取应用中各页面访问顺序的信息时,可以获取多个终端的页面访问信息,还可以获取同一终端的多次使用该应用时的页面访问信息,因为即使同一用户通过同一终端多次打开一个免安装应用,对各页面的访问顺序也未必相同。
在一种可能的实现方式中,服务器在确定一个应用中各页面之间的关联度后,还可以对该应用的程序进行拆分,拆分为主包和至少一个子包。
其中,主包中包括运行该应用的必要信息,以及该应用的主页面信息,即用户打开该应用后首先进入的页面的信息。进一步地,主包中除了运行该应用的必要信息以及该应用的主页面信息之外,还可以包括与主页面关联度最高的子页面的信息,以使终端在下载主包并运行该应用访问主页面后,较大概率要继续访问的页面的信息也被包含在主包中,避免终端多次下载。此外,主包中还可以包括该应用的版本号、该应用支持的系统环境等信息。
子包中可以包括至少一个子页面的信息,子包中包含的信息可以为运行该应用的非必要信息,例如,终端在运行购物类应用时,“已完成订单”页面的信息不是运行该应用的必要信息,且考虑到用户在打开该应用后较小概率立即进入“已完成订单”页面,则服务器可以将“已完成订单”页面信息打包在子包中。
上述主包或子包中包含的页面信息可以为页面的地址,如页面的统一资源定位符(uniform resource locator,url)。
服务器根据确定出的页面间关联度对程序包进行拆分,能够使得拆分后的主包、子包更贴合用户需求。举例说明,若服务器确定出一款游戏应用中,主页面与“实时对战”页面的关联度最高,与“单机模式”页面的关联度次之,与“我的战绩”页面的关联度最低。服务器根据确定出的关联度,可以将主页面与“实时对战”页面的信息放入主包中,将“单机模式”页面和“我的战绩”页面的信息放入子包中。终端在下载该应用的过程中,先下载主包,使得终端能够顺利运行该应用的主页面;由于用户较大可能选择进入“实时对战”页面,因而将“实时对战”页面与主页面的信息打包在主包中,有利于用户直接进入“实时对战”页面而无需下载其他子包,更有助于提高用户体验;由于用户较小可能选择进入“单机模式”页面以及“我的战绩”页面,故将“单机模式”页面和“我的战绩”页面打包在子包中,可以在用户有需求时再将子包发送给终端。
若服务器对应用程序进行了拆分,相应地,在上述步骤102中,服务器可以将主包(包括运行应用的必要信息、主页面信息以及与主页面关联度最高的子页面信息)发送给终端,或者,也可以将主包(包括运行应用的必要信息和主页面信息)和包含有与主页面关联度最高的子页面信息的子包发送给终端。
此外,为了进一步满足快速下载、即点即用的用户需求,服务器在对应用的程序包进行拆分时,还可以对拆分后的主包、子包的大小进行限制,即拆分后的主包大小,小于第一预设阈值,子包大小小于第二预设阈值。例如,主包大小不超过4M,子包大小不超过2M。当然,第一预设阈值与第二预设阈值也可以相同。在确定第一预设阈值以及第二预设阈值时,可以参考常用网络的下载速率、用户可接受下载时间等,此外,还可以参考免安装应用程序提供平台对应用程序包大小的限制因素等。
服务器为终端提供的应用程序包中,通常包含有服务器添加的签名信息,以防止程序包被非法篡改。而在上述实施例中,由于服务器对程序包进行了拆分,拆分为主包和至少一个子包,为了防止每个主包或子包被篡改,服务器可以为拆分后得到的每个包添加该服务器的签名信息,以保证拆分后的每个包的安全性、合法性。
在一种可能的实现方式中,服务器在对程序包进行拆分时,还可以进一步生成页面与子包之间的对应关系。例如,若服务器将购物类应用中的“购物车”页面(页面1)的信 息打包到子包1中,将“已完成订单”页面(页面2)的信息打包到子包2中,将“我的收藏”页面(页面3)的信息打包到子包3中,则服务器确定页面1对应子包1,页面2对应子包2,页面3对应子包3;当用户想要访问页面1时,且终端已下载的程序包中不包含页面1的信息,则终端可以向服务器发送访问页面1的请求,服务器可以根据页面与子包之间的对应关系,将子包1发送给终端。通常情况下,由于主页面信息已携带在主包中发送给终端,终端后续请求获取的页面信息不会是主页面信息,因此,服务器生成的上述页面与子包之间的对应关系中,通常为各子页面与子包之间的对应关系。此外,若主包中还包括与主页面关联度较高的一个或多个子页面的信息,那么上述对应关系中,与可以不包括这些主包中已包含的子页面的对应信息。当然,上述对应关系中也可以包括主页面与主包的对应关系,还可以包括主包中包含的子页面与主包的对应关系,本申请实施例对此不做限制。
进一步地,服务器还可以将各页面与子包之间的对应关系发送给终端,那么终端在确定用户请求的待访问页面的信息还未下载时,终端可以根据上述对应关系确定待访问页面信息所在的子包,并向服务器发送下载该子包的请求。例如,用户操作终端打开应用A后,想要访问应用A中的页面2,而页面2的信息没有被下载,则终端根据已下载的主包中包含的页面与子包之间的对应关系,确定页面2对应子包2,进而向服务器发送下载子包2的请求。
在上述终端获取子包的过程中,终端是在接收到用户访问页面的指令后,判断是否需要下载子包。而在另一种可能的实现方式中,终端也可以在没有下载任务或下载任务较少时,主动向服务器发送下载子包的请求。例如,终端下载应用A的主包并运行应用A后,用户正在浏览应用B主页面上显示的内容,此时终端可能没有正在执行的下载任务,或终端仅需下载少量信息更新主页面所显示的内容,此时,终端可以主动向服务器发送获取子包的请求,从而实现在不影响用户当前操作体验的情况下下载应用子包,有助于加快用户后续打开其他页面的速度,提高用户体验。
此外,服务器也可以主动向终端发送应用的子包。例如,终端下载了游戏应用B的主包,若用户当前正在进行游戏,由于游戏过程中终端可能需要下载实时信息,服务器可以在非游戏时段向终端发送该应用的其他子包,如“战绩排行”页面的信息所在子包。
进一步地,服务器还可以根据终端当前运行的页面以及确定出的各页面之间的关联度,向终端发送应用的子包。例如,若终端当前正在运行页面1,服务器根据各页面之间关联度确定与页面1关联度从高到低依次为页面2、页面3、页面4...,其中,页面2与页面1的信息均被打包在子包1中,页面3和页面4被打包在子包2中,而终端已经下载了子包1,故服务器可以将终端未下载的子包2发送给终端。
当然,若服务器未对该应用的程序进行拆包,那么服务器可以从终端当前未下载相应信息的页面中,确定与终端当前访问页面关联度最高的页面的信息,并将该信息发送给终端。
在本申请实施例中,服务器在接收到下载免安装应用的请求后,并没有一次性将应用程序的全部内容发送给终端,而是先发送运行应用的必要信息、主页面信息,以使终端能够正常运行该应用,缩短初次下载时间,实现即点即用的效果。此外,由于服务器还将与主页面关联度最高的子页面信息一同发送给终端,即,将终端较大可能要继续访问的页面的信息发送给终端,有助于减少终端后续下载子页面信息的次数。
为了清楚理解本申请上述实施例,下面进行举例说明。
服务器接收到开发者上传的免安装应用A的程序包,由于应用A的程序包大小超过阈值,服务器对应用A进行初次拆分,由于此次拆分时服务器未获得用户关于应用A的操作信息,无法分析应用A中各页面之间的关联度,因此,服务器可以仅进行简单拆分,以保证拆分后的主包、每个子包的大小不超过预设阈值。在应用A被多个用户下载、使用后,服务器从终端处获取用户的操作信息,即终端访问各页面的顺序信息,分析应用A中各页面之间的关联度,并根据关联度对应用A的程序包进行重新拆分。根据页面关联度拆分后的主包、子包更符合用户的操作需求,有助于减少下载子包的次数。
服务器对根据页面关联度对应用A的程序包进行智能拆分后,终端与服务器之间的交互流程可以如图2所示。
步骤201、终端接收用户使用免安装应用A的指令。
步骤202、终端向服务器发送下载应用A的请求。
步骤203、服务器将应用A的主包发送给终端,该主包中可以包括如表1所示的信息。
表1
| 名称 | 描述 |
| 应用包标识 | 应用A程序包的唯一标识 |
| 应用名称 | 应用A的名称,可在桌面图标、弹窗等地方显示的名称 |
| 图标 | 应用A的图标 |
| 版本号 | 应用A的版本号 |
| 主页面url | 访问应用A主页面时使用的url |
| 子页面1url | 访问应用A子页面1时使用的url,子页面1与主页面关联度最高 |
| 对应关系 | 应用A中各页面与子包的对应关系 |
| 签名 | 服务器添加的签名信息,用于进行合法性校验 |
其中,对应关系可以如表2所示。
表2
| 页面 | 子包 |
| 子页面2 | 子包1 |
| 子页面3 | 子包2 |
| 子页面4 | 子包2 |
| 子页面5 | 子包3 |
| ... | ... |
步骤204、终端接收到主包后,根据签名信息进行合法性校验。若校验成功,则继续执行步骤205,否则流程结束。
步骤205、终端根据主包运行应用A。
步骤206、终端接收到访问子页面1的指令,并根据主包中包含的子页面1的url访问子页面1。
进一步地,
步骤207、终端接收到访问子页面3的指令,终端判断已下载的主包中不包含子页面3的信息,且根据页面与子包对应关系确定子页面3的信息包含于子包2中,则终端向服 务器发送下载子包2的请求。
步骤208、服务器将子包2发送给终端。
或者,
步骤209、服务器获取到终端当前正在访问子页面3,根据页面之间的关联度,确定与子页面3关联度从高到低依次为子页面4、子页面5...,而页面4的信息所在的子包2已经发送给终端,但页面5的信息所在的子包3还未发送给终端,则服务器将子包3发送给终端。
在本申请上述实施例中,通过对应用程序包进行智能拆分,有助于缩短终端下载应用程序时的等待时间,从而达到“即点即用”的用户体验;此外,由于对程序包拆分时,考虑了用户的操作习惯,因此拆分后的主包、子包更符合用户的使用习惯,有助于减少终端下载子包的次数。
基于相同的技术构思,本申请实施例还提供了一种服务器,用于执行上述方法实施例中服务器的功能。参见图4,为本申请实施例提供的服务器300的结构示意图,如图所示,该服务器可以包括至少一个处理器301,通信总线302,存储器303以及至少一个通信接口304。
所述处理器301,用于读取所述存储器303中预先存储的计算机程序执行:
通过所述通信接口304接收终端发送的下载免安装应用的请求;
通过所述通信接口304将运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息发送给所述终端;
其中,所述服务器根据获取的多个终端对所述应用中包括的各页面的访问顺序确定出所述关联度。
在一种可能的实现方式中,所述处理器301,还用于:根据终端当前访问的页面,以及当前访问的页面与其他页面的关联度,确定所述终端未下载的、且与所述当前访问的页面关联度最高的页面;通过所述通信接口304将所述处理单元确定出的页面的信息发送给所述终端。
在一种可能的实现方式中,所述处理器301,具体用于:根据所述访问顺序,确定多个终端在访问第一页面后访问第二页面的概率越大,则确定所述第一页面与所述第二页面之间的关联度越高。
在一种可能的实现方式中,所述处理器301,还用于:根据各页面之间的关联度,对所述应用的程序进行拆分,拆分为主包和至少一个子包;所述处理器301,在通过所述通信接口304将运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息发送给所述终端时,具体用于:通过所述通信接口304将所述应用的主包发送给所述终端,所述主包中包括运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息;或者,通过所述通信接口304将所述应用的主包和第一子包发送给所述终端,所述主包中包括运行所述应用的必要信息和所述应用的主页面信息,所述第一子包包括与所述主页面关联度最高的子页面的信息。
在一种可能的实现方式中,所述处理器301,还用于:通过所述通信接口304将各页面与所述至少一个子包之间的对应关系发送给所述终端;通过所述通信接口304接收所述终端发送的下载第二子包的请求,其中,所述终端在确定待访问页面的信息未下载时,根 据所述对应关系确定出所述待访问页面信息所在的第二子包;通过所述通信接口304将第二子包发送给所述终端。
在一种可能的实现方式中,所述主包的大小,小于第一预设阈值;和/或,每个所述子包的大小均小于第二预设阈值。
在一种可能的实现方式中,所述主包和每个所述子包中均包含有所述服务器的签名信息。
处理器301可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线302可包括一通路,在上述组件之间传送信息。
通信接口304,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。
存储器303可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器303用于存储执行本申请方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,从而实现本申请上述实施例提供的免安装应用程序下载方法。
或者,可选的,本申请实施例中,也可以是处理器301执行本申请上述实施例提供的免安装应用程序下载方法中的相关功能,通信接口304负责与其他设备或通信网络通信,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器301可以包括一个或多个CPU。
在具体实现中,作为一种实施例,该服务器可以包括多个处理器。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
基于相同的技术构思,本申请实施例还提供了一种服务器,用于执行上述方法实施例中服务器的功能。参见图4,为本申请实施例提供的一种服务器的结构示意图,如图所示,该服务器可以包括:接收单元401、处理单元402和发送单元403。其中,接收单元401和发送单元403可以用于实现上述实施例通信接口所实现的功能,处理单元可以用于实现上述处理器所实现的功能,此处不再一一描述。
本申请实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现上述免安装应用程序下载方法。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
- 一种免安装应用程序下载方法,其特征在于,包括:服务器接收终端发送的下载免安装应用的请求;所述服务器将运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息发送给所述终端;其中,所述服务器根据获取的多个终端对所述应用中包括的各页面的访问顺序确定出所述关联度。
- 如权利要求1所述的方法,其特征在于,还包括:所述服务器根据终端当前访问的页面,以及当前访问的页面与其他页面的关联度,确定所述终端未下载的、且与所述当前访问的页面关联度最高的页面;所述服务器将所述确定出的页面的信息发送给所述终端。
- 如权利要求1或2所述的方法,其特征在于,其中:所述服务器根据获取的多个终端对所述应用中包括的各页面的访问顺序确定出所述关联度包括:所述服务器根据所述访问顺序,确定多个终端在访问第一页面后访问第二页面的概率越大,则确定所述第一页面与所述第二页面之间的关联度越高。
- 如权利要求1-3中任一项所述的方法,其特征在于,还包括:所述服务器根据各页面之间的关联度,对所述应用的程序进行拆分,拆分为主包和至少一个子包;则所述服务器将运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息发送给所述终端,包括:所述服务器将所述应用的主包发送给所述终端,所述主包中包括运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息;或者所述服务器将所述应用的主包和第一子包发送给所述终端,所述主包中包括运行所述应用的必要信息和所述应用的主页面信息,所述第一子包包括与所述主页面关联度最高的子页面的信息。
- 如权利要求4所述的方法,其特征在于,还包括:所述服务器将各页面与所述至少一个子包之间的对应关系发送给所述终端;所述服务器接收所述终端发送的下载第二子包的请求,其中,所述终端在确定待访问页面的信息未下载时,根据所述对应关系确定出所述待访问页面信息所在的第二子包;所述服务器将第二子包发送给所述终端。
- 如权利要求4或5所述的方法,其特征在于,所述主包的大小,小于第一预设阈值;和/或每个所述子包的大小均小于第二预设阈值。
- 如权利要求4-6中任一项所述的方法,其特征在于,所述主包和每个所述子包中均包含有所述服务器的签名信息。
- 一种服务器,其特征在于,包括:处理器,以及与所述处理器连接的存储器和通信接口;所述处理器,用于读取所述存储器中预先存储的计算机程序执行:通过所述通信接口接收终端发送的下载免安装应用的请求;通过所述通信接口将运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息发送给所述终端;其中,所述服务器根据获取的多个终端对所述应用中包括的各页面的访问顺序确定出所述关联度。
- 如权利要求8所述的服务器,其特征在于,所述处理器,还用于:根据终端当前访问的页面,以及当前访问的页面与其他页面的关联度,确定所述终端未下载的、且与所述当前访问的页面关联度最高的页面;通过所述通信接口将所述处理单元确定出的页面的信息发送给所述终端。
- 如权利要求8或9所述的服务器,其特征在于,所述处理器,具体用于:根据所述访问顺序,确定多个终端在访问第一页面后访问第二页面的概率越大,则确定所述第一页面与所述第二页面之间的关联度越高。
- 如权利要求8-10中任一项所述的服务器,其特征在于,所述处理器,还用于:根据各页面之间的关联度,对所述应用的程序进行拆分,拆分为主包和至少一个子包;所述处理器,在通过所述通信接口将运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息发送给所述终端时,具体用于:通过所述通信接口将所述应用的主包发送给所述终端,所述主包中包括运行所述应用的必要信息、所述应用的主页面信息以及与所述主页面关联度最高的子页面信息;或者通过所述通信接口将所述应用的主包和第一子包发送给所述终端,所述主包中包括运行所述应用的必要信息和所述应用的主页面信息,所述第一子包包括与所述主页面关联度最高的子页面的信息。
- 如权利要求11所述的服务器,其特征在于,所述处理器,还用于:通过所述通信接口将各页面与所述至少一个子包之间的对应关系发送给所述终端;通过所述通信接口接收所述终端发送的下载第二子包的请求,其中,所述终端在确定待访问页面的信息未下载时,根据所述对应关系确定出所述待访问页面信息所在的第二子包;通过所述通信接口将第二子包发送给所述终端。
- 如权利要求11或12所述的服务器,其特征在于,所述主包的大小,小于第一预设阈值;和/或每个所述子包的大小均小于第二预设阈值。
- 如权利要求11-13中任一项所述的服务器,其特征在于,所述主包和每个所述子包中均包含有所述服务器的签名信息。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/980,474 US11262995B2 (en) | 2018-03-28 | 2018-07-24 | Method and apparatus for downloading installation-free application |
| CN201880055625.4A CN111052072B (zh) | 2018-03-28 | 2018-07-24 | 一种免安装应用程序下载方法及装置 |
| EP18912441.5A EP3748493B1 (en) | 2018-03-28 | 2018-07-24 | Method and device for downloading installation-free application |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810265173.4 | 2018-03-28 | ||
| CN201810265173 | 2018-03-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019184156A1 true WO2019184156A1 (zh) | 2019-10-03 |
Family
ID=68059227
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2018/096892 Ceased WO2019184156A1 (zh) | 2018-03-28 | 2018-07-24 | 一种免安装应用程序下载方法及装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US11262995B2 (zh) |
| EP (1) | EP3748493B1 (zh) |
| CN (1) | CN111052072B (zh) |
| WO (1) | WO2019184156A1 (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11593082B2 (en) * | 2020-04-10 | 2023-02-28 | Apple Inc. | Registered applications for electronic devices |
| WO2022261903A1 (en) * | 2021-06-17 | 2022-12-22 | Boe Technology Group Co., Ltd. | Intelligent healthcare management system, intelligent healthcare management method, and computer-program product |
| CN115686659A (zh) * | 2021-07-30 | 2023-02-03 | 花瓣云科技有限公司 | 快应用处理方法、电子设备与快应用系统 |
| CN119179500A (zh) * | 2023-06-21 | 2024-12-24 | 华为技术有限公司 | 一种免安装应用的下载方法与相关设备 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102520987A (zh) * | 2011-11-30 | 2012-06-27 | Tcl集团股份有限公司 | 应用程序在线体验与安装方法、装置、服务器及管理系统 |
| CN102662712A (zh) * | 2012-04-10 | 2012-09-12 | 腾讯科技(深圳)有限公司 | 获取、推送应用程序的方法、设备和系统 |
| US20140250106A1 (en) * | 2013-03-01 | 2014-09-04 | Quixey, Inc. | Generating Search Results Containing State Links to Applications |
| CN106559484A (zh) * | 2016-11-14 | 2017-04-05 | 北京海誉动想科技股份有限公司 | 实例系统免安装运行应用的方法 |
| CN107704287A (zh) * | 2017-09-28 | 2018-02-16 | 努比亚技术有限公司 | 程序应用免安装方法、移动终端及计算机可读存储介质 |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1331560B1 (en) * | 1996-09-11 | 2005-01-12 | Matsushita Electric Industrial Co., Ltd. | Program reception/execution apparatus that can commence execution of a machine program having only received the program in part. |
| WO1998026528A2 (en) * | 1996-12-09 | 1998-06-18 | Scientific-Atlanta, Inc. | Using a hierarchical file system for indexing data broadcast to a client from a network of servers |
| US6948134B2 (en) * | 2000-07-21 | 2005-09-20 | Microsoft Corporation | Integrated method for creating a refreshable Web Query |
| US6757894B2 (en) * | 2000-09-26 | 2004-06-29 | Appstream, Inc. | Preprocessed applications suitable for network streaming applications and method for producing same |
| KR100456022B1 (ko) * | 2001-11-20 | 2004-11-08 | 한국전자통신연구원 | 비피씨 정보단말을 위한 엑스엠엘 기반 웹 페이지 제공방법 및 그 시스템 |
| JP2003202986A (ja) * | 2002-01-07 | 2003-07-18 | Fujitsu Ltd | Webページを介したデバイス・ドライバのインストール |
| US20040006637A1 (en) * | 2002-04-25 | 2004-01-08 | Pramote Kuacharoen | Methods and systems for transmitting application software |
| US8166027B2 (en) * | 2006-03-30 | 2012-04-24 | International Business Machines Corporation | System, method and program to test a web site |
| US20070288644A1 (en) * | 2006-06-07 | 2007-12-13 | Cesar Augusto Rojas | Systems and methods for developing and running applications in a web-based computing environment |
| US8065675B2 (en) * | 2007-03-21 | 2011-11-22 | Yahoo! Inc. | In-page installer |
| US8539478B2 (en) * | 2008-06-20 | 2013-09-17 | International Business Machines Corporation | Dynamic web installer |
| KR101456624B1 (ko) * | 2008-10-28 | 2014-11-04 | 삼성전자주식회사 | 화상형성장치, 및 웹 어플리케이션 설치 방법 |
| US8234369B2 (en) * | 2008-12-23 | 2012-07-31 | Verizon Patent And Licensing Inc. | Web page response monitoring |
| US20120016862A1 (en) | 2010-07-14 | 2012-01-19 | Rajan Sreeranga P | Methods and Systems for Extensive Crawling of Web Applications |
| JP2013105241A (ja) * | 2011-11-11 | 2013-05-30 | Riso Kagaku Corp | 制御プログラム更新装置及び制御プログラム更新プログラム |
| CN102799826B (zh) * | 2012-07-19 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 应用程序安装包解压过程的检测方法与装置、客户端设备 |
| US20140359606A1 (en) * | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Bundle package retrieving |
| US9323514B2 (en) * | 2013-05-30 | 2016-04-26 | Microsoft Technology Licensing, Llc | Resource package indexing |
| US9891907B2 (en) * | 2014-07-07 | 2018-02-13 | Harman Connected Services, Inc. | Device component status detection and illustration apparatuses, methods, and systems |
| CN105447062A (zh) * | 2014-09-30 | 2016-03-30 | 中国电信股份有限公司 | 热点数据识别方法和装置 |
| CN104360871A (zh) * | 2014-10-12 | 2015-02-18 | 厦门雅基软件有限公司 | 一种手机游戏安装快速启动方法 |
| CN106250529A (zh) * | 2016-08-05 | 2016-12-21 | 成都佳荣科技有限公司 | 网页页面加载方法 |
| US10789315B1 (en) * | 2017-07-19 | 2020-09-29 | United Services Automobile Association (Usaa) | Content curation application and graphical user interface |
| CN107809491A (zh) * | 2017-11-30 | 2018-03-16 | 北京小米移动软件有限公司 | 安装包的下载方法及装置 |
| CN108363528B (zh) * | 2018-02-13 | 2020-04-10 | Oppo广东移动通信有限公司 | 应用页面的启动方法、装置、存储介质及电子设备 |
-
2018
- 2018-07-24 CN CN201880055625.4A patent/CN111052072B/zh active Active
- 2018-07-24 EP EP18912441.5A patent/EP3748493B1/en active Active
- 2018-07-24 WO PCT/CN2018/096892 patent/WO2019184156A1/zh not_active Ceased
- 2018-07-24 US US16/980,474 patent/US11262995B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102520987A (zh) * | 2011-11-30 | 2012-06-27 | Tcl集团股份有限公司 | 应用程序在线体验与安装方法、装置、服务器及管理系统 |
| CN102662712A (zh) * | 2012-04-10 | 2012-09-12 | 腾讯科技(深圳)有限公司 | 获取、推送应用程序的方法、设备和系统 |
| US20140250106A1 (en) * | 2013-03-01 | 2014-09-04 | Quixey, Inc. | Generating Search Results Containing State Links to Applications |
| CN106559484A (zh) * | 2016-11-14 | 2017-04-05 | 北京海誉动想科技股份有限公司 | 实例系统免安装运行应用的方法 |
| CN107704287A (zh) * | 2017-09-28 | 2018-02-16 | 努比亚技术有限公司 | 程序应用免安装方法、移动终端及计算机可读存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP3748493A4 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20210019130A1 (en) | 2021-01-21 |
| US11262995B2 (en) | 2022-03-01 |
| CN111052072A (zh) | 2020-04-21 |
| EP3748493A1 (en) | 2020-12-09 |
| EP3748493A4 (en) | 2021-04-21 |
| CN111052072B (zh) | 2022-05-24 |
| EP3748493B1 (en) | 2023-04-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8806655B1 (en) | Providing limited versions of applications | |
| EP2939121B1 (en) | System and method of storing service brand packages on a mobile device | |
| US20180373523A1 (en) | Application update method and apparatus | |
| CN103150513B (zh) | 拦截应用程序中的植入信息的方法及装置 | |
| JP7412594B2 (ja) | データ処理方法、データ処理装置、コンピュータ機器、及びコンピュータプログラム | |
| EP2989543B1 (en) | Method and device for updating client | |
| CN111052072B (zh) | 一种免安装应用程序下载方法及装置 | |
| US9715421B2 (en) | Wrapped applications providing operational insight to users based on rules for acceptable operational state performance | |
| WO2019091344A1 (en) | Method for resource allocation and related products | |
| CN114257551A (zh) | 一种分布式限流的方法及系统、存储介质 | |
| CN112473144A (zh) | 游戏资源数据的处理方法及装置 | |
| US11941411B2 (en) | Application starting method and related device | |
| CN111679842B (zh) | 应用程序热更新处理方法、装置及系统 | |
| CN104754062A (zh) | 基于互联网的信息推广方法、服务器及用户终端 | |
| CN110968331B (zh) | 应用程序运行的方法和装置 | |
| CN111679850B (zh) | 应用程序热更新处理方法、装置及系统 | |
| US10523591B2 (en) | Discovering resource availability across regions | |
| CN105553968A (zh) | 一种实现多账号登录的方法和装置 | |
| CN109032693B (zh) | 一种加载展示信息方法、装置、电子设备及可读存储介质 | |
| EP3314560B1 (en) | Transmitting application data for on-device demos | |
| CN109327468A (zh) | 一种下线提示方法、装置、设备及存储介质 | |
| US10599453B1 (en) | Dynamic content generation with on-demand code execution | |
| US9348825B2 (en) | Server and method for causing terminal to display screen | |
| CN111538926A (zh) | 一种离线包自动发布方法、装置、电子设备及存储介质 | |
| CN112839006B (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: 18912441 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2018912441 Country of ref document: EP Effective date: 20200902 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWG | Wipo information: grant in national office |
Ref document number: 202047037200 Country of ref document: IN |