應(yīng)用程序開發(fā)中的資源處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種應(yīng)用程序開發(fā)中的資源處理方法及裝置。
【背景技術(shù)】
[0002]安卓應(yīng)用程序(AndroidAPP)的資源有常量值資源(例如:字符串常量資源、尺寸常量資源、整數(shù)常量資源等)、圖像資源、布局資源、菜單資源等。
[0003]在進行Android應(yīng)用程序開發(fā)的過程中,隨著項目工程量的增大,其所引用的資源也會逐漸變多。在開發(fā)的過程中也勢必會對這些資源進行修改、替換或棄用,因此會導致一些資源沒有被引用而成為了垃圾資源,如果不及時對這些垃圾資源進行相應(yīng)處理,可能導致垃圾資源越積越多。然而,在Eclipse ADT開發(fā)環(huán)境下的默認編譯系統(tǒng)在編譯時并不能排除這些無引用的垃圾資源,這些垃圾資源會被編譯到Android應(yīng)用程序中,占用Android應(yīng)用程序空間,造成無必要的空間浪費。
[0004]因此,相關(guān)技術(shù)中,想要防止垃圾資源被編譯到Android應(yīng)用程序中,需要開發(fā)者手動處理這些垃圾資源,而要從大量的多種類的資源中找出這些垃圾資源并對其進行處理,工作量大且并非易事。所以如果能夠通過程序?qū)椖恐械臒o引用資源進行自動處理,將會提高Android應(yīng)用程序的開發(fā)效率。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于公開了一種應(yīng)用程序開發(fā)中的資源處理方法及裝置,以至少解決相關(guān)技術(shù)中為防止垃圾資源被編譯到Android應(yīng)用程序中,需要開發(fā)者手動處理這些垃圾資源,工作量大且不易的問題。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種應(yīng)用程序開發(fā)中的資源處理方法。
[0007]根據(jù)本發(fā)明的應(yīng)用程序開發(fā)中的資源處理方法包括:定位工程掃描工具;使用所述工程掃描工具對目標項目工程目錄檢測未被引用的資源;讀取所述工程掃描工具輸出的數(shù)據(jù)流,并逐行進行解析,對解析出的資源信息根據(jù)資源類型分別處理,其中,當資源類型為文件資源時,確定需要刪除的文件資源并刪除,當資源類型為常量值資源時,在該常量值資源所屬的文檔中刪除該資源標識所對應(yīng)的標簽。
[0008]根據(jù)本發(fā)明的另一方面,提供了一種應(yīng)用程序開發(fā)中的資源處理裝置。
[0009]根據(jù)本發(fā)明的應(yīng)用程序開發(fā)中的資源處理裝置包括:定位模塊,用于定位工程掃描工具;檢測模塊,用于使用所述工程掃描工具對目標項目工程目錄檢測未被引用的資源;處理模塊,用于讀取所述工程掃描工具輸出的數(shù)據(jù)流,并逐行進行解析,對解析出的資源信息根據(jù)資源類型分別處理,其中,當資源類型為文件資源時,確定需要刪除的文件資源并刪除,當資源類型為常量值資源時,在該常量值資源所屬的文檔中刪除該資源標識所對應(yīng)的標簽。
[0010]通過本發(fā)明,通過工程掃描工具檢測項目中的所有無引用資源,并根據(jù)檢測結(jié)果逐一定位其中的未被引用的資源,然后對其進行相應(yīng)處理,可以對項目中的垃圾資源進行自動處理,提高應(yīng)用程序的開發(fā)效率。
【附圖說明】
[0011]圖1是根據(jù)本發(fā)明實施例的應(yīng)用程序開發(fā)中的資源處理方法的流程圖;
[0012]圖2是根據(jù)本發(fā)明優(yōu)選實施例的應(yīng)用程序開發(fā)中的資源處理方法的流程圖;
[0013]圖3是根據(jù)本發(fā)明實施例的應(yīng)用程序開發(fā)中的資源處理裝置的結(jié)構(gòu)框圖;以及
[0014]圖4是根據(jù)本發(fā)明優(yōu)選實施例的應(yīng)用程序開發(fā)中的資源處理裝置的結(jié)構(gòu)框圖。
【具體實施方式】
[0015]下面結(jié)合說明書附圖對本發(fā)明的具體實現(xiàn)方式做一詳細描述。
[0016]圖1是根據(jù)本發(fā)明實施例的應(yīng)用程序開發(fā)中的資源處理方法的流程圖。如圖1所示,該應(yīng)用程序開發(fā)中的資源處理方法包括:
[0017]步驟SlOl:定位工程掃描工具;
[0018]步驟S103:使用上述工程掃描工具對目標項目工程目錄檢測未被引用的資源;
[0019]步驟S105:讀取上述工程掃描工具輸出的數(shù)據(jù)流,并逐行進行解析,對解析出的資源信息根據(jù)資源類型分別處理,其中,當資源類型為文件資源時,確定需要刪除的文件資源并刪除,當資源類型為常量值資源時,在該常量值資源所屬的文檔中刪除該資源標識所對應(yīng)的標簽。
[0020]相關(guān)技術(shù)中,想要防止垃圾資源被編譯到Android應(yīng)用程序中,需要開發(fā)者手動處理這些垃圾資源,而要從大量的多種類的資源中找出這些垃圾資源并對其進行處理,工作量大且并非易事。采用圖1所示的方法,通過工程掃描工具檢測項目中的所有無引用資源,并根據(jù)檢測結(jié)果逐一定位其中的未被引用的資源,然后對其進行相應(yīng)處理,可以對項目中的垃圾資源進行自動處理,提高應(yīng)用程序的開發(fā)效率。
[0021]優(yōu)選地,上述方法可以用于安卓(Android)系統(tǒng),上述工程掃描工具可以是Iint工具。上述文檔可以是但不限于:XML文檔。
[0022]上述步驟SlOl可以進一步包括但不限于:定位獲取安卓(Android)系統(tǒng)中軟件開發(fā)工具包SDK安裝位置以及上述SDK所提供的工程掃描工具。即,這個工程掃描工具可以是SDK里提供的,也可以是開發(fā)者寫的工具或者是第三方的工具。
[0023]上述應(yīng)用程序開發(fā)中的資源處理方法可以應(yīng)用于Eclipse的插件中,也可以應(yīng)用于編譯腳本中。
[0024]優(yōu)選地,步驟S105可以進一步包括:將預(yù)設(shè)的忽略資源列表中資源名稱與上述解析出的文件資源的資源名稱進行匹配;在匹配成功的情況下,忽略上述解析出的文件資源,繼續(xù)解析上述數(shù)據(jù)流的下一行;在未匹配成功的情況下,直接刪除上述解析出的文件資源。
[0025]在優(yōu)選實施過程中,在使用上述工程掃描工具對目標項目工程目錄檢測未被引用的資源后,還包括:將當前資源處理計數(shù)設(shè)置為O;在直接刪除上述解析出的文件資源之后,還包括:將當前資源處理計數(shù)設(shè)置為加I。
[0026]優(yōu)選地,步驟S105可以進一步包括:將預(yù)設(shè)的忽略資源列表中資源標識與上述解析出的常量值資源的資源標識進行匹配;在匹配成功的情況下,忽略上述解析出的常量值資源,繼續(xù)解析上述數(shù)據(jù)流的下一行;在未匹配成功的情況下,確定上述解析出的常量值資源所屬的可擴展標記語言XML文檔,在上述XML文檔中根據(jù)上述資源標識定位XML標簽并刪除。
[0027]在優(yōu)選實施過程中,在使用上述工程掃描工具對目標項目工程目錄檢測未被引用的資源后,還包括:將當前資源處理計數(shù)設(shè)置為O;在上述XML文檔中根據(jù)上述資源標識定位XML標簽并刪除之后,還包括:將當前資源處理計數(shù)設(shè)置為加I。
[0028]優(yōu)選地,在步驟S105的對解析出的資源信息根據(jù)資源類型分別處理之后,還可以包括:判斷當前的資源處理計數(shù)是否大于O;在當前的資源處理計數(shù)大于O時,返回執(zhí)行使用上述工程掃描工具對目標項目工程目錄檢測未被引用的資源的步驟;在當前的資源處理計數(shù)為O時,執(zhí)行對解析出的資源信息根據(jù)資源類型分別處理的后續(xù)步驟(例如,編譯步驟)。
[0029]由于垃圾資源之間可能會存在引用關(guān)系,在刪除引用者資源后,被引用的資源便成為了無引用資源,導致新的無引用資源出現(xiàn)。因此上述步驟處理結(jié)束后,如果其過程中資源處理計數(shù)大于0,需要再次檢測,直到本次資源處理計數(shù)為O為止。
[0030]以下結(jié)合圖2進一步描述上述優(yōu)選實施方式。
[0031]圖2是根據(jù)本發(fā)明優(yōu)選實施例的應(yīng)用程序開發(fā)中的資源處理方法的流程圖。如圖2所示,該應(yīng)用程序開發(fā)中的資源處理方法包括:
[0032]步驟S201:找到系統(tǒng)中AndroidSDK安裝位置(可由開發(fā)者配置)并找到AndroidSDK所提供的lint工具。
[0033]步驟S203:對目標項目工程目錄執(zhí)行Iint工具檢測未被引用的資源。
[0034]步驟S205:設(shè)置資源處理計數(shù)為O。
[0035]步驟S207:判斷Iint工具的輸出流是否結(jié)束,如果是,執(zhí)行步驟S233,否則,執(zhí)行步驟S209。
[0036]步驟S209:讀取Iint工具的輸出流。
[0037]步驟S211:逐行解析其內(nèi)容,直到所有輸出內(nèi)容全部被解析。
[0038]步驟S213:判斷資源類型,如果是文件類型,執(zhí)行步驟S215,否則,執(zhí)行步驟S219。
[0039]步驟S215:如果行解析結(jié)果為文件資源,取出資源的文件路徑。
[0040]步驟S217:將預(yù)設(shè)的忽略資源列表(即可以忽略的資源,可以有開發(fā)者預(yù)定設(shè)定)與該資源的資源名稱進行匹配。之后執(zhí)行步驟S223。
[0041]步驟S219:如果行解析結(jié)果為常量值資源,獲取資源所屬的XML文件路徑及資源的資源標識。
[0042]步驟S221:將預(yù)設(shè)的忽略資源列表(即可以忽略的資源,可以有開發(fā)者預(yù)定設(shè)定)與該資源的資源標識(ID)進行匹配。之后執(zhí)行步驟S223。
[0043]步驟S223:判斷是否忽略,如果是,忽略該資源,執(zhí)行步驟S207,繼續(xù)解析下一行,否則,當資源類型為文件類型時,執(zhí)行步驟S225,當資源類型為常量值類型時,執(zhí)行步驟S227。
[0044]步驟S225:如果是文件資源,直接刪除該資源的資源文件。