專利名稱:一種Android平臺工程的開發(fā)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種Android平臺工程的開發(fā)方法及系統(tǒng)。
背景技術(shù):
Android(—種手機操作系統(tǒng))應用程序一般包含在一個單一的文件夾中,即每一個Android應用程序是一個獨立的工程,其包括AndroidManifest. xml,Java源代碼、資源文件和資產(chǎn)文件。AndroidManifest. xml為工程描述文件,位于每個應用程序的根目錄下,它是 Android的描述文件,提供應用程序的基本信息。Java源代碼是按照Java包的方式來組織目錄結(jié)構(gòu),包括各個Java類的源代碼。資源文件包含XML文件、圖片文件、原始數(shù)據(jù)文件等,獨立于程序代碼而存在,被放置在Android應用程序包的子目錄res/中,在編譯時編入應用程序,通過R類被使用或訪問ο資產(chǎn)文件放置在子目錄assets/中,不經(jīng)常使用,因為它們的應用程序很少,僅在需要讀取原始字節(jié)流時才需要保存數(shù)據(jù)為資產(chǎn),必須使用AssetManager類來讀取資產(chǎn)文件。因此,一般應用程序只包含AndroidManifest. xml、Java源代碼和資源文件。這種三位一體的思想體現(xiàn)了 GUI (圖形用戶界面)的設(shè)計思想,描述文件負責宏觀框架,Java負責邏輯,資源文件負責外觀,通過控制資源文件可以達到不同的界面效果。雖然這種通過R類來讀取自帶的資源是挺方便的,但如果應用做得比較復雜,使用起來就不方便了。例如,應用想做幾套皮膚,因為res/drawable/這個目錄名稱是固定的,不能在應用中自定義目錄結(jié)構(gòu),不容易實現(xiàn)換膚功能。如果想換膚只能修改資源文件, 重新編譯生成應用程序包,如果沒有源碼也就無法實現(xiàn)換膚了。另外,對于切換界面的語言,雖然可以通過res/values-zh/定義描述資源,但必須通過系統(tǒng)的設(shè)置來選擇語言,而不能通過用戶在應用里的語言設(shè)置功能來改變語言。造成上述缺陷的原因在于資源res 中的目錄名是固定的,而且只能根據(jù)系統(tǒng)的設(shè)置來控制選擇,不能通過應用來選擇目錄名。
發(fā)明內(nèi)容
本發(fā)明提供了一種Android工程的開發(fā)方法,旨在解決現(xiàn)有技術(shù)中換膚或定制自己的界面時需要重新編譯生成應用程序包或修改應用程序包,且在沒有源碼或沒有應用程序安裝包的情況下,無法實現(xiàn)換膚的問題。本發(fā)明是這樣實現(xiàn)的,一種Android工程的開發(fā)方法,包括將資源文件單獨生成資源應用包;將資源應用包設(shè)置成應用程序的資產(chǎn)文件,生成應用程序包;程序運行時應用程序包中的應用程序解析資產(chǎn)文件中的資源應用包,導出資源內(nèi)容;
讀取相應的資源文件,設(shè)置給應用程序包中應用程序使用。本發(fā)明的開發(fā)方法技術(shù)方案中,所述資源文件單獨生成資源應用包之前,定義資源屬性類,生成公用的資源屬性ID(IDentity,識別碼);根據(jù)所述資源屬性ID組織資源文件,再將資源文件單獨生成資源應用包;所述讀取相應的資源文件是通過公用的資源屬性 ID進行讀取。本發(fā)明的開發(fā)方法技術(shù)方案還包括所述步驟根據(jù)資源屬性ID組織資源文件,將資源文件單獨生成資源應用包,具體包括步驟bl 將源程序部分的工程描述文件和資源文件分別經(jīng)過打包工具進行處理;步驟Μ 將處理后的工程描述文件放置到根目錄;步驟b3 將處理后的資源文件放置到res目錄;步驟b4 將資產(chǎn)文件放置到assets目錄;步驟沾生成資源應用包。本發(fā)明的開發(fā)方法技術(shù)方案還包括在所述步驟生成應用程序包,并將資源應用包設(shè)置成應用程序的資產(chǎn)文件,包括步驟cl 將源程序部分的源碼經(jīng)過處理,生成Dex字節(jié)碼,并將Dex字節(jié)碼放置到根目錄;步驟c2 將源程序部分的工程描述文件經(jīng)過打包工具進行處理,將處理后的工程描述文件放置到根目錄;步驟c3 將資源應用包設(shè)置成資產(chǎn)文件放置到assets目錄;步驟c4 生成應用程序包。本發(fā)明的開發(fā)方法技術(shù)方案還包括所述步驟Cl具體包括將源程序部分的源碼通過編譯器進行編譯,生成Class字節(jié)碼;將Class字節(jié)碼經(jīng)過處理,生成Dex字節(jié)碼;將 Dex字節(jié)碼放置到根目錄。本發(fā)明的開發(fā)方法技術(shù)方案還包括所述源碼為Java源碼,所述Java源碼通過 Java編譯器進行編譯。本發(fā)明采取的另一技術(shù)方案為一種Android工程的開發(fā)系統(tǒng),包括資源應用包生成模塊、應用程序包生成模塊、解析模塊和資源文件讀取模塊;所述資源應用包生成模塊用于將資源文件單獨生成一個資源應用包;所述應用程序包生成模塊用于生成應用程序包,并將資源應用包設(shè)置成應用程序包的資產(chǎn)文件;所述解析模塊用于解析資產(chǎn)文件中的資源應用包,導出資源內(nèi)容;所述資源文件讀取模塊用于讀取相應的資源文件,設(shè)置給應用程序包中應用程序使用。本發(fā)明的開發(fā)系統(tǒng)技術(shù)方案還包括資源屬性生成模塊,用于定義資源屬性類,生成公用的資源屬性ID ;所述資源應用包生成模塊用于根據(jù)資源屬性ID組織資源文件;所述資源文件讀取模塊用于通過公用的資源屬性ID,讀取相應的資源文件。本發(fā)明的開發(fā)系統(tǒng)技術(shù)方案還包括所述資源應用包生成模塊具體工作方式為 將源程序部分的工程描述文件和資源文件分別經(jīng)過打包工具進行處理;將處理后的工程描述文件放置到根目錄;將處理后的資源文件放置到res目錄;將資產(chǎn)文件放置到assets目錄;生成資源應用包。本發(fā)明的開發(fā)系統(tǒng)技術(shù)方案還包括所述應用程序包生成模塊具體工作方式為將源程序部分的源碼通過編譯器進行編譯,生成Class字節(jié)碼;將Class字節(jié)碼經(jīng)過處理, 生成Dex字節(jié)碼;將源程序部分的工程描述文件經(jīng)過打包工具進行處理;將Dex字節(jié)碼放置到根目錄;將處理后的工程描述文件放置到根目錄;將資源應用包設(shè)置成資產(chǎn)文件放置到assets目錄;生成應用程序包。本發(fā)明的開發(fā)系統(tǒng)技術(shù)方案還包括所述源碼為Java源碼,所述Java源碼通過 Java編譯器進行編譯。本發(fā)明的技術(shù)方案具有如下優(yōu)點或有益效果本發(fā)明的方法及系統(tǒng)將資源文件與應用程序源碼分離,在用戶換膚或定制自己的界面時,只需要編譯資源應用包,不用再關(guān)心程序源代碼,在沒有程序源代碼的情況下,也可以通過修改資源文件,實現(xiàn)換膚;并且可以支持多個資源包,在不同資源應用包間進行切換,輕松實現(xiàn)換膚和多語言等功能;另外,資源包可隨著需要安裝或卸載,使用戶可以很好的管理自己的系統(tǒng)資源。
附圖1是本發(fā)明Android平臺工程的開發(fā)的方法的流程圖;附圖2是本發(fā)明Android平臺工程的開發(fā)的方法的交互框圖;附圖3是本發(fā)明Android平臺工程的開發(fā)方法生成資源應用包的流程圖;附圖4是本發(fā)明Android平臺工程的開發(fā)方法生成資源應用包的過程框圖;附圖5是本發(fā)明Android平臺工程的開發(fā)方法生成應用程序包的流程圖;附圖6是本發(fā)明Android平臺工程的開發(fā)方法生成應用程序包的過程框圖;附圖7是本發(fā)明Android平臺工程的開發(fā)系統(tǒng)的模塊結(jié)構(gòu)圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明實施例中,Android平臺工程的開發(fā)將資源文件與應用程序源碼分離,在用戶換膚或定制自己的界面時,只需要編譯資源應用包,不用再關(guān)心程序源代碼。本發(fā)明的Android平臺工程的開發(fā)是這樣實現(xiàn)的,將資源文件單獨生成資源應用包;將資源應用包設(shè)置成應用程序的資產(chǎn)文件,生成應用程序包;程序運行時應用程序包中的應用程序解析資產(chǎn)文件中的資源應用包,導出資源內(nèi)容;讀取相應的資源文件,設(shè)置給應用程序包中應用程序使用。下面進行具體闡述請參閱圖1和圖2,圖1是本發(fā)明Android平臺工程的開發(fā)方法的流程圖,圖2是本發(fā)明Android平臺工程的開發(fā)方法的交互框圖。本發(fā)明Android平臺工程的開發(fā)方法包括以下步驟步驟10 定義資源屬性類,生成公用的資源屬性ID(IDentity,識別碼);生成公用的資源屬性ID,便于對資源文件進行分類管理和快速讀取。資源屬性ID 是資源文件的唯一標識,應用程序可以通過這個ID快速找到資源文件。當然,還可以使用其它方式對資源文件進行管理,如開發(fā)者對資源文件進行的自定義等方式。步驟20 根據(jù)資源屬性ID組織資源文件,將資源文件單獨生成一個資源應用包,命名為res. apk ;請參閱圖3,是本發(fā)明Android平臺工程的開發(fā)方法生成資源應用包的流程圖。在步驟20中,生成資源應用包具體包括步驟21 將源程序部分的AndroidManifest. xml (工程描述文件)和資源文件分別經(jīng)過aapt (Android打包工具)進行處理;步驟22 將處理后的AndroidManifest. xml通過aapt放置到根目錄;步驟23 將處理后的資源文件通過aapt放置到res目錄;步驟M 將資產(chǎn)文件放置到assets目錄;步驟25 生成資源應用包。其中,上述的步驟22到M并沒有先后的邏輯關(guān)系限定,其可以同時進行,具體的實現(xiàn)可以參考圖4中Android平臺工程的開發(fā)方法生成資源應用包的過程框圖。步驟30 生成應用程序包,將其命名為app. apk,并將資源應用包res. apk設(shè)置成應用程序包的資產(chǎn)文件;請參閱圖5,是本發(fā)明Android平臺工程的開發(fā)方法生成應用程序包的流程圖。在步驟30中,生成應用程序包具體包括步驟31 將源程序部分的Java源碼通過Java編譯器進行編譯,生成Class字節(jié)碼;步驟32 將Class字節(jié)碼經(jīng)過dx工具處理,生成Dex字節(jié)碼;步驟33 將源程序部分的AndroidManifest. xml經(jīng)過aapt (Android打包工具)進行處理;步驟;34 將Dex字節(jié)碼通過aapt放置到根目錄;步驟;35 將處理后的AndroidManifest. xml通過aapt放置到根目錄;步驟36 將資源應用包設(shè)置成資產(chǎn)文件放置到assets目錄;步驟37 生成應用程序包。其中,上述的步驟34到36并沒有先后的邏輯關(guān)系限定,其可以同時進行,具體的實現(xiàn)可以參考圖6中Android平臺工程的開發(fā)方法生成應用程序包的過程框圖。在應用程序運行時步驟40 應用程序包中的應用程序解析資產(chǎn)文件中的資源應用包,導出res資源內(nèi)容;步驟50 通過公用的資源屬性ID,讀取相應的資源文件,設(shè)置給應用程序包中應用程序使用。請參閱圖7,是本發(fā)明Android平臺工程的開發(fā)系統(tǒng)的結(jié)構(gòu)圖。本發(fā)明Android平臺工程的開發(fā)系統(tǒng)包括資源屬性生成模塊、資源應用包生成模塊、應用程序包生成模塊、解析模塊和資源文件讀取模塊。資源屬性生成模塊用于定義資源屬性類,生成公用的資源屬性ID。資源應用包生成模塊用于根據(jù)資源屬性ID組織資源文件,將資源文件單獨生成一個資源應用包,其中,資源應用包生成模塊具體工作原理為將源程序部分的 AndroidManifest. xml和資源文件分別經(jīng)過aapt (Android打包工具)進行處理;將處理后的AndroidManifest. xml通過aapt放置到根目錄;將處理后的資源文件通過aapt放置到res目錄;將資產(chǎn)文件放置到assets目錄;生成資源應用包。應用程序包生成模塊用于生成應用程序包,并將資源應用包res. apk設(shè)置成應用程序包的資產(chǎn)文件;其中,應用程序包生成模塊具體工作原理為將源程序部分的Java源碼通過Java編譯器進行編譯,生成Class字節(jié)碼;將Class字節(jié)碼經(jīng)過dx工具處理,生成 Dex字節(jié)碼;將源程序部分的AndroidManifest. xml經(jīng)過aapt (Android打包工具)進行處理;將Dex字節(jié)碼通過aapt放置到根目錄;將處理后的AndroidManifest. xml通過aapt放置到根目錄;將資源應用包設(shè)置成資產(chǎn)文件放置到assets目錄;生成應用程序包。解析模塊用于解析資產(chǎn)文件中的資源應用包,導出res資源內(nèi)容。資源文件讀取模塊用于通過公用的資源屬性ID,讀取相應的資源文件,設(shè)置給應用程序包中應用程序使用。具體如上所述。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種Android平臺工程的開發(fā)方法,包括 將資源文件單獨生成資源應用包;將資源應用包設(shè)置成應用程序的資產(chǎn)文件,生成應用程序包;程序運行時應用程序包中的應用程序解析資產(chǎn)文件中的資源應用包,導出資源內(nèi)容;讀取相應的資源文件,設(shè)置給應用程序包中應用程序使用。
2.根據(jù)權(quán)利要求1所述的Android平臺工程的開發(fā)方法,其特征在于,所述資源文件單獨生成資源應用包之前,定義資源屬性類,生成公用的資源屬性;根據(jù)所述資源屬性ID組織資源文件,再將資源文件單獨生成資源應用包;所述讀取相應的資源文件是通過公用的資源屬性ID進行讀取。
3.根據(jù)權(quán)利要求1或2所述的Android平臺工程的開發(fā)方法,其特征在于,所述步驟根據(jù)資源屬性ID組織資源文件,將資源文件單獨生成資源應用包,包括步驟bl 將源程序部分的工程描述文件和資源文件分別經(jīng)過打包工具進行處理; 步驟1^2 將處理后的工程描述文件放置到根目錄; 步驟b3 將處理后的資源文件放置到res目錄; 步驟b4 將資產(chǎn)文件放置到assets目錄; 步驟沾生成資源應用包。
4.根據(jù)權(quán)利要求1或2所述的Android平臺工程的開發(fā)方法,其特征在于,在所述步驟生成應用程序包,并將資源應用包設(shè)置成應用程序的資產(chǎn)文件,包括步驟Cl 將源程序部分的源碼經(jīng)過處理,生成Dex字節(jié)碼,并將Dex字節(jié)碼放置到根目錄;步驟c2 將源程序部分的工程描述文件經(jīng)過打包工具進行處理,將處理后的工程描述文件放置到根目錄;步驟c3 將資源應用包設(shè)置成資產(chǎn)文件放置到assets目錄; 步驟c4:生成應用程序包。
5.根據(jù)權(quán)利要求4所述的Android平臺工程的開發(fā)方法,其特征在于,所述步驟cl具體包括將源程序部分的源碼通過編譯器進行編譯,生成Class字節(jié)碼;將Class字節(jié)碼經(jīng)過處理,生成Dex字節(jié)碼;將Dex字節(jié)碼放置到根目錄。
6.根據(jù)權(quán)利要求5所述的Android平臺工程的開發(fā)方法,其特征在于,所述源碼為 Java源碼,所述Java源碼通過Java編譯器進行編譯。
7.—種Android平臺工程的開發(fā)系統(tǒng),其特征在于,包括資源應用包生成模塊、應用程序包生成模塊、解析模塊和資源文件讀取模塊;所述資源應用包生成模塊用于將資源文件單獨生成一個資源應用包;所述應用程序包生成模塊用于生成應用程序包,并將資源應用包設(shè)置成應用程序包的資產(chǎn)文件;所述解析模塊用于解析資產(chǎn)文件中的資源應用包,導出資源內(nèi)容;所述資源文件讀取模塊用于讀取相應的資源文件,設(shè)置給應用程序包中應用程序使用。
8.根據(jù)權(quán)利要求7所述的Android平臺工程的開發(fā)系統(tǒng),其特征在于,所述開發(fā)系統(tǒng)還包括資源屬性生成模塊,用于定義資源屬性類,生成公用的資源屬性ID ;所述資源應用包生成模塊用于根據(jù)資源屬性ID組織資源文件;所述資源文件讀取模塊用于通過公用的資源屬性ID,讀取相應的資源文件。
9.根據(jù)權(quán)利要求7或8所述的Android平臺工程的開發(fā)系統(tǒng),其特征在于,所述資源應用包生成模塊具體工作方式為將源程序部分的工程描述文件和資源文件分別經(jīng)過打包工具進行處理;將處理后的工程描述文件放置到根目錄;將處理后的資源文件放置到res目錄;將資產(chǎn)文件放置到assets目錄;生成資源應用包。
10.根據(jù)權(quán)利要求7或8所述的Android平臺工程的開發(fā)系統(tǒng),其特征在于,所述應用程序包生成模塊具體工作方式為將源程序部分的源碼通過編譯器進行編譯,生成Class 字節(jié)碼;將Class字節(jié)碼經(jīng)過處理,生成Dex字節(jié)碼;將源程序部分的工程描述文件經(jīng)過打包工具進行處理;將Dex字節(jié)碼放置到根目錄;將處理后的工程描述文件放置到根目錄;將資源應用包設(shè)置成資產(chǎn)文件放置到assets目錄;生成應用程序包。
全文摘要
本發(fā)明屬于計算機通訊領(lǐng)域,尤其涉及一種Android平臺工程的開發(fā)方法及系統(tǒng)。該Android平臺工程的開發(fā)方法包括定義資源屬性類,生成公用的資源屬性ID(IDentity,識別碼);根據(jù)資源屬性ID組織資源文件,將資源文件單獨生成資源應用包;將資源應用包設(shè)置成應用程序的資產(chǎn)文件,生成應用程序包;程序運行時應用程序包中的應用程序解析資產(chǎn)文件中的資源應用包,導出資源內(nèi)容;通過公用的資源屬性ID,讀取相應的資源文件,設(shè)置給應用程序包中應用程序使用。本發(fā)明的有益效果在于在用戶換膚或定制自己的界面時,只需要編譯資源應用包,不用再關(guān)心代碼,在沒有源碼的情況下,也可以修改資源文件,實現(xiàn)換膚。
文檔編號G06F9/45GK102455931SQ20101052554
公開日2012年5月16日 申請日期2010年10月28日 優(yōu)先權(quán)日2010年10月28日
發(fā)明者袁英燦, 詹紅艷 申請人:Tcl集團股份有限公司