IP Library › Granted Patent US 10,649,753
Granted Patent B2
US 10,649,753 · App. 15/378,674 · Granted May 12, 2020

Enabling user device application modularity

Inventors: Masudur Rahman (Somerset, NJ); Sonal Gandhi (Bridgewater, NJ); Bharadwaj Vemuri (Bear, DE)
Assignee: Verizon Patent and Licensing Inc.
G06F8/61G06F8/71G06F3/0482
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 10,649,753
App. No.
15/378,674
Granted
May 12, 2020
Kind
B2
Abstract

A device can store a plurality of variants of an application. The device can receive, from a user device that is associated with a first variant of the application, a request for a second variant of the application. The first variant can include a first set of features and include a file size that is different than the second variant. The second variant can include a second set of features. The device can determine a first version identifier of the first variant of the application, and determine that a second version identifier associated with the second variant of the application is different than the first version identifier. The device can provide, to the user device, the second variant of the application to permit the user device to install the second variant of the application.

Claims (105)

1. A device, comprising:

a memory; and

one or more processors configured to:

store a plurality of archive files corresponding to a plurality of variants of an application,

a variant, of the plurality of variants, of the application including one or more features that are different from another variant, of the plurality of variants, of the application;

receive, from a user device that is associated with a first variant, of the plurality of variants, of the application, a request for a second variant, of the plurality of variants, of the application,

the first variant of the application including a first set of features and the second variant of the application including a second set of features,

the first variant of the application having a different file than the second variant of the application,

the second variant of the application including the second set of features that meet a threshold size of a storage capability of the user device, and

the request to be provided based on input that identifies the second set of features from a list of features that are available to install on the user device;

determine, based on the request, a first version identifier of the first variant of the application stored on the user device and a second version identifier of the second variant of the application stored on the device;

increment the second version identifier based on the determination;

update one or more other version identifiers associated with the second variant of the application based on the incrementing the second version identifier;

determine that the second version identifier is different than the first version identifier based on the incrementing of the second version identifier;

identify, based on the request, an archive file, from the plurality of archive files, corresponding to the second set of features and corresponding to the second variant of the application; and

provide, to the user device, the archive file based on the first version identifier and the second version identifier being different to permit the user device to install the second variant of the application,

where the one or more processors, when providing the archive file to the user device, are to:

provide the archive file to the user device to enable the user device to:

 dynamically remove the first variant of the application, and

 dynamically add the second set of features by iteratively installing the second variant of the application based on the storage capability of the user device.

2. The device of claim 1 , where the first set of features includes at least one feature not included in the second set of features or the second set of features includes at least one feature not included in the first set of features.

3. The device of claim 1 , where the one or more processors are further to:

adjust a third version identifier associated with a third variant of the application based on adjusting the second version identifier to permit the third variant of the application to be installed on the user device,

the third variant of the application including a third set of features.

4. The device of claim 1 , where the one or more processors are further to:

identify a manifest file included in the archive file; and

identify the second version identifier based on the manifest file.

5. The device of claim 1 , where the first variant of the application and the second variant of the application include a same application identifier.

6. The device of claim 1 , where the one or more processors are further to:

identify a manifest file;

decompile the manifest file to identify source code associated with the manifest file;

parse the source code to identify the second version identifier; and

adjust the second version identifier of the application.

7. The device of claim 1 , where the one or more processors are further to:

receive, from the user device, another request for the first variant of the application; and

provide, to the user device, the first variant of the application to permit the user device to install the first variant of the application.

8. A non-transitory computer-readable medium storing instructions, the instructions comprising:

one or more instructions that, when executed by one or more processors of a device, cause the one or more processors to:

store a plurality of archive files corresponding to a plurality of variants of an application,

a variant, of the plurality of variants, of the application including one or more features that are different from another variant, of the plurality of variants, of the application;

receive, from a user device that is associated with a first variant, of the plurality of variants, of the application, a request for a second variant, of the plurality of variants, of the application,

the first variant of the application including a first set of features and the second variant of the application including a second set of features,

the first variant of the application having a different file size than the second variant of the application,

the second variant of the application including the second set of features that meet a threshold size of a storage capability of the user device, and

the request to be provided based on input that identifies the second set of features from a list of features that are available to install on the user device;

determine, based on the request, a first version identifier of the first variant of the application stored on the user device and a second version identifier of the second variant of the application stored on the device;

increment the second version identifier based on the determination;

update one or more other version identifiers associated with the second variant of the application based on the incrementing the second version identifier;

determine that the second version identifier is different than the first version identifier based on the incrementing of the second version identifier;

identify, based on the request, an archive file, from the plurality of archive files, corresponding to the second set of features and corresponding to the second variant of the application; and

provide, to the user device, the archive file based on the first version identifier and the second version identifier being different to permit the user device to install the second variant of the application,

where the one or more instructions, that cause the one or more processors to provide the archive file to the user device, cause the one or more processors to:

provide the archive file to the user device to enable the user device to:

 dynamically remove the first variant of the application, and

 dynamically add the second set of features by iteratively installing the second variant of the application based on the storage capability of the user device.

9. The non-transitory computer-readable medium of claim 8 , where the first set of features includes at least one feature not included in the second set of features or the second set of features includes at least one feature not included in the first set of features.

10. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

adjust a third version identifier associated with a third variant of the application based on adjusting the second version identifier to permit the third variant of the application to be installed on the user device,

the third variant of the application including a third set of features.

11. The non-transitory computer-readable medium of claim 8 , where the first variant of the application and the second variant of the application include a same application identifier.

12. The non-transitory computer-readable medium of claim 8 , where the first variant of the application includes a first file size and the second variant of the application includes a second file size that is less than the first file size.

13. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

identify a manifest file;

decompile the manifest file to identify source code associated with the manifest file;

parse the source code to identify the second version identifier; and

adjust the second version identifier of the application.

14. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

receive, from the user device, another request for the first variant of the application; and

provide, to the user device, the first variant of the application to permit the user device to install the first variant of the application.

15. A method, comprising:

storing, by a device, a plurality of archive files corresponding to a plurality of variants of an application,

a variant, of the plurality of variants, of the application including one or more features that are different from another variant, of the plurality of variants, of the application;

receiving, by the device and from a user device that is associated with a first variant, of the plurality of variants, of the application, a request for a second variant, of the plurality of variants, of the application,

the first variant of the application including a first set of features and the second variant of the application including a second set of features,

the first variant of the application having a different file size than the second variant of the application,

the second variant of the application including the second set of features that meet a threshold size of a storage capability of the user device, and

the request to be provided based on input that identifies the second set of features from a list of features that are available to install on the user device;

determining, by the device and based on the request, a first version identifier of the first variant of the application stored on the user device and a second version identifier of the second variant of the application stored on the device;

incrementing, by the device, the second version identifier based on the determination;

updating, by the device, one or more other version identifiers associated with the second variant of the application based on the incrementing the second version identifier;

determining, by the device, that the second version identifier is different than the first version identifier based on the incrementing of the second version identifier;

identifying, by the device and based on the request, an archive file, from the plurality of archive files, corresponding to the second set of features and corresponding to the second variant of the application; and

providing, by the device and to the user device, the archive file based on the first version identifier and the second version identifier being different to permit the user device to install the second variant of the application

where providing the archive file to the user device comprise:

providing the archive file to the user device to enable the user device to:

dynamically remove the first variant of the application, and

dynamically add the second set of features by iteratively installing the second variant of the application based on the storage capability of the user device.

16. The method of claim 15 , further comprising:

identifying a manifest file included in the archive file

adjusting the second version identifier associated with the manifest file;

compiling the manifest file based on adjusting the second version identifier; and

where providing the archive file to the user device comprises:

providing the archive file based on compiling the manifest file.

17. The method of claim 15 , further comprising:

adjusting a third version identifier associated with a third variant of the application based on adjusting the second version identifier,

the third variant of the application including a third set of features.

18. The method of claim 15 , where the first set of features includes at least one feature not included in the second set of features or the second set of features includes at least one feature not included in the first set of features.

19. The method of claim 15 , further comprising:

receiving, from the user device, another request for the first variant of the application; and

providing, to the user device, the first variant of the application to permit the user device to install the first variant of the application.

20. The method of claim 15 , further comprising:

identifying a manifest file;

decompiling the manifest file to identify source code associated with the manifest file;

parsing the source code to identify the second version identifier; and

adjusting the second version identifier of the application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2016
From: RAHMAN, MASUDUR; GANDHI, SONAL; VEMURI, BHARADWAJ
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 040734/0910 →
Continuity (1)
Related Publication 20180165081A1 · Jun 14, 2018
Cited By (1)
US 12,193,112