Identifying relationships between applications
First Claim
Patent Images
1. A non-transitory computer-readable medium having a computer-executable program stored thereon that, when executed by at least one computing device, configures the at least one computing device to perform operations comprising:
- identifying an application in an application marketplace;
identifying a plurality of other applications within a category in which the application is associated;
executing an instance of the application;
performing, in response to executing the instance, an analysis of a set of code fragments employed by the instance and an analysis of a set of device resources employed by the instance;
determining a resource consumption profile employed by the application based at least in part on the analysis of the set of code fragments and the analysis of the set of device resources;
performing an analysis of usage data associated with the instance that is executed;
generating an application fingerprint of the application based at least in part upon the analysis of the set of code fragments, the analysis of the set of device resources, and the analysis of the usage data, the application fingerprint comprising unique identifiers corresponding to the set of code fragments, the set of device resources, the resource consumption profile, and the usage data;
identifying, based at least in part upon the application fingerprint and respective fingerprints of the plurality of other applications within the category, a subset of the plurality of applications within the category employing at least one of a threshold number of common code fragments or a threshold number of common device resources relative to the application; and
identifying at least one difference between each of the subset of the plurality of applications and the application based at least in part upon the application fingerprint of the application.
1 Assignment
0 Petitions
Accused Products
Abstract
In various embodiments, static, dynamic, and behavioral analysis may be performed on an application. A set of software libraries or code fragments employed by the application may be determined. A set of device resources employed by the application may be determined. An application fingerprint is generated for the application. The application fingerprint encodes identifiers for the set of software libraries or code fragments and identifiers for the set of device resources.
26 Citations
22 Claims
-
1. A non-transitory computer-readable medium having a computer-executable program stored thereon that, when executed by at least one computing device, configures the at least one computing device to perform operations comprising:
-
identifying an application in an application marketplace; identifying a plurality of other applications within a category in which the application is associated; executing an instance of the application; performing, in response to executing the instance, an analysis of a set of code fragments employed by the instance and an analysis of a set of device resources employed by the instance; determining a resource consumption profile employed by the application based at least in part on the analysis of the set of code fragments and the analysis of the set of device resources; performing an analysis of usage data associated with the instance that is executed; generating an application fingerprint of the application based at least in part upon the analysis of the set of code fragments, the analysis of the set of device resources, and the analysis of the usage data, the application fingerprint comprising unique identifiers corresponding to the set of code fragments, the set of device resources, the resource consumption profile, and the usage data; identifying, based at least in part upon the application fingerprint and respective fingerprints of the plurality of other applications within the category, a subset of the plurality of applications within the category employing at least one of a threshold number of common code fragments or a threshold number of common device resources relative to the application; and identifying at least one difference between each of the subset of the plurality of applications and the application based at least in part upon the application fingerprint of the application. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
at least one computing device; and at least one service executable in the at least one computing device, the at least one service configured to cause the at least one computing device to; execute an instance of an application; perform, in response to executing the instance, an analysis of a set of code fragments employed by the instance and an analysis of a set of device resources employed by the instance; obtain an application fingerprint for the application, the application fingerprint based at least in part on the analysis of the set of code fragments employed by the instance, the analysis of the set of device resources employed by the instance, a resource consumption profile, and usage data associated with the instance; identify a plurality of other applications within a common category of the application in an application marketplace; and identify a refined set of applications from the common category, the refined set of applications being a subset of the plurality of other applications within the common category and being identified based at least in part upon an analysis of the application fingerprint and an analysis of a respective plurality of application fingerprints of the refined set of applications, wherein the refined set of applications employs at least one of a threshold number of common code fragments or a threshold number of common device resources relative to the application. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method, comprising:
-
identifying, by at least one computing device, an application in an application marketplace; executing, by the at least one computing device, an instance of the application; obtaining, by the at least one computing device, an application fingerprint for the application, the application fingerprint based at least in part upon a static analysis of the application, a dynamic analysis of the instance, and a behavioral analysis of usage of the application by a plurality of users of the application marketplace; extracting, by the at least one computing device, usage data associated with the behavioral analysis of usage from the application fingerprint, the usage data associated with the plurality of users of the application marketplace; identifying, by the at least one computing device, usage of the application with respect to a plurality of aspects of the application from the usage data; and generating, by the at least one computing device, a recommendation with respect to modifying the plurality of aspects based at least in part upon the usage of the application with respect to the plurality of aspects by identifying an aspect among the plurality of aspects of the application at which usage of the application according to the usage data decreases by a threshold percentage. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification