IP Library › Granted Patent US 11,915,012
Granted Patent B2
US 11,915,012 · App. 16/968,652 · Granted Feb 27, 2024

Application preloading in the presence of user actions

Inventors: Eilon Regev (Givatayim, IL); Roee Peled (Givatayim, IL); David Ben Eli (Modiin, IL); Daniel Yellin (Raanana, IL); Shimon Moshavi (Beit Shemesh, IL)
Assignee: TENSERA NETWORKS LTD.
G06F9/44505G06F9/547G06F11/3438G06F9/4401
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,915,012
App. No.
16/968,652
Granted
Feb 27, 2024
Kind
B2
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 (64)

1. A method, comprising:

in a processor of a user device, preloading one or more user applications in a background mode, in which User Interface (UI) screens associated with preloaded user applications are hidden from a user of the user device;

after a given user application has been set to a preloaded state, detecting a UI screen that is invoked in the processor and is associated with the given preloaded user application;

assessing, by the processor, whether the UI screen is a preload-initiated UI screen that is invoked due to preloading of the given user application, or whether the UI screen is a user-initiated UI screen that is invoked due to an action by the user;

if the UI screen is assessed to be a preload-initiated UI screen, handling the UI screen using a first handling scheme; and

if the UI screen is assessed to be a user-initiated UI screen, handling the UI screen using a second handling scheme, different from the first handling schemes,

wherein assessing whether the UI screen is preload-initiated or user-initiated comprises applying a predefined heuristic.

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

3. 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.

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

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

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

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

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

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

10. 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 UI screen is preload-initiated or user-initiated comprises assessing that the UI screen is user-initiated if the preloading-blocking condition is met during invocation of the UI screen.

11. The method according to claim 1 , wherein assessing whether the UI screen 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 UI screen is preload-initiated or user-initiated.

12. The method according to claim 1 , wherein handling the UI screen 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.

13. The method according to claim 1 , wherein handling the UI screen comprises:

if the UI screen is assessed to be user-initiated, executing analytics code that tracks usage of the app by the user; and

if the UI screen is assessed to be preload-initiated, not executing the analytics code.

14. The method according to claim 1 , wherein handling the UI screen comprises:

if the UI screen is assessed to be user-initiated, presenting audio-visual output of the UI screen to the user; and

if the UI screen is assessed to be preload-initiated, inhibiting the audio-visual output of the UI screen.

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

16. 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 UI screen is assessed to be preload-initiated or user-initiated.

17. The method according to claim 16 , 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 UI screen associated with the given preloaded user application using the first handling scheme or using the second handling scheme.

18. 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 User Interface (UI) screen associated with preloaded user applications are hidden from a user of the user device;

after setting a given user application to a preloaded state, detect a UI screen that is invoked in the processor and is associated with the given preloaded user application;

assess whether the UI screen is a preload-initiated UI screen that is invoked due to preloading of the given user application, or whether the UI screen is a user-initiated UI screen that is invoked due to an action by the user;

if the UI screen is assessed to be a preload-initiated UI screen, handle the UI screen using a first handling scheme; and

if the UI screen is assessed to be a user-initiated UI screen, handle the UI screen using a second handling scheme, different from the first handling scheme,

wherein the processor is configured to assess whether the UI screen is preload-initiated or user-initiated by applying a predefined heuristic.

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

20. The user device according to claim 19 , 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.

21. The user device according to claim 18 , wherein, in the processor, assessing whether the UI screen is preload-initiated or user-initiated is performed by the given user application.

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

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

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

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

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

27. The user device according to claim 18 , 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 UI screen is user-initiated if the preloading-blocking condition is met during invocation of the UI screen.

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

29. The user device according to claim 18 , 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.

30. The user device according to claim 18 , wherein the processor is configured to:

if the UI screen is assessed to be user-initiated, execute analytics code that tracks usage of the app by the user; and

if the UI screen is assessed to be preload-initiated, not execute the analytics code.

31. The user device according to claim 18 , wherein the processor is configured to:

if the UI screen is assessed to be user-initiated, present audio-visual output of the UI screen to the user; and

if the UI screen is assessed to be preload-initiated, inhibit the audio-visual output of the UI screen.

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

33. The user device according to claim 18 , 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 UI screen is assessed to be preload-initiated or user-initiated.

34. The user device according to claim 33 , 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 UI screen associated with the given preloaded user application using the first handling scheme or using the second handling scheme.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2020
From: REGEV, EILON; PELED, ROEE; BEN ELI, DAVID; YELLIN, DANIEL; MOSHAVI, SHIMON
To: TENSERA NETWORKS LTD.
Reel/Frame 053441/0314 →
Continuity (3)
Provisional Application 62801145 · Feb 5, 2019
Provisional Application 62638321 · Mar 5, 2018
Related Publication 20200401418A1 · Dec 24, 2020
Cited By (2)
US 12,353,498 US 12,360,786