一種安卓源代碼編譯方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及操作系統(tǒng)技術領域,特別是涉及安卓操作系統(tǒng)技術領域,具體為一種安卓源代碼編譯方法及系統(tǒng)。
【背景技術】
[0002]隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,各種安卓設備層出不窮,這些設備搭載安卓系統(tǒng),在這些設備的研發(fā)過程中,軟件工程師的工作是添加功能,修復問題,準備軟件版本。最重要的環(huán)節(jié)就是軟件版本的高質(zhì)量按時發(fā)布,發(fā)布軟件版本后,其它部門如測試部門,工廠等才能順利進行下一步工作。
[0003]在做安卓平臺相關項目開發(fā)時,讓工程師最頭疼的事情莫過于長時間的等待編譯,由于代碼量巨大,如目前的安卓5.1版本代碼達幾十個G,代碼編譯的時間也就長,目前安卓5.1版本一個完整的編譯流程需要大概5個小時,如果工程師全新拉代碼然后編譯,可以說一個工作日啥也干不了,只能默默等待編譯完成。如何縮短編譯時間是每個安卓軟件團隊都在研究的問題。很多開發(fā)團隊采用增加硬件成本的方式,提高編譯服務器配置,這是從硬件的角度來改善,也有的公司從軟件方面入手,如將一些不用的模塊從編譯控制腳本中移除,使服務器編譯不到,代碼量會少點,這種適用于做單模塊開發(fā)的工程師。最終發(fā)布軟件版本時還是不能落下任何一個模塊。
[0004]目前很多公司增加硬件配置,提高CPU編譯效率,這種改善方式投入成本大,不普遍適用。編譯時移除和自己模塊無關的模塊的開發(fā)方式,只適合開發(fā)單一模塊的工程師,最終發(fā)布軟件版本還是要重新拉取代碼服務器上全新的代碼,編譯時間沒保障。
【發(fā)明內(nèi)容】
[0005]鑒于以上所述現(xiàn)有技術的缺點,本發(fā)明的目的在于提供一種安卓源代碼編譯方法及系統(tǒng),用于解決現(xiàn)有技術中對安卓源代碼編譯時間長的問題。
[0006]為實現(xiàn)上述目的及其他相關目的,本發(fā)明提供一種安卓源代碼編譯方法,所述安卓源代碼編譯方法包括:將原安卓源代碼的編譯輸出目錄下第三方源代碼編譯生成的二級制文件拷貝到預設的接收目錄下;將所述接收目錄下的所述第三方源代碼編譯生成的二級制文件拷貝到為編譯新安卓源代碼建立的新編譯輸出目錄下;修改第三方源代碼的編譯配置,使得在編譯新安卓源代碼時不進行第三方源代碼的編譯。
[0007]優(yōu)選地,所述安卓源代碼編譯方法還包括:在編譯完新安卓源代碼之后,將所述新安卓源代碼對應的軟件版本進行打包。
[0008]優(yōu)選地,利用預先編寫的打包腳本將所述新安卓源代碼對應的軟件版本進行打包。
[0009]優(yōu)選地,所述原安卓源代碼的編譯輸出目錄由所述原安卓源代碼經(jīng)完整編譯后對應形成。
[0010]優(yōu)選地,利用預先編寫的拷貝腳本將所述接收目錄下的所述第三方源代碼編譯生成的二級制文件拷貝到為編譯新安卓源代碼建立的新編譯輸出目錄下。
[0011]為實現(xiàn)上述目的,本發(fā)明還提供一種安卓源代碼編譯系統(tǒng),所述安卓源代碼編譯系統(tǒng)包括:拷貝目錄建立模塊,用于建立一個接收目錄,用于接收原安卓源代碼的編譯輸出目錄下第三方源代碼編譯生成的二級制文件的拷貝文件;新編譯目錄建立模塊,用于為編譯新安卓源代碼建立新編譯輸出目錄;拷貝模塊,分別與所述拷貝目錄建立模塊和所述新編譯目錄建立模塊相連,用于將所述接收目錄下的所述第三方源代碼編譯生成的二級制文件拷貝到所述新編譯輸出目錄下;配置修改模塊,用于修改第三方源代碼的編譯配置,使得在編譯新安卓源代碼時不進行第三方源代碼的編譯;編譯模塊,分別與所述新編譯目錄建立模塊和所述配置修改模塊相連,用于編譯新安卓源代碼。
[0012]優(yōu)選地,所述安卓源代碼編譯系統(tǒng)還包括:打包模塊,與所述編譯模塊相連,用于在所述編譯模塊編譯完新安卓源代碼之后,將所述新安卓源代碼對應的軟件版本進行打包。
[0013]優(yōu)選地,所述打包模塊利用預先編寫的打包腳本將所述新安卓源代碼對應的軟件版本進行打包。
[0014]優(yōu)選地,所述原安卓源代碼的編譯輸出目錄由所述原安卓源代碼經(jīng)完整編譯后對應形成。
[0015]優(yōu)選地,所述拷貝模塊利用預先編寫的拷貝腳本將所述接收目錄下的所述第三方源代碼編譯生成的二級制文件拷貝到為編譯新安卓源代碼建立的新編譯輸出目錄下。
[0016]如上所述,本發(fā)明的一種安卓源代碼編譯方法及系統(tǒng),具有以下有益效果:
[0017]1、本發(fā)明通過將源碼中不會發(fā)生修改的第三方模塊的源代碼編譯生成的二進制文件保存到指定目錄,新拉項目源碼時,通過自動化的腳本工具將二進制文件拷貝到源碼對應輸出目錄中,同時修改這些第三方模塊對應編譯腳本,能大幅度節(jié)約編譯時間,提高編譯效率。
[0018]2、本發(fā)明操作簡單,具有較高的實用性。
【附圖說明】
[0019]圖1顯示為本發(fā)明的安卓源代碼編譯方法的流程示意圖。
[0020]圖2顯示為本發(fā)明的安卓源代碼編譯方法在一實施例中的具體實施示意圖。
[0021]圖3顯示為本發(fā)明的安卓源代碼編譯系統(tǒng)的結構示意圖。
[0022]元件標號說明
[0023]1安卓源代碼編譯系統(tǒng)
[0024]11拷貝目錄建立模塊
[0025]12新編譯目錄建立模塊
[0026]13拷貝模塊
[0027]14配置修改模塊
[0028]15編譯模塊
[0029]16打包模塊
[0030]S11 ?S13 步驟
【具體實施方式】
[0031]以下通過特定的具體實例說明本發(fā)明的實施方式,本領域技術人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節(jié)也可以基于不同觀點與應用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。
[0032]本發(fā)明的目的在于提供一種安卓源代碼編譯方法及系統(tǒng),用于解決現(xiàn)有技術中對安卓源代碼編譯時間長的問題。以下將詳細闡述本發(fā)明的一種安卓源代碼編譯方法及系統(tǒng)的原理及實施方式,使本領域技術人員不需要創(chuàng)造性勞動即可理解本發(fā)明的一種安卓源代碼編譯方法及系統(tǒng)。
[0033]本實施例提供一種安卓源代碼編譯方法及系統(tǒng),通過保留一份代碼里幾乎不會變動的模塊的編譯結果,在全新拉取代碼后通過自動化的腳本命令,將保留的編譯結果拷貝到新代碼的編譯輸出目錄OUT目錄下。安卓源碼路徑LINUX/android/external里都是第三方代碼,其代碼量達十幾個G,這些第三方代碼輕易不會變動,只有在安卓發(fā)布大版本時才會有變動。安卓設備廠商都是基于某一個安卓大版本開發(fā),所以也不會變動該路徑下的源碼。大大縮短衍生項目周期,節(jié)約人力,提高效率。該路徑下的源碼編譯大概需要三個小時,節(jié)約這部分時間,能大大提高工程師的效率。
[0034]具體地,如圖1所示,所述安卓源代碼編譯方法包括以下步驟。
[0035]步驟S11,將原安卓源代碼的編譯輸出目錄下第三方源代碼編譯生成的二級制文件拷貝到預設的接收目錄下。
[0036]步驟S12,將所述接收目錄下的所述第三方源代碼編譯生成的二級制文件拷貝到為編譯新安卓源代碼建立的新編譯輸出目錄下。
[0037]步驟S13,修改第三方源代碼的編譯配置,使得在編譯新安卓源代碼時不進行第三方源代碼的編譯。
[0038]如圖2所示,以下對步驟S11至步驟S13進行詳細說明。
[0039]步驟S11,將原安卓源代碼的編譯輸出目錄下第三方源代碼編譯生成的二級制文件拷貝到預設的接收目錄下。
[0040]其中,于本實施例中,所述原安卓源代碼的編譯輸出目錄由所述原安卓源代碼經(jīng)完整編譯后對應形成。也就是說,在實施步驟S11之前,需要對安卓源代碼做一次完整的編譯。
[0041 ] 具體地,于本實施例中,在一次源碼完整編譯后,將out/target/common/ob j/JAVA_LIBRARIES/framework_intermediates/src/core/ java/android/路徑下的文件拷貝一份,保存到本機或者服務器上某一個位置。具體地,保存LINUX/andro id/external路徑下對應第三方模塊的編譯結果,將該路徑下源碼編譯后的二進制文件復制一份到本機或者編譯服務器的特定目錄sourceDir中,即將out/target/common/ob j/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/路徑下的第三方二進制文件拷貝一份,該二進制文件在安卓大版本中是不會變化的。
[0042]步驟S12,將所述接收目錄下的所述第三方源代碼編譯生成的二級制文件拷貝到為編譯新安卓源代碼建立的新編譯輸出目錄下。
[0043]具體地,于本實施例中,利用預先編寫的拷貝腳本將所述接收目錄下的所述第三方源代碼編譯生成的二級制文件拷貝到為編譯新安卓源代碼建立的新編譯輸出目錄下。
[0044]更進一步地,于本實施例中,編寫out_raw_copy.sh腳本,該腳本的功能是拷貝sourceDir中的二進制文件到新拉取得源碼的指定目錄下,先建立新拉取源碼LINUX/android/out目錄,該腳本放在源碼根目錄下執(zhí)行。也就是說,于本實施例中,在本機或者編譯服務器拉最新代碼之后,執(zhí)行腳本out_raw_copy.sh,將LINUX/android/external路徑下源碼編譯后的二進制文件復制一份到