【技术实现步骤摘要】
控件注入方法、装置及终端设备
本申请涉及计算机
,尤其涉及一种控件注入方法、装置及终端设备。
技术介绍
在Android开发中,是采用资源id,即资源索引值的方式获取到界面上控件子控件,从而实现控件注入的。而在常规编码中,android工具aapt会为开发者将资源索引值保存在R类中供开发者编码时使用。其中,R类是指在Android系统中,管理应用程序资源索引的一个类,该类的名字为R。SDK的程序代码通常可以通过使用SDK包名下的R类来获取应用程序资源的索引值,从而根据该索引值进行控件的注入。但是在为接入了SDK的游戏包注入控件的融合场景中,由于融合时资源索引值会进行重构,而资源索引值每次重新构建时产生的可能不一致,导致应用程序调用SDK接口时,SDK无法找到对应的R类中的资源索引值,因而无法正常访问SDK的资源。为解决上述问题,在为接入了SDK的游戏包注入控件的融合场景中,将通过R类获取的资源索引值来实现控件注入的方式,改为通过调用系统接口getIdentifier获取的资源索引值来实现控件注入。然而,由于传入getIdentifier的资源名是自定义的字符串常量,使得该资源名的准确性无法被验证,导致当该资源名出错时,无法准确查找控件,进而在游戏SDK包的融合场景中无法实现控件的注入。
技术实现思路
本申请实施例所要解决的技术问题在于,解决通过调用系统接口getIdentifier获取的资源索引值来实现控件注入时,易造成无法准确查找控件的问题。为解决上述问题,本申请实 ...
【技术保护点】
1.一种控件注入方法,其特征在于,包括:/n在接入代码段的SDK程序中,获取R类;其中,所述代码段用于改变所述SDK程序获取资源索引值的方式,所述资源索引值用于指引所述SDK程序获取对应的资源;/n根据所述代码段中的插件,对所述R类进行扫描截取,生成基于字符串的SqR类;/n将SqR类作为资源名向所述第一预设接口传递,以使所述第一预设接口根据所述资源名从所述SDK程序中获取所述资源索引值;/n将获取到的所述资源索引值通过所述第二预设接口获取对应的控件。/n
【技术特征摘要】
1.一种控件注入方法,其特征在于,包括:
在接入代码段的SDK程序中,获取R类;其中,所述代码段用于改变所述SDK程序获取资源索引值的方式,所述资源索引值用于指引所述SDK程序获取对应的资源;
根据所述代码段中的插件,对所述R类进行扫描截取,生成基于字符串的SqR类;
将SqR类作为资源名向所述第一预设接口传递,以使所述第一预设接口根据所述资源名从所述SDK程序中获取所述资源索引值;
将获取到的所述资源索引值通过所述第二预设接口获取对应的控件。
2.根据权利要求1所述的控件注入方法,其特征在于,根据所述代码段中的插件,对所述R类中进行扫描截取,生成基于字符串的SqR类,包括:
将所述R类进行字符串过滤,获取过滤后的R类;其中,当过滤后的R类中字符串的关键字与预设的特征字具有相同特征时,则完成所述R类的字符串过滤;
对所述过滤后的R类通过正则表达式进行扫描截取,生成基于字符串的SqR类。
3.根据权利要求2所述的控件注入方法,其特征在于,所述相同特征包括所述关键字的哈希值的映射位置为所述特征字的哈希值的映射位置的子集。
4.根据权利要求1所述的控件注入方法,其特征在于,将SqR类作为资源名向所述第一预设接口传递,包括:
将所述SqR类作为第一注解参数进行扫描;
根据所述第一注解参数的扫描结果,接入所述第一预设接口,并将所述第一注解参数作为资源名向所述第一预设接口传递。
5.根据权利要求1所述的控件注入方法,其特征在于,将SqR类作为资源名向所述第一预设接口传递,包括:
将所述SqR类作为注解参数集中的任一第二注解参数,扫描所述注解参数集;其中,所述注解参数集包括由SqR类生成的至少一个第二注解参数,以及由自定义的字符串常量生成的至少一个第二注解参数;
检测扫描到的注解参数集在R类中是否有对应属性存在;其中,当未检测到所述注解参数集均在R类中有对应属性存在时,抛出异常,否则,将所述注解参数集作为资源名向所述第一预设接口传递。
6.根据权利要求4所述的控件注入方法,其特征在于,还包括:根据所述第一注解参数的扫描结果接入所述第二预设接口。
7.根据权利要求1所述的控件注入方法,其特征在于,所述...
【专利技术属性】
技术研发人员:陶学诚,张国祥,朱晓鑫,
申请(专利权)人:广州三七网络科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。