CN105630507B - WebView control interface drawing method and device - Google Patents

WebView control interface drawing method and device Download PDF

Info

Publication number
CN105630507B
CN105630507B CN201511023109.8A CN201511023109A CN105630507B CN 105630507 B CN105630507 B CN 105630507B CN 201511023109 A CN201511023109 A CN 201511023109A CN 105630507 B CN105630507 B CN 105630507B
Authority
CN
China
Prior art keywords
thread
independent
webview control
main program
control interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201511023109.8A
Other languages
Chinese (zh)
Other versions
CN105630507A (en
Inventor
曹源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TCL Corp
Original Assignee
TCL Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TCL Corp filed Critical TCL Corp
Priority to CN201511023109.8A priority Critical patent/CN105630507B/en
Publication of CN105630507A publication Critical patent/CN105630507A/en
Application granted granted Critical
Publication of CN105630507B publication Critical patent/CN105630507B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Abstract

The invention is suitable for the technical field of information, and provides a method and a device for drawing a WebView control interface, wherein the method comprises the following steps: enabling the WebView control interface to be independent of a host interface of an application main program; creating an independent working thread for drawing the WebView control interface, wherein the independent working thread is independent of a UI main thread of an application main program; and finishing the drawing of the WebView control interface in the independent working thread. According to the method and the device, the drawing of the WebView control interface is placed in an independent working thread, and an HTML5 video playing task can work in the independent working thread, so that the display efficiency of an HTML5 video in the WebView control can be improved, the response speed of a user interface when the host interface of an application main program is embedded into the WebView control to play the video can be improved, and the robustness of the main program can be improved.

Description

WebView control interface drawing method and device
Technical Field
The invention belongs to the technical field of information, and particularly relates to a method and a device for drawing a WebView control interface.
Background
With the development of the standard of HTML5 and related technologies, modern mainstream browsers support HTML5 video playing. In an Android intelligent platform, the chrome browser greatly optimizes the support of the HTML5 video.
In some service scenes, the HTML5 video playing function needs to be called in a certain page of the Android application main program App.
Currently, a standard method provided by Android is to embed a WebView control in an Android App, and load and play an HTML5 video through the WebView control. This approach has the following drawbacks: the first WebView control does not support multiple processes, video rendering and synthesis display are completed by a UI main thread of an Android application main program, and the UI main thread simultaneously needs to process a user event and refresh a basic UI interface, so that when an HTML5 video is played, an Android system possibly has reaction slowness in response to the user event, namely what is commonly called interface jamming; secondly, the WebView works on a UI main thread of an application main program, when the WebView control is abnormal and program crash occurs, the UI main thread is also abnormal indirectly, and the App main program generates an abnormal Force Close phenomenon.
Disclosure of Invention
The embodiment of the invention provides a method and a device for drawing a WebView control interface, and aims to solve the problems that the interface of the WebView control interface drawing method provided by the prior art is stuck and abnormal phenomena occur in an App application main program.
In one aspect, a method for drawing a WebView control interface is provided, and the method comprises the following steps:
enabling the WebView control interface to be independent of a host interface of an application main program;
creating an independent working thread for drawing the WebView control interface, wherein the independent working thread is independent of a UI main thread of an application main program;
and finishing the drawing of the WebView control interface in the independent working thread.
Further, the host interface enabling the WebView control interface to be independent of the application main program comprises:
placing a drawing layer of a WebView control interface below a drawing layer of a host interface of an application main program;
and setting a transparent area with the same size as the drawing layer of the WebView control interface on the drawing layer of the host interface of the application main program.
Further, the creating of the independent work thread for the drawing of the WebView control interface comprises:
creating a first independent working thread in a UI main thread of an application main program;
creating a second independent working thread in the UI main thread of the application main program;
a third independent worker thread is created in the UI main thread of the application main program.
Further, the drawing of the WebView control interface in the independent work thread comprises the following steps:
generating a rendering tree in a first independent working thread according to a webpage input by a user;
generating a composition tree in a second independent work thread;
and executing the rendering and synthesizing commands in the third independent work thread, and outputting the synthesizing result to the drawing layer of the WebView control.
In another aspect, an apparatus for interface rendering of a WebView control is provided, where the apparatus includes:
the interface independent module is used for enabling the WebView control interface to be independent of a host interface of the application main program;
the thread creating module is used for creating an independent working thread for drawing the WebView control interface, and the independent working thread is independent of a UI main thread of an application main program;
and the interface drawing module is used for finishing drawing the WebView control interface in the independent working thread.
Further, the interface independent module comprises:
the drawing layer processing unit is used for placing the drawing layer of the WebView control interface below the drawing layer of the host interface of the application main program;
and the host interface processing unit is used for setting a transparent area with the same size as the drawing layer of the WebView control interface on the drawing layer of the host interface of the application main program.
Further, the thread creation module comprises:
the first thread creating unit is used for creating a first independent working thread in a UI main thread of an application main program;
the second thread creating unit is used for creating a second independent working thread in the UI main thread of the application main program;
and the third thread creating unit is used for creating a third independent working thread in the UI main thread of the application main program.
Further, the interface drawing module comprises:
the rendering tree generating unit is used for generating a rendering tree in the first independent working thread according to the webpage input by the user;
a composition tree generating unit for generating a composition tree in the second independent work thread;
and the result output unit is used for executing rendering and synthesizing commands in the third independent work thread and outputting the synthesizing result to the drawing layer of the WebView control.
In the embodiment of the invention, after the WebView control interface is independent of the host interface, an independent working thread independent of a UI main thread is created for the drawing of the WebView control interface, the drawing of the WebView control interface is completed through the independent working thread independent of the UI main thread, the drawing of the WebView control interface is placed in the independent working thread and is separated from the UI main thread of an application main program, an HTML5 video playing task can work in the independent working thread, the display efficiency of an HTML5 video in the WebView control can be improved on one hand, the response speed of a user interface when the host interface of the application main program is embedded into the WebView control to play the video can be improved on the other hand, and the robustness of the main program can be improved.
Drawings
FIG. 1 is a flowchart illustrating an implementation of a method for drawing a WebView control interface according to an embodiment of the present invention;
fig. 2 is a schematic diagram of a host interface of a WebView control interface independent of an application main program in the method for drawing the WebView control interface according to the embodiment of the present invention;
fig. 3 is a block diagram of a structure of a device for drawing a WebView control interface according to a second embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
In the embodiment of the invention, the WebView control interface is independent of a host interface of an application main program; creating an independent working thread for drawing the WebView control interface, wherein the independent working thread is independent of a UI main thread of an application main program; and finishing the drawing of the WebView control interface in the independent working thread.
The following detailed description of the implementation of the present invention is made with reference to specific embodiments:
example one
Fig. 1 shows an implementation flow of a method for drawing a WebView control interface according to an embodiment of the present invention, which is detailed as follows:
in step S101, the WebView control interface is made independent of the host interface of the application main program.
In the Android system, the WebView controls are the same as controls such as TextView, Button, ImageView and the like, and the UIs of the WebView controls are drawn on a drawing layer of a host interface of an application main program, which means that the UIs of the WebView controls are drawn in a UI main thread of the application main program.
When complex scenes such as game pictures, Camera preview pictures and video playing are drawn, the UIs of the scenes are relatively complex and require efficient drawing, the UI of the scenes is not suitable for being drawn by a main thread of the UI of an application program, and a separate drawing layer must be generated for the complex and efficient UI and the UI must be drawn by a separate thread.
In the Android system, the interfaces of the Android App are drawn by a surfefinger service, and generally, each interface corresponds to a drawing Layer in the surfefinger service to describe a drawing interface. WebView controls are used to process Web (HTML/CSS/JavaScript) related content, and are typically embedded in the host interface of the application main program. Under the existing framework, the WebView control interface and the host interface of the application main program are rendered and drawn by the UI main thread of the application main program.
In the embodiment of the invention, after the operations of Viewroot initialization, Viewgroup initialization and host interface initialization of the application main program are completed, the drawing layer of the WebView control interface can be placed under the drawing layer of the host interface of the application main program by modifying the SurfaceFlinger service of the Android system, so that the WebView control interface is independent of the host interface of the application main program and is not embedded into the host interface of the application main program. The drawing Layer corresponding to the WebView control interface drawn by modifying the SurfaceFlinger service is shown in FIG. 2, the Layer corresponding to the WebView control interface is independent of the drawing Layer corresponding to the host interface of the application main program, and the position of the drawing Layer corresponding to the WebView control interface on the Z axis of the drawing system is lower than that of the drawing Layer corresponding to the host interface of the application main program. In addition, a transparent area with the same size as the drawing layer corresponding to the WebView is arranged on the drawing layer corresponding to the host interface of the application main program through the SurfaceFlinger service, so that the display of the WebView control interface and the display of the host interface of the application main program can be independently realized.
In step S102, an independent work thread is created for drawing the WebView control interface, where the independent work thread is independent of the UI main thread of the application main program.
In the embodiment of the invention, a first independent working thread, a second independent working thread and a third independent working thread are created in a UI main thread of an application main program. The independent working threads are independent from the UI main thread of the application main program and are not controlled by the UI main thread of the application main program.
The first independent working thread is a render thread, the second independent working thread is a Compositing thread, and the third independent working thread is a GPU thread.
The render thread, the Compositing thread and the GPU thread are all stripped from the UI main thread of the application main program, independent of the UI main thread of the application main program.
In step S103, the drawing of the WebView control interface is completed in the independent work thread.
In the embodiment of the invention, a rendering tree is generated in a first independent work thread according to a webpage input by a user, a composition tree is generated in a second independent work thread, a rendering and composition command is executed in a third independent work thread, and a composition result is output to a drawing layer of a WebView control.
Specifically, rendering and synthesis of the WebView control interface can be carried out in an independent work thread of a UI main thread which is created and independent of an application main program, drawing of the WebView control UI is completed through cooperation of a Renderer thread, a Compositing thread and a GPU thread, and processing of HTML5 video playing is included.
Generating a rendering tree according to a webpage input by a user in a render thread, and constructing a drawing context according to a page hierarchy; generating a composition tree in a composition thread, and describing the hierarchical relationship of the drawing pages and the drawing elements on each layer of pages by using a tree structure; and executing rendering and synthesizing commands in the GPU thread, independently drawing each drawing element on the drawing layer, synthesizing images, and outputting the synthesis result to the drawing layer of the WebView control.
In this embodiment, after the WebView control interface is independent of the host interface, an independent working thread independent of the UI main thread is created for the drawing of the WebView control interface, and the drawing of the WebView control interface is completed by the independent working thread independent of the UI main thread, so that the drawing of the WebView control interface is performed in the independent working thread and is separated from the UI main thread of the application main program, and an HTML5 video playing task can work in the independent working thread, so that the display efficiency of an HTML5 video in the WebView control can be improved, and the response speed of a user interface and the robustness of the user interface when the host interface of the application main program is embedded into the WebView control to play the video can be improved. The defects of a WebView single process are overcome, drawing of a WebView control interface is not completed in a UI main thread of an application main program any more, but completed in cooperation with an independent working thread, and therefore the problems that playing efficiency of an HTML5 video in a WebView control is low and response of the application main program is unsmooth are solved.
It should be understood that, in the embodiment of the present invention, the sequence numbers of the above-mentioned processes do not mean the execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiment of the present invention.
It will be understood by those skilled in the art that all or part of the steps in the method for implementing the embodiments described above may be implemented by using a program to instruct relevant hardware, and the corresponding program may be stored in a computer-readable storage medium, such as ROM/RAM, magnetic disk or optical disk.
Example two
Fig. 3 shows a specific structural block diagram of an apparatus for drawing a WebView control interface provided by the second embodiment of the present invention, and for convenience of explanation, only the parts related to the second embodiment of the present invention are shown. The WebView control interface drawing device 3 comprises: an interface independent module 31, a thread creation module 32 and an interface drawing module 33.
The interface independent module 31 is used for making the WebView control interface independent of the host interface of the application main program;
the thread creating module 32 is used for creating an independent working thread for drawing the WebView control interface, and the independent working thread is independent of a UI main thread of an application main program;
and the interface drawing module 33 is used for finishing drawing the WebView control interface in the independent working thread.
Specifically, the interface independent module 31 includes:
the drawing layer processing unit is used for placing the drawing layer of the WebView control interface below the drawing layer of the host interface of the application main program;
and the host interface processing unit is used for setting a transparent area with the same size as the drawing layer of the WebView control interface on the drawing layer of the host interface of the application main program.
Specifically, the thread creating module 32 includes:
the first thread creating unit is used for creating a first independent working thread in a UI main thread of an application main program;
the second thread creating unit is used for creating a second independent working thread in the UI main thread of the application main program;
and the third thread creating unit is used for creating a third independent working thread in the UI main thread of the application main program.
Specifically, the interface drawing module 33 includes:
the rendering tree generating unit is used for generating a rendering tree in the first independent working thread according to the webpage input by the user;
a composition tree generating unit for generating a composition tree in the second independent work thread;
and the result output unit is used for executing rendering and synthesizing commands in the third independent work thread and outputting the synthesizing result to the drawing layer of the WebView control.
The device for drawing the WebView control interface provided by the embodiment of the invention can be applied to the corresponding first embodiment of the method, and details are referred to the description of the first embodiment and are not repeated herein.
It should be noted that, in the above device embodiment, each included unit is only divided according to functional logic, but is not limited to the above division as long as the corresponding function can be achieved; in addition, specific names of the functional units are only for convenience of distinguishing from each other, and are not used for limiting the protection scope of the present invention.
The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents and improvements made within the spirit and principle of the present invention are intended to be included within the scope of the present invention.

Claims (6)

1. A method for drawing a WebView control interface, the method comprising:
enabling the WebView control interface to be independent of a host interface of an application main program; the drawing layer corresponding to the WebView control interface is independent of the drawing layer corresponding to the host interface of the application main program, the position of the drawing layer corresponding to the WebView control interface on the Z axis of the drawing system is lower than that of the drawing layer corresponding to the host interface of the application main program, and a transparent area with the same size as that of the drawing layer corresponding to the WebView control interface is arranged on the drawing layer corresponding to the host interface of the application main program through a SurfaceFlinger service;
creating a render thread, a Compositing thread and a GPU thread for drawing of the WebView control interface, wherein the independent working threads are independent of a UI main thread of an application main program;
and finishing the drawing of the WebView control interface in the independent working thread.
2. The method of claim 1, wherein creating a separate worker thread for rendering of the WebView control interface comprises:
creating a first independent working thread in a UI main thread of an application main program;
creating a second independent working thread in the UI main thread of the application main program;
a third independent worker thread is created in the UI main thread of the application main program.
3. The method of claim 2, wherein completing the drawing of the WebView control interface in the standalone worker thread comprises:
generating a rendering tree in a first independent working thread according to a webpage input by a user;
generating a composition tree in a second independent work thread;
and executing the rendering and synthesizing commands in the third independent work thread, and outputting the synthesizing result to the drawing layer of the WebView control.
4. An apparatus for WebView control interface rendering, the apparatus comprising:
the interface independent module is used for enabling the WebView control interface to be independent of a host interface of the application main program; the drawing layer corresponding to the WebView control interface is independent of the drawing layer corresponding to the host interface of the application main program, the position of the drawing layer corresponding to the WebView control interface on the Z axis of the drawing system is lower than that of the drawing layer corresponding to the host interface of the application main program, and a transparent area with the same size as that of the drawing layer corresponding to the WebView control interface is arranged on the drawing layer corresponding to the host interface of the application main program through a SurfaceFlinger service;
the thread creating module is used for creating a render thread, a Compositing thread and a GPU thread for drawing of the WebView control interface, and the independent working threads are independent of a UI main thread of an application main program;
and the interface drawing module is used for finishing drawing the WebView control interface in the independent working thread.
5. The apparatus of claim 4, wherein the thread creation module comprises:
the first thread creating unit is used for creating a first independent working thread in a UI main thread of an application main program;
the second thread creating unit is used for creating a second independent working thread in the UI main thread of the application main program;
and the third thread creating unit is used for creating a third independent working thread in the UI main thread of the application main program.
6. The apparatus of claim 5, wherein the interface drawing module comprises:
the rendering tree generating unit is used for generating a rendering tree in the first independent working thread according to the webpage input by the user;
a composition tree generating unit for generating a composition tree in the second independent work thread;
and the result output unit is used for executing rendering and synthesizing commands in the third independent work thread and outputting the synthesizing result to the drawing layer of the WebView control.
CN201511023109.8A 2015-12-29 2015-12-29 WebView control interface drawing method and device Active CN105630507B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511023109.8A CN105630507B (en) 2015-12-29 2015-12-29 WebView control interface drawing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511023109.8A CN105630507B (en) 2015-12-29 2015-12-29 WebView control interface drawing method and device

Publications (2)

Publication Number Publication Date
CN105630507A CN105630507A (en) 2016-06-01
CN105630507B true CN105630507B (en) 2020-01-24

Family

ID=56045497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511023109.8A Active CN105630507B (en) 2015-12-29 2015-12-29 WebView control interface drawing method and device

Country Status (1)

Country Link
CN (1) CN105630507B (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871917A (en) * 2016-06-08 2016-08-17 北京金山安全管理系统技术有限公司 Transmission control protocol TCP connection scheduling method and device
CN107589962A (en) * 2016-07-14 2018-01-16 广州市动景计算机科技有限公司 A kind of method for displaying user interface and device
CN107665139B (en) * 2016-07-29 2021-07-27 北京新唐思创教育科技有限公司 Method and device for realizing real-time bidirectional drawing in online teaching
US11089381B2 (en) 2017-01-20 2021-08-10 Hanwha Techwin Co., Ltd. Apparatus and method for simultaneous playback and backup of media in a web browser
CN108733445A (en) * 2018-05-17 2018-11-02 北京五八信息技术有限公司 A kind of view management method, device, equipment and computer readable storage medium
CN108762881B (en) * 2018-06-21 2021-02-12 广州酷狗计算机科技有限公司 Interface drawing method and device, terminal and storage medium
CN111163345B (en) * 2018-11-07 2021-11-26 杭州海康威视系统技术有限公司 Image rendering method and device
CN109634544B (en) * 2018-11-23 2022-04-12 北京梧桐车联科技有限责任公司 Application interface display method and device, display equipment and storage medium
CN110633121A (en) * 2019-09-05 2019-12-31 北京无限光场科技有限公司 Interface rendering method and device, terminal equipment and medium
CN110704768B (en) * 2019-10-08 2022-03-18 支付宝(杭州)信息技术有限公司 Webpage rendering method and device based on graphics processor
CN110806905B (en) * 2019-10-30 2022-09-30 网易(杭州)网络有限公司 User page processing method and device, electronic equipment and storage medium
CN111432262B (en) * 2020-02-24 2022-05-24 杭州海康威视数字技术股份有限公司 Page video rendering method and device
CN111432265B (en) * 2020-03-31 2021-08-31 腾讯科技(深圳)有限公司 Method for processing video pictures, related device and storage medium
CN113806014A (en) * 2021-08-26 2021-12-17 浪潮卓数大数据产业发展有限公司 Webview loading optimization method based on virtual multi-open
CN116166255A (en) * 2021-11-25 2023-05-26 华为技术有限公司 Interface generation method and electronic equipment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486726A (en) * 2010-12-03 2012-06-06 北京晶智意达科技有限公司 Multithread drawing method based on Qt
CN103064680A (en) * 2012-12-25 2013-04-24 北京奇虎科技有限公司 Plug-in playing method and device in browser
CN103077194A (en) * 2012-12-25 2013-05-01 北京奇虎科技有限公司 Method and device for creating active object of browser and browser
US8595640B2 (en) * 2010-12-02 2013-11-26 Microsoft Corporation Render transform based scrolling and panning for smooth effects
CN105549820A (en) * 2015-12-11 2016-05-04 魅族科技(中国)有限公司 Graphic user interface display method and terminal

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866291A (en) * 2014-02-24 2015-08-26 上海连梦文化传播有限公司 Android-based 2D mobile game engine

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595640B2 (en) * 2010-12-02 2013-11-26 Microsoft Corporation Render transform based scrolling and panning for smooth effects
CN102486726A (en) * 2010-12-03 2012-06-06 北京晶智意达科技有限公司 Multithread drawing method based on Qt
CN103064680A (en) * 2012-12-25 2013-04-24 北京奇虎科技有限公司 Plug-in playing method and device in browser
CN103077194A (en) * 2012-12-25 2013-05-01 北京奇虎科技有限公司 Method and device for creating active object of browser and browser
CN105549820A (en) * 2015-12-11 2016-05-04 魅族科技(中国)有限公司 Graphic user interface display method and terminal

Also Published As

Publication number Publication date
CN105630507A (en) 2016-06-01

Similar Documents

Publication Publication Date Title
CN105630507B (en) WebView control interface drawing method and device
KR102118223B1 (en) Cross window animation
CN105094804B (en) The method and apparatus of animation are added in the page
CN102663002B (en) Method and system for structured-document rendering
US20170173467A1 (en) Technologies for native game experience in web rendering engine
KR20150091132A (en) Page rendering method and apparatus
CN105094552A (en) Display method and device of browser tab and terminal
CN101196818A (en) Fast graphical developing system
CN110569096B (en) System, method, medium, and apparatus for decoding human-computer interaction interface
US9633410B2 (en) Compositor support for graphics functions
US20170300204A1 (en) Method and apparatus for manufacturing interactive electronic manual
CN105204859A (en) Animation management method and system
CN104571842A (en) Information processing method and electronic equipment
KR102292789B1 (en) Display apparatus and control method thereof
CN107179920B (en) Network engine starting method and device
CN107613046B (en) Filter pipeline system, image data processing method and device and electronic equipment
CN112364496A (en) Avionics simulation panel generation system based on HTML5 and VUE technology
CN102074221A (en) Method and device for displaying characters
EP2975542B1 (en) Simulation device and simulation program
CN104346064A (en) Information processing method and electronic equipment
CN109104628B (en) Focus foreground generation method, storage medium, device and system of android television
US8766986B1 (en) Efficient caching and drawing of objects whose rendering properties change frequently
US11175801B2 (en) Interactor for a graphical object
CN102739699A (en) Map display method under browser/server mode and client thereof
CN115391692A (en) Video processing method and device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant