# US 2020/0401418 A1 · Application preloading in the presence of user actions

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0401418 A1
- Document ID: US20200401418A1
- Status: Published application
- Kind: A1
- Application number: 16/968,652
- Filed: 2019-03-04
- Published: 2020-12-24
- Earliest claimed: 2018-03-05
- Assignees: Tensera Networks Ltd.
- Applicants: Tensera Networks Ltd.
- Inventors: Eilon Regev; Roee Peled; David Ben Eli; Daniel Yellin; Shimon Moshavi
- Web page: https://patentgrep.com/patent/US20200401418A1

## CPC

- G06F 9/445: Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57)
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- G06F 11/3438: {monitoring of user actions (tracking the activity of the user H04L67/535)}
- G06Q 20/3552: {Downloading or loading of personalisation data}
- G06Q 20/3563: {Software being resident on card}
- G06Q 20/3672: {initialising or reloading thereof}
- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A method includes, in a processor (44) of a user device (24), preloading one or more user applications (26) in a background mode, in which activities associated with preloaded user applications are hidden from a user of the user device. An activity, which is invoked in the processor and is associated with a given preloaded user application, is detected. An assessment is made by the processor, whether the activity is a preload-initiated activity that is invoked due to preloading of the given user application, or whether the activity is a user-initiated activity that is invoked due to an action by the user. If the activity is assessed to be a preload-initiated activity, the activity is handled using a first handling scheme. If the activity is assessed to be a user-initiated activity, the activity is handled using a second handling scheme, different from the first handling scheme.

## Claims

### Claim 1

A method, comprising:
in a processor of a user device, preloading one or more user applications in a background mode, in which activities associated with preloaded user applications are hidden from a user of the user device;
detecting an activity that is invoked in the processor and is associated with a given preloaded user application;
assessing, by the processor, whether the activity is a preload-initiated activity that is invoked due to preloading of the given user application, or whether the activity is a user-initiated activity that is invoked due to an action by the user;
if the activity is assessed to be a preload-initiated activity, handling the activity using a first handling scheme; and
if the activity is assessed to be a user-initiated activity, handling the activity using a second handling scheme, different from the first handling scheme.

### Claim 2 (depends on 1)

The method according to claim 1, wherein assessing whether the activity is preload-initiated or user-initiated is performed by a preloading agent, which is configured to preload the user applications.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the preloading agent is implemented as one of (i) a software component of an operating system of the user-device, (ii) an application, and (iii) a Software Development Kit (SDK) embedded in an application.

### Claim 4 (depends on 1)

The method according to claim 1, wherein assessing whether the activity is preload-initiated or user-initiated is performed by the given user application.

### Claim 5 (depends on 1)

The method according to claim 1, wherein assessing whether the activity is preload-initiated or user-initiated comprises applying a predefined heuristic.

### Claim 6 (depends on 5)

The method according to claim 5, wherein applying the predefined heuristic comprises assessing that the activity is preload-initiated if the activity is invoked by another activity associated with the given preloaded user application.

### Claim 7 (depends on 5)

The method according to claim 5, wherein applying the predefined heuristic comprises assessing that the activity is user-initiated if the activity is not invoked by another activity associated with the given preloaded user application.

### Claim 8 (depends on 5)

The method according to claim 5, wherein applying the predefined heuristic comprises assessing that the activity is preload-initiated if a screen of the user device is off during invocation of the activity.

### Claim 9 (depends on 5)

The method according to claim 5, wherein applying the predefined heuristic comprises assessing that the activity is user-initiated if the activity is invoked more than a predefined time period after preloading of the given user application.

### Claim 10 (depends on 5)

The method according to claim 5, wherein applying the predefined heuristic comprises assessing that the activity is preload-initiated if the activity is invoked less than a predefined time period after preloading of the given user application.

### Claim 11 (depends on 1)

The method according to claim 1,
wherein preloading the user applications comprises evaluating a predefined preloading-blocking condition, and permitting preloading of the user applications only if the preloading-blocking condition is not met,
and wherein assessing whether the activity is preload-initiated or user-initiated comprises assessing that the activity is user-initiated if the preloading-blocking condition is met during invocation of the activity.

### Claim 12 (depends on 1)

The method according to claim 1, wherein assessing whether the activity is preload-initiated or user-initiated comprises receiving from the given preloaded user application, via an Application Programming Interface (API), an indication of whether the activity is preload-initiated or user-initiated.

### Claim 13 (depends on 1)

The method according to claim 1, wherein handling the activity comprises:
sending to the given preloaded user application, via an Application Programming Interface (API), an indication of whether the given user application is currently in a preloaded state; and
in the given preloaded user application, based on the indication, applying the first handling scheme if in the preloaded state, and applying the second handling scheme if not in the preloaded state.

### Claim 14 (depends on 1)

The method according to claim 1, wherein handling the activity comprises:
if the activity is assessed to be user-initiated, executing analytics code that tracks usage of the app by the user; and
if the activity is assessed to be preload-initiated, not executing the analytics code.

### Claim 15 (depends on 1)

The method according to claim 1, wherein handling the activity comprises:
if the activity is assessed to be user-initiated, presenting audio-visual output of the activity to the user; and
if the activity is assessed to be preload-initiated, inhibiting the audio-visual output of the activity.

### Claim 16 (depends on 1)

The method according to claim 1, wherein handling the activity comprises assigning to the new activity a first execution priority if the activity is assessed to be user-initiated, and, if the activity is assessed to be preload-initiated, assigning to the new activity a second execution priority that is lower than the first execution priority.

### Claim 17 (depends on 1)

The method according to claim 1, and comprising determining whether or not the given preloaded user application is in a preloaded state, based on whether the detected activity is assessed to be preload-initiated or user-initiated.

### Claim 18 (depends on 17)

The method according to claim 17, and comprising deciding, based on whether the given preloaded user application is determined to be in the preloaded state, whether to handle at least one other activity associated with the given preloaded user application using the first handling scheme or using the second handling scheme.

### Claim 19

A user device, comprising:
an interface for communicating over a communication network; and
a processor, configured to:
preload one or more user applications in a background mode, in which activities associated with preloaded user applications are hidden from a user of the user device;
detect an activity that is invoked in the processor and is associated with a given preloaded user application;
assess whether the activity is a preload-initiated activity that is invoked due to preloading of the given user application, or whether the activity is a user-initiated activity that is invoked due to an action by the user;
if the activity is assessed to be a preload-initiated activity, handle the activity using a first handling scheme; and
if the activity is assessed to be a user-initiated activity, handle the activity using a second handling scheme, different from the first handling scheme.

### Claim 20 (depends on 19)

The user device according to claim 19, wherein the processor is configured to run a preloading agent, which is configured to preload the user applications and to assess whether the activity is preload-initiated or user-initiated.

### Claim 21 (depends on 20)

The user device according to claim 20, wherein the processor is configured to run the preloading agent as one of (i) a software component of an operating system of the user-device, (ii) an application, and (iii) a Software Development Kit (SDK) embedded in an application.

### Claim 22 (depends on 19)

The user device according to claim 19, wherein, in the processor, assessing whether the activity is preload-initiated or user-initiated is performed by the given user application.

### Claim 23 (depends on 19)

The user device according to claim 19, wherein the processor is configured to assess whether the activity is preload-initiated or user-initiated by applying a predefined heuristic.

### Claim 24 (depends on 23)

The user device according to claim 23, wherein the processor is configured to assess that the activity is preload-initiated if the activity is invoked by another activity associated with the given preloaded user application.

### Claim 25 (depends on 23)

The user device according to claim 23, wherein the processor is configured to assess that the activity is user-initiated if the activity is not invoked by another activity associated with the given preloaded user application.

### Claim 26 (depends on 23)

The user device according to claim 23, wherein the processor is configured to assess that the activity is preload-initiated if a screen of the user device is off during invocation of the activity.

### Claim 27 (depends on 23)

The user device according to claim 23, wherein the processor is configured to assess that the activity is user-initiated if the activity is invoked more than a predefined time period after preloading of the given user application.

### Claim 28 (depends on 23)

The user device according to claim 23, wherein the processor is configured to assess that the activity is preload-initiated if the activity is invoked less than a predefined time period after preloading of the given user application.

### Claim 29 (depends on 19)

The user device according to claim 19, wherein the processor is configured to:
evaluate a predefined preloading-blocking condition, and permit preloading of the user applications only if the preloading-blocking condition is not met, and
assess that the activity is user-initiated if the preloading-blocking condition is met during invocation of the activity.

### Claim 30 (depends on 19)

The user device according to claim 19, wherein the processor is configured to receive from the given preloaded user application, via an Application Programming Interface (API), an indication of whether the activity is preload-initiated or user-initiated.

### Claim 31 (depends on 19)

The user device according to claim 19, wherein the processor is configured to:
send to the given preloaded user application, via an Application Programming Interface (API), an indication of whether the given user application is currently in a preloaded state; and
in the given preloaded user application, based on the indication, apply the first handling scheme if in the preloaded state, and apply the second handling scheme if not in the preloaded state.

### Claim 32 (depends on 19)

The user device according to claim 19, wherein the processor is configured to:
if the activity is assessed to be user-initiated, execute analytics code that tracks usage of the app by the user; and
if the activity is assessed to be preload-initiated, not execute the analytics code.

### Claim 33 (depends on 19)

The user device according to claim 19, wherein the processor is configured to:
if the activity is assessed to be user-initiated, present audio-visual output of the activity to the user; and
if the activity is assessed to be preload-initiated, inhibit the audio-visual output of the activity.

### Claim 34 (depends on 19)

The user device according to claim 19, wherein the processor is configured to assign to the new activity a first execution priority if the activity is assessed to be user-initiated, and, if the activity is assessed to be preload-initiated, assign to the new activity a second execution priority that is lower than the first execution priority.

### Claim 35 (depends on 19)

The user device according to claim 19, wherein the processor is configured to determine whether or not the given preloaded user application is in a preloaded state, based on whether the detected activity is assessed to be preload-initiated or user-initiated.

### Claim 36 (depends on 35)

The user device according to claim 35, wherein the processor is configured to decide, based on whether the given preloaded user application is determined to be in the preloaded state, whether to handle at least one other activity associated with the given preloaded user application using the first handling scheme or using the second handling scheme.
