[发明专利]控件注入方法、装置及终端设备在审
申请号: | 202010411327.3 | 申请日: | 2020-05-14 |
公开(公告)号: | CN111736806A | 公开(公告)日: | 2020-10-02 |
发明(设计)人: | 陶学诚;张国祥;朱晓鑫 | 申请(专利权)人: | 广州三七网络科技有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/41;G06F16/903 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 陈志明 |
地址: | 510630 广东省广州*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 控件 注入 方法 装置 终端设备 | ||
本申请公开了一种控件注入方法、装置及终端设备,方法包括:在接入代码段的SDK程序中,获取R类;其中,代码段用于改变SDK程序获取资源索引值的方式,资源索引值用于指引SDK程序获取对应的资源;根据代码段中的插件,对R类进行扫描截取,生成基于字符串的SqR类;将SqR类作为资源名向第一预设接口传递,以使第一预设接口根据资源名从SDK程序中获取资源索引值;将获取到的资源索引值通过第二预设接口获取对应的控件。
技术领域
本申请涉及计算机技术领域,尤其涉及一种控件注入方法、装置及终端设备。
背景技术
在Android开发中,是采用资源id,即资源索引值的方式获取到界面上控件子控件,从而实现控件注入的。而在常规编码中,android工具aapt会为开发者将资源索引值保存在R类中供开发者编码时使用。其中,R类是指在Android系统中,管理应用程序资源索引的一个类,该类的名字为R。
SDK的程序代码通常可以通过使用SDK包名下的R类来获取应用程序资源的索引值,从而根据该索引值进行控件的注入。但是在为接入了SDK的游戏包注入控件的融合场景中,由于融合时资源索引值会进行重构,而资源索引值每次重新构建时产生的可能不一致,导致应用程序调用SDK接口时,SDK无法找到对应的R类中的资源索引值,因而无法正常访问SDK的资源。
为解决上述问题,在为接入了SDK的游戏包注入控件的融合场景中,将通过R类获取的资源索引值来实现控件注入的方式,改为通过调用系统接口getIdentifier获取的资源索引值来实现控件注入。然而,由于传入getIdentifier的资源名是自定义的字符串常量,使得该资源名的准确性无法被验证,导致当该资源名出错时,无法准确查找控件,进而在游戏SDK包的融合场景中无法实现控件的注入。
发明内容
本申请实施例所要解决的技术问题在于,解决通过调用系统接口getIdentifier获取的资源索引值来实现控件注入时,易造成无法准确查找控件的问题。
为解决上述问题,本申请实施例提供一种控件注入方法,适于在计算装置中执行,至少包括如下步骤:
在接入代码段的SDK程序中,获取R类;其中,所述代码段用于改变所述SDK程序获取资源索引值的方式,所述资源索引值用于指引所述SDK程序获取对应的资源;
根据所述代码段中的插件,对所述R类进行扫描截取,生成基于字符串的SqR类;
将SqR类作为资源名向所述第一预设接口传递,以使所述第一预设接口根据所述资源名从所述SDK程序中获取所述资源索引值;
将获取到的所述资源索引值通过所述第二预设接口获取对应的控件。
进一步的,根据所述代码段中的插件,对所述R类中进行扫描截取,生成基于字符串的SqR类,包括:
将所述R类进行字符串过滤,获取过滤后的R类;其中,当过滤后的R类中字符串的关键字与预设的特征字具有相同特征时,则完成所述R类的字符串过滤;
对所述过滤后的R类进行正则表达式过滤,生成基于字符串的SqR类。
进一步的,所述相同特征包括所述关键字的哈希值的映射位置为所述特征字的哈希值的映射位置的子集。
进一步的,将SqR类作为资源名向所述第一预设接口传递,包括:
将所述SqR类作为第一注解参数进行扫描;
根据所述第一注解参数的扫描结果,接入所述第一预设接口,并将所述第一注解参数作为资源名向所述第一预设接口传递。
进一步的,将SqR类作为资源名向所述第一预设接口传递,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州三七网络科技有限公司,未经广州三七网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010411327.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种通讯设备网络环境检测系统
- 下一篇:一种报负载分担方法及网络设备