欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種自動(dòng)插樁編譯安裝方法及系統(tǒng)的制作方法

文檔序號(hào):8282097閱讀:1070來源:國知局
一種自動(dòng)插樁編譯安裝方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及應(yīng)用程序編譯相關(guān)技術(shù)領(lǐng)域,特別是一種自動(dòng)插粧編譯安裝方法及系統(tǒng)。
【背景技術(shù)】
[0002]程序插粧技術(shù)是在保證被測(cè)程序原有邏輯完整性的基礎(chǔ)上在程序中插入一些探針(又稱為“探測(cè)儀”),通過探針的執(zhí)行并拋出程序運(yùn)行的特征數(shù)據(jù),通過對(duì)這些數(shù)據(jù)的分析,可以獲得程序的控制流和數(shù)據(jù)流信息,進(jìn)而得到邏輯覆蓋等動(dòng)態(tài)信息,從而實(shí)現(xiàn)測(cè)試目的的方法。
[0003]然而,現(xiàn)有的插粧技術(shù),需要程序員或者測(cè)試人員往源代碼中寫入各種插粧命令,需要人力的頻繁設(shè)置操作并進(jìn)行編譯安裝,效率低下。

【發(fā)明內(nèi)容】

[0004]基于此,有必要針對(duì)現(xiàn)有技術(shù)的插粧需要人工寫入插粧命令及進(jìn)行編譯安裝的技術(shù)問題,提供一種自動(dòng)插粧編譯安裝方法及系統(tǒng)。
[0005]一種自動(dòng)插粧編譯安裝方法,包括:
[0006]覆蓋率功能添加步驟,包括:從指定的項(xiàng)目工程中查找主程序文件,在所述主程序文件中添加用于保存代碼覆蓋率結(jié)果的覆蓋率文件的保存位置,且添加當(dāng)程序異常退出時(shí),向所述保存位置的覆蓋率文件寫入覆蓋率數(shù)據(jù)的代碼,所述代碼覆蓋率結(jié)果在執(zhí)行覆蓋率統(tǒng)計(jì)功能后得到,獲取設(shè)備關(guān)聯(lián)文件,對(duì)所述設(shè)備關(guān)聯(lián)文件進(jìn)行解析得到設(shè)備關(guān)聯(lián)文件標(biāo)識(shí),獲取預(yù)設(shè)的設(shè)置開啟覆蓋率統(tǒng)計(jì)功能的編譯配置文件,執(zhí)行插粧處理步驟;
[0007]插粧處理步驟,包括:如果所述項(xiàng)目工程不需要進(jìn)行插粧,則執(zhí)行項(xiàng)目工程編譯步驟,否則將所述插粧文件加入所述項(xiàng)目工程,并在所述代碼文件中添加用于調(diào)用所述插粧文件代碼的插粧入口函數(shù),執(zhí)行項(xiàng)目工程編譯步驟;
[0008]項(xiàng)目工程編譯步驟,包括:根據(jù)獲取的項(xiàng)目工程目標(biāo)名稱對(duì)所述項(xiàng)目工程采用所述編譯配置文件進(jìn)行編譯得到經(jīng)過插粧的應(yīng)用程序,如果所述打包選項(xiàng)設(shè)置為需要打包,則執(zhí)行程序打包步驟,否則執(zhí)行程序安裝步驟;
[0009]程序打包步驟,包括:將編譯完的應(yīng)用程序打包成包文件;
[0010]程序安裝步驟,包括:獲取待安裝移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí),將所述經(jīng)過插粧的應(yīng)用程序安裝到由所述設(shè)備標(biāo)識(shí)指定的所述移動(dòng)設(shè)備上。
[0011]一種自動(dòng)插粧編譯安裝系統(tǒng),包括:
[0012]覆蓋率功能添加模塊,用于:從指定的項(xiàng)目工程中查找主程序文件,在所述主程序文件中添加用于保存代碼覆蓋率結(jié)果的覆蓋率文件的保存位置,且添加當(dāng)程序異常退出時(shí),向所述保存位置的覆蓋率文件寫入覆蓋率數(shù)據(jù)的代碼,所述代碼覆蓋率結(jié)果在執(zhí)行覆蓋率統(tǒng)計(jì)功能后得到,獲取設(shè)備關(guān)聯(lián)文件,對(duì)所述設(shè)備關(guān)聯(lián)文件進(jìn)行解析得到設(shè)備關(guān)聯(lián)文件標(biāo)識(shí),獲取預(yù)設(shè)的設(shè)置開啟覆蓋率統(tǒng)計(jì)功能的編譯配置文件,執(zhí)行插粧處理模塊;
[0013]插粧處理模塊,用于:如果所述項(xiàng)目工程不需要進(jìn)行插粧,則執(zhí)行項(xiàng)目工程編譯模塊,否則將所述插粧文件加入所述項(xiàng)目工程,并在所述代碼文件中添加用于調(diào)用所述插粧文件代碼的插粧入口函數(shù),執(zhí)行項(xiàng)目工程編譯模塊;
[0014]項(xiàng)目工程編譯模塊,用于:根據(jù)獲取的項(xiàng)目工程目標(biāo)名稱對(duì)所述項(xiàng)目工程采用所述編譯配置文件進(jìn)行編譯得到經(jīng)過插粧的應(yīng)用程序,如果所述打包選項(xiàng)設(shè)置為需要打包,則執(zhí)行程序打包模塊,否則執(zhí)行程序安裝模塊;
[0015]程序打包模塊,用于:將編譯完的應(yīng)用程序打包成包文件;
[0016]程序安裝模塊,用于:獲取待安裝移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí),將所述經(jīng)過插粧的應(yīng)用程序安裝到由所述設(shè)備標(biāo)識(shí)指定的所述移動(dòng)設(shè)備上。
[0017]本發(fā)明通過獲取插粧文件,將插粧文件的入口函數(shù)寫入代碼文件中,并將插粧文件加入項(xiàng)目工程后進(jìn)行編譯,則編譯后的應(yīng)用程序則能對(duì)插粧文件的代碼進(jìn)行調(diào)用,實(shí)現(xiàn)插粧功能。本發(fā)明自動(dòng)化執(zhí)行項(xiàng)目工程的插粧和編譯,提高了插粧編譯的效率。
【附圖說明】
[0018]圖1為本發(fā)明的一種自動(dòng)插粧編譯安裝方法的工作流程圖;
[0019]圖2為本發(fā)明最佳實(shí)施例的工作流程圖;
[0020]圖3為本發(fā)明的一種自動(dòng)插粧編譯安裝系統(tǒng)的結(jié)構(gòu)模塊圖。
【具體實(shí)施方式】
[0021]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)的說明。
[0022]如圖1所示為本發(fā)明的一種自動(dòng)插粧編譯安裝方法的工作流程圖,包括:
[0023]步驟S101,包括:從指定的項(xiàng)目工程中查找主程序文件,在所述主程序文件中添加用于保存代碼覆蓋率結(jié)果的覆蓋率文件的保存位置,且添加當(dāng)程序異常退出時(shí),向所述保存位置的覆蓋率文件寫入覆蓋率數(shù)據(jù)的代碼,所述代碼覆蓋率結(jié)果在執(zhí)行覆蓋率統(tǒng)計(jì)功能后得到,獲取設(shè)備關(guān)聯(lián)文件,對(duì)所述設(shè)備關(guān)聯(lián)文件進(jìn)行解析得到設(shè)備關(guān)聯(lián)文件標(biāo)識(shí),獲取預(yù)設(shè)的設(shè)置開啟覆蓋率統(tǒng)計(jì)功能的編譯配置文件,執(zhí)行步驟S102 ;
[0024]步驟S102,包括:如果所述項(xiàng)目工程不需要進(jìn)行插粧,則執(zhí)行步驟S103,否則將所述插粧文件加入所述項(xiàng)目工程,并在所述代碼文件中添加用于調(diào)用所述插粧文件代碼的插粧入口函數(shù),執(zhí)行步驟S103 ;
[0025]步驟S103,包括:根據(jù)獲取的項(xiàng)目工程目標(biāo)名稱對(duì)所述項(xiàng)目工程采用所述編譯配置文件進(jìn)行編譯得到經(jīng)過插粧的應(yīng)用程序,如果所述打包選項(xiàng)設(shè)置為需要打包,則執(zhí)行步驟S104,否則執(zhí)行步驟S105 ;
[0026]步驟S104,包括:將編譯完的應(yīng)用程序打包成包文件;
[0027]步驟S105,包括:獲取待安裝移動(dòng)設(shè)備的設(shè)備標(biāo)識(shí),將所述經(jīng)過插粧的應(yīng)用程序安裝到由所述設(shè)備標(biāo)識(shí)指定的所述移動(dòng)設(shè)備上。
[0028]其中,保存位置指定用于保存覆蓋率文件的位置,主程序文件對(duì)于1S項(xiàng)目及其他例如安卓項(xiàng)目來說,一般為main文件。同時(shí),將一段預(yù)先寫好的當(dāng)程序異常退出時(shí),向所述保存位置的覆蓋率文件寫入覆蓋率數(shù)據(jù)的代碼添加在main文件中,則當(dāng)應(yīng)用程序退出時(shí),會(huì)寫入覆蓋率數(shù)據(jù)。
[0029]在步驟S102中,當(dāng)需要進(jìn)行插粧,則獲取用戶預(yù)先生成的插粧文件,插粧文件包括用于插粧的代碼,同時(shí),用戶還需要指定具體的插粧入口函數(shù);在代碼文件中寫入相應(yīng)的插粧入口函數(shù),則在經(jīng)過步驟S103編譯后的應(yīng)用程序,在運(yùn)行至待插入位置時(shí),能通過插粧入口函數(shù)調(diào)用插粧文件的代碼,從而既實(shí)現(xiàn)覆蓋率功能,也實(shí)現(xiàn)插粧功能。
[0030]在其中一個(gè)實(shí)施例中,步驟S102,具體包括:
[0031]插粧文件獲取子步驟,包括:獲取用于對(duì)項(xiàng)目工程內(nèi)的代碼文件進(jìn)行插粧的插粧文件、用于調(diào)用所述插粧文件代碼的插粧入口函數(shù),以及所述插粧入口函數(shù)在所述代碼文件中的待插入位置;
[0032]插粧入口函數(shù)寫入子步驟,包括:在所述代碼文件的待插入位置寫入相應(yīng)的插粧入口函數(shù);
[0033]插粧文件添加子步驟,包括:將所述插粧文件加入所述項(xiàng)目工程。
[0034]本實(shí)施例,待插入位置由用戶指定。
[0035]優(yōu)選地,所述插粧入口函數(shù)寫入子步驟,具體包括:
[0036]獲取與所述待插入位置關(guān)聯(lián)的關(guān)鍵詞以及文件名;
[0037]在所述文件名對(duì)應(yīng)的代碼文件中查找所述關(guān)鍵詞,所述關(guān)鍵詞在所述文件名對(duì)應(yīng)的代碼文件中的位置為所述待插入位置;
[0038]在所述待插入位置插入所述插粧入口函數(shù)。
[0039]在步驟S102中,獲取用戶預(yù)先指定的關(guān)鍵詞,在文件中查找與關(guān)鍵詞匹配的位置,并插入插粧入口函數(shù)。
[0040]在其中一個(gè)實(shí)施例中,還包括:
[0041]在執(zhí)行步驟S103前,從所述項(xiàng)目工程中查找項(xiàng)目列表文件,設(shè)置開啟共享文件夾選項(xiàng),設(shè)置程序切換到后臺(tái)終止程序選項(xiàng)。
[0042]設(shè)置開啟共享文件夾選項(xiàng),用戶能夠查看應(yīng)用程序共享文件夾里的內(nèi)容,獲得覆蓋率文件,從而得到代碼覆蓋率結(jié)果。對(duì)于1S項(xiàng)目,用戶通過itunes獲得覆蓋率文件。
[0043]設(shè)置程序切換到后臺(tái)終止程序選項(xiàng),則當(dāng)用戶將應(yīng)用程序切換到后臺(tái)時(shí),應(yīng)用程序退出,觸發(fā)寫入覆蓋率數(shù)據(jù)的代碼,向覆蓋率文件寫入覆蓋率數(shù)據(jù)。對(duì)于1S項(xiàng)目,用戶通過home鍵將應(yīng)用程序切換到后臺(tái)。
[0044]本實(shí)施例的方式,方便用戶得到代碼覆蓋率結(jié)果。
[0045]在其中一個(gè)實(shí)施例中,所述步驟S104,具體包括:
[0046]將所述經(jīng)過插粧的應(yīng)用程序采用所述設(shè)備關(guān)聯(lián)文件標(biāo)識(shí)進(jìn)行打包后保存在所述項(xiàng)目工程中。其中,設(shè)備關(guān)聯(lián)文件,對(duì)于1S項(xiàng)目來說,具體為provis1n文件,是蘋果移動(dòng)設(shè)備app與設(shè)備相關(guān)聯(lián)的文件。
[0047]打包選項(xiàng)由用戶設(shè)置,對(duì)于1S項(xiàng)目來說,當(dāng)需要打包時(shí),則將應(yīng)用程序根據(jù)設(shè)備管理文件標(biāo)識(shí)(provis1n ID)打包保存,當(dāng)不需要打包時(shí),則將應(yīng)用程序直接安裝到移動(dòng)設(shè)備上。
[0048]如圖2所示為本發(fā)明最佳實(shí)施例的工作流程圖,對(duì)1S項(xiàng)目進(jìn)行插粧編譯,采用shell編寫代碼,包括:
[0049]步驟S201,shell讀取用戶傳入的參數(shù),包括參數(shù)1:項(xiàng)目工程路徑、參數(shù)2:項(xiàng)目工程的target名稱、參數(shù)3 provis1n文件路徑;
[0050]步驟S202,通過參數(shù)I找到.main文件,添加覆蓋率文件保存位置,以及異常退出時(shí),寫入覆蓋率數(shù)據(jù)的代碼,通過參數(shù)I找到項(xiàng)目inf0.pl is t文件,設(shè)置開啟共享文件夾選項(xiàng),設(shè)置按home鍵終止程序選項(xiàng),通過參數(shù)3獲取provis1n文件,并解析provis1n文件,獲取provis 1n id ;步驟S203,判斷是否需要插入插粧代碼,若需要,執(zhí)行步驟S204,否則執(zhí)行步驟S205 ;
[0051]步驟S204,獲取指定的插粧文件,利用mod-pbxproj-master將插粧文件添加到項(xiàng)目工程中,同時(shí)利用sed命令在指定的代碼文件中匹配關(guān)鍵詞,在關(guān)鍵詞所在的前一行或者后一行,添加插粧入口函數(shù);
[0052]步驟S205,進(jìn)入項(xiàng)目工程目錄,執(zhí)行xcode命令行工具xcodebuild,輸入?yún)?shù)2的target名稱、sdk版本號(hào)、模式、provis1n id、以及預(yù)先準(zhǔn)備的xcconf ig文件,執(zhí)
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
九龙城区| 丰台区| 水富县| 陵水| 乐至县| 修水县| 越西县| 乃东县| 神木县| 北安市| 高雄县| 南丹县| 桦川县| 错那县| 张家口市| 思茅市| 岳阳市| 仁怀市| 南投市| 韩城市| 连江县| 山东| 长岛县| 伊春市| 龙口市| 五大连池市| 香港| 孟村| 乌鲁木齐市| 三明市| 蕉岭县| 金阳县| 西乡县| 紫金县| 台中县| 商水县| 万州区| 奇台县| 乌审旗| 景德镇市| 龙川县|