Monitoring and actuation of view controller parameters to reach deep states without manual developer intervention
First Claim
1. A mobile application development system comprising:
- a developer portal including a first one or more processors configured to;
receive a copy of a first application from a first developer; and
provide a routing library to the first developer for incorporation into the first application before the first developer distributes the first application via a digital distribution platform; and
an offline analysis system comprising;
a second one or more processors configured to identify a set of view controllers implemented in the first application, wherein the set of view controllers includes at least one member; and
a third one or more processors configured to execute the first application and, during execution, monitor messages invoking the set of view controllers and extract selector parameters used to invoke the set of view controllers,wherein the routing library includes instructions that, upon installation of a copy of the first application in a user device;
receive a link from an operating system of the user device, wherein the link includes a data structure;
decode the data structure within the link, the decoded data structure including a view controller name and selector parameters;
based on the view controller name in the link, allocate memory for a view controller object indicated by the link; and
initialize the view controller object based on the selector parameters indicated by the link and using the allocated memory.
2 Assignments
0 Petitions
Accused Products
Abstract
A mobile application development system includes a developer portal configured to receive a copy of a first application from a first developer and provide a routing library to the first developer for incorporation into the first application before distribution. An offline analysis system uses a static analyzer to identify a set of view controllers implemented in the first application and uses a dynamic analyzer to execute the first application and, during execution, monitor messages invoking the set of view controllers and extract selector parameters used to invoke the set of view controllers. The routing library includes instructions that receive a link from an operating system and, based on a view controller name in the link, allocate memory for a view controller object indicated by the link. The instructions further initialize the view controller object based on selector parameters indicated by the link and using the allocated memory.
-
Citations
32 Claims
-
1. A mobile application development system comprising:
-
a developer portal including a first one or more processors configured to; receive a copy of a first application from a first developer; and provide a routing library to the first developer for incorporation into the first application before the first developer distributes the first application via a digital distribution platform; and an offline analysis system comprising; a second one or more processors configured to identify a set of view controllers implemented in the first application, wherein the set of view controllers includes at least one member; and a third one or more processors configured to execute the first application and, during execution, monitor messages invoking the set of view controllers and extract selector parameters used to invoke the set of view controllers, wherein the routing library includes instructions that, upon installation of a copy of the first application in a user device; receive a link from an operating system of the user device, wherein the link includes a data structure; decode the data structure within the link, the decoded data structure including a view controller name and selector parameters; based on the view controller name in the link, allocate memory for a view controller object indicated by the link; and initialize the view controller object based on the selector parameters indicated by the link and using the allocated memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 22)
-
-
11. A mobile application development system comprising:
-
a developer portal including a first one or more processors configured to; receive a copy of a first application from a first developer; and provide a routing library to the first developer for incorporation into the first application before the first developer distributes the first application via a digital distribution platform; and an offline analysis system comprising; a second one or more processors configured to identify a set of view controllers implemented in the first application, wherein the set of view controllers includes at least one member; and a third one or more processors configured to execute the first application and, during execution, monitor messages invoking the set of view controllers and extract selector parameters used to invoke the set of view controllers, wherein the routing library includes instructions that, upon installation of a copy of the first application in a user device; receive a link from an operating system of the user device, wherein the link includes a unique identifier; retrieve a data structure based on the unique identifier, wherein the data structure includes a view controller name and selector parameters; based on the view controller name in the link, allocate memory for a view controller object indicated by the link; and initialize the view controller object based on the selector parameters indicated by the link and using the allocated memory. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 28)
-
-
23. A method of operating a mobile application development system, the method comprising:
-
receiving a copy of a first application from a first developer; storing view controller names and the extracted selector parameters in a data store; providing a routing library to the first developer for incorporation into the first application before the first developer distributes the first application via a digital distribution platform, wherein the routing library includes instructions that, upon installation of a copy of the first application in a user device; receive a link from an operating system of the user device, wherein the link includes a unique identifier; and query the mobile application development system using the unique identifier; responding to the query with a data structure, wherein the data structure includes a view controller name and selector parameters obtained from the data store based on the unique identifier, wherein the routing library further includes instructions that, upon the installation of the copy of the first application in the user device; based on a view controller name in the link, allocate memory for a view controller object indicated by the link; and initialize the view controller object based on selector parameters indicated by the link and using the allocated memory; identifying a set of view controllers implemented in the first application using static analysis, wherein the set of view controllers includes at least one member; and in a processing system remote from the user device, executing the first application and, during execution, (i) monitoring messages invoking the set of view controllers and (ii) extracting selector parameters used to invoke the set of view controllers. - View Dependent Claims (24, 25, 26, 27)
-
-
29. A mobile application development system comprising:
-
a developer portal including a first one or more processors configured to; receive a copy of a first application from a first developer; and provide a routing library to the first developer for incorporation into the first application before the first developer distributes the first application via a digital distribution platform; and an offline analysis system comprising; a second one or more processors configured to; identify a set of view controllers implemented in the first application, wherein the set of view controllers includes at least one member; determine class names of the set of view controllers; and determine names of constructor methods for the set of view controllers; and a third one or more processors configured to; execute the first application; during execution, monitor messages invoking the set of view controllers and extract selector parameters used to invoke the set of view controllers; upon detecting a message internal to the executing copy of the first application corresponding to one of the determined constructor method names, extract at least one constructor selector parameter from the message and store the at least one constructor selector parameter along with the determined class name of the corresponding view controller, wherein the routing library includes instructions that, upon installation of a copy of the first application in a user device; receive a link from an operating system of the user device; based on a view controller name in the link, allocate memory for a view controller object indicated by the link; and initialize the view controller object based on selector parameters indicated by the link and using the allocated memory.
-
-
30. A method of operating a mobile application development system, the method comprising:
-
receiving a copy of a first application from a first developer; providing a routing library to the first developer for incorporation into the first application before the first developer distributes the first application via a digital distribution platform, wherein the routing library includes instructions that, upon installation of a copy of the first application in a user device; receive a link from an operating system of the user device; based on a view controller name in the link, allocate memory for a view controller object indicated by the link; and initialize the view controller object based on selector parameters indicated by the link and using the allocated memory; identifying a set of view controllers implemented in the first application using static analysis, wherein the set of view controllers includes at least one member; using static analysis; determining class names of the set of view controllers; and determining names of constructor methods for the set of view controllers; and in a processing system remote from the user device; executing the first application; during execution, (i) monitoring messages invoking the set of view controllers and (ii) extracting selector parameters used to invoke the set of view controllers; and upon detecting a message internal to the executing copy of the first application corresponding to one of the determined constructor method names, extracting at least one constructor selector parameter from the message and storing the at least one constructor selector parameter along with the determined class name of the corresponding view controller. - View Dependent Claims (31, 32)
-
Specification