IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0926683
(2013-06-25)
|
등록번호 |
US-9921827
(2018-03-20)
|
발명자
/ 주소 |
- Evans, Ethan Zane
- Markley, David Allen
- Ryder, Paul Allan
- Roque, Miguel Azancot
- Adkins, III, James Newton
- Paleja, Ameesh
- Lavin, Christopher Lawrence
- Chein, Jason Shih Shen
- Frazzini, Michael Anthony
- Rubenson, Aaron Curtis
|
출원인 / 주소 |
- Amazon Technologies, Inc.
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
0 인용 특허 :
30 |
초록
▼
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 app
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.
대표청구항
▼
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 f
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; andcause 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. 2. The non-transitory computer-readable medium of claim 1, wherein when executed the program further causes the at least one computing device to at least automatically generate the compatible version of the first one of the plurality of applications by a modification to source code associated with the first one of the plurality of applications. 3. The non-transitory computer-readable medium of claim 1, wherein the compatible version of the first one of the plurality of applications is generated using a modification that is determined based at least in part on a comparison between a third one of the plurality of application fingerprints and the second one of the plurality of application fingerprints, the third one of the plurality of application fingerprints corresponding to another version of the second one of the plurality of applications that is incompatible with the particular hardware device resource. 4. A system, comprising: at least one computing device comprising at least one processor; andat 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; andcause the compatible version of the first application to be transmitted and installed on a client device comprising the hardware device resource. 5. The system of claim 4, wherein the application characteristic further comprise an indication of a set of code fragments employed by the first application and a set of device resources employed by the first application including the at least one hardware device resource. 6. The system of claim 4, wherein the compatible version of the first application ports the first application from a first operating system platform to a second operating system platform. 7. The system of claim 4, wherein the compatible version of the first application ports the first application from a first version of an operating system to a second version of the operating system. 8. The system of claim 7, wherein the second version of the operating system is specific to the target device having the hardware device resource. 9. The system of claim 4, wherein the compatible version of the first application is generated based at least in part on a modification to source code of the first application. 10. The system of claim 4, wherein the compatible version of the first application replaces a first code fragment of the first application with a second code fragment. 11. The system of claim 10, wherein when executed the at least one service further causes the at least one computing device to at least identify the second code fragment based at least in part on the second application fingerprint associated with the second application that is compatible with the hardware device resource, the second application fingerprint indicating use of the second code fragment by the second application. 12. The system of claim 4, wherein when executed the at least one service further causes the at least one computing device to at least: determine at least one of an estimated complexity or an estimated cost associated with implementing a modification to generate the compatible version of the first application;send a notification to a party associated with the first application, the notification describing the modification; andwherein the notification includes the at least one of the estimated complexity or the estimated cost. 13. The system of claim 4, wherein the first application fingerprint is derived from at least one of: calls in the first application to code libraries, and inclusion in the first application of one or more code fragments from a predefined set of code fragments. 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; andautomatically 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; andcausing, 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. 15. The method of claim 14, wherein the version of the first application is generated based at least in part on a modification to source code of the first application. 16. The method of claim 14, further comprising determining an estimated testing metric for the generated version of the first application. 17. The method of claim 14, wherein automatically generating the version of the first application further comprises: identifying, by the at least one computing device, a compatible code fragment based at least in part on the second application fingerprint for the second application; andreplacing, by the at least one computing device, an incompatible code fragment of the first application with the compatible code fragment. 18. The method of claim 14, further comprising estimating, by the at least one computing device, at least one metric relating to testing of the version of the first application, the at least one metric comprising at least one of: an estimated testing duration, an estimated number of testers, or an estimated quantity of testing cycles. 19. The method of claim 14, wherein the first application fingerprint inherits characteristics from other application fingerprints that are generated for previous versions of the first application. 20. The method of claim 14, wherein the first application fingerprint inherits characteristics from other application fingerprints that are generated for similar applications. 21. The method of claim 14, further comprising uploading the version of the first application to an application marketplace.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.