Developing versions of applications based on application fingerprinting
First Claim
1. A non-transitory computer-readable medium embodying a program executable in at least one computing device, wherein when executed the program causes the at least one computing device to at least:
- receive a first one of a plurality of applications;
receive a first one of a plurality of application fingerprints, a respective application fingerprint of the plurality of application fingerprints identifying respective application characteristics comprising at least one hardware device resource supported by a corresponding one of the plurality of applications, the respective application fingerprint being generated based at least in part on a static analysis and a dynamic analysis of the corresponding one of the plurality of applications,the static analysis comprising examination of the plurality of applications to identify the at least one hardware device resource accessed by each of the plurality of applications,the dynamic analysis comprising testing the plurality of applications by executing the plurality of applications in a hosted environment of the at least one computing device to determine actual usage of the at least one hardware device resource by each of the plurality of applications, the first one of the plurality of application fingerprints being associated with the first one of the applications;
determine a compatibility target for the first one of the plurality of applications, the compatibility target identifying a particular hardware device resource of a target device, wherein the particular hardware device resource is hardware of the target device;
determine that the particular hardware device resource is incompatible with the first one of the plurality of applications based at least in part on the first one of the plurality of application fingerprints and compatibility data that indicates that at least one application characteristic of the first one of the plurality of application fingerprints is incompatible with the particular hardware device resource of the compatibility target;
automatically generate and store a compatible version of the first one of the plurality of applications that is compatible with the particular hardware device resource of the target device based at least in part on a second one of the plurality of application fingerprints associated with a second one of the plurality of applications that is compatible with the particular hardware device resource of the target device, identified by the static analysis and the dynamic analysis; and
cause the compatible version of the first one of the plurality of applications that is compatible with the particular hardware device resource of the target device to be transmitted and installed on a client device comprising the particular hardware device resource.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are various embodiments for developing versions of applications based on application fingerprinting. For example, an application may be ported from one operating system platform to another, or an application may be modified to be compatible with a specific device. In one embodiment, an application fingerprint is received for an application. The application fingerprint may be generated based at least in part on a static analysis of the application and a dynamic analysis of the application. A device that is incompatible with the application based at least in part on the application fingerprint may be determined. A modification to the application to make the application compatible with the device may be determined.
123 Citations
21 Claims
-
1. A non-transitory computer-readable medium embodying a program executable in at least one computing device, wherein when executed the program causes the at least one computing device to at least:
-
receive a first one of a plurality of applications; receive a first one of a plurality of application fingerprints, a respective application fingerprint of the plurality of application fingerprints identifying respective application characteristics comprising at least one hardware device resource supported by a corresponding one of the plurality of applications, the respective application fingerprint being generated based at least in part on a static analysis and a dynamic analysis of the corresponding one of the plurality of applications, the static analysis comprising examination of the plurality of applications to identify the at least one hardware device resource accessed by each of the plurality of applications, the dynamic analysis comprising testing the plurality of applications by executing the plurality of applications in a hosted environment of the at least one computing device to determine actual usage of the at least one hardware device resource by each of the plurality of applications, the first one of the plurality of application fingerprints being associated with the first one of the applications; determine a compatibility target for the first one of the plurality of applications, the compatibility target identifying a particular hardware device resource of a target device, wherein the particular hardware device resource is hardware of the target device; determine that the particular hardware device resource is incompatible with the first one of the plurality of applications based at least in part on the first one of the plurality of application fingerprints and compatibility data that indicates that at least one application characteristic of the first one of the plurality of application fingerprints is incompatible with the particular hardware device resource of the compatibility target; automatically generate and store a compatible version of the first one of the plurality of applications that is compatible with the particular hardware device resource of the target device based at least in part on a second one of the plurality of application fingerprints associated with a second one of the plurality of applications that is compatible with the particular hardware device resource of the target device, identified by the static analysis and the dynamic analysis; and cause the compatible version of the first one of the plurality of applications that is compatible with the particular hardware device resource of the target device to be transmitted and installed on a client device comprising the particular hardware device resource. - View Dependent Claims (2, 3)
-
-
4. A system, comprising:
-
at least one computing device comprising at least one processor; and at least one service executable in the at least one computing device, wherein when executed the at least one service causes the at least one computing device to at least; receive a first application fingerprint for a first application, the first application fingerprint identifies application characteristics comprising at least one hardware device resource, the first application fingerprint being generated based at least in part on a static analysis comprising examination of the first application to identify the at least one hardware device resource accessed by the first application and a dynamic analysis comprising executing the first application in a hosted environment of the at least one computing device to determine actual usage of the at least one hardware device resource by the first application; determine a compatibility target for the first application, wherein the compatibility target identifies a hardware device resource of a target device, wherein the hardware device resource is hardware of the target device; determine that the hardware device resource is incompatible with the first application based at least in part on the first application fingerprint and compatibility data that indicates that at least one of the application characteristics is incompatible with the hardware device resource of the target device; automatically generate and store a compatible version of the first application that is compatible with the hardware device resource of the target device based at least in part on a second application fingerprint associated with a second application that is compatible with the hardware device resource of the target device, identified by static analysis and dynamic analysis of the second application; and cause the compatible version of the first application to be transmitted and installed on a client device comprising the hardware device resource. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method, comprising:
-
receiving, by at least one computing device, a first application fingerprint for a first application, the first application fingerprint identifying application characteristics including a set of hardware device resources employed by the first application, the first application fingerprint being generated at least in part by a static analysis comprising examination of the first application to identify the set of hardware device resources accessed by the first application and a dynamic analysis comprising executing the first application in a hosted environment of the at least one computing device to determine actual usage of the set of hardware device resources by the first application; determine a compatibility target for the first application, the compatibility target identifying a hardware device resource of a target device; determining, by the at least one computing device, that the first application is not compatible with the hardware device resource of the target device based at least in part on the first application fingerprint and compatibility data that indicates that at least one of the application characteristics is incompatible with the hardware device resource of the target device; and automatically generating and storing, by the at least one computing device, a version of the first application that is compatible with the hardware device resource of the target device based at least in part on a second application fingerprint for a second application that is compatible with the hardware device resource of the target device, identified by static analysis and dynamic analysis of the second application; and causing, by the at least one computing device, the version of the first application that is compatible with the hardware device resource to be transmitted and installed on a client device comprising the hardware device resource. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
Specification