本發(fā)明涉及安卓軟件開發(fā)領(lǐng)域,具體是涉及一種提高安卓項目編譯速度的方法及系統(tǒng)。
背景技術(shù):
下面先簡單介紹一些與安卓軟件開發(fā)有關(guān)的專業(yè)術(shù)語。
Aar庫:Aar(Android Archive,安卓的檔案庫)包是一個Android庫項目的二進(jìn)制歸檔文件。文件擴(kuò)展名是.Aar,但文件本身是具有以下條目的一個簡單zip文件:
第三方安卓項目庫源碼:第三方安卓項目的開源代碼庫的源碼。
Maven:Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構(gòu)建,報告和文檔的軟件項目管理工具。
Nexus:通用開源的一套maven倉庫管理工具。
IDE:Integrated Development Environment,集成開發(fā)環(huán)境,是用于提供程序開發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具,集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件服務(wù)套。所有具備這一特性的軟件或者軟件套(組)都可以叫集成開發(fā)環(huán)境。
Android Studio(安卓開發(fā)套件):一個Android集成開發(fā)工具,基于IntelliJ IDEA(軟件名稱),類似Eclipse ADT(軟件名稱),Android Studio提供了集成的Android開發(fā)工具用于開發(fā)和調(diào)試。
Gradle(軟件名稱):一個基于Apache Ant(軟件名稱)和Apache Maven(軟件名稱)概念的項目自動化建構(gòu)工具。它使用一種基于Groovy(軟件名稱)的特定領(lǐng)域語言DSL來聲明項目設(shè)置,拋棄了基于XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語言)的各種繁瑣配置。
在安卓軟件開發(fā)過程中通常會引入第三方庫文件,傳統(tǒng)的編譯方法是引入第三方庫源碼,在編譯項目的時候,將所有第三方的源碼全部編譯一遍。由于編譯了全部的源碼文件,所以在編譯階段隨著第三方庫的引入數(shù)量的不斷增加,導(dǎo)致編譯文件的數(shù)量不斷增多,最終會使得編譯時間變得非常長。但是,在軟件開發(fā)和調(diào)試階段需要不斷的進(jìn)行編譯調(diào)試,導(dǎo)致開發(fā)人員需要等待很長的編譯時間,因此開發(fā)效率較低。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是為了克服上述背景技術(shù)的不足,提供一種提高安卓項目編譯速度的方法及系統(tǒng),能夠省去在編譯階段編譯大量第三方安卓項目庫源碼的時間,提高編譯速度,有效提高開發(fā)人員的開發(fā)效率。
本發(fā)明提供一種提高安卓項目編譯速度的方法,包括以下步驟:
S1、搭建本地maven倉庫;
S2、將第三方安卓項目庫源碼編譯成第三方Aar庫文件;
S3、將編譯出來的第三方Aar庫文件上傳到本地maven倉庫;
S4、將第三方安卓項目的依賴修改為依賴本地maven倉庫的第三方Aar庫文件。
在上述技術(shù)方案的基礎(chǔ)上,步驟S1中,搭建本地maven倉庫的流程如下:
步驟101、下載nexus源代碼文件的壓縮包;
步驟102、將下載的壓縮包解壓到本地磁盤的全英文路徑的目錄下;
步驟103、啟動本地的nexus服務(wù);
步驟104、進(jìn)入nexus的配置界面,對maven倉庫進(jìn)行配置。
在上述技術(shù)方案的基礎(chǔ)上,步驟S2具體包括以下步驟:
步驟201、通過網(wǎng)絡(luò)獲取到第三方安卓項目開源庫源碼,并將庫源碼下載到本地磁盤上,導(dǎo)入第三方安卓項目開源庫源碼;
步驟202、對導(dǎo)入的第三方安卓項目開源庫源碼進(jìn)行編譯,得到第三方Aar庫文件。
在上述技術(shù)方案的基礎(chǔ)上,步驟S3具體包括以下步驟:
步驟301、添加上傳腳本文件;
步驟302、將上傳腳本中的上傳網(wǎng)絡(luò)地址修改為本地maven倉庫的上傳地址;
步驟303、調(diào)用上傳腳本中的上傳任務(wù),上傳本地編譯出來的第三方Aar庫文件。
在上述技術(shù)方案的基礎(chǔ)上,步驟S4具體包括以下步驟:
步驟401、將本地maven倉庫添加進(jìn)編譯庫;
步驟402、修改項目庫引用關(guān)系,去掉原始項目的依賴,將第三方安卓項目的依賴修改為依賴本地maven倉庫中的第三方Aar庫文件。
本發(fā)明還提供一種提高安卓項目編譯速度的系統(tǒng),該系統(tǒng)包括倉庫搭建單元、編譯單元、上傳單元、依賴修改單元,其中:
所述倉庫搭建單元用于:搭建本地maven倉庫;
所述編譯單元用于:將第三方安卓項目庫源碼編譯成第三方Aar庫文件;
所述上傳單元用于:將編譯出來的第三方Aar庫文件上傳到本地maven倉庫;
所述依賴修改單元用于:將第三方安卓項目的依賴修改為依賴本地maven倉庫的第三方Aar庫文件。
在上述技術(shù)方案的基礎(chǔ)上,所述倉庫搭建單元搭建本地maven倉庫的流程如下:
步驟101、下載nexus源代碼文件的壓縮包;
步驟102、將下載的壓縮包解壓到本地磁盤的全英文路徑的目錄下;
步驟103、啟動本地的nexus服務(wù);
步驟104、進(jìn)入nexus的配置界面,對maven倉庫進(jìn)行配置。
在上述技術(shù)方案的基礎(chǔ)上,所述編譯單元將第三方安卓項目庫源碼編譯成第三方Aar庫文件的流程如下:
步驟201、通過網(wǎng)絡(luò)獲取到第三方安卓項目開源庫源碼,并將庫源碼下載到本地磁盤上,導(dǎo)入第三方安卓項目開源庫源碼;
步驟202、對導(dǎo)入的第三方安卓項目開源庫源碼進(jìn)行編譯,得到第三方Aar庫文件。
在上述技術(shù)方案的基礎(chǔ)上,所述上傳單元將編譯出來的第三方Aar庫文件上傳到本地maven倉庫的流程如下:
步驟301、添加上傳腳本文件;
步驟302、將上傳腳本中的上傳網(wǎng)絡(luò)地址修改為本地maven倉庫的上傳地址;
步驟303、調(diào)用上傳腳本中的上傳任務(wù),上傳本地編譯出來的第三方Aar庫文件。
在上述技術(shù)方案的基礎(chǔ)上,所述依賴修改單元將第三方安卓項目的依賴修改為依賴本地maven倉庫的第三方Aar庫文件的流程如下:
步驟401、將本地maven倉庫添加進(jìn)編譯庫;
步驟402、修改項目庫引用關(guān)系,去掉原始項目的依賴,將第三方安卓項目的依賴修改為依賴本地maven倉庫中的第三方Aar庫文件。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點如下:
本發(fā)明搭建本地maven倉庫,分離第三方安卓項目的庫源碼,將分離的所有第三方安卓項目庫源碼編譯成第三方Aar庫文件,上傳到本地maven倉庫中,通過本地maven倉庫的形式對第三方Aar庫文件進(jìn)行版本管理。在項目編譯階段,直接引入本地maven倉庫中已經(jīng)編譯好的第三方Aar庫文件,不用再去編譯所有第三方安卓項目庫源碼,能夠省去在編譯階段編譯大量第三方安卓項目庫源碼的時間,提高編譯速度,有效提高開發(fā)人員的開發(fā)效率。
附圖說明
圖1是本發(fā)明實施例中提高安卓項目編譯速度的方法的流程圖。
圖2是本發(fā)明實施例中搭建本地maven倉庫的流程圖。
圖3是本發(fā)明實施例中將第三方安卓項目庫源碼編譯成第三方Aar庫文件的流程圖。
圖4是本發(fā)明實施例中上傳本地編譯出來的第三方Aar庫文件的流程圖。
圖5是本發(fā)明實施例中修改原來項目的依賴的流程圖。
具體實施方式
下面結(jié)合附圖及具體實施例對本發(fā)明作進(jìn)一步的詳細(xì)描述。
參見圖1所示,本發(fā)明實施例提供一種提高安卓項目編譯速度的方法,包括以下步驟:
S1、搭建本地maven倉庫;
S2、將第三方安卓項目庫源碼編譯成第三方Aar庫文件;
S3、將編譯出來的第三方Aar庫文件上傳到本地maven倉庫;
S4、將第三方安卓項目的依賴修改為依賴本地maven倉庫的第三方Aar庫文件。
參見圖2所示,步驟S1中,搭建本地maven倉庫的流程如下:
步驟101、下載nexus源代碼文件的壓縮包;
步驟102、將下載的壓縮包解壓到本地磁盤的全英文路徑的目錄下;
步驟103、啟動本地的nexus服務(wù);
步驟104、進(jìn)入nexus的配置界面,對maven倉庫進(jìn)行配置。
參見圖3所示,步驟S2具體包括以下步驟:
步驟201、通過網(wǎng)絡(luò)獲取到第三方安卓項目開源庫源碼,并將庫源碼下載到本地磁盤上,導(dǎo)入第三方安卓項目開源庫源碼;
步驟202、對導(dǎo)入的第三方安卓項目開源庫源碼進(jìn)行編譯,得到第三方Aar庫文件。
參見圖4所示,步驟S3具體包括以下步驟:
步驟301、添加上傳腳本文件;
步驟302、將上傳腳本中的上傳網(wǎng)絡(luò)地址修改為本地maven倉庫的上傳地址;
步驟303、調(diào)用上傳腳本中的上傳任務(wù),上傳本地編譯出來的第三方Aar庫文件。
參見圖5所示,步驟S4具體包括以下步驟:
步驟401、將本地maven倉庫添加進(jìn)編譯庫;
步驟402、修改項目庫引用關(guān)系,去掉原始項目的依賴,將第三方安卓項目的依賴修改為依賴本地maven倉庫中的第三方Aar庫文件。
本發(fā)明還提供一種提高安卓項目編譯速度的系統(tǒng),該系統(tǒng)包括倉庫搭建單元、編譯單元、上傳單元、依賴修改單元,其中:
倉庫搭建單元用于:搭建本地maven倉庫;
編譯單元用于:將第三方安卓項目庫源碼編譯成第三方Aar庫文件;
上傳單元用于:將編譯出來的第三方Aar庫文件上傳到本地maven倉庫;
依賴修改單元用于:將第三方安卓項目的依賴修改為依賴本地maven倉庫的第三方Aar庫文件。
參見圖2所示,倉庫搭建單元搭建本地maven倉庫的流程如下:
步驟101、下載nexus源代碼文件的壓縮包;
步驟102、將下載的壓縮包解壓到本地磁盤的全英文路徑的目錄下;
步驟103、啟動本地的nexus服務(wù);
步驟104、進(jìn)入nexus的配置界面,對maven倉庫進(jìn)行配置。
參見圖3所示,編譯單元將第三方安卓項目庫源碼編譯成第三方Aar庫文件的流程如下:
步驟201、通過網(wǎng)絡(luò)獲取到第三方安卓項目開源庫源碼,并將庫源碼下載到本地磁盤上,導(dǎo)入第三方安卓項目開源庫源碼;
步驟202、對導(dǎo)入的第三方安卓項目開源庫源碼進(jìn)行編譯,得到第三方Aar庫文件。
參見圖4所示,上傳單元將編譯出來的第三方Aar庫文件上傳到本地maven倉庫的流程如下:
步驟301、添加上傳腳本文件;
步驟302、將上傳腳本中的上傳網(wǎng)絡(luò)地址修改為本地maven倉庫的上傳地址;
步驟303、調(diào)用上傳腳本中的上傳任務(wù),上傳本地編譯出來的第三方Aar庫文件。
參見圖5所示,依賴修改單元將第三方安卓項目的依賴修改為依賴本地maven倉庫的第三方Aar庫文件的流程如下:
步驟401、將本地maven倉庫添加進(jìn)編譯庫;
步驟402、修改項目庫引用關(guān)系,去掉原始項目的依賴,將第三方安卓項目的依賴修改為依賴本地maven倉庫中的第三方Aar庫文件。
下面通過一個具體案例進(jìn)行詳細(xì)描述。
實際應(yīng)用中,提高安卓項目編譯速度的方法包括以下步驟:
S1、搭建本地maven倉庫
Nexus是一個開源軟件,主要功能是搭建本地的maven倉庫管理平臺。由于該軟件是一個開元項目,具體搭建和使用詳細(xì)文檔官方網(wǎng)站都有詳細(xì)描述,本文中僅做簡要敘述搭建過程。
參見圖2所示,搭建本地maven倉庫的流程如下:
步驟101、在官網(wǎng)http://www.sonatype.org/nexus/下載nexus源代碼文件的zip壓縮包。
步驟102、將下載的zip壓縮包解壓到本地磁盤的全英文路徑的目錄下。注意:此處要全英文路徑,其他非英文語言可能會造成路徑編碼異常導(dǎo)致服務(wù)啟動失敗。
步驟103、雙擊解壓目錄中的console-nexus.bat文件,這個文件主要功能是啟動本地的nexus服務(wù),雙擊后就能正常啟動本地服務(wù)了。
步驟104、服務(wù)啟動以后,就可以通過在瀏覽器中輸入http://localhost:8081/nexus/,進(jìn)入nexus的配置界面,對maven倉庫進(jìn)行配置,主要配置選項包括配置maven倉庫的存儲路徑以及maven倉庫的名稱等。
S2、將第三方安卓項目庫源碼編譯成第三方Aar庫文件
本地maven倉庫搭建完成以后,將本地項目中引用的所有第三方安卓項目庫源碼全部編譯成Aar庫文件。由于所有第三方安卓項目庫源碼編譯成Aar庫文件的方式是一樣的,此處僅以一個第三方安卓項目庫源碼為例進(jìn)行說明,其他第三方安卓項目庫源碼編譯成第三方Aar庫文件可以使用同一套方案。
由于Aar庫文件是Google公司針對Android平臺推出的一套全新的庫打包方案,需要使用Google公司提供的Android開發(fā)IDE工具Android Studio。
具體實施步驟參見圖3所示:
步驟201、首先通過網(wǎng)絡(luò)獲取到第三方安卓項目開源庫源碼,并將庫源碼下載到本地磁盤上。由于Aar包是google定義的一個獨特的打包方式,需要通過AndroidStudio來進(jìn)行編譯。
將下載下來的第三方安卓項目開源庫源碼導(dǎo)入到AndroidStudio中進(jìn)行單獨編譯,具體導(dǎo)入方式如下:選擇File->new->ImportProject的方式來導(dǎo)入第三方安卓項目開源庫源碼。其他方式導(dǎo)入有可能會引起編譯不通過的問題。
步驟202、第三方安卓項目開源庫源碼導(dǎo)入后,可以通過Build->MakeProject方法,對導(dǎo)入的第三方安卓項目開源庫源碼進(jìn)行編譯,得到第三方Aar庫文件;編譯完成后,可以在源碼目錄的build文件夾下發(fā)現(xiàn)編譯出來的第三方Aar庫文件。
S3、將編譯出來的第三方Aar庫文件上傳到本地maven倉庫,具體步驟參見圖4所示:
步驟301、添加上傳腳本文件,該上傳腳本文件屬于通用的上傳腳本,此處不做詳細(xì)描述,認(rèn)為是一個已有技術(shù)直接拿過來進(jìn)行使用。
步驟302、上傳腳本中唯一一個需要修改的地方就是上傳網(wǎng)絡(luò)地址,由于是搭建的本地服務(wù)器,所以需要修改其中上傳服務(wù)器的地址,將上傳腳本中的上傳網(wǎng)絡(luò)地址修改為本地maven倉庫的上傳地址。
步驟303、上傳腳本中定義了一個upload(上傳)任務(wù),我們通過命令gradle upload就能夠調(diào)用上傳腳本中的upload任務(wù),執(zhí)行上傳本地編譯出來的第三方Aar庫文件了。
S4、將第三方安卓項目的依賴修改為依賴本地maven倉庫的第三方Aar庫文件,具體步驟參見圖5所示:
步驟401、為了在編譯本地項目的時候去本地maven倉庫進(jìn)行查詢,所以需要將本地maven倉庫添加進(jìn)編譯庫,具體添加方法如下:
maven(){
url"http://192.168.5.148:8081/repository/douyu/"
}
添加完成以后,所有第三方安卓項目都會去上面的本地maven倉庫中去查詢對應(yīng)的第三方Aar庫文件。
步驟402、修改項目庫引用關(guān)系,去掉原始項目的依賴,將第三方安卓項目的依賴修改為依賴本地maven倉庫中的第三方Aar庫文件。
原來項目是直接依賴源碼項目,這樣在編譯的時候就會去把依賴的源碼項目也進(jìn)行編譯一遍。
原來項目依賴方式的語法格式:compile project(':PushSDK')
修改后,本地maven倉庫依賴方式的語法格式:compile'com.douyu:PushSDK:1.0.0'
本領(lǐng)域的技術(shù)人員可以對本發(fā)明實施例進(jìn)行各種修改和變型,倘若這些修改和變型在本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則這些修改和變型也在本發(fā)明的保護(hù)范圍之內(nèi)。
說明書中未詳細(xì)描述的內(nèi)容為本領(lǐng)域技術(shù)人員公知的現(xiàn)有技術(shù)。