一種apk應(yīng)用到安卓項(xiàng)目源碼中的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,尤其涉及一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著移動(dòng)互聯(lián)時(shí)代的到來,移動(dòng)終端軟件的穩(wěn)定性和開發(fā)的高效性成為手機(jī)設(shè)計(jì)公司追求的重要指標(biāo)。如何提高開發(fā)效率,縮短開發(fā)周期成為方案許多公司追求的重點(diǎn),終端產(chǎn)品上市的早晚也決定了這款機(jī)器的市場銷量。所以在各個(gè)環(huán)節(jié)提高開發(fā)效率都是重要的該進(jìn),尤其是安卓5.1之后,代碼量龐大。如何通過改善流程來縮短等待時(shí)間,提高工作效率顯得十分重要。
[0003]在手機(jī)終端軟件開發(fā)過程中,會(huì)涉及到很多第三方應(yīng)用的集成問題,有些應(yīng)用需要集成到系統(tǒng)區(qū),有些應(yīng)用需要集成到用戶數(shù)據(jù)區(qū)。傳統(tǒng)的開發(fā)方式需要工程師將安卓應(yīng)用解包,取出其中的庫文件和安卓應(yīng)用文件一起添加到源碼下的某一目錄,并建立編譯控制(Androidmk)文件,將安卓應(yīng)用和每個(gè)庫文件各作為一個(gè)添加項(xiàng)寫進(jìn)編譯控制文件。
[0004]現(xiàn)有的開發(fā)模式要求工程師將所有集成的APK —項(xiàng)項(xiàng)的手動(dòng)添加到源碼中。如果APK過多或者APK中所包含的SO文件過多,會(huì)浪費(fèi)工程師大量的時(shí)間和精力。同時(shí)工程師需要將這些APK和SO源文件都放到項(xiàng)目源碼里去時(shí)需要使用git庫管理,每當(dāng)有APK更新或者SO文件更新時(shí),都要?jiǎng)h掉舊的APK和SO文件,更換成新的APK和SO文件,每個(gè)APK至少也有幾兆大小,每次更換一個(gè)應(yīng)用都會(huì)增加git庫幾兆到幾十兆的數(shù)據(jù)量,集成到系統(tǒng)里的APK難免要經(jīng)過多次版本的更新。這樣git庫會(huì)越來越大,開發(fā)工程師在拉代碼時(shí)需要一并將git庫到拉到本地機(jī)器,數(shù)據(jù)量大就會(huì)浪費(fèi)掉很多時(shí)間。
【發(fā)明內(nèi)容】
[0005]鑒于上述問題,本申請(qǐng)記載了一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法,所述方法包括步驟:
[0006]讀取產(chǎn)品參數(shù);
[0007]判斷所述產(chǎn)品是否有對(duì)應(yīng)的應(yīng)用配置文件,如果有,獲取所述應(yīng)用配置文件,否則獲取通用的應(yīng)用配置文件;
[0008]獲取所述產(chǎn)品的預(yù)置應(yīng)用列表;
[0009]根據(jù)所述預(yù)置應(yīng)用列表中所有應(yīng)用的名稱,獲取所述應(yīng)用在FTP服務(wù)器上的名稱;
[0010]從所述FTP服務(wù)器上下載所述應(yīng)用;
[0011]對(duì)所述應(yīng)用進(jìn)行解析并添加到源碼對(duì)應(yīng)的目錄中;
[0012]生成所述應(yīng)用所對(duì)應(yīng)的編譯控制文件。
[0013]較佳的,所述方法還包括步驟:
[0014]通過內(nèi)網(wǎng)架設(shè)所述FTP服務(wù)器,將需要內(nèi)置到系統(tǒng)中的APK存放到所述FTP服務(wù)器中。
[0015]較佳的,從所述FTP服務(wù)器上下載所述應(yīng)用的過程包括步驟:
[0016]逐個(gè)判斷所述應(yīng)用在本地是否存在老版本;
[0017]如果存在,從所述FTP服務(wù)器上下載所述應(yīng)用的最新版本并刪除所述老版本;否貝IJ,直接從所述FTP服務(wù)器上下載所述最新版本;
[0018]判斷所述預(yù)置應(yīng)用列表中的所有所述應(yīng)用是否已經(jīng)完全下載完成,如果沒有,繼續(xù)執(zhí)行步驟逐個(gè)判斷本地是否存在所述應(yīng)用的老版本;否則,執(zhí)行步驟對(duì)所述應(yīng)用進(jìn)行解析并添加到所述源碼對(duì)應(yīng)目錄中。
[0019]較佳的,所述預(yù)置應(yīng)用列表中存放有所述產(chǎn)品需要集成的所有所述應(yīng)用的名稱。
[0020]較佳的,生產(chǎn)所述應(yīng)用所對(duì)應(yīng)的編譯控制文件的過程包括步驟:
[0021]進(jìn)入所述應(yīng)用所在的應(yīng)用文件夾;
[0022]建立一個(gè)空的文件夾;
[0023]逐個(gè)取所述應(yīng)用文件夾下每個(gè)所述應(yīng)用的名稱;
[0024]在所述文件夾下生成每個(gè)所述應(yīng)用的對(duì)應(yīng)項(xiàng);
[0025]判斷所有的所述應(yīng)用是否均處理完成,如果沒有,繼續(xù)執(zhí)行步驟逐個(gè)取所述應(yīng)用文件夾下的每個(gè)所述應(yīng)用的名稱;否則,結(jié)束。
[0026]較佳的,所述文件夾為所述編譯控制文件。
[0027]較佳的,獲取所述應(yīng)用在FTP服務(wù)器上的名稱的過程包括步驟:逐個(gè)解析所述應(yīng)用在所述FTP服務(wù)器上的名稱。
[0028]較佳的,所述產(chǎn)品參數(shù)包括所述產(chǎn)品的名稱。
[0029]本發(fā)明還提供了一種APK應(yīng)用到安卓項(xiàng)目源碼中的系統(tǒng),所述系統(tǒng)包括:
[0030]FTP服務(wù)器,用以存儲(chǔ)系統(tǒng)中的所有應(yīng)用;
[0031]檢測模塊,與所述FTP服務(wù)器相連,用以讀取產(chǎn)品的產(chǎn)品參數(shù);
[0032]應(yīng)用配置文件判斷模塊,與所述檢測模塊相連,用以根據(jù)所述產(chǎn)品參數(shù)判斷所述產(chǎn)品是否有對(duì)應(yīng)的應(yīng)用配置文件;
[0033]應(yīng)用配置文件獲取模塊,與所述應(yīng)用配置文件判斷模塊相連,用以當(dāng)所述產(chǎn)品有對(duì)應(yīng)的所述應(yīng)用配置文件時(shí)獲取所述應(yīng)用配置文件,否則獲取通用的應(yīng)用配置文件;
[0034]預(yù)置應(yīng)用列表獲取模塊,與所述應(yīng)用配置文件獲取模塊相連,用以獲取所述產(chǎn)品的預(yù)置應(yīng)用列表;
[0035]名稱獲取模塊,分別與所述預(yù)置應(yīng)用列表獲取模塊以及所述FTP服務(wù)器相連,用以根據(jù)所述預(yù)置應(yīng)用列表中的所有應(yīng)用的名稱獲取所述應(yīng)用在所述FTP服務(wù)器上的名稱;
[0036]應(yīng)用下載模塊,分別與所述名稱獲取模塊以及所述FTP服務(wù)器相連,用以從所述FTP服務(wù)器上下載所述應(yīng)用;
[0037]庫文件解析模塊,與所述應(yīng)用下載模塊相連,用以對(duì)所述應(yīng)用進(jìn)行解析并添加到源碼對(duì)應(yīng)目錄中;
[0038]編譯控制文件生成模塊,與所述解析模塊相連,用以生產(chǎn)所述應(yīng)用對(duì)應(yīng)的編譯控制文件。
[0039]較佳的,所述應(yīng)用下載模塊包括:
[0040]版本判斷單元,分別與所述名稱獲取模塊以及所述FTP服務(wù)器相連,用以逐個(gè)判斷所述應(yīng)用在本地是否存在老版本;
[0041]應(yīng)用下載單元,分別與所述版本判斷單元以及所述FTP服務(wù)器相連,用以當(dāng)所述應(yīng)用存在所述老版本時(shí)刪除所述老版本并從所述FTP服務(wù)器上下載最新版本,否則直接從所述FTP服務(wù)器上下載所述最新版本;
[0042]下載判斷單元,分別與所述應(yīng)用下載單元、所述版本判斷單元以及所述庫文件解析模塊相連,用以判斷所述預(yù)置應(yīng)用列表中的所有所述應(yīng)用是否已經(jīng)全部下載完成。
[0043]上述技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果:本發(fā)明提出的APK應(yīng)用到安卓項(xiàng)目源碼中的方法即系統(tǒng),將集成到項(xiàng)目版本中的安卓應(yīng)用更新到應(yīng)用文件服務(wù)器,不需要在代碼服務(wù)器上用代碼管理工具(git)管理,極大降低代碼服務(wù)器的數(shù)據(jù)量,從而縮短工程師拉取代碼的時(shí)間,提高開發(fā)效率。
【附圖說明】
[0044]參考所附附圖,以更加充分的描述本發(fā)明的實(shí)施例。然而,所附附圖僅用于說明和闡述,并不構(gòu)成對(duì)本發(fā)明范圍的限制。
[0045]圖1為本發(fā)明一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法的流程圖一;
[0046]圖2為本發(fā)明一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法中獲取預(yù)置應(yīng)用列表的流程圖;
[0047]圖3為本發(fā)明一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法中解析應(yīng)用的名稱的流程圖;
[0048]圖4為本發(fā)明一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法的流程圖二 ;
[0049]圖5為本發(fā)明一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法中編譯控制文件生成的流程圖;
[0050]圖6為本發(fā)明一種APK應(yīng)用到安卓項(xiàng)目源碼中的系統(tǒng)的結(jié)構(gòu)示意圖一;
[0051]圖7為本發(fā)明一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法的結(jié)構(gòu)示意圖二。
【具體實(shí)施方式】
[0052]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法及系統(tǒng)進(jìn)行詳細(xì)說明。
[0053]實(shí)施例一
[0054]如圖1所示,一種APK應(yīng)用到安卓項(xiàng)目源碼中的方法,包括步驟:
[0055]讀取產(chǎn)品參數(shù);
[0056]判斷所述產(chǎn)品是否有對(duì)應(yīng)的應(yīng)用配置文件,如果有,獲取所述產(chǎn)品對(duì)應(yīng)的所述應(yīng)用配置文件,否則獲取通用的應(yīng)用配置文件并將其作為所述產(chǎn)品的應(yīng)用配置文件;
[0057]獲取所述產(chǎn)品所需要下載的預(yù)置應(yīng)用列表;
[0058]根據(jù)所述預(yù)置應(yīng)用列表中所有應(yīng)用的名稱,獲取FTP服務(wù)器上所述應(yīng)用相對(duì)應(yīng)的名稱;
[0059]從所述FTP服務(wù)器上下載所述應(yīng)用;
[0060]對(duì)所述應(yīng)用進(jìn)行解析并添加到源碼對(duì)應(yīng)目錄中;
[0061]生成所述應(yīng)用對(duì)應(yīng)的編譯控制文件。
[0062]除此之外,本實(shí)施例還包括步驟:
[0063]通過內(nèi)網(wǎng)架設(shè)FTP服務(wù)器,將需要內(nèi)置到系統(tǒng)中的APK(AndroidPackage)存放到文件服務(wù)器(FTP)對(duì)應(yīng)的目錄中。
[0064]具體來說,首先要讀取產(chǎn)品參數(shù),所述產(chǎn)品參數(shù)包括產(chǎn)品名稱(productname),判斷是否存在該產(chǎn)品相應(yīng)的應(yīng)用配置文件。如果有,則使用該產(chǎn)品的應(yīng)用配置文件(config_ftp-common, ini);否則,使用通用的應(yīng)用配置文件(config_ftp_common.1ni)作為該產(chǎn)品的應(yīng)用配置文件。
[0065]獲取了應(yīng)用配置文件后,根據(jù)所述應(yīng)用配置文件獲取所需的預(yù)置應(yīng)用列表。實(shí)際應(yīng)用中,如圖2所示,在該過程中,通過解析config_applist_*.1ni (*代表productname或common)文件,獲取預(yù)置應(yīng)用列表。在所述預(yù)置應(yīng)用列表中,存放項(xiàng)目需要集成的安卓應(yīng)用,以行為單位,每一行代表一個(gè)安卓應(yīng)用的名字。即所述預(yù)置應(yīng)用列表中存放所述產(chǎn)品需要集成的應(yīng)用的名稱,在所述預(yù)置應(yīng)用列表中,每一行存放一個(gè)所述應(yīng)用的名稱。根據(jù)所述預(yù)置應(yīng)用列表,從FTP服務(wù)器(File Transfer Protocol Server)上下載相對(duì)應(yīng)的所述應(yīng)用。
[0066]具體來說,根據(jù)所述預(yù)置應(yīng)用列表中所有應(yīng)用的名稱獲取FTP服務(wù)器上所述應(yīng)用相對(duì)應(yīng)的名稱的過程包括步驟:逐個(gè)解析所述應(yīng)用在服務(wù)器上的名稱。因?yàn)閷?duì)于同一個(gè)應(yīng)用,在本地和FTP服務(wù)器上的名稱可能不同,即FTP服務(wù)器上可能對(duì)該應(yīng)用另外取了別名。所以此時(shí)就需要對(duì)解析出該應(yīng)用在FTP服務(wù)器上的名稱,然后再從FTP服務(wù)器上下載所述應(yīng)用。在實(shí)際應(yīng)用中,如圖3所示,解析名稱的過程即為解析config_ftp_*.1ni(*代表productname 或 common)文本文件。
[0067]如圖4所示,從所述FTP服務(wù)器上下載所述應(yīng)用的過程包括步驟:
[0068]逐個(gè)判斷本地是否存在所述應(yīng)用的老版本;
[0069]如果存在,從所述FTP服務(wù)器上下載最新版本并刪除老版本;否則,直接從所述FTP服務(wù)器上下載最新版本;
[0070]判斷所述預(yù)置應(yīng)用列表中的所有應(yīng)用是否已經(jīng)完全下載完成;
[0071]如果沒有,返回步驟判斷本地是否存在所述應(yīng)用的老版本;否則,對(duì)所述應(yīng)用進(jìn)行解析并添加到源碼對(duì)應(yīng)目錄中。
[0072]具體來說,解析出所有所需應(yīng)用的名稱后,逐個(gè)的判斷本地是否存在所述應(yīng)用的老版本。如果存在,刪除老版本并從FTP服務(wù)器上下載最新版本;如果不存在,直接從FTP服務(wù)器上下載最新版本。下載完每一個(gè)應(yīng)用后,需要判斷所述預(yù)置應(yīng)用列表中的所有應(yīng)用是否已經(jīng)全部完畢,如果沒有就需要繼續(xù)判斷下一個(gè)應(yīng)用是否存在老版本并對(duì)其進(jìn)行下載,否則將所有所述應(yīng)用進(jìn)行解析并添加到源碼