本發(fā)明涉及移動通信領(lǐng)域,尤其涉及一種在安卓系統(tǒng)中固化資源的方法及裝置。
背景技術(shù):目前,基于安卓(Android)系統(tǒng)的軟件應(yīng)用逐漸增多,安卓系統(tǒng)自身提供了一套官方版資源共開發(fā)者進行使用。在此基礎(chǔ)上,開發(fā)者可根據(jù)自身產(chǎn)品需求,增加個性化資源,如圖片、字符和色彩等。由于安卓系統(tǒng)中的資源根據(jù)英文字母的順序進行排列,因此開發(fā)者新增加的資源,可能插入到官方版資源的序列中去,使得處于插入位置之后的官方版資源的序列號(ID,identification)出現(xiàn)變化,從而導致錯誤的資源調(diào)用,引發(fā)顯示錯亂,甚至使程序和系統(tǒng)無法正常運行。
技術(shù)實現(xiàn)要素:本發(fā)明的實施例提供了一種在安卓系統(tǒng)中固化資源的方法及裝置,避免資源標識號的錯位,保證了程序和系統(tǒng)的正常運行。為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:一種在安卓系統(tǒng)中固化資源的方法,包括:獲取安卓系統(tǒng)未公布的官方版資源的序列號ID;將所述未公布的官方版資源及其ID寫入未公布固化文件中,以固定所述未公布的官方版資源與ID之間的對應(yīng)關(guān)系;將包含所述未公布固化文件的系統(tǒng)進行編譯,得到編譯后的系統(tǒng)版本。一種在安卓系統(tǒng)中固化資源的裝置,包括:序列號獲取單元,用于獲取安卓系統(tǒng)未公布的官方版資源的序列號ID;資源固化單元,用于將所述未公布的官方版資源及其ID寫入未公布固化文件中,以固定所述未公布的官方版資源與ID之間的對應(yīng)關(guān)系;編譯單元,用于將包含所述未公布固化文件的系統(tǒng)進行編譯,得到編譯后的系統(tǒng)版本。本發(fā)明實施例提供的一種在安卓系統(tǒng)中固化資源的方法及裝置,通過將未公布的官方版資源及其ID的對應(yīng)關(guān)系固化在所述未公布固化文件中,使得新加入的資源不會影響所述未公布的官方版資源的ID,避免因ID改變造成的顯示錯亂,保證程序和系統(tǒng)的正常運行。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的一種安卓系統(tǒng)中固化資源的方法的流程圖;圖2為本發(fā)明實施例提供的另一種安卓系統(tǒng)中固化資源的方法的流程圖;圖3為本發(fā)明實施例提供的一種安卓系統(tǒng)中固化資源的裝置的框圖;圖4為本發(fā)明實施例提供的序列號獲取單元的框圖;圖5為本發(fā)明實施例提供的另一種安卓系統(tǒng)中固化資源的裝置的框圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。安卓系統(tǒng)自身帶有官方版資源,這些官方版資源包括圖片、字符、色彩方案等。安卓系統(tǒng)中的資源以英文進行命名,并且系統(tǒng)按照資源的英文名中的字母順序,為各資源進行排序。比如,英文名以a開頭的資源的位置將排在以b開頭的資源的位置之前。具體如下表所示,列出了三種官方版資源。ID資源名資源類型01a_pic1.png圖像02b_pic2.png圖像03d_pic3.png圖像表1系統(tǒng)根據(jù)資源對應(yīng)的ID調(diào)用各資源。針對表1來說,系統(tǒng)要調(diào)用資源a_pic1.png,是通過ID01來找到a_pic1.png的。當開發(fā)者增加新的資源時,新增資源可能由于命名的問題插入到官方版資源的排列順序中,從而破壞官方版資源與對應(yīng)的ID之間的關(guān)系,如表2所示。序列號資源名資源類型01a_pic1.png圖像02b_pic2.png圖像03c_pic_new.png圖像04d_pic3.png圖像表2可見,由于c_pic_new.png的插入,d_pic3.png對應(yīng)的ID由03變成04,當系統(tǒng)調(diào)用資源c_pic_new.png時會出現(xiàn)錯誤。安卓系統(tǒng)自帶的官方版資源包括已公布的官方版資源和未公布的官方版資源。所述已公布的官方版資源對于用戶是可見的,所述未公布的資源對于用戶不可見。其中,已公布的官方版資源與對應(yīng)ID被記錄在已公布固化文件中。所述已公布固化文件通常被命名為public.xml文件,該文件中記錄的官方版資源與ID的對應(yīng)關(guān)系是固定的,不會因新資源的增加而改變。但未公布的官方版資源與ID的對應(yīng)關(guān)系會受到新資源的加入而變化。本發(fā)明實施例提供了在安卓系統(tǒng)中固化資源的方法,如圖1所示,包括以下步驟:101、獲取安卓系統(tǒng)未公布的官方版資源的ID。102、將所述未公布的官方版資源及其ID寫入未公布固化文件中,以固定所述未公布的官方版資源與ID之間的對應(yīng)關(guān)系。將未公布的官方版資源以及ID記錄在所述未公布固化文件中,實現(xiàn)未公布的官方版資源與ID之間的固定對應(yīng),不會因為新資源的插入造成ID的改變。另外,通過對所述未公布固化文件中的資源設(shè)置未公布標識,保證所述問公布固化文件中的資源處于未公布狀態(tài)。103、將包含所述未公布固化文件的系統(tǒng)進行編譯,得到編譯后的系統(tǒng)版本。本發(fā)明實施例提供了一種在安卓系統(tǒng)中固化資源的方法,通過將未公布的官方版資源及其ID的對應(yīng)關(guān)系固化在所述未公布固化文件中,使得新加入的資源不會影響所述未公布的官方版資源的ID,避免因ID改變造成的顯示錯亂,保證程序和系統(tǒng)的正常運行。進一步的,本發(fā)明還提供了一種在安卓系統(tǒng)中固化資源的方法,如圖2所示,該方法包括:201、從安卓系統(tǒng)官方版本中獲取資源標識ID映射列表,并獲取已公布固化文件。其中,所述資源ID映射列表中包含已公布和未公布的官方版資源及對應(yīng)的ID,所述已公布固化文件中包含已公布的官方版資源及所述已公布的官方版資源固定對應(yīng)的ID。通常所述資源ID映射列表被命名為androidresource.xml,所述已公布固化文件被命名為public.xml文件。具體的,獲取所述資源ID映射列表的方法可以是:從SDK(softwaredevelopmentkit,軟件開發(fā)工具包)中獲取android.jar文件,并從中提取所述資源ID映射列表;或者是:通過全局編譯安卓系統(tǒng)官方版本,從生成的文件中(路徑為:out
arget\common\R\com\android\internal\R.java文件)獲取。202、通過比對所述資源標識ID映射列表及所述已公布固化文件,獲取所述未公布的官方版資源的ID。所述資源ID映射列表中包含已公布和未公布的官方版資源及對應(yīng)的ID,所述已公布固化文件中包含已公布的官方版資源及所述已公布的官方版資源固定對應(yīng)的ID,通過對比所述資源ID映射列表以及所述已公布固化文件,可以獲取到未公布的官方版資源的ID。203、將所述未公布的官方版資源及其ID寫入未公布固化文件中,以固定所述未公布的官方版資源與ID之間的對應(yīng)關(guān)系,并對所述未公布固化文件中的資源設(shè)置未公布標識。通過將所述未公布的官方版資源及其ID寫入未公布固化文件中,從而實現(xiàn)未公布的官方版資源與ID之間對應(yīng)關(guān)系的固定,其中未公布固化文件可以命名為public_fixed.xml文件,并與public.xml文件保存于同一目錄下。另外,由于新生成的public_fixed.xml文件是可見的,為保持其中的未公布的官方版資源的不可見性,需要對public_fixed.xml文件中的資源設(shè)置未公布標識。舉例來說,對每條資源記錄添加<!--@hide-->標識,比如,對于以下資源:其資源類型為“style”,名稱為“Animation”,ID為0x01030000。在記錄入public_fixed.xml文件,并添加<!--@hide-->標識后,格式變更為:<!--@hide--><publictype=”style”name=”Animation”id=”0x01030000”/>實現(xiàn)了資源與ID=0x01030000的固定對應(yīng),并保證該資源處于未公布狀態(tài)。204、將包含所述未公布固化文件的系統(tǒng)進行編譯,得到編譯后的系統(tǒng)版本。需要說明的是,本發(fā)明實施例的方法,可以應(yīng)用于安卓2.0版本以上的各版本,比如安卓2.0、2.1、2.2、2.3以及4.0等。本發(fā)明實施例提供了一種在安卓系統(tǒng)中固化資源的方法,通過將未公布的官方版資源及其ID的對應(yīng)關(guān)系固化在所述未公布固化文件中,使得新加入的資源不會影響所述未公布的官方版資源的ID,避免因ID改變造成的顯示錯亂,保證程序和系統(tǒng)的正常運行。此外,本發(fā)明實施例還提供了一種在安卓系統(tǒng)中固化資源的裝置,如圖3所示,該裝置包括序列號獲取單元31,資源固化單元32,編譯單元33。序列號獲取單元31用于獲取安卓系統(tǒng)未公布的官方版資源的序列號ID。資源固化單元32用于將所述未公布的官方版資源及其ID寫入未公布固化文件中,以固定所述未公布的官方版資源與ID之間的對應(yīng)關(guān)系。編譯單元33用于將包含所述未公布固化文件的系統(tǒng)進行編譯,得到編譯后的系統(tǒng)版本。進一步的,所述序列號獲取單元31具體包括資源獲取子單元311,序列號獲取子單元312。資源獲取子單元311用于從安卓系統(tǒng)官方版本中獲取資源標識ID映射列表,并獲取已公布固化文件;所述資源ID映射列表中包含已公布和未公布的官方版資源及對應(yīng)的ID,所述已公布固化文件中包含已公布的官方版資源及所述已公布的官方版資源固定對應(yīng)的ID。序列號獲取子單元312用于通過比對所述資源標識ID映射列表及所述已公布固化文件,獲取所述未公布的官方版資源的ID。其中,所述資源ID映射列表中包含已公布和未公布的官方版資源及對應(yīng)的ID,所述已公布固化文件中包含已公布的官方版資源及所述已公布的官方版資源固定對應(yīng)的ID。進一步的,如圖5所示,所述裝置還包括未公布標識設(shè)置單元34,用于對所述未公布固化文件中的資源設(shè)置未公布標識。通常所述資源ID映射列表被命名為android_resource.xml,所述已公布固化文件被命名為public.xml文件。通過將所述未公布的官方版資源及其ID寫入未公布固化文件中,從而實現(xiàn)未公布的官方版資源與ID之間對應(yīng)關(guān)系的固定,其中未公布固化文件可以命名為public_fixed.xml文件,并與public.xml文件保存于同一目錄下。另外,由于新生成的public_fixed.xml文件是可見的,為保持其中的未公布的官方版資源的不可見性,需要對public_fixed.xml文件中的資源設(shè)置未公布標識。未公布標識的設(shè)置方式可參加本發(fā)明實施例前述部分,此處不再贅述。需要說明的是,本發(fā)明實施例的裝置,可以應(yīng)用于安卓2.0版本以上的各版本,比如安卓2.0、2.1、2.2、2.3以及4.0等。本發(fā)明實施例提供了一種在安卓系統(tǒng)中固化資源的裝置,通過將未公布的官方版資源及其ID的對應(yīng)關(guān)系固化在所述未公布固化文件中,使得新加入的資源不會影響所述未公布的官方版資源的ID,避免因ID改變造成的顯示錯亂,保證程序和系統(tǒng)的正常運行。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。