Recommending improvements to and detecting defects within applications
First Claim
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;
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;
performing, in response to executing the instance, 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 upon the analysis of the set of code fragments and the analysis of the set of device resources;
generating an application fingerprint based at least in part upon the analysis of the set of code fragments, the analysis of the set of device resources, and the resource consumption profile, the application fingerprint comprising information about the set of code fragments, the set of device resources, and the resource consumption profile;
executing at least one other instance of at least one other application;
generating at least one other application fingerprint based at least in part upon an analysis of at least one other resource consumption profile employed by the at least one other application;
identifying at least one improvement to the application based at least in part upon an analysis of the application fingerprint by comparing a performance metric in the application fingerprint to a corresponding performance metric in the at least one other application fingerprint;
determining that a specific feature is attributable to the corresponding performance metric;
generating a recommendation associated with the at least one improvement, wherein the recommendation comprises incorporating the specific feature that is attributable to the corresponding performance metric into the application; and
incorporating the specific feature that is attributable to the corresponding metric into the application by modifying a code fragment of the application.
2 Assignments
0 Petitions
Accused Products
Abstract
In various embodiments, static, dynamic, and behavioral analyzes may be performed on an application. A set of software libraries 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 and identifiers for the set of device resources. Improvements can be recommended based upon an analysis of the application fingerprint.
-
Citations
24 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; 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; performing, in response to executing the instance, 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 upon the analysis of the set of code fragments and the analysis of the set of device resources; generating an application fingerprint based at least in part upon the analysis of the set of code fragments, the analysis of the set of device resources, and the resource consumption profile, the application fingerprint comprising information about the set of code fragments, the set of device resources, and the resource consumption profile; executing at least one other instance of at least one other application; generating at least one other application fingerprint based at least in part upon an analysis of at least one other resource consumption profile employed by the at least one other application; identifying at least one improvement to the application based at least in part upon an analysis of the application fingerprint by comparing a performance metric in the application fingerprint to a corresponding performance metric in the at least one other application fingerprint; determining that a specific feature is attributable to the corresponding performance metric; generating a recommendation associated with the at least one improvement, wherein the recommendation comprises incorporating the specific feature that is attributable to the corresponding performance metric into the application; and incorporating the specific feature that is attributable to the corresponding metric into the application by modifying a code fragment of the application. - View Dependent Claims (2, 3, 4, 5)
-
-
6. 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 an application 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 upon the analysis of the set of code fragments employed by the instance and the analysis of the set of device resources employed by the instance; execute at least one other instance of at least one other application; obtain at least one other application fingerprint based at least in part upon an analysis of at least one other set of code fragments employed by the at least one other application and an analysis of at least one other set of device resources employed by the at least one other application; perform an analysis of the application fingerprint of the application to identify at least one improvement to the application based at least in part upon the analysis of the application fingerprint by comparing a performance metric in the application fingerprint to a corresponding performance metric in the at least one other application fingerprint associated with the at least one other application; determine that a specific feature is attributable to the corresponding performance metric; generate a recommendation for the at least one improvement to the application, wherein the recommendation comprises incorporating the specific feature that is attributable to the corresponding performance metric into the application; and incorporate the specific feature that is attributable to the corresponding performance metric into the application by modifying a code fragment of the application. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method, comprising:
-
executing, via at least one computing device, an instance of an application; performing, via the at least one computing device, in response to executing the instance, an analysis of a set of code fragments employed by the instance; obtaining, via the at least one computing device, an application fingerprint associated with the application based at least in part upon the analysis of the set of code fragments employed by the application, the application fingerprint encoding respective identifiers for the set of code fragments employed by the application; determining, via the at least one computing device, that the application includes a defect based at least in part on an analysis of the application fingerprint, wherein the analysis of the application fingerprint comprises comparing a performance metric in the application fingerprint to a corresponding performance metric in at least one other application fingerprint associated with another application; and implementing, via the at least one computing device, an improvement to the application in response to determining that the application includes the defect, wherein implementing the improvement comprises modifying a code fragment of the application. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
Specification