资源索引值的获取方法及装置的制造方法

文档序号:9750616阅读:345来源:国知局
资源索引值的获取方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,具体而言,涉及一种资源索引值的获取方法及装置。
【背景技术】
[0002]目前,安卓(Android)平台上的应用程序大多都包含有登录、支付、广告、统计、推送等功能,如果针对每个应用程序都需要开发同时涵盖上述各种功能的一套完整系统,将会严重影响应用软件的开发效率。
[0003]软件开发工具包(Software Development Kit,简称为SDK)能够为应用程序提供通用的功能组件,而应用程序只需要引用SDK,通过调用SDK的接口,便可集成各种功能模块,由此,极大地简化了软件开发的工作。
[0004]SDK通常可以包含但不限于AndroidManifest.xml文件,libs目录下的jar文件,assets目录下的资产文件,res目录下的资源文件以及so文件;其中,资源文件可以包含图片资源、原始数据文件以及各种XML文件。在编译时,资源的索引值被保存在R类(即在指Android系统中,管理应用程序资源索引的一个类,该类的名字为R,本申请中称为R类)中,程序代码可以通过R类获取资源的索引,从而访问到指定的应用程序资源。
[0005]SDK的程序代码通常可以通过SDK包名下的R类来获取应用程序资源的索引值,从而查找到对应的应用程序资源。在Eclipse ,Android Stud1等开发环境中,应用程序能够以Library的方式引用SDK,在打包应用程序时,可以自动生成SDK包名下的R类,SDK可以正确地获取应用程序资源的索引值。
[0006]但是,某些开发环境(例如:某些游戏引擎的集成开发环境)在打包应用程序时,无法自动生成SDK包名下的R类,导致应用程序调用SDK接口时,SDK无法找到对应的R类,因而无法正常访问SDK的资源。
[0007]相关技术中所提供的解决方案通常是采用SDK代码程序不再通过指定的R类来获取资源的索引值,而是改为调用系统接口 getldentif ier来获取资源的索引值。
[0008]然而,此种解决方案的明显缺陷在于:getldentif ier接口需要获取三个字符串参数,分别为:应用程序的包名(package name),需要访问的资源的类型名以及需要访问的资源名。由于获取到的资源名是字符串常量而非变量,因此,在编译器进行编译处理时,无法检查接口中获取到的常量值是否存在,也无法判断获取到的资源名与SDK定义的资源类型是否匹配。而SDK通常需要访问大量的资源,如果无法利用编译器来检查资源名的拼写是否正确,易造成资源引用错误。
[0009]针对上述的问题,目前尚未提出有效的解决方案。

【发明内容】

[0010]本发明实施例提供了一种资源索引值的获取方法及装置,以至少解决相关技术中SDK代码程序不再通过指定的R类来获取资源的索引值,而直接改为调用系统接口 getIdentifier来获取资源的索引值,易造成资源引用错误的技术问题。
[0011]根据本发明实施例的一个方面,提供了一种资源索引值的获取方法,包括:
[0012]在SDK原始程序中添加代码段,其中,代码段用于改变SDK原始程序获取资源索引值的方式,资源索引值用于指引SDK原始程序访问与资源索引值对应的资源;通过代码段将获取资源索引值的初始方式修改为通过预设接口获取资源索引值,其中,初始方式是在对SDK原始程序进行编译后所默认采用的获取资源索引值的方式。
[0013]进一步地,通过代码段将初始方式修改为通过预设接口获取资源索引值包括:将SDK原始程序中包含的全部资源变量添加至代码段中;调用预设接口为添加至代码段中的全部资源变量赋值。
[0014]进一步地,在通过代码段将初始方式修改为通过预设接口获取资源索引值之后,还包括:将通过初始方式访问资源索引值指引的对应资源修改为通过代码段访问资源索引值指引的对应资源。
[0015]进一步地,在SDK原始程序中添加代码段之后,还包括:接收输入指令;按照输入指令将SDK原始程序修改为调用代码段的初始化接口。
[0016]进一步地,代码段所归属的包名(package name)与SDK原始程序所归属的packagename不同,初始方式是通过SDK原始程序所归属的package name下管理应用程序资源索引的R类来获取资源索引值,预设接口为getldentif ier接口。
[0017]根据本发明实施例的另一方面,还提供了一种资源索引值的获取装置,包括:添加模块,用于在SDK原始程序中添加代码段,其中,代码段用于改变SDK原始程序获取资源索引值的方式,资源索引值用于指引SDK原始程序访问与资源索引值对应的资源;第一修改模块,用于通过代码段将获取资源索引值的初始方式修改为通过预设接口获取资源索引值,其中,初始方式是在对SDK原始程序进行编译后所默认采用的获取资源索引值的方式。
[0018]进一步地,第一修改模块包括:添加单元,用于将SDK原始程序中包含的全部资源变量添加至代码段中;调用单元,用于调用预设接口为添加至代码段中的全部资源变量赋值。
[0019]进一步地,上述装置还包括:第二修改模块,用于将通过初始方式访问资源索引值指引的对应资源修改为通过代码段访问资源索引值指引的对应资源。
[0020]进一步地,上述装置还包括:接收模块,用于接收输入指令;调用模块,用于按照输入指令将SDK原始程序修改为调用代码段的初始化接口。
[0021]进一步地,代码段所归属的package name与SDK原始程序所归属的package name不同,初始方式是通过SDK原始程序所归属的package name下管理应用程序资源索引的R类来获取资源索引值,预设接口为getldentifier接口。
[0022]在本发明实施例中,采用在SDK原始程序中添加代码段并通过代码段将获取资源索引值的初始方式修改为通过预设接口获取资源索引值的方式,即通过代码段改变SDK原始程序获取资源索引值的方式,从而实现了应用程序在各种开发环境中都能够方便地集成SDK功能模块,同时在SDK开发阶段充分利用编译器的检查功能,减少开发中引入错误的可能的技术效果,进而解决了相关技术中SDK代码程序不再通过指定的R类来获取资源的索引值,而直接改为调用系统接口 getldentifier来获取资源的索引值,易造成资源引用错误的技术问题。
【附图说明】
[0023]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0024]图1是根据本发明实施例的资源索引值的获取方法的流程图;
[0025]图2是根据本发明优选实施例的软件开发工具包打包方法的流程图;
[0026]图3是根据本发明实施例的资源索引值的获取装置的结构框图;
[0027]图4是根据本发明优选实施例的资源索引值的获取装置的结构框图。
【具体实施方式】
[0028]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0029]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1