資源索引值的獲取方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種資源索引值的獲取方法及裝置。
【背景技術(shù)】
[0002]目前,安卓(Android)平臺上的應(yīng)用程序大多都包含有登錄、支付、廣告、統(tǒng)計(jì)、推送等功能,如果針對每個(gè)應(yīng)用程序都需要開發(fā)同時(shí)涵蓋上述各種功能的一套完整系統(tǒng),將會嚴(yán)重影響應(yīng)用軟件的開發(fā)效率。
[0003]軟件開發(fā)工具包(Software Development Kit,簡稱為SDK)能夠?yàn)閼?yīng)用程序提供通用的功能組件,而應(yīng)用程序只需要引用SDK,通過調(diào)用SDK的接口,便可集成各種功能模塊,由此,極大地簡化了軟件開發(fā)的工作。
[0004]SDK通常可以包含但不限于AndroidManifest.xml文件,libs目錄下的jar文件,assets目錄下的資產(chǎn)文件,res目錄下的資源文件以及so文件;其中,資源文件可以包含圖片資源、原始數(shù)據(jù)文件以及各種XML文件。在編譯時(shí),資源的索引值被保存在R類(即在指Android系統(tǒng)中,管理應(yīng)用程序資源索引的一個(gè)類,該類的名字為R,本申請中稱為R類)中,程序代碼可以通過R類獲取資源的索引,從而訪問到指定的應(yīng)用程序資源。
[0005]SDK的程序代碼通??梢酝ㄟ^SDK包名下的R類來獲取應(yīng)用程序資源的索引值,從而查找到對應(yīng)的應(yīng)用程序資源。在Eclipse ,Android Stud1等開發(fā)環(huán)境中,應(yīng)用程序能夠以Library的方式引用SDK,在打包應(yīng)用程序時(shí),可以自動生成SDK包名下的R類,SDK可以正確地獲取應(yīng)用程序資源的索引值。
[0006]但是,某些開發(fā)環(huán)境(例如:某些游戲引擎的集成開發(fā)環(huán)境)在打包應(yīng)用程序時(shí),無法自動生成SDK包名下的R類,導(dǎo)致應(yīng)用程序調(diào)用SDK接口時(shí),SDK無法找到對應(yīng)的R類,因而無法正常訪問SDK的資源。
[0007]相關(guān)技術(shù)中所提供的解決方案通常是采用SDK代碼程序不再通過指定的R類來獲取資源的索引值,而是改為調(diào)用系統(tǒng)接口 getldentif ier來獲取資源的索引值。
[0008]然而,此種解決方案的明顯缺陷在于:getldentif ier接口需要獲取三個(gè)字符串參數(shù),分別為:應(yīng)用程序的包名(package name),需要訪問的資源的類型名以及需要訪問的資源名。由于獲取到的資源名是字符串常量而非變量,因此,在編譯器進(jìn)行編譯處理時(shí),無法檢查接口中獲取到的常量值是否存在,也無法判斷獲取到的資源名與SDK定義的資源類型是否匹配。而SDK通常需要訪問大量的資源,如果無法利用編譯器來檢查資源名的拼寫是否正確,易造成資源引用錯(cuò)誤。
[0009]針對上述的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0010]本發(fā)明實(shí)施例提供了一種資源索引值的獲取方法及裝置,以至少解決相關(guān)技術(shù)中SDK代碼程序不再通過指定的R類來獲取資源的索引值,而直接改為調(diào)用系統(tǒng)接口 getIdentifier來獲取資源的索引值,易造成資源引用錯(cuò)誤的技術(shù)問題。
[0011]根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種資源索引值的獲取方法,包括:
[0012]在SDK原始程序中添加代碼段,其中,代碼段用于改變SDK原始程序獲取資源索引值的方式,資源索引值用于指引SDK原始程序訪問與資源索引值對應(yīng)的資源;通過代碼段將獲取資源索引值的初始方式修改為通過預(yù)設(shè)接口獲取資源索引值,其中,初始方式是在對SDK原始程序進(jìn)行編譯后所默認(rèn)采用的獲取資源索引值的方式。
[0013]進(jìn)一步地,通過代碼段將初始方式修改為通過預(yù)設(shè)接口獲取資源索引值包括:將SDK原始程序中包含的全部資源變量添加至代碼段中;調(diào)用預(yù)設(shè)接口為添加至代碼段中的全部資源變量賦值。
[0014]進(jìn)一步地,在通過代碼段將初始方式修改為通過預(yù)設(shè)接口獲取資源索引值之后,還包括:將通過初始方式訪問資源索引值指引的對應(yīng)資源修改為通過代碼段訪問資源索引值指引的對應(yīng)資源。
[0015]進(jìn)一步地,在SDK原始程序中添加代碼段之后,還包括:接收輸入指令;按照輸入指令將SDK原始程序修改為調(diào)用代碼段的初始化接口。
[0016]進(jìn)一步地,代碼段所歸屬的包名(package name)與SDK原始程序所歸屬的packagename不同,初始方式是通過SDK原始程序所歸屬的package name下管理應(yīng)用程序資源索引的R類來獲取資源索引值,預(yù)設(shè)接口為getldentif ier接口。
[0017]根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種資源索引值的獲取裝置,包括:添加模塊,用于在SDK原始程序中添加代碼段,其中,代碼段用于改變SDK原始程序獲取資源索引值的方式,資源索引值用于指引SDK原始程序訪問與資源索引值對應(yīng)的資源;第一修改模塊,用于通過代碼段將獲取資源索引值的初始方式修改為通過預(yù)設(shè)接口獲取資源索引值,其中,初始方式是在對SDK原始程序進(jìn)行編譯后所默認(rèn)采用的獲取資源索引值的方式。
[0018]進(jìn)一步地,第一修改模塊包括:添加單元,用于將SDK原始程序中包含的全部資源變量添加至代碼段中;調(diào)用單元,用于調(diào)用預(yù)設(shè)接口為添加至代碼段中的全部資源變量賦值。
[0019]進(jìn)一步地,上述裝置還包括:第二修改模塊,用于將通過初始方式訪問資源索引值指引的對應(yīng)資源修改為通過代碼段訪問資源索引值指引的對應(yīng)資源。
[0020]進(jìn)一步地,上述裝置還包括:接收模塊,用于接收輸入指令;調(diào)用模塊,用于按照輸入指令將SDK原始程序修改為調(diào)用代碼段的初始化接口。
[0021]進(jìn)一步地,代碼段所歸屬的package name與SDK原始程序所歸屬的package name不同,初始方式是通過SDK原始程序所歸屬的package name下管理應(yīng)用程序資源索引的R類來獲取資源索引值,預(yù)設(shè)接口為getldentifier接口。
[0022]在本發(fā)明實(shí)施例中,采用在SDK原始程序中添加代碼段并通過代碼段將獲取資源索引值的初始方式修改為通過預(yù)設(shè)接口獲取資源索引值的方式,即通過代碼段改變SDK原始程序獲取資源索引值的方式,從而實(shí)現(xiàn)了應(yīng)用程序在各種開發(fā)環(huán)境中都能夠方便地集成SDK功能模塊,同時(shí)在SDK開發(fā)階段充分利用編譯器的檢查功能,減少開發(fā)中引入錯(cuò)誤的可能的技術(shù)效果,進(jìn)而解決了相關(guān)技術(shù)中SDK代碼程序不再通過指定的R類來獲取資源的索引值,而直接改為調(diào)用系統(tǒng)接口 getldentifier來獲取資源的索引值,易造成資源引用錯(cuò)誤的技術(shù)問題。
【附圖說明】
[0023]此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0024]圖1是根據(jù)本發(fā)明實(shí)施例的資源索引值的獲取方法的流程圖;
[0025]圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的軟件開發(fā)工具包打包方法的流程圖;
[0026]圖3是根據(jù)本發(fā)明實(shí)施例的資源索引值的獲取裝置的結(jié)構(gòu)框圖;
[0027]圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的資源索引值的獲取裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0028]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0029]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能