CN107277226A - 一种获取手机应用内存快照和内存分配堆栈的方法及装置 - Google Patents
一种获取手机应用内存快照和内存分配堆栈的方法及装置 Download PDFInfo
- Publication number
- CN107277226A CN107277226A CN201710331302.0A CN201710331302A CN107277226A CN 107277226 A CN107277226 A CN 107277226A CN 201710331302 A CN201710331302 A CN 201710331302A CN 107277226 A CN107277226 A CN 107277226A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory allocation
- storehouse
- mobile phone
- phone application
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
- Stored Programmes (AREA)
Abstract
一种获取手机应用内存快照和内存分配堆栈的方法,包括以下步骤:启动被检测手机应用,并初始化内存信息元数据表和内存分配堆栈统计表;查找并监视Unity引擎中分配和回收内存相关的应用程序编程接口;执行对应的操作,触发调用所述应用程序编程接口,截获当前的所述内存分配回收信息;根据当前的所述内存分配回收信息更新所述内存信息元数据表和内存分配堆栈统计表;若检测完毕,则将所述内存信息元数据表和内存分配堆栈统计表分别保存为内存快照文件和内存分配堆栈统计文件,并导出为外部文件。本发明的有益效果为:提供即时生成内存快照文件和内存分配堆栈统计文件功能,手机应用开发人员可方便地监测应用在运行期间从操作系统分配的内存变化状况。
Description
技术领域
本发明涉及手机应用优化领域,尤其涉及一种获取手机应用内存快照和内存分配堆栈的方法及装置。
背景技术
在智能手机行业,随着手机游戏的市场占有率越来越高,大部分的知名游戏开发公司都在手机游戏开发投入了较多的技术研发。在手机游戏的开发过程中,降低手机游戏的内存占用率一直都是手机应用开发人员较为关心的点之一。若游戏运行过程中占用内存过多,可能会被操作系统认定为异常进程而直接关闭,也可能会因占用过多导致系统内存,使得系统性能降低,从而令游戏体验下降。
Unity作为一种广泛应用的手机游戏开发引擎,采用Mono平台作为其C#虚拟机,且分配释放内存都使用Mono平台中的相关接口,因此能够优化内存占用,从而提升游戏性能。
由于Mono平台封装了从操作系统中分配内存的过程,因此手机应用开发人员不能直接获取Mono平台分配的内存的信息。鉴于上述原因,手机应用开发人员需要一套内存状况的监测工具,获取当前时刻内存中存储的对象详情,从而针对占用内存较大的对象或数目众多的同类对象进行相关优化;以及同时获取每次分配内存的调用堆栈信息,从而能快速定位某个对象产生的代码路径并进行优化。
发明内容
本发明的目的是解决现有技术的不足,提供一种获取手机应用内存快照和内存分配堆栈的方法及装置,能够获得同时向手机应用开发人员提供指定时刻手机应用的内存快照和内存分配堆栈的直观信息,从而为手机应用开发人员快速优化手机应用性能提供方便的效果。
为了实现上述目的,本发明采用以下的技术方案:
本发明提出一种获取手机应用内存快照和内存分配堆栈的方法,用于安卓智能手机中基于Unity引擎开发的程序,步骤如下:
S100)启动被检测手机应用,并初始化内存信息元数据表和内存分配堆栈统计表;
S200)查找并监视Unity引擎中分配和回收内存相关的应用程序编程接口;
S300)执行对应的操作,触发调用该应用程序编程接口,截获当前的内存分配回收信息;
S400)根据当前的该内存分配回收信息更新该内存信息元数据表和该内存分配堆栈统计表;
S500)若检测完毕,执行步骤S600,否则返回执行步骤S300;
S600)将该内存信息元数据表和该内存分配堆栈统计表分别保存为内存快照文件和内存分配堆栈统计文件,并导出为外部文件。
在本发明的上述方法中,该内存信息元数据表的内容至少包括内存分配大小、对象类型和当前接口调用堆栈。
在本发明的上述方法中,该内存分配堆栈统计表的内容至少包括内存分配堆栈的内存分配次数和内存分配总大小。
在本发明的上述方法中,该步骤S500通过与外部交互的方式,导出该外部文件。
在本发明的上述方法中,该步骤S600按照内存分配频度顺序,保存该内存分配堆栈统计文件记录。
本发明还提出一种获取手机应用内存快照和内存分配堆栈的装置,用于安卓智能手机中基于Unity引擎开发的程序,其特征在于,包括以下模块:
启动模块,用于启动被检测手机应用,并初始化内存信息元数据表和内存分配堆栈统计表;
监视模块,用于查找并监视Unity引擎中分配和回收内存相关的应用程序编程接口;
截获模块,用于在执行对应的操作,触发调用该应用程序编程接口后,截获当前的内存分配回收信息;
更新模块,用于根据当前的该内存分配回收信息更新该内存信息元数据表和该内存分配堆栈统计表;
导出模块,用于将该内存信息元数据表和该内存分配堆栈统计表分别保存为内存快照文件和内存分配堆栈统计文件,并导出为外部文件。
在本发明的上述装置中,该导出模块保存的该内存快照文件至少包括内存分配大小、对象类型和当前接口调用堆栈。
在本发明的上述装置中,该导出模块保存的该内存分配堆栈统计文件至少包括内存分配堆栈的内存分配次数和内存分配总大小。
在本发明的上述装置中,该装置通过与外部交互的方式,导出该外部文件。
在本发明的上述装置中,该导出模块按照内存分配频度顺序,保存该内存分配堆栈统计文件。
本发明还提出了一种计算机可读介质,包括用于执行该获取手机应用内存快照和内存分配堆栈方法的指令。
本发明的有益效果为:由于提供了即时生成内存快照文件和内存分配堆栈统计文件功能,手机应用开发人员可以方便地监测手机游戏在运行期间从操作系统分配的内存变化状况。一方面,手机应用开发人员可以通过内存快照文件,获取某个时间点内存中存储的对象详情,可针对占用内存较大的对象或数目众多的同类对象,进行相关优化而减少内存占用;另一方面,手机应用开发人员也可以通过内存分配堆栈统计文件,快速定位生产某块内存的原因。
附图说明
图1所示为本发明提出的获取手机应用内存快照和内存分配堆栈的方法流程图;
图2所示为本发明提出的获取手机应用内存快照和内存分配堆栈的装置结构图;
图3所示为图2所示导出模块的导出文件示意图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。附图中各处使用的相同的附图标记指示相同或相似的部分。
图1所示为本发明提出的获取手机应用内存快照和内存分配堆栈的方法流程图。参照图1,一个用于安卓智能手机中基于Unity引擎开发程序的示例性方法实施例,包括如下步骤:
S100)启动被检测手机应用,并初始化内存信息元数据表和内存分配堆栈统计表。具体地,手机应用开发人员在启动所述被检测手机应用后,可使用inject注入程序的方式将监控实现程序monomem.so注入到手机应用中,以实现对所述被检测手机应用的监控。同时,监控程序初始化所述内存信息元数据表MemInfoMap和所述内存分配堆栈统计表AllocStackStat,为正式监控所述被检测手机应用做好准备。
S200)查找并监视Unity引擎中分配和回收内存相关的应用程序编程接口。具体地,监控实现程序将相关函数挂钩到Unity引擎的Mono平台内存分配的所述应用程序编程接口(例如mono_array_new_full和mono_object_clone等所述应用程序编程接口)。同时,监控实现程序将通过mono_profiler_install_gc注册回调函数的方式,接收内存自动回收的通知。
S300)执行对应的操作,触发调用所述应用程序编程接口,截获当前的内存分配回收信息。具体地,当对应的操作被执行后,由于触发了被挂钩的Unity引擎的Mono平台内存分配的所述应用程序编程接口,从而监控实现程序截获了内存分配的信息。类似地,监控实现程序也可通过接收内存自动回收通知,截获内存回收的信息。
S400)根据当前的所述内存分配回收信息更新所述内存信息元数据表和所述内存分配堆栈统计表。具体地,步骤S300截获所述内存分配回收信息后,监控实现程序将相关信息保存到所述内存信息元数据表MemInfoMap中。同时,所述内存分配堆栈统计表AllocStackStat也将根据相关信息更新对应的统计数据(例如堆栈的分配次数)。
S500)若检测完毕,执行步骤S600,否则返回执行步骤S300。例如,若监控实现程序是基于场景切换事件保存内存快照文件和内存分配堆栈统计文件,则每当进入一个新场景,监控实现程序就会执行步骤S600。
S600)将所述内存信息元数据表和所述内存分配堆栈统计表分别保存为内存快照文件和内存分配堆栈统计文件,并导出为外部文件。具体地,所述内存信息元数据表MemInfoMap和所述内存分配堆栈统计表AllocStackStat的数据将保存到外部文件(例如txt格式的外部文件)。
在根据本发明的一个实施例中,更新并保存到所述内存信息元数据表的内容包括但是不限于分配的内存要存储的对象类型,分配内存的大小,以及当前调用堆栈。
在根据本发明的另一个实施例中,更新并保存到所述内存分配堆栈统计表的内容包括但是不限于堆栈的内存分配次数和内存分配总大小。
在根据本发明的一个实施例中,手机应用开发人员可通过某种交互式的事件触发(例如通过设计交互按钮),通知监控实现程序将所述内存信息元数据表和所述内存分配堆栈统计表分别保存为所述内存快照文件和所述内存分配堆栈统计文件,并导出为外部文件。
图2所示为本发明提出的获取手机应用内存快照和内存分配堆栈的装置结构图。所述装置用于安卓智能手机中基于Unity引擎开发的程序。参照图2,图中箭头的表示数据流向。
手机应用开发人员在启动被检测手机应用后,启动模块使用inject注入程序的方式实现对所述被检测手机应用的监控,并同时初始化内存信息元数据表MemInfoMap和内存分配堆栈统计表AllocStackStat,为正式监控所述被检测手机应用做好准备;监视模块将相关函数挂钩到Unity引擎的Mono平台内存分配的应用程序编程接口(例如mono_array_new_full和mono_object_clone等所述应用程序编程接口),并将通过mono_profiler_install_gc注册回调函数的方式,接收内存自动回收通知;当对应的操作被执行后,由于触发了被挂钩的Unity引擎的Mono平台内存分配的所述应用程序编程接口,截获模块从而截获当前的内存分配回收信息,并将所述内存分配回收信息发送给更新模块;更新模块接收到所述内存分配回收信息,将相关信息保存到所述内存信息元数据表MemInfoMap中,同时也将根据相关信息更新所述内存分配堆栈统计表AllocStackStat对应的统计数据;当检测完毕后,导出模块将所述内存信息元数据表MemInfoMap和所述内存分配堆栈统计表AllocStackStat分别保存为内存快照文件和内存分配堆栈统计文件,并导出为外部文件。
图3所示为图2所示导出模块的导出文件示意图。参照图3,在本发明的一个实施例中,所述导出模块保存的所述内存快照文件至少包括内存分配大小(Size)、对象类型(Type)和当前接口调用堆栈(Stack)。在本发明的另一个实施例中,所述导出模块保存的所述内存分配堆栈统计文件至少包括内存分配堆栈(Stack)的内存分配次数(Alloc_cnt)和内存分配总大小(Total_objsz)。
在本发明的一个实施例中,本发明提出的获取手机应用内存快照和内存分配堆栈的装置通过与外部交互的方式,导出所述外部文件。具体地,手机应用开发人员可通过某种交互式的事件触发(例如通过设计交互按钮),通知所述导出模块将所述内存信息元数据表和所述内存分配堆栈统计表分别保存为所述内存快照文件和所述内存分配堆栈统计文件,并导出为外部文件。
在本发明的另一个实施例中,所述导出模块按照内存分配频度顺序,保存的所述内存分配堆栈统计文件。
尽管本发明的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本发明的预定范围。此外,上文以发明人可预见的实施例对本发明进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本发明的非实质性改动仍可代表本发明的等效改动。
Claims (10)
1.一种获取手机应用内存快照和内存分配堆栈的方法,用于安卓智能手机中基于Unity引擎开发的程序,其特征在于,包括以下步骤:
S100)启动被检测手机应用,并初始化内存信息元数据表和内存分配堆栈统计表;
S200)查找并监视Unity引擎中分配和回收内存相关的应用程序编程接口;
S300)执行对应的操作,触发调用所述应用程序编程接口,截获当前的内存分配回收信息;
S400)根据当前的所述内存分配回收信息更新所述内存信息元数据表和所述内存分配堆栈统计表;
S500)若检测完毕,执行步骤S600,否则返回执行步骤S300;
S600)将所述内存信息元数据表和所述内存分配堆栈统计表分别保存为内存快照文件和内存分配堆栈统计文件,并导出为外部文件。
2.根据权利要求1所述的一种获取手机应用内存快照和内存分配堆栈的方法,其特征在于,所述内存信息元数据表的内容至少包括内存分配大小、对象类型和当前接口调用堆栈。
3.根据权利要求1所述的一种获取手机应用内存快照和内存分配堆栈的方法,其特征在于,所述内存分配堆栈统计表的内容至少包括内存分配堆栈的内存分配次数和内存分配总大小。
4.根据权利要求1所述的一种获取手机应用内存快照和内存分配堆栈的方法,其特征在于,所述步骤S500通过与外部交互的方式,导出所述外部文件。
5.一种获取手机应用内存快照和内存分配堆栈的装置,用于安卓智能手机中基于Unity引擎开发的程序,其特征在于,包括以下模块:
启动模块,用于启动被检测手机应用,并初始化内存信息元数据表和内存分配堆栈统计表;
监视模块,用于查找并监视Unity引擎中分配和回收内存相关的应用程序编程接口;
截获模块,用于在执行对应的操作,触发调用所述应用程序编程接口后,截获当前的内存分配回收信息;
更新模块,用于根据当前的所述内存分配回收信息更新所述内存信息元数据表和所述内存分配堆栈统计表;
导出模块,用于将所述内存信息元数据表和所述内存分配堆栈统计表分别保存为内存快照文件和内存分配堆栈统计文件,并导出为外部文件。
6.根据权利要求6所述的一种获取手机应用内存快照和内存分配堆栈的装置,其特征在于,所述导出模块保存的所述内存快照文件至少包括内存分配大小、对象类型和当前接口调用堆栈。
7.根据权利要求6所述的一种获取手机应用内存快照和内存分配堆栈的装置,其特征在于,所述导出模块保存的所述内存分配堆栈统计文件至少包括内存分配堆栈的内存分配次数和内存分配总大小。
8.根据权利要求6所述的一种获取手机应用内存快照和内存分配堆栈的装置,其特征在于,所述装置通过与外部交互的方式,导出所述外部文件。
9.根据权利要求6所述的一种获取手机应用内存快照和内存分配堆栈的装置,其特征在于,所述导出模块按照内存分配频度顺序,保存所述内存分配堆栈统计文件。
10.一种计算机可读介质,其特征在于,包括用于执行根据权利要求1-4任一项所述获取手机应用内存快照和内存分配堆栈方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710331302.0A CN107277226A (zh) | 2017-05-11 | 2017-05-11 | 一种获取手机应用内存快照和内存分配堆栈的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710331302.0A CN107277226A (zh) | 2017-05-11 | 2017-05-11 | 一种获取手机应用内存快照和内存分配堆栈的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107277226A true CN107277226A (zh) | 2017-10-20 |
Family
ID=60073928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710331302.0A Pending CN107277226A (zh) | 2017-05-11 | 2017-05-11 | 一种获取手机应用内存快照和内存分配堆栈的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107277226A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196938A (zh) * | 2017-12-27 | 2018-06-22 | 努比亚技术有限公司 | 内存调用方法、移动终端及计算机可读存储介质 |
CN109871276A (zh) * | 2019-01-14 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种基于Lua获取手机应用内存的方法及装置 |
CN109876446A (zh) * | 2019-01-14 | 2019-06-14 | 珠海金山网络游戏科技有限公司 | 一种检测游戏贴图和网格在内存中占用分布的方法和装置 |
CN110333993A (zh) * | 2019-06-24 | 2019-10-15 | 北京三快在线科技有限公司 | 内存快照的生成方法、装置、电子设备和存储介质 |
CN112732513A (zh) * | 2019-10-28 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 内存监控方法、装置、计算机可读存储介质和计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593152A (zh) * | 2009-06-25 | 2009-12-02 | 青岛海信移动通信技术股份有限公司 | 一种移动终端内存泄漏检测方法及装置 |
CN102073591A (zh) * | 2011-01-14 | 2011-05-25 | 福建星网视易信息系统有限公司 | 嵌入式系统内存占用状况检测方法及系统 |
US20140153566A1 (en) * | 2012-05-09 | 2014-06-05 | Twilio, Inc. | System and method for managing latency in a distributed telephony network |
CN104516817A (zh) * | 2012-05-15 | 2015-04-15 | 青岛海信移动通信技术股份有限公司 | 一种内存泄漏检测方法及装置 |
CN106557424A (zh) * | 2016-11-18 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 内存测试方法、被测终端、测试客户端及系统 |
-
2017
- 2017-05-11 CN CN201710331302.0A patent/CN107277226A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593152A (zh) * | 2009-06-25 | 2009-12-02 | 青岛海信移动通信技术股份有限公司 | 一种移动终端内存泄漏检测方法及装置 |
CN102073591A (zh) * | 2011-01-14 | 2011-05-25 | 福建星网视易信息系统有限公司 | 嵌入式系统内存占用状况检测方法及系统 |
US20140153566A1 (en) * | 2012-05-09 | 2014-06-05 | Twilio, Inc. | System and method for managing latency in a distributed telephony network |
CN104516817A (zh) * | 2012-05-15 | 2015-04-15 | 青岛海信移动通信技术股份有限公司 | 一种内存泄漏检测方法及装置 |
CN106557424A (zh) * | 2016-11-18 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 内存测试方法、被测终端、测试客户端及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196938A (zh) * | 2017-12-27 | 2018-06-22 | 努比亚技术有限公司 | 内存调用方法、移动终端及计算机可读存储介质 |
CN108196938B (zh) * | 2017-12-27 | 2021-10-29 | 努比亚技术有限公司 | 内存调用方法、移动终端及计算机可读存储介质 |
CN109871276A (zh) * | 2019-01-14 | 2019-06-11 | 珠海金山网络游戏科技有限公司 | 一种基于Lua获取手机应用内存的方法及装置 |
CN109876446A (zh) * | 2019-01-14 | 2019-06-14 | 珠海金山网络游戏科技有限公司 | 一种检测游戏贴图和网格在内存中占用分布的方法和装置 |
CN110333993A (zh) * | 2019-06-24 | 2019-10-15 | 北京三快在线科技有限公司 | 内存快照的生成方法、装置、电子设备和存储介质 |
CN112732513A (zh) * | 2019-10-28 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 内存监控方法、装置、计算机可读存储介质和计算机设备 |
CN112732513B (zh) * | 2019-10-28 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 内存监控方法、装置、计算机可读存储介质和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107277226A (zh) | 一种获取手机应用内存快照和内存分配堆栈的方法及装置 | |
CN106354562B (zh) | 内存清理系统和内存清理方法 | |
CN103019775B (zh) | 一种终端设备刷机的方法、装置和设备 | |
CN111736980B (zh) | 一种内存管理方法及装置 | |
CN105763602A (zh) | 一种数据请求处理的方法、服务器及系统 | |
CN110866236B (zh) | 隐私图片显示方法、装置、终端及存储介质 | |
CN108307236A (zh) | 一种智能电视优化内存的方法、存储介质及智能电视 | |
CN109144834B (zh) | 用户行为数据的采集方法及装置、安卓系统及终端设备 | |
Blunck et al. | On heterogeneity in mobile sensing applications aiming at representative data collection | |
CN106874763A (zh) | 模拟用户行为的安卓软件恶意行为触发系统及方法 | |
CN110162682A (zh) | 一种网络数据的爬取方法、装置、存储介质和终端设备 | |
CN111367828A (zh) | 内存压缩方法、装置、终端及存储介质 | |
CN105893152A (zh) | 一种内存管理方法、装置及移动终端 | |
CN108984339B (zh) | 数据恢复方法及相关产品 | |
CN111625383A (zh) | 进程异常事件处理方法、装置、电子设备及存储介质 | |
CN110413286A (zh) | 一种应用部署方法、装置及设备 | |
CN110287000B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN106055404A (zh) | 一种清理后台应用程序的方法和装置 | |
WO2021115178A1 (zh) | 应用程序预编译的方法、装置、服务器及存储介质 | |
CN103699653A (zh) | 数据聚类方法和装置 | |
CN104158857B (zh) | 一种提供网络化操作系统服务的装置和方法 | |
CN104965737B (zh) | 更新数据的获取方法及装置 | |
CN110008698A (zh) | 病毒检测方法及装置 | |
CN107273277A (zh) | 一种深度抓取手机应用运行性能数据的方法及装置 | |
CN107977221A (zh) | 一种移动终端软件更新方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171020 |