亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

安裝文件的獲取方法和裝置與流程

文檔序號:11406876閱讀:228來源:國知局
安裝文件的獲取方法和裝置與流程

本發(fā)明涉及計算機領域,具體而言,涉及一種安裝文件的獲取方法和裝置。



背景技術:

為了避免頻繁的應用更新對用戶造成煩擾,插件開發(fā)技術顯得越來越重要。插件開發(fā)指將原本獨立的app(手機軟件application的縮寫)拆分成一個宿主app和多個插件app。插件app內置在宿主app中,手機安裝宿主app,在宿主app運行后會加載、安裝插件app。宿主app也可以通過從應用內部存儲目錄(如手機自帶內存的目錄)、外部存儲目錄(如sd卡的目錄)中加載插件app。對于應用提供方,可以通過網絡動態(tài)下發(fā)新的插件app,使得用戶無需安裝新的app,從而更新已安裝的app的功能或修復線上漏洞bug。

上述的宿主app是指在開發(fā)人員完成編碼后,編譯生成的能夠在移動設備(如android系統(tǒng)手機、ios系統(tǒng)手機等)上正常安裝并運行的安裝包。上述的插件app是指在編譯生成安裝包后,不能獨立運行而需要依托于宿主app才能運行的安裝包。

在編譯過程中,需要開發(fā)人員輸入相關命令分別對插件app所在的工程和宿主app所在的工程進行編譯,編譯過程中需要大量的重復勞動(如輸入編譯命令、調整文件位置等),且在開發(fā)階段,例如在界面開發(fā)、設計還原等需要頻繁查看界面效果的場景,往往會面臨只改1個像素,卻需要編譯整個項目(如宿主工程),進行效果的驗證查看,該驗證過程嚴重影響了項目進度,降低了開發(fā)效率,在修改其余參數時也面臨著同樣的窘境。

針對相關技術中在開發(fā)應用安裝包時開發(fā)編譯的效率較低的技術問題,目前尚未提出有效的解決方案。



技術實現(xiàn)要素:

本發(fā)明實施例提供了一種安裝文件的獲取方法和裝置,以至少解決相關技術中在開發(fā)應用安裝包時開發(fā)編譯的效率較低的技術問題。

根據本發(fā)明實施例的一個方面,提供了一種安裝文件的獲取方法,該方法包括:接收到編譯指令,其中,編譯指令用于指示對第一資源文件和第二資源文件進行編譯,得到待安裝的目標應用的安裝文件;在編譯指令的觸發(fā)下執(zhí)行對第一資源文件的編譯,得到目標應用的插件;在完成對第一資源文件的編譯之后,繼續(xù)執(zhí)行對第二資源文件和插件的編譯,得到目標應用的安裝文件。

根據本發(fā)明實施例的另一方面,還提供了一種安裝文件的獲取裝置,該裝置包括:接收單元,用于接收到編譯指令,其中,編譯指令用于指示對第一資源文件和第二資源文件進行編譯,得到待安裝的目標應用的安裝文件;第一編譯單元,用于在編譯指令的觸發(fā)下執(zhí)行對第一資源文件的編譯,得到目標應用的插件;第二編譯單元,用于在完成對第一資源文件的編譯之后,繼續(xù)執(zhí)行對第二資源文件和插件的編譯,得到目標應用的安裝文件。

在本發(fā)明實施例中,在接收到編譯指令時,通過在計算機上啟動的進程對第一資源文件進行編譯,得到目標應用的插件,并通過該進程對第二資源文件和得到的插件進行編譯,得到目標應用的安裝文件,而不用在編譯的過程中逐個輸入命令和相關參數,可以解決了相關技術中在開發(fā)應用安裝包時開發(fā)編譯的效率較低的技術問題,進而達到提高編譯效率的技術效果。

附圖說明

此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:

圖1是根據本發(fā)明實施例的安裝文件的獲取方法的硬件環(huán)境的示意圖;

圖2是根據本發(fā)明實施例的一種可選的安裝文件的獲取方法的流程圖;

圖3是根據本發(fā)明實施例的一種可選的安裝文件的獲取系統(tǒng)的示意圖;

圖4是根據本發(fā)明實施例的一種可選的安裝文件的獲取方法的流程圖;

圖5是根據本發(fā)明實施例的一種可選的gradle插件中代碼的示意圖;

圖6是根據本發(fā)明實施例的一種可選的gradle插件中代碼的示意圖;

圖7是根據本發(fā)明實施例的一種可選的gradle插件中代碼的示意圖;

圖8是根據本發(fā)明實施例的一種可選的編譯界面的示意圖;

圖9是根據本發(fā)明實施例的一種可選的安裝文件的獲取裝置的示意圖;以及

圖10是根據本發(fā)明實施例的一種終端的結構框圖。

具體實施方式

為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。

需要說明的是,本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。

首先,在對本發(fā)明實施例進行描述的過程中出現(xiàn)的部分名詞或者術語適用于如下解釋:

app:手機軟件application的縮寫。

宿主app:在開發(fā)人員完成編碼后,編譯生成能夠在移動設備(如android手機)上正常安裝并運行的安裝包。

插件app:編譯生成安裝包后,不能獨立運行,需要依托于宿主app才能運行的安裝包。

插件開發(fā):將原本獨立的app拆分成一個宿主app和多個插件app。插件app內置在宿主app中,手機安裝宿主app,在宿主app運行后會加載、安裝插件app。

實施例1

根據本發(fā)明實施例,提供了一種安裝文件的獲取方法的方法實施例。

可選地,在本實施例中,上述安裝文件的獲取方法可以應用于如圖1所示的由服務器102和終端104所構成的硬件環(huán)境中。如圖1所示,服務器102通過網絡與終端104進行連接,上述網絡包括但不限于:廣域網、城域網或局域網,終端104并不限定于pc、手機、平板電腦等。本發(fā)明實施例的安裝文件的獲取方法可以由服務器102來執(zhí)行,也可以由終端104來執(zhí)行,還可以是由服務器102和終端104共同執(zhí)行。其中,終端104執(zhí)行本發(fā)明實施例的安裝文件的獲取方法也可以是由安裝在其上的客戶端來執(zhí)行。

圖2是根據本發(fā)明實施例的一種可選的安裝文件的獲取方法的流程圖,如圖2所示,該方法可以包括以下步驟:

步驟s202,接收到編譯指令,編譯指令用于指示對第一資源文件和第二資源文件進行編譯,得到待安裝的目標應用的安裝文件;

步驟s204,在編譯指令的觸發(fā)下執(zhí)行對第一資源文件的編譯,得到目標應用的插件;

步驟s206,在完成對第一資源文件的編譯之后,繼續(xù)執(zhí)行對第二資源文件和插件的編譯,得到目標應用的安裝文件。

通過上述步驟s202至步驟s208,在接收到編譯指令時,通過在計算機上啟動的進程對第一資源文件進行編譯,得到目標應用的插件,并通過該進程對第二資源文件和得到的插件進行編譯,得到目標應用的安裝文件,而不用在編譯的過程中逐個輸入命令和相關參數,可以解決了相關技術中在開發(fā)應用安裝包時開發(fā)編譯的效率較低的技術問題,進而達到提高編譯效率的技術效果。

上述的第一資源文件為包括插件應用的源代碼的文件;第二資源文件為包括宿主應用的源代碼的文件;目標應用即得到的包括插件應用的宿主應用。

上述的進程可通過執(zhí)行預先定義好的任務腳本來完成對第一資源文件和第二資源文件的編譯,且預先制定的任務腳本中包括各種類型的應用安裝包(即安裝文件)開發(fā)所涉及的參數,在編譯過程中,可以根據源代碼文件中的相關參數在腳本中選擇對應的參數,從而可以使得任務腳本具備較強的適應性。

在任務腳本執(zhí)行完編譯之后,還可以通過任務腳本中的安裝命令自動將得到的目標應用的安裝文件安裝至移動終端側,便于對目標應用進行調試。

上述的目標應用是指安裝在移動終端上的應用,如安卓設備上的安卓應用、ios設備上ios應用等。本申請的上述方法可以在包括cpu等控制器的設備上執(zhí)行。

在本申請的技術方案中,應用開發(fā)工程師通過在終端terminal上點擊編譯按鈕(產生編譯指令),相應的任務就會自動執(zhí)行,每個插件工程生成對應的插件app,由于插件app并不能單獨運行,而需要依賴于宿主app運行,故可以通過任務自動將此插件app拷貝至宿主app所在工程內置的插件目錄,再通過相應的任務編譯宿主工程,生成可獨立運行的app(目標應用),并安裝到手機等移動設備上,在移動設備上運行該獨立的app,以對插件app的功能進行驗證,在驗證通過后即可發(fā)布。為了進一步詳述本申請的實施例,下面結合圖2詳述本申請的實施例:

在步驟s202提供的技術方案中,在接收到編譯指令之前,本申請的方法還包括:創(chuàng)建包括第一代碼集合的第一腳本(即上述的任務腳本),其中,第一代碼集合用于對第一資源文件進行編譯;創(chuàng)建包括第二代碼集合的第二腳本(即上述的任務腳本),其中,第二代碼集合用于對第二資源文件和插件進行編譯。

根據開發(fā)的過程,按照編譯步驟,將各個編譯步驟中需要使用的編譯命令直接以腳本命令的形式寫入腳本文件中,而無需在開發(fā)的過程中,由開發(fā)人員記住編譯步驟、以及各個編譯步驟中需要使用的編譯命令,每次完整的編譯都由開發(fā)人員花費時間去回想編譯命令、手動輸入編譯命令,避免大量的重復勞動,節(jié)省了工作人員寶貴的時間。

即使在項目中有新成員加入時,新成員也可快速上手,無需進行大量的培訓,只需要調用上述的腳本即可,而無需去了解編譯的過程,避免了整個項目的進度被影響。

當開發(fā)人員在編譯工具(如androidstudio)中點擊編譯按鈕時,隨即產生了一個編譯指令,該編譯指令可觸發(fā)本申請的編譯過程,也即可以自動運行目標應用的編譯和安裝的步驟。

上述的androidstudio是一個android集成開發(fā)工具,基于intellijidea。與eclipseadt類似,androidstudio提供了集成的android開發(fā)工具,可用于開發(fā)和調試。

可選地,為了提高與腳本之間的兼容度,在接收到編譯指令之前,本申請的方法還可以包括如下步驟:創(chuàng)建用于在編譯工具中運行的調用工具,其中,調用工具用于在編譯指令的觸發(fā)下,通過進程調用第一腳本和第二腳本提供的接口,以執(zhí)行第一代碼集合和第二代碼集合。

上述的調用工具可以在編譯工具中以插件的形式存在,該調用工具的功能包括檢測上述的編譯指令,在檢測到該命令的情況下,直接對第一腳本和第二腳本進行調用,具體是通過第一腳本和第二腳本提供的接口對其進行調用。

上述編譯工具中的調用工具可以在運行時創(chuàng)建一條進程(即本申請的所提及的進程),通過該進程專門處理資源文件的編譯,而不用與其它應用(如編譯工具)共用一條進程,可以提高處理效率。

在步驟s204提供的技術方案中,在編譯指令的觸發(fā)下執(zhí)行對第一資源文件的編譯包括:在進程上執(zhí)行第一代碼集合,以對第一資源文件進行編譯。

具體地,在進程上執(zhí)行第一代碼集合,以對第一資源文件進行編譯時,可以通過如下方式實現(xiàn):在進程上執(zhí)行第一代碼集合,以指示編譯工具對第一資源文件所在的項目(即插件工程或者插件項目)進行編譯,得到插件。

可選地,在插件為多個的情況下,在進程上執(zhí)行第一代碼集合是指:在進程的多個線程上執(zhí)行多個第一代碼集合,每個線程對應于一個插件的第一代碼集合,也即每個線程用于跑對應于一個插件的第一代碼集合,具體就是執(zhí)行第一代碼集合中的編譯命令,進而完成對各個第一資源文件的編譯。

為了進一步提高編譯的效率,上述的多個線程允許并行運行。

在步驟s206提供的技術方案中,繼續(xù)執(zhí)行對第二資源文件和插件的編譯包括:在進程上執(zhí)行第二代碼集合,以對第二資源文件和插件進行編譯。

需要說明的是,上述編譯得到的插件可以每次輸出時在指定的位置(便于編譯),也可以輸出至任意的位置。若上述的插件每次輸出的位置不同或者不滿足宿主工程的編譯需求,在進程上執(zhí)行第二代碼集合之前,可將編譯得到的插件存放至第二資源文件所在項目中與插件相關聯(lián)的位置。

在進程上執(zhí)行第二代碼集合,以對第二資源文件和插件進行編譯包括:在進程上執(zhí)行第二代碼集合,以指示編譯工具對第二資源文件所在的項目(即宿主工程或宿主項目)進行編譯。

需要說明的是,對于某些存在依賴文件的應用,還需要對這些依賴文件(即第三資源文件)進行相應的處理,在接收到編譯指令之后,通過計算機設備對第三資源文件進行打包,得到目標數據包,其中,第三資源文件為目標應用在運行時需要用到的資源文件。

例如,對于安卓應用而言,在androidlibrary中抽取android項目的通用功能,獨立成為一個組件,可供其它android項目使用,在應用編譯的過程中,可將上述androidlibrary導出為jar文件(全稱為javaarchive,即java歸檔文件),jar文件是與平臺無關的文件格式,它允許將許多文件組合成一個壓縮文件,主要是將編寫好的類,打包編譯獨立的jar包,供其它應用程序(即上述的目標應用)使用。

在得到目標應用的安裝文件和目標數據包之后,即可安裝目標應用的安裝文件至移動終端,以對目標應用進行測試。

相關技術中,在開發(fā)編譯插件app的過程中效率較低,在開發(fā)階段,例如在界面開發(fā)、設計還原等需要頻繁查看界面效果的場景,往往會面臨只改1個像素,卻需要編譯整個項目(宿主工程),驗證影響了項目進度,降低了開發(fā)效率,在修改其余參數時也面臨著同樣的窘境,由于不能修改單個插件工程,僅編譯單個插件并快速在手機驗證插件上功能,嚴重影響開發(fā)效率和開發(fā)人員的積極性。

而使用本申請?zhí)峁┑募夹g方案,在編譯驗證的過程中,僅僅只需要點擊編譯工具上的編譯按鈕,即可通過調用腳本的形式自動運行相關的指令,調用編譯工具進行編譯,并自動將安裝包安裝至移動設備上,方便開發(fā)人員及時查看修改后的效果。尤其是在頻繁修改,需要進行驗證的情況下,本申請可以極大的提高整個項目的進度。

為了進一步詳述本申請的實施例,下面以安卓應用(即目標應用)為例,結合圖3和圖4詳述本申請的實施例。

具體的思路如圖3所示:制定好編譯項目的命令協(xié)議,主要包括用于編譯插件項目的第一代碼集合、用于編譯宿主應用的第二代碼集合,編寫gradle插件(也即第一腳本和第二腳本),具體即將第一代碼集合和第二代碼集合植入腳本,在android項目根目錄的“build.gradle”文件中引入gradle插件。然后編寫run++插件(即編譯工具中的調用工具),在編譯平臺androidstudio中安裝run++插件,運行run++插件,選中需要編譯的項目,點擊run按鈕,開始編譯、安裝,此過程中可能會使用到依賴文件(即文件庫中的第三資源文件)。

上述的gradle插件是一個基于apacheant和apachemaven概念的項目自動化建構工具。它使用一種基于groovy的特定領域語言(dsl)來聲明項目設置,拋棄了基于xml的各種繁瑣配置。以面向java應用為主,當前其支持的語言限于java、groovy和scala,未來將支持更多的語言;同時gradle也是一個基于jvm的構建工具,是一款通用靈活的構建工具,支持maven、ivy倉庫,支持傳遞性依賴管理,而不需要遠程倉庫或者是pom.xml和ivy.xml配置文件,基于groovy、build腳本使用groovy編寫。

由此可見,使用gradle插件便于進行項目管理,使得構建更為靈活。

需要說明的是,對于ios等其它類型的應用而言,也可以選擇對應的工具應用來編譯腳本。

下面結合圖4詳述本申請的實現(xiàn)步驟:

步驟s402,定義編譯、安裝、啟動及導出jar包等命令協(xié)議。

將編譯、安裝、啟動及導出jar包等命令以及相互之間邏輯根據定義好。

步驟s404,基于第一步的協(xié)議,編寫gradle插件,提供gradle進行編譯的接口。

根據上述定義好的邏輯關系將編譯、安裝、啟動及導出jar包等命令編寫為gradle插件(即第一腳本和第二腳本)。

對于導出jar包、安裝應用相關的命令也可以一并寫入gradle插件中,以便于相關流程的自動運行。

上述的gradle插件提供有如下調用接口:

(1)assemblereleaserun接口:用于編譯宿主工程、插件工程,生成app(目標應用的安裝文件);

(2)installreleaserun接口:調用并安裝目標應用的安裝文件至手機;

(3)exportlibraryrun接口:用于導出jar,提供給宿主app或插件app使用。

步驟s406,在android項目中引入編寫的gradle插件。具體包括如下幾個子步驟:

步驟s4062,在android工程根目錄添加代碼依賴,具體代碼如圖5所示,圖5示出了一種可選地建立android工程根目錄的代碼依賴的代碼;

步驟s4064,在宿主工程聲明引入host插件,具體代碼如圖6所示;

步驟s4066,在宿主工程聲明引入plugin插件,具體代碼如圖7所示。

步驟s408,編寫androidstudio插件(即run++插件,也即調用工具),提供可視化操作界面。

對于工作人員而言,在使用本申請的技術方案進行應用驗證的過程中,先啟動編譯工具androidstudio,如圖8所示,安裝步驟s408編寫的androidstudio(即run++插件)插件,點擊工具欄編譯圖標,運行插件。插件啟動后,默認選中開發(fā)人員正在編輯的android工程,直接點擊“run”編譯當前工程。

圖8中,cdk為通用開發(fā)工具庫,host為宿主工程,jjc表示競技彩插件工程,kpc表示快頻彩插件工程,szc表示數字彩插件工程。library即為androidlibrary;plugin表示為插件工程;host表示為宿主工程。如圖8中所示,選中jjc插件工程,直接點擊“run”按鈕,即可快速安裝至手機。

需要說明的是,可以預先根據需求對重啟“restart”、配置“config”以及數據庫“database”進行配置。

如需要安裝應用后重啟移動設備,即可選中“restart”(即小框內存在符號“√”表示選中)。

在本申請的技術方案中,開發(fā)人員也可以選擇其它插件工程、宿主工程進行編譯,支持多插件并行編譯。整個編譯過程,不需要開發(fā)人員輸入任何編譯代碼,不需要思考編譯步驟,不需要等待逐個插件編譯。從而大大節(jié)省時間,提升工作效率。

通過本申請?zhí)峁┑膶嵤├瑢崿F(xiàn)了androidstudio編譯工具的可視化;提升了android開發(fā)人員進行插件開發(fā)的效率,減少編譯等待時間;本申請的技術方案簡單、易用,便于推廣。

需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。

通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。

實施例2

根據本發(fā)明實施例,還提供了一種用于實施上述安裝文件的獲取方法的安裝文件的獲取裝置。圖9是根據本發(fā)明實施例的一種可選的安裝文件的獲取裝置的示意圖,如圖9所示,該裝置可以包括:接收單元92、第一編譯單元94以及第二編譯單元96。

接收單元92,用于接收到編譯指令,編譯指令用于指示對第一資源文件和第二資源文件進行編譯,得到待安裝的目標應用的安裝文件;

第一編譯單元94,用于在編譯指令的觸發(fā)下執(zhí)行對第一資源文件的編譯,得到目標應用的插件;

第二編譯單元96,用于在完成對第一資源文件的編譯之后,繼續(xù)執(zhí)行對第二資源文件和插件的編譯,得到目標應用的安裝文件。

需要說明的是,該實施例中的接收單元92可以用于執(zhí)行本申請實施例1中的步驟s202,該實施例中的第一編譯單元94可以用于執(zhí)行本申請實施例1中的步驟s204,該實施例中的第二編譯單元96可以用于執(zhí)行本申請實施例1中的步驟s206。

此處需要說明的是,上述模塊與對應的步驟所實現(xiàn)的示例和應用場景相同,但不限于上述實施例1所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在如圖1所示的硬件環(huán)境中,可以通過軟件實現(xiàn),也可以通過硬件實現(xiàn)。

通過上述模塊,在接收到編譯指令時,通過在計算機上啟動的進程對第一資源文件進行編譯,得到目標應用的插件,并通過該進程對第二資源文件和得到的插件進行編譯,得到目標應用的安裝文件,而不用在編譯的過程中逐個輸入命令和相關參數,可以解決了相關技術中在開發(fā)應用安裝包時開發(fā)編譯的效率較低的技術問題,進而達到提高編譯效率的技術效果。

上述的第一資源文件為包括插件應用的源代碼的文件;第二資源文件為包括宿主應用的源代碼的文件;目標應用即得到的包括插件應用的宿主應用。

上述的進程可通過執(zhí)行預先定義好的任務腳本來完成對第一資源文件和第二資源文件的編譯,且預先制定的任務腳本中包括各種類型的應用安裝包(即安裝文件)開發(fā)所涉及的參數,在編譯過程中,可以根據源代碼文件中的相關參數在腳本中選擇對應的參數,從而可以使得任務腳本具備較強的適應性。

在任務腳本執(zhí)行完編譯之后,還可以通過任務腳本中的安裝命令自動將得到的目標應用的安裝文件安裝至移動終端側,便于對目標應用進行調試。

上述的目標應用是指安裝在移動終端上的應用,如安卓設備上的安卓應用、ios設備上ios應用等。本申請的上述方法可以在包括cpu等控制器的設備上執(zhí)行。

在本申請的技術方案中,應用開發(fā)工程師通過在終端terminal上點擊編譯按鈕(產生編譯指令),相應的任務就會自動執(zhí)行,每個插件工程生成對應的插件app,由于插件app并不能單獨運行,而需要依賴于宿主app運行,故可以通過任務自動將此插件app拷貝至宿主app所在工程內置的插件目錄,再通過相應的任務編譯宿主工程,生成可獨立運行的app(目標應用),并安裝到手機等移動設備上,在移動設備上運行該獨立的app,以對插件app的功能進行驗證,在驗證通過后即可發(fā)布。

可選地,本申請的裝置還可以包括:第一創(chuàng)建單元,用于在接收到編譯指令之前,創(chuàng)建包括第一代碼集合的第一腳本,其中,第一代碼集合用于對第一資源文件進行編譯;第二創(chuàng)建單元,用于創(chuàng)建包括第二代碼集合的第二腳本,其中,第二代碼集合用于對第二資源文件和插件進行編譯。

根據開發(fā)的過程,按照編譯步驟,將各個編譯步驟中需要使用的編譯命令直接以腳本命令的形式寫入腳本文件中,而無需在開發(fā)的過程中,由開發(fā)人員記住編譯步驟、以及各個編譯步驟中需要使用的編譯命令,每次完整的編譯都由開發(fā)人員花費時間去回想編譯命令、手動輸入編譯命令,避免大量的重復勞動,節(jié)省了工作人員寶貴的時間。

可選地,可以通過本申請的裝置包括的如下模塊提高與腳本之間的兼容度:第三創(chuàng)建單元,用于在接收到編譯指令之前,創(chuàng)建用于在編譯工具中運行的調用工具,其中,調用工具用于在編譯指令的觸發(fā)下,通過進程調用第一腳本和第二腳本提供的接口,以執(zhí)行第一代碼集合和第二代碼集合。

上述的調用工具可以在編譯工具中以插件的形式存在,該調用工具的功能包括檢測上述的編譯指令,在檢測到該命令的情況下,直接對第一腳本和第二腳本進行調用,具體是通過第一腳本和第二腳本提供的接口對其進行調用。

上述編譯工具中的調用工具可以在運行時創(chuàng)建一條進程(即本申請的所提及的進程),通過該進程專門處理資源文件的編譯,而不用與其它應用(如編譯工具)共用一條進程,可以提高處理效率。

可選地,第一編譯單元還用于在進程上執(zhí)行第一代碼集合,以對第一資源文件進行編譯。

具體地,第一編譯單元在進程上執(zhí)行第一代碼集合,以對第一資源文件進行編譯時,可以通過如下模塊實現(xiàn):第一編譯模塊,用于在進程上執(zhí)行第一代碼集合,以指示編譯工具對第一資源文件所在的項目進行編譯,得到插件。

可選地,第一編譯模塊還用于在插件為多個的情況下,在進程的多個線程上執(zhí)行多個第一代碼集合,其中,每個線程對應于一個插件的第一代碼集合。

為了進一步提高編譯的效率,上述的多個線程允許并行運行。

可選地,第二編譯單元還用于在進程上執(zhí)行第二代碼集合,以對第二資源文件和插件進行編譯。

需要說明的是,上述編譯得到的插件可以每次輸出時在指定的位置(便于編譯),也可以輸出至任意的位置。若上述的插件每次輸出的位置不同或者不滿足宿主工程的編譯需求,則在進程上執(zhí)行第二代碼集合之前,可通過第二編譯單元包括的保存模塊將編譯得到的插件存放至第二資源文件所在項目中與插件相關聯(lián)的位置。

可選地,第二編譯單元還可包括第二編譯模塊,用于在進程上執(zhí)行第二代碼集合,以指示編譯工具對第二資源文件所在的項目進行編譯。

需要說明的是,對于某些存在依賴文件的應用,還需要對這些依賴文件(即第三資源文件)進行相應的處理,具體通過該裝置的打包單元實現(xiàn),打包單元在接收到編譯指令之后,通過計算機設備對第三資源文件進行打包,得到目標數據包,其中,第三資源文件為目標應用在運行時需要用到的資源文件。

例如,對于安卓應用而言,在androidlibrary中抽取android項目的通用功能,獨立成為一個組件,可供其它android項目使用,在應用編譯的過程中,可將上述androidlibrary導出為jar文件(全稱為javaarchive,即java歸檔文件),jar文件是與平臺無關的文件格式,它允許將許多文件組合成一個壓縮文件,主要是將編寫好的類,打包編譯獨立的jar包,供其它應用程序(即上述的目標應用)使用。

在得到目標應用的安裝文件和目標數據包之后,可通過該裝置的安裝單元安裝目標應用的安裝文件至移動終端,以對目標應用進行測試。

相關技術中,在開發(fā)編譯插件app的過程中效率較低,在開發(fā)階段,例如在界面開發(fā)、設計還原等需要頻繁查看界面效果的場景,往往會面臨只改1個像素,卻需要編譯整個項目(宿主工程),驗證影響了項目進度,降低了開發(fā)效率,在修改其余參數時也面臨著同樣的窘境,由于不能修改單個插件工程,僅編譯單個插件并快速在手機驗證插件上功能,嚴重影響開發(fā)效率和開發(fā)人員的積極性。

而使用本申請?zhí)峁┑募夹g方案,在編譯驗證的過程中,僅僅只需要點擊編譯工具上的編譯按鈕,即可通過調用腳本的形式自動運行相關的指令,調用編譯工具進行編譯,并自動將安裝包安裝至移動設備上,方便開發(fā)人員及時查看修改后的效果。尤其是在頻繁修改,需要進行驗證的情況下,本申請可以極大的提高整個項目的進度。

此處需要說明的是,上述模塊與對應的步驟所實現(xiàn)的示例和應用場景相同,但不限于上述實施例1所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在如圖1所示的硬件環(huán)境中,可以通過軟件實現(xiàn),也可以通過硬件實現(xiàn),其中,硬件環(huán)境包括網絡環(huán)境。

實施例3

根據本發(fā)明實施例,還提供了一種用于實施上述安裝文件的獲取方法的服務器或終端。

圖10是根據本發(fā)明實施例的一種終端的結構框圖,如圖10所示,該終端可以包括:一個或多個(圖中僅示出一個)處理器1001、存儲器1003、以及傳輸裝置1005(如上述實施例中的發(fā)送裝置),如圖10所示,該終端還可以包括輸入輸出設備1007。

其中,存儲器1003可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的安裝文件的獲取方法和裝置對應的程序指令/模塊,處理器1001通過運行存儲在存儲器1003內的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數據處理,即實現(xiàn)上述的安裝文件的獲取方法。存儲器1003可包括高速隨機存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器1003可進一步包括相對于處理器1001遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至終端。上述網絡的實例包括但不限于互聯(lián)網、企業(yè)內部網、局域網、移動通信網及其組合。

上述的傳輸裝置1005用于經由一個網絡接收或者發(fā)送數據,還可以用于處理器與存儲器之間的數據傳輸。上述的網絡具體實例可包括有線網絡及無線網絡。在一個實例中,傳輸裝置1005包括一個網絡適配器(networkinterfacecontroller,nic),其可通過網線與其他網絡設備與路由器相連從而可與互聯(lián)網或局域網進行通訊。在一個實例中,傳輸裝置1005為射頻(radiofrequency,rf)模塊,其用于通過無線方式與互聯(lián)網進行通訊。

其中,具體地,存儲器1003用于存儲應用程序。

處理器1001可以通過傳輸裝置1005調用存儲器1003存儲的應用程序,以執(zhí)行下述步驟:接收到編譯指令,其中,編譯指令用于指示對第一資源文件和第二資源文件進行編譯,得到待安裝的目標應用的安裝文件;在編譯指令的觸發(fā)下執(zhí)行對第一資源文件的編譯,得到目標應用的插件;在完成對第一資源文件的編譯之后,繼續(xù)執(zhí)行對第二資源文件和插件的編譯,得到目標應用的安裝文件。

處理器1001還用于執(zhí)行下述步驟:創(chuàng)建包括第一代碼集合的第一腳本,其中,所述第一代碼集合用于對所述第一資源文件進行編譯;創(chuàng)建包括第二代碼集合的第二腳本,其中,所述第二代碼集合用于對所述第二資源文件和所述插件進行編譯。

采用本發(fā)明實施例,在接收到編譯指令時,通過在計算機上啟動的進程對第一資源文件進行編譯,得到目標應用的插件,并通過該進程對第二資源文件和得到的插件進行編譯,得到目標應用的安裝文件,而不用在編譯的過程中逐個輸入命令和相關參數,可以解決了相關技術中在開發(fā)應用安裝包時開發(fā)編譯的效率較低的技術問題,進而達到提高編譯效率的技術效果。

可選地,本實施例中的具體示例可以參考上述實施例1和實施例2中所描述的示例,本實施例在此不再贅述。

本領域普通技術人員可以理解,圖10所示的結構僅為示意,終端可以是智能手機(如android手機、ios手機等)、平板電腦、掌上電腦以及移動互聯(lián)網設備(mobileinternetdevices,mid)、pad等終端設備。圖10其并不對上述電子裝置的結構造成限定。例如,終端還可包括比圖10中所示更多或者更少的組件(如網絡接口、顯示裝置等),或者具有與圖10所示不同的配置。

本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設備相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:閃存盤、只讀存儲器(read-onlymemory,rom)、隨機存取器(randomaccessmemory,ram)、磁盤或光盤等。

實施例4

本發(fā)明的實施例還提供了一種存儲介質??蛇x地,在本實施例中,上述存儲介質可以用于執(zhí)行安裝文件的獲取方法的程序代碼。

可選地,在本實施例中,上述存儲介質可以位于上述實施例所示的網絡中的多個網絡設備中的至少一個網絡設備上。

可選地,在本實施例中,存儲介質被設置為存儲用于執(zhí)行以下步驟的程序代碼:

s11,接收到編譯指令,編譯指令用于指示對第一資源文件和第二資源文件進行編譯,得到待安裝的目標應用的安裝文件;

s12,在編譯指令的觸發(fā)下執(zhí)行對第一資源文件的編譯,得到目標應用的插件;

s13,在完成對第一資源文件的編譯之后,繼續(xù)執(zhí)行對第二資源文件和插件的編譯,得到目標應用的安裝文件。

可選地,存儲介質還被設置為存儲用于執(zhí)行以下步驟的程序代碼:

s21,創(chuàng)建包括第一代碼集合的第一腳本,其中,第一代碼集合用于對第一資源文件進行編譯;

s22,創(chuàng)建包括第二代碼集合的第二腳本,其中,第二代碼集合用于對第二資源文件和插件進行編譯。

可選地,本實施例中的具體示例可以參考上述實施例1和實施例2中所描述的示例,本實施例在此不再贅述。

可選地,在本實施例中,上述存儲介質可以包括但不限于:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。

上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。

上述實施例中的集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產品銷售或使用時,可以存儲在上述計算機可讀取的存儲介質中。基于這樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在存儲介質中,包括若干指令用以使得一臺或多臺計算機設備(可為個人計算機、服務器或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。

在本發(fā)明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。

在本申請所提供的幾個實施例中,應該理解到,所揭露的客戶端,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。

另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。

以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1