IP Library Granted Patent US 12,411,698
Granted Patent B2
US 12,411,698 · App. 17/273,608 · Granted Sep 9, 2025

Static reconcilliation of application view hierarchies

Inventors: James Richard Sproch (Mountain View, CA); Chuck Paul Jazdzewski (Campbell, CA); Leland Richardson (San Francisco, CA)
Assignee: Google LLC
G06F9/451G06F8/24G06F8/38G06F8/4443G06F8/75
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,411,698
App. No.
17/273,608
Granted
Sep 9, 2025
Kind
B2
Abstract

A system is described that performs static reconciliation for rendering a graphical user interface (GUI) of an application. The system compiles source code associated with the GUI of an application into rendering instructions for rendering a view hierarchy of the GUI. The view hierarchy defines graphical components of the GUI, and the rendering instructions include initial rendering instructions for rendering the graphical components during an initial rendering of the GUI, and update rendering instructions for rendering a subset of the graphical components during subsequent renderings of the GUI. The system may automatically assign a respective key to one or more of the subset of graphical components, where the update rendering instructions for rendering each of the one or more of the subset of graphical components are uniquely identifiable according to the respective key. The system executes the rendering instructions to update the graphical components identified by the respective key.

Claims (68)

1. A method for performing static reconciliation for rendering a graphical user interface of an application, the method comprising:

receiving, by at least one processor, source code associated with the graphical user interface of an application;

compiling the source code once into two sets of rendering instructions for rendering a view hierarchy of the graphical user interface, wherein the view hierarchy defines graphical components of the graphical user interface, and wherein the two sets of rendering instructions include:

a set of initial rendering instructions for rendering, at run-time, all static and dynamic graphical components of the view hierarchy, during an initial rendering of the graphical user interface; and

a set of update rendering instructions for rendering, at the run-time, the dynamic graphical components, during subsequent renderings of the graphical user interface; while compiling the source code, automatically assigning, a respective key to each of the dynamic graphical components, wherein the set of update rendering instructions for rendering each of the one or more of the dynamic graphical components are uniquely identifiable according to the respective key;

initially rendering the graphical user interface by at least executing, at the run-time, the set of initial rendering instructions, wherein the rendering of the graphical user interface includes rendering all of the static graphical components and the dynamic graphical components of the view hierarchy of the graphical user interface; and

during each subsequent rendering of the graphical user interface and without recompiling the source code:

executing, at the run-time, the set of update rendering instructions to update the one or more of the dynamic graphical components identified by the respective key; and

refraining from executing the set of initial rendering instructions.

2. The method of claim 1 , wherein compiling the two sets of rendering instructions comprises:

identifying a set of dynamic objects from the source code that include one or more dynamic attributes; and

identifying a set of static objects from the source code that do not include any dynamic attributes,

wherein the set of initial rendering instructions include instructions for rendering both the set of dynamic objects and the set of static objects, and

wherein the set of update rendering instructions include instructions for rendering the set of dynamic objects but not the set of static objects.

3. The method of claim 1 , wherein compiling the two sets of rendering instructions further comprises:

determining whether any of the graphical components are duplicated in the graphical user interface; and

automatically assigning the respective key to each of the graphical components that is duplicated in the graphical user interface,

wherein respective rendering instructions from the two sets of rendering instructions for each graphical component that is duplicated in the graphical user interface are uniquely identifiable according to the respective key.

4. The method of claim 3 , further comprises:

generating the respective key assigned to each graphical component that is duplicated in the graphical user interface based on a position from within the source code where the dynamic graphical component is referenced.

5. The method of claim 4 , wherein the position comprises a respective position of a first byte where the two sets of rendering instructions for each of the graphical components resides within the source code.

6. The method of claim 1 , wherein the two sets of rendering instructions comprise in-line rendering instructions compiled into machine-readable code.

7. A computing system configured to perform static reconciliation for rendering a graphical user interface of an application, the computing system comprising:

at least one memory configured to store source code associated with the graphical user interface of an application; and

at least one processor configured to:

compile the source code once into two sets of rendering instructions for rendering a view hierarchy of the graphical user interface, wherein the view hierarchy defines graphical components of the graphical user interface, and wherein the two sets of rendering instructions include:

a set of initial rendering instructions for rendering, at run-time, all static and dynamic graphical components of the view hierarchy, during an initial rendering of the graphical user interface; and

a set of update rendering instructions for rendering, at the run-time, the dynamic graphical components, during subsequent renderings of the graphical user interface;

while compiling the source code, automatically assign, a respective key to each of the dynamic graphical components, wherein the set of update rendering instructions for rendering each of the one or more of the dynamic graphical components are uniquely identifiable according to the respective key;

initially render the graphical user interface by at least executing, at the run-time, the set of initial rendering instructions, wherein the rendering of the graphical user interface includes rendering all of the static graphical components and the dynamic graphical components of the view hierarchy of the graphical user interface; and

during each subsequent rendering of the graphical user interface and without recompiling the source code:

execute, at the run-time, the set of update rendering instructions to update the one or more of the dynamic graphical components identified by the respective key; and

refrain from executing the set of initial rendering instructions.

8. The computing system of claim 7 , wherein the at least one processor is configured, when compiling the two sets of rendering instructions, to:

identify a set of dynamic objects from the source code that include one or more dynamic attributes; and

identify a set of static objects from the source code that do not include any dynamic attributes,

wherein the set of initial rendering instructions include instructions for rendering both the set of dynamic objects and the set of static objects, and

wherein the set of update rendering instructions include instructions for rendering the set of dynamic objects but not the set of static objects.

9. The computing system of claim 7 , wherein the at least one processor is configured, when compiling the two sets of rendering instructions, to:

determine whether any of the graphical components are duplicated in the graphical user interface; and

automatically assign the respective key to each of the graphical components that is duplicated in the graphical user interface,

wherein respective rendering instructions from the two sets of rendering instructions for each graphical component that is duplicated in the graphical user interface are uniquely identifiable according to the respective key.

10. The computing system of claim 9 , wherein the at least one processor is further configured to:

generate the respective key assigned to each graphical component that is duplicated in the graphical user interface based on a position from within the source code where the dynamic graphical component is referenced.

11. The computing system of claim 10 , wherein the position comprises a respective position of a first byte where the two sets of rendering instructions for each of the graphical components resides within the source code.

12. The computing system of claim 7 , wherein the two sets of rendering instructions comprise in-line rendering instructions compiled into machine-readable code.

13. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed, cause one or more processors, when performing static reconciliation for rendering a graphical user interface of an application, to:

receive source code associated with the graphical user interface of an application; and

compile the source code once into two sets of rendering instructions for rendering a view hierarchy of the graphical user interface, wherein the view hierarchy defines graphical components of the graphical user interface, and wherein the two sets of rendering instructions include:

a set of initial rendering instructions for rendering, at run-time, all static and dynamic graphical components of the view hierarchy, during an initial rendering of the graphical user interface; and

a set of update rendering instructions for rendering, at the run-time, the dynamic graphical components, during subsequent renderings of the graphical user interface;

while compiling the source code, automatically assign a respective key to each of the dynamic graphical components, wherein the set of update rendering instructions for rendering each of the one or more of the dynamic graphical components are uniquely identifiable according to the respective key;

initially render the graphical user interface by at least executing, at the run-time, the set of initial rendering instructions, wherein the rendering of the graphical user interface includes rendering all of the static graphical components and the dynamic graphical components of the view hierarchy of the graphical user interface; and

during each subsequent rendering of the graphical user interface and without recompiling the source code:

execute, at the run-time, the set of update rendering instructions to update the one or more of the dynamic graphical components identified by the respective key; and

refrain from executing the set of initial rendering instructions.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the instruction, when execute to compile the two sets of rendering instructions, cause the one or more processors to:

identify a set of dynamic objects from the source code that include one or more dynamic attributes; and

identify a set of static objects from the source code that do not include any dynamic attributes,

wherein the set of initial rendering instructions include instructions for rendering both the set of dynamic objects and the set of static objects, and

wherein the set of update rendering instructions include instructions for rendering the set of dynamic objects but not the set of static objects.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the instruction, when executed to compile the two sets of rendering instructions, cause the one or more processors to:

determine whether any of the graphical components are duplicated in the graphical user interface; and

automatically assign the respective key to each of the graphical components that is duplicated in the graphical user interface,

wherein respective rendering instructions from the two sets of rendering instructions for each graphical component that is duplicated in the graphical user interface are uniquely identifiable according to the respective key.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the instruction, when executed, further cause the one or more processors to:

generate the respective key assigned to each graphical component that is duplicated in the graphical user interface based on a position from within the source code where the dynamic graphical component is referenced.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the position comprises a respective position of a first byte where the two sets of rendering instructions for each of the graphical components resides within the source code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2021
From: SPROCH, JAMES RICHARD; JAZDZEWSKI, CHUCK PAUL; RICHARDSON, LELAND
To: GOOGLE LLC
Reel/Frame 055497/0988 →
Continuity (1)
Related Publication 20210365277A1 · Nov 25, 2021
References Cited (29)
US 10002115B1 · Killian et al. · 2018 [cited by applicant]
US 20030177175A1 · Worley et al. · 2003 [cited by applicant]
US 20070094608A1 · Getsch · 2007 [cited by examiner]
US 20090259950A1 · Sullivan · 2009 [cited by examiner]
US 20110131548A1 · Colton · 2011 [cited by examiner]
US 20110321024A1 · Knothe · 2011 [cited by examiner]
US 20180196644A1 · Bhakar et al. · 2018 [cited by applicant]
US 20190303446A1 · Franz · 2019 [cited by examiner]
US 20190369969A1 · Donohoe · 2019 [cited by examiner]
CN 101996073A · 2011 [cited by applicant]
CN 105354013A · 2016 [cited by applicant]
CN 107391114A · 2017 [cited by applicant]
CN 108228188A · 2018 [cited by applicant]
Response to Communication Pursuant to Rules 161(1) and 162 EPC dated Mar. 25, 2021 , from counterpart European Application No. 19730589.9, filed Sep. 20, 2021, 18 pp. [cited by applicant]
International Preliminary Report on Patentability from International Application No. PCT/US2019/029228, mailed Nov. 4, 2021, 8 pp. [cited by applicant]
Response to First Office Action and Search Report dated Feb. 22, 2022, from counterpart Indian Application No. 202147011342 filed May 20, 2022, 14 pp. [cited by applicant]
First Office Action and Search Report, and translation thereof, from counterpart Indian Application No. 202147011342 dated Feb. 22, 2022, 7 pp. [cited by applicant]
International Search Report and the Written Opinion for counterpart International Application No. PCT/US2019/029228, dated Jan. 21, 2020, 13 pgs. [cited by applicant]
Notice of Intent to Grant and Text Intended to Grant from counterpart European Application No. 19730589.9 dated Oct. 17, 2022, 45 pp. [cited by applicant]
Response to Official Hearing dated Aug. 5, 2024, from counterpart Indian Application No. 202147011342 filed Aug. 20, 2024, 8 pp. [cited by applicant]
Chen et al., “Fast Ray Tracing Technology for Dynamic Scenes”, Journal of HuaZhong Normal University (Natural Sciences), vol. 45, No. 2, Jun. 30, 2011, 1-10 pp., Translation provided for only the Abstract. [cited by applicant]
First Office Action and Search Report, and translation thereof, from counterpart Chinese Application No. 201980066348.1 dated Apr. 30, 2024, 19 pp. [cited by applicant]
Ma, “Research on Real-time Dynamic Reflection Technology with Realistic Rendering in Virtual Reality”, Journal of Xi'an University (Natural Science Edition), vol. 22, No. 2, Mar. 31, 2019, pp. 62-66, Translation provide… [cited by applicant]
Hearing Notice from counterpart Indian Application No. 202147011342 dated Jun. 19, 2024, 3 pp. [cited by applicant]
Second Office Action, and translation thereof, from counterpart Chinese Application No. 201980066348.1 dated Oct. 30, 2024, 12 pp. [cited by applicant]
Response to Second Office Action, and machine translation thereof, dated Oct. 30, 2024, from counterpart Chinese Application No. 201980066348.1 filed Dec. 30, 2024, 8 pp. [cited by applicant]
Decision of Rejection, and translation thereof, from counterpart Chinese Application No. 201980066348.1 dated Feb. 6, 2025, 12 pp. [cited by applicant]
Response to Office Action, and translation there of, dated Feb. 6, 2025, from counterpart Chinese Application No. 201980066348.1 filed May 6, 2025, 26 pp. [cited by applicant]
Notice of Intent to Grant, and translation thereof, from counterpart Chinese Application No. 201980066348.1 dated Jul. 3, 2025, 7 pp. [cited by applicant]