Discovery of application states

US9483388B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9483388-B2
Application numberUS-201414585120-A
CountryUS
Kind codeB2
Filing dateDec 29, 2014
Priority dateDec 29, 2014
Publication dateNov 1, 2016
Grant dateNov 1, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Some aspects of the disclosure provide a method comprising obtaining machine executable code of an application, the application operable to achieve a set of application states, pre-processing the machine executable code to generate reviewable code, identifying, from the reviewable code, a set of state access instructions configured to invoke or assist in invoking one of the set of application states of the application, the set of state access instructions indicating a first state access instruction configured to invoke a first state of the set of application states and a second state access instruction configured to invoke a second state of the set of application states that is different from the first state, each of the set of state access instructions including an application resource identifier referencing an application and indicating an operation for the application to perform, and storing the set of state access instructions.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method comprising: obtaining machine executable code of an application, the application operable to achieve a set of application states; pre-processing the machine executable code to generate reviewable code; performing static analysis on the reviewable code to (i) identify, a first state access instruction configured to invoke or assist in invoking a first subset of the set of application states of the application and (ii) identify a set of parameter variables relied on by the first state access instruction to create a template function instruction; performing dynamic analysis on the application to determine, for each parameter variable of the set of parameter variables, a set of values, wherein the template function instruction is instantiated with first values for the parameter variables to invoke a first state of the first subset of the set of application states of the application; storing an instantiation of the template function instruction with the first values as an access mechanism for the first state of the application; storing an instantiation of the template function instruction with second values as an access mechanism for a second state of the application; executing the application and scraping first data from the first state of the application; storing a first record for the first state of the application in a search index, wherein the record includes the scraped first data; executing the application and scraping second data from the second state of the application; storing a second record for the second state of the application in a search index, wherein the record includes the scraped second data; in response to receiving a search query from a user device, identifying at least one relevant record from the search index according to scraped data stored in the search index; in response to the at least one relevant record including the first record, generating a set of search results including a first result, wherein the first result includes the access mechanism for the first state of the application; and providing the set of search results to the user device, wherein selection by the user of the first result causes the application on the user device to launch and transition to the first state. 2. The method of claim 1 , further comprising identifying a candidate activity object from the reviewable code, the candidate activity object potentially functional to change or assist in changing an application state of the set of application states of the application. 3. The method of claim 2 , further comprising tracing functions of the candidate activity object in the reviewable code to determine if the candidate activity object is functional to change or assist in changing the application state of the set of application states of the application, an application resource identifier of the first state access instruction indicating the candidate activity object based, at least in part, on the tracing. 4. The method of claim 3 , wherein tracing functions of the candidate activity object in the reviewable code comprises identifying a pattern of activity associated with the candidate activity object from the reviewable code to determine if the candidate activity object is functional to change or assist in changing the application state of the set of application states of the application. 5. The method of claim 2 , further comprising tracing functions of a parameter variable associated with the candidate activity object from the reviewable code to determine if the parameter variable assists the candidate activity object in changing the application state of the set of application states of the application. 6. The method of claim 5 , further comprising determining semantic meaning of the parameter variable by tracing use of the parameter variable in the reviewable code. 7. The method of claim 6 , further comprising assigning a category to the parameter variable based on the semantic meaning, the category being associated with a plurality of preexisting values. 8. The method of claim 7 , further comprising providing the first state access instruction to the application, the first state access instruction including the candidate activity object and at least one of the plurality of preexisting values. 9. The method of claim 1 , wherein the reviewable code is machine readable. 10. The method of claim 1 , wherein the first state access instruction comprises a parameter variable utilized by the application resource identifier. 11. The method of claim 1 , further comprising generating a state access instruction report including the set of state access instructions. 12. A system comprising a processor and a memory system, wherein the processor is configured to execute instructions from the memory system, wherein the instructions implement: a pre-processing module configured to obtain machine executable code of an application, the application operable to achieve a set of application states and pre-process the machine executable code to generate reviewable code; an object tracking module configured to, using static analysis (i) identify, from the reviewable code, a first state access instruction configured to invoke or assist in invoking a first subset of the set of application states of the application and (ii) identify a set of parameter variables relied on by the first state access instruction to create a template function instruction, a dynamic analysis module configured to perform dynamic analysis on the application to determine, for each parameter variable of the set of parameter variables, a set of values, wherein the template function instruction is instantiated with first values for the parameter variables to invoke a first state of the first subset of the set of application states of the application; a static access instruction report module configured to store an instantiation of the template function instruction with the first values as an access mechanism for the first state of the application and to store an instantiation of the template function instruction with second values as an access mechanism for a second state of the application; a scraper engine configured to: execute the application and scraping first data from the first state of the application; store a first record for the first state of the application in a search index, wherein the record includes the scraped first data; execute the application and scraping second data from the second state of the application; store a second record for the second state of the application in a search index, wherein the record includes the scraped second data; a set generation module configured to, in response to receiving a search query from a user device, identify at least one relevant record from the search index according to scraped data stored in the search index; a set processing module configured to, in response to the at least one relevant record including the first record, generate a set of search results including a first result and provide the set of search results to the user device, wherein the first result includes the access mechanism for the first state of the application, and wherein selection by the user of the first result causes the application on the user device to launch and transition to the first state. 13. The system of claim 12 , further comprising an object identification module configured to identify a candidate activity object from the reviewable code, the candidate activity object potentially functional to change or assist in changing an application state of the set of application states of the application.

Assignees

Inventors

Classifications

  • G06F8/75Primary

    Structural analysis for program understanding · CPC title

  • for test execution, e.g. scheduling of test suites · CPC title

  • Software maintenance or management · CPC title

  • by tracing the execution of the program · CPC title

  • using context · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9483388B2 cover?
Some aspects of the disclosure provide a method comprising obtaining machine executable code of an application, the application operable to achieve a set of application states, pre-processing the machine executable code to generate reviewable code, identifying, from the reviewable code, a set of state access instructions configured to invoke or assist in invoking one of the set of application s…
Who is the assignee on this patent?
Quixey Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/75. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 01 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).