TW201818242A - 外掛程式化打包方法、裝置、終端及存儲介質 - Google Patents
外掛程式化打包方法、裝置、終端及存儲介質 Download PDFInfo
- Publication number
- TW201818242A TW201818242A TW106138714A TW106138714A TW201818242A TW 201818242 A TW201818242 A TW 201818242A TW 106138714 A TW106138714 A TW 106138714A TW 106138714 A TW106138714 A TW 106138714A TW 201818242 A TW201818242 A TW 201818242A
- Authority
- TW
- Taiwan
- Prior art keywords
- plug
- packaged
- host
- information
- compilation
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一種外掛程式化打包方法、裝置、終端及存儲介質。該方法包括:獲取編譯宿主工程的原始碼得到的可執行檔;獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫;以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式;將編譯後的需打包的外掛程式存入宿主工程的資源;將該可執行檔以及宿主工程的資源一起打包成apk包。通過上述方法能夠提高整個apk的打包速度。
Description
本發明實施例屬於軟體領域,尤其是關於一種外掛程式化打包方法、裝置、終端及存儲介質。
一個大的代碼專案,若每次都需要重新編譯,打包,測試,則會變得非常複雜而且重複,ant作為一個流程腳本引擎,用於自動化調用程式完成專案的編譯,打包,測試等。
目前,Android系統中,Ant作為Android應用程式的主流打包工具,對多外掛程式應用的支援不好,其通常需要手動編譯各外掛程式,以及需要融合多外掛程式的主工程,因此導致整個ant打包的速度過慢,效率低下。
本發明實施例提供了一種外掛程式化打包方法、裝置、終端及存儲介質,旨在解決現有的Android系統中,採用ant方式打包時,打包速度過慢的問題。
本發明實施例第一方面,提供了一種外掛程式化打包方法,該方法包括:獲取編譯宿主工程的原始碼得到的可執行檔;獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫;以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式;將編譯後的需打包的外掛程式存入宿主工程的資源;將該可執行檔以及宿主工程的資源一起打包成apk包。
本發明實施例的第二方面,提供一種外掛程式化打包裝置,該裝置包括:可執行檔獲取單元,用於獲取編譯宿主工程的原始碼得到的可執行檔;宿主工程基礎庫獲取單元,用於獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫;外掛程式編譯單元,用於以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式;編譯後的外掛程式存儲單元,用於將編譯後的需打包的外掛程式存入宿主工程的資源;Apk包生成單元,用於將該可執行檔以及宿主工程的資源一起打包成apk包。
本發明實施例的協力廠商面,提供一種終端,該終端包括處理器、記憶體; 該記憶體用於存儲一種外掛程式化打包系統,該外掛程式化打包系統包括至少一個可被處理器所執行的程式指令。
該處理器,用於執行該外掛程式化打包系統的程式指令,以執行以下步驟:獲取編譯宿主工程的原始碼得到的可執行檔;獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫;以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式;將編譯後的需打包的外掛程式存入宿主工程的資源;將該可執行檔以及宿主工程的資源一起打包成apk包。
本發明實施例的第四方面,提供一種非暫態電腦可讀存儲介質,該非暫態電腦可讀存儲介質存儲可由一個或多個處理器執行的指令以執行操作,該操作包括:獲取編譯宿主工程的原始碼得到的可執行檔;獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫;以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式;將編譯後的需打包的外掛程式存入宿主工程的資源;將該可執行檔以及宿主工程的資源一起打包成apk包。
在本發明實施例中,由於採用多執行緒分別編譯需打包的外掛程式,因此,能夠提高各個外掛程式的編譯速度,進而提高整個apk的打 包速度。
S11-S15‧‧‧步驟
2‧‧‧外掛程式化打包裝置
21‧‧‧可執行檔獲取單元
22‧‧‧宿主工程基礎庫獲取單元
23‧‧‧外掛程式編譯單元
24‧‧‧編譯後的外掛程式存儲單元
25‧‧‧Apk包生成單元
3‧‧‧終端
31‧‧‧處理器
32‧‧‧輸入設備
33‧‧‧記憶體
圖1是本發明第一實施例提供的一種外掛程式化打包方法的流程圖;圖2是本發明第二實施例提供的一種外掛程式化打包裝置的結構圖;圖3是本發明第三實施例提供的一種終端的結構圖。
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
本發明實施例中,獲取編譯宿主工程的原始碼得到的可執行檔,獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫,以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式,將編譯後的需打包的外掛程式存入宿主工程的資源,將該可執行檔以及宿主工程的資源一起打包成apk包。
為了說明本發明所述的技術方案,下面通過具體實施例來進行說明。
實施例一:
圖1示出了本發明第一實施例提供的一種外掛程式化打包方法的流程圖,詳述如下:步驟S11,獲取編譯宿主工程的原始碼得到的可執行檔。
其中,這裡的可執行檔可為多個,如為dex類型的可執行檔,一個或多個dex檔可組成一個dex包。
具體地,確定需編譯的原始碼對應的宿主工程(如通過宿主工程的唯一標識和/或版本號等確定),再對宿主工程的原始碼(該原始碼可為java代碼)進行編譯,編譯宿主工程的原始碼後獲得對應的可執行檔。
需要指出的是,該步驟S11與後續的步驟S12至步驟S14並無固定的先後順序,即步驟S11並非一定要在步驟S12至步驟S14之前執行。
步驟S12,獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫。
該宿主工程基礎庫包括編譯後的至少一個公共基礎方法,該公共基礎方法包括編譯外掛程式所需的公共基礎方法,也包括編譯宿主工程所需的公共基礎方法。
其中,該步驟S12具體包括:A1、獲取環境資訊、版本資訊以及編譯工具。該版本資訊包括宿主工程的版本號。其中,環境資訊包括測試環境、灰度環境、生產環境等,不同的環境對應不同的伺服器,而由於不同伺服器存儲的資料通常是不同的,因此通過不同的伺服器可獲取到不同的資料;其中,版本資訊是指宿主工程的版本號等資訊;A2、根據該環境資訊和版本資訊獲取至少一個公共基礎方法。由於後續對外掛程式進行編譯時,需要依賴宿主工程基礎庫的公共基礎方法,因此,為了後續能夠準確、快速地對外掛程式進行編譯,因此,需要獲取至少一個 公共基礎方法;A3、根據該編譯工具編譯該公共基礎方法,得到宿主工程基礎庫。
可選地,由於通過某個環境獲取的公共基礎方法中可能不包括後續編譯所有外掛程式所需的一種或多種方法,因此,為了後續能夠準確編譯所有外掛程式,則在該A2之後,包括:判斷獲取的公共基礎方法是否包括指定的公共基礎方法,若不包括,則提示更換環境資訊和版本資訊,以通過更換後的環境資訊和版本資訊獲取指定的公共基礎方法。其中,指定的公共基礎方法為後續編譯所有外掛程式所需的方法,指定的公共基礎方法的個數與後續需編譯的外掛程式(即為需打包的外掛程式)的個數有關,其可為一個,也可為多個。具體地,由於不同環境資訊和版本資訊對應的伺服器是不同的,而不同的伺服器存儲的資料通常是不同的,因此,當通過一個環境資訊和版本資訊獲取的公共基礎方法沒有包括指定的公共基礎方法時,需要更換其他的環境資訊和版本資訊,並在更換後的環境資訊和版本資訊對應的伺服器中再次判斷獲取的公共基礎方法是否包括指定的公共基礎方法。
步驟S13,以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式。
該步驟中,依賴宿主工程基礎庫中的公共基礎方法,分別編譯需打包的外掛程式。在需打包的外掛程式的個數有多個時,採用至少2個執行緒分別編譯需打包的外掛程式。需要指出的是,用於編譯的執行緒的個數小於或等於需打包的外掛程式的個數,當用於編譯的執行緒的個數等於需打包的外掛程式的個數時,一個執行緒編譯一個需打包的外掛程式;當用 於編譯的執行緒的個數小於需打包的外掛程式的個數時,預先為需打包的外掛程式設置的優先順序,再根據需打包的外掛程式的優先順序高低,優先編譯優先順序高的需打包的外掛程式。
其中,該步驟S13具體包括:B1、判斷需打包的外掛程式是否為最新版本的外掛程式。具體地,預先配置一個外掛程式資訊表,該外掛程式資訊表包括外掛程式的唯一標識,當外掛程式的資訊(如外掛程式的版本號或外掛程式的描述資訊)更新時,同步更新該外掛程式資訊表。當確定需打包的外掛程式後,將需打包的外掛程式的唯一標識與外掛程式資訊表中的外掛程式的唯一標識比較,並在匹配到相同的外掛程式的唯一標識後,判斷該相同的外掛程式的唯一標識對應的外掛程式資訊是否有更新,若沒有更新,則判定該相同的外掛程式的唯一標識對應的外掛程式為最新版本的外掛程式,否則,判定該相同的外掛程式的唯一標識對應的外掛程式不為最新版本的外掛程式;B2、在需打包的外掛程式為最新版本的外掛程式時,以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式。
需要指出的是,當需打包的外掛程式存在不是最新版本的外掛程式時,提示用戶選擇最新版本的外掛程式,再採用多執行緒分別編譯用戶選擇的最新版本的外掛程式。
步驟S14,將編譯後的需打包的外掛程式存入宿主工程的資源。
其中,這裡的宿主工程可以理解為主工程,主應用,在宿主工程的資源中,可能還包括圖片、字串等資源。
具體地,將編譯後的需打包的外掛程式存入宿主工程指定的目錄下。
可選地,為便於用戶查看,可壓縮編譯後的需打包的外掛程式後再存入宿主工程指定的目錄下。
步驟S15,將該可執行檔以及宿主工程的資源一起打包成apk包。
其中,apk包為Android安裝包。
需要指出的是,這裡宿主工程的資源除了包括編譯後的需打包的外掛程式,也包括宿主工程的其他資源,如宿主工程的圖片、字串等資源。
可選地,為了提高apk包的安全性,在該步驟S15之後,包括:對該apk包進行簽名,得到簽名後的apk包。
具體地,在對apk包進行簽名之前,可對apk包的內容進行混淆操作,再對進行混淆操作後的apk包進行簽名,以進一步提高apk包的安全性。
本發明第一實施例中,獲取編譯宿主工程的原始碼得到的可執行檔,獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫,以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式,將編譯後的需打包的外掛程式存入宿主工程的資源,將該可執行檔以及宿主工程的資源一起打包成apk包。由於採用多執行緒分別編譯需打包的外掛程式,因此,能夠提高各個外掛程式的編譯速度,進而提高整個apk的打包速度。
應理解,在本發明實施例中,上述各過程的序號的大小並不意味著執行順序的先後,各過程的執行順序應以其功能和內在邏輯確定,而不應對本發明實施例的實施過程構成任何限定。
實施例二:
圖2示出了本發明第二實施例提供的一種外掛程式化打包裝置的結構圖,該外掛程式化打包裝置可應用於各種移動終端中,該移動終端可以包括經無線接入網RAN與一個或多個核心網進行通信的使用者設備,該使用者設備可以是行動電話(或稱為「蜂窩」電話)、具有移動設備的電腦等,例如,使用者設備還可以是可攜式、袖珍式、掌上型、電腦內置的或者車載的移動裝置,它們與無線接入網交換語音和/或資料。又例如,該移動設備可以包括智慧手機、平板電腦、家教機、個人數位助理PDA、銷售終端POS或車載電腦等。為了便於說明,僅示出了與本發明實施例相關的部分。
該外掛程式化打包裝置2包括:可執行檔獲取單元21、宿主工程基礎庫獲取單元22、外掛程式編譯單元23、編譯後的外掛程式存儲單元24、Apk包生成單元25。其中:可執行檔獲取單元21,用於獲取編譯宿主工程的原始碼得到的可執行檔。
其中,這裡的可執行檔可為多個,如為dex類型的可執行檔,一個或多個dex檔可組成一個dex包。
宿主工程基礎庫獲取單元22,用於獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫。
該宿主工程基礎庫包括編譯後的至少一個公共基礎方法,該公共基礎方法包括編譯外掛程式所需的公共基礎方法,也包括編譯宿主工程所需的公共基礎方法。
該宿主工程基礎庫獲取單元22包括:環境資訊獲取模組,用於獲取環境資訊、版本資訊以及編譯工具。該版本資訊包括宿主工程的版本號。其中,環境資訊包括測試環境、灰度環境、生產環境等,不同的環境對應不同的伺服器,而由於不同伺服器存儲的資料通常是不同的,因此通過不同的伺服器可獲取到不同的資料;其中,版本資訊是指宿主工程的版本號等資訊。
公共基礎方法獲取模組,用於根據該環境資訊和版本資訊獲取至少一個公共基礎方法。
宿主工程基礎庫生成模組,用於根據該編譯工具編譯該公共基礎方法,得到宿主工程基礎庫。
可選地,由於通過某個環境獲取的公共基礎方法中可能不包括後續編譯所有外掛程式所需的一種或多種方法,因此,為了後續能夠準確編譯所有外掛程式,該外掛程式化打包裝置包括:公共基礎方法匹配單元,用於判斷獲取的公共基礎方法是否包括指定的公共基礎方法,若不包括,則提示更換環境資訊和版本資訊,以通過更換後的環境資訊和版本資訊獲取指定的公共基礎方法。
其中,指定的公共基礎方法為後續編譯所有外掛程式所需的方法,指定的公共基礎方法的個數與後續需編譯的外掛程式(即為需打包的外掛程式)的個數有關,其可為一個,也可為多個。具體地,由於不同環境 資訊和版本資訊對應的伺服器是不同的,而不同的伺服器存儲的資料通常是不同的,因此,當通過一個環境資訊和版本資訊獲取的公共基礎方法沒有包括指定的公共基礎方法時,需要更換其他的環境資訊和版本資訊,並在更換後的環境資訊和版本資訊對應的伺服器中再次判斷獲取的公共基礎方法是否包括指定的公共基礎方法。
外掛程式編譯單元23,用於以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式。
需要指出的是,用於編譯的執行緒的個數小於或等於需打包的外掛程式的個數,當用於編譯的執行緒的個數等於需打包的外掛程式的個數時,一個執行緒編譯一個需打包的外掛程式;當用於編譯的執行緒的個數小於需打包的外掛程式的個數時,預先為需打包的外掛程式設置的優先順序,再根據需打包的外掛程式的優先順序高低,優先編譯優先順序高的需打包的外掛程式。
可選地,該外掛程式編譯單元23具體包括:外掛程式版本判斷模組,用於判斷需打包的外掛程式是否為最新版本的外掛程式。具體地,預先配置一個外掛程式資訊表,該外掛程式資訊表包括外掛程式的唯一標識,當外掛程式的資訊(如外掛程式的版本號或外掛程式的描述資訊)更新時,同步更新該外掛程式資訊表。當確定需打包的外掛程式後,將需打包的外掛程式的唯一標識與外掛程式資訊表中的外掛程式的唯一標識比較,並在匹配到相同的外掛程式的唯一標識後,判斷該相同的外掛程式的唯一標識對應的外掛程式資訊是否有更新,若沒有更新,則判定該相同的外掛程式的唯一標識對應的外掛程式為最新版本的外掛程式,否 則,判定該相同的外掛程式的唯一標識對應的外掛程式不為最新版本的外掛程式。
最新外掛程式編譯模組,用於在需打包的外掛程式為最新版本的外掛程式時,以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式。
需要指出的是,當需打包的外掛程式存在不是最新版本的外掛程式時,提示用戶選擇最新版本的外掛程式,再採用多執行緒分別編譯用戶選擇的最新版本的外掛程式。
編譯後的外掛程式存儲單元24,用於將編譯後的需打包的外掛程式存入宿主工程的資源。
其中,這裡的宿主工程可以理解為主工程,主應用,在宿主工程的資源中,可能還包括圖片、字串等資源。
具體地,將編譯後的需打包的外掛程式存入宿主工程指定的目錄下。
可選地,為便於用戶查看,可壓縮編譯後的需打包的外掛程式後再存入宿主工程指定的目錄下。
Apk包生成單元25,用於將該可執行檔以及宿主工程的資源一起打包成apk包。
可選地,該外掛程式化打包裝置包括:Apk包簽名單元,用於對該apk包進行簽名,得到簽名後的apk包。
具體地,在對apk包進行簽名之前,可對apk包的內容進行混淆操作,再對進行混淆操作後的apk包進行簽名,以進一步提高apk包的 安全性。
本發明第二實施例中,由於採用多執行緒分別編譯需打包的外掛程式,因此,能夠提高各個外掛程式的編譯速度,進而提高整個apk的打包速度。
應該理解到,所揭露的裝置可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,該單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或元件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些介面,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
實施例三:
圖3示出了本發明第三實施例提供的一種終端的結構圖,該終端可以包括經無線接入網RAN與一個或多個核心網進行通信的使用者設備,該使用者設備可以是行動電話(或稱為「蜂窩」電話)、具有移動設備的電腦等,例如,使用者設備還可以是可?式、袖珍式、掌上型、電腦內置的或者車載的移動裝置,它們與無線接入網交換語音和/或資料。又例如,該移動設備可以包括智慧手機、平板電腦、家教機、個人數位助理PDA、銷售終端POS或車載電腦等。為了便於說明,僅示出了與本發明實施例相關的部分。需要指出的是,當該終端為手機時,該手機包括:射頻(Radio Frequency,RF)電路、記憶體、輸入單元、顯示單元、感測器、音訊電路、無線模組、處理器、以及電源等部件。
該終端3包括:一個或多個處理器31(圖中僅示出一個)、一個或多個輸入設備32(圖中僅示出一個)以及記憶體33。其中:該記憶體33用於存儲一種外掛程式化打包系統,該外掛程式化打包系統包括至少一個可被處理器所執行的程式指令;該處理器31,用於執行該外掛程式化打包系統的程式指令,以執行以下步驟:獲取編譯宿主工程的原始碼得到的可執行檔;獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫;以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式;將編譯後的需打包的外掛程式存入宿主工程的資源;將該可執行檔以及宿主工程的資源一起打包成apk包。
可選地,獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫包括:獲取環境資訊、版本資訊以及編譯工具,該版本資訊包括宿主工程的版本號;根據該環境資訊和版本資訊獲取至少一個公共基礎方法;根據該編譯工具編譯該公共基礎方法,得到宿主工程基礎庫。
可選地,前述以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式,包括:判斷需打包的外掛程式是否為最新版本的外掛程式;在需打包的外掛程式為最新版本的外掛程式時,以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式。
可選地,在前述根據該環境資訊和版本資訊獲取至少一個公 共基礎方法之後,該處理器還用於執行該業務資料處理系統的程式指令,以執行以下步驟:判斷獲取的公共基礎方法是否包括指定的公共基礎方法,若不包括,則提示更換環境資訊和版本資訊,以通過更換後的環境資訊和版本資訊獲取指定的公共基礎方法。
可選地,在前述將該可執行檔以及宿主工程的資源一起打包成apk包之後,該處理器還用於執行該業務資料處理系統的程式指令,以執行以下步驟: 對該apk包進行簽名,得到簽名後的apk包。
本發明第三實施例中,由於採用多執行緒分別編譯需打包的外掛程式,因此,能夠提高各個外掛程式的編譯速度,進而提高整個apk的打包速度。
應當理解,在本發明實施例中,處理器31可以是中央處理單元(Central Processing Unit,CPU),該處理器還可以是其他通用處理器、數位訊號處理器(Digital Signal Processor,DSP)、專用積體電路(Application Specific Integrated Circuit,ASIC)、現成可程式設計閘陣列(Field-Programmable Gate Array,FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。
輸入設備32可以包括觸控板、指紋采感測器(用於採集使用者的指紋資訊和指紋的方向資訊)、麥克風、資料接收介面等。輸出設備可以包括顯示器(LCD等)、揚聲器、資料發送介面等。
該記憶體33可以包括唯讀記憶體和隨機存取記憶體,並向處理器31提供指令和資料。記憶體33的一部分還可以包括非易失性隨機存取記憶體。例如,記憶體33還可以存放裝置類型的資訊。
可選地,該終端3還包括顯示器,該顯示器可用於顯示由使用者輸入的資訊或提供給使用者的資訊等。顯示器可包括顯示面板,可選的,可以採用液晶顯示器(Liquid Crystal Display,LCD)、有機發光二極體(Organic Light-Emitting Diode,OLED)等形式來配置顯示面板。進一步的,該顯示器還可包括觸控面板,該觸控面板可覆蓋顯示面板,當觸控面板檢測到在其上或附近的觸摸操作後,傳送給處理器31以確定觸摸事件的類型,隨後處理器31根據觸摸事件的類型在顯示面板上提供相應的視覺輸出。
具體實現中,本發明實施例中所描述的處理器31、輸入設備32、輸出設備、記憶體33和顯示器可執行本發明實施例提供的外掛程式化打包方法的實施例中所描述的實現方式,也可執行實施例二該終端中所描述的實現方式,在此不再贅述。
本發明實施例還提供了一種非暫態電腦可讀存儲介質,其特徵在於,該非暫態電腦可讀存儲介質存儲可由一個或多個處理器執行的指令以執行操作,該操作包括:獲取編譯宿主工程的原始碼得到的可執行檔;獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫;以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式; 將編譯後的需打包的外掛程式存入宿主工程的資源;將該可執行檔以及宿主工程的資源一起打包成apk包。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及演算法步驟,能夠以電子硬體、或者電腦軟體和電子硬體的結合來實現。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。
該功能如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個電腦可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟體產品的形式體現出來,該電腦軟體產品存儲在一個存儲介質中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本發明各個實施例該方法的全部或部分步驟。而前述的存儲介質包括:隨身碟、移動硬碟、唯讀記憶體(ROM,Read-Only Memory)、隨機存取記憶體(RAM,Random Access Memory)、磁碟或者光碟等各種可以存儲程式碼的介質。
以上所述,僅為本發明的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應該以申請專利範圍的保護範圍為准。
Claims (10)
- 一種外掛程式化打包方法,其特徵在於,該方法包括:獲取編譯宿主工程的原始碼得到的可執行檔;獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫;以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式;將編譯後的需打包的外掛程式存入宿主工程的資源;將該可執行檔以及宿主工程的資源一起打包成apk包。
- 如請求項1所述的外掛程式化打包方法,其中,該獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫,包括:獲取環境資訊、版本資訊以及編譯工具,該版本資訊包括宿主工程的版本號;根據該環境資訊和版本資訊獲取至少一個公共基礎方法;根據該編譯工具編譯該公共基礎方法,得到宿主工程基礎庫。
- 如請求項2所述的外掛程式化打包方法,其中,在前述根據該環境資訊和版本資訊獲取至少一個公共基礎方法之後,包括:判斷獲取的公共基礎方法是否包括指定的公共基礎方法,若不包括,則提示更換環境資訊和版本資訊,以通過更換後的環境資訊和版本資訊獲取指定的公共基礎方法。
- 如請求項1至3中任一項所述的外掛程式化打包方法,其中,在前述將該可執行檔以及宿主工程的資源一起打包成apk包之後,包括:對該apk包進行簽名,得到簽名後的apk包。
- 如請求項1至3中任一項所述的外掛程式化打包方法,其中,前述以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式,包括:判斷需打包的外掛程式是否為最新版本的外掛程式;在需打包的外掛程式為最新版本的外掛程式時,以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式。
- 一種終端,其特徵在於,該終端包括處理器、記憶體;該記憶體用於存儲一種外掛程式化打包系統,該外掛程式化打包系統包括至少一個可被處理器所執行的程式指令;該處理器,用於執行該外掛程式化打包系統的程式指令,以執行以下步驟:獲取編譯宿主工程的原始碼得到的可執行檔;獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫;以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式;將編譯後的需打包的外掛程式存入宿主工程的資源;將該可執行檔以及宿主工程的資源一起打包成apk包。
- 如請求項6所述的終端,其中,該獲取包括編譯後的至少一個公共基礎方法的宿主工程基礎庫,具體包括:獲取環境資訊、版本資訊以及編譯工具,該版本資訊包括宿主工程的版本號;根據該環境資訊和版本資訊獲取至少一個公共基礎方法; 根據該編譯工具編譯該公共基礎方法,得到宿主工程基礎庫。
- 如請求項7所述的終端,其中,在前述根據該環境資訊和版本資訊獲取至少一個公共基礎方法之後,該處理器還用於執行該業務資料處理系統的程式指令,以執行以下步驟:判斷獲取的公共基礎方法是否包括指定的公共基礎方法,若不包括,則提示更換環境資訊和版本資訊,以通過更換後的環境資訊和版本資訊獲取指定的公共基礎方法。
- 如請求項6至8中任一項所述的終端,其中,在前述將該可執行檔以及宿主工程的資源一起打包成apk包之後,該處理器還用於執行該業務資料處理系統的程式指令,以執行以下步驟:對該apk包進行簽名,得到簽名後的apk包。
- 如請求項6至8中任一項所述的終端,其中,前述以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式,包括:判斷需打包的外掛程式是否為最新版本的外掛程式;在需打包的外掛程式為最新版本的外掛程式時,以該宿主工程基礎庫為依據,採用多執行緒分別編譯需打包的外掛程式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201611005684.X | 2016-11-14 | ||
CN201611005684.X | 2016-11-14 | ||
CN201611005684.XA CN106569869B (zh) | 2016-11-14 | 2016-11-14 | 插件化打包方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201818242A true TW201818242A (zh) | 2018-05-16 |
TWI679578B TWI679578B (zh) | 2019-12-11 |
Family
ID=58542323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106138714A TWI679578B (zh) | 2016-11-14 | 2017-11-09 | 外掛程式化打包方法、裝置、終端及存儲介質 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10387169B2 (zh) |
EP (1) | EP3540594A4 (zh) |
JP (1) | JP6518794B2 (zh) |
KR (1) | KR102096195B1 (zh) |
CN (1) | CN106569869B (zh) |
AU (1) | AU2017258904B2 (zh) |
SG (1) | SG11201709274UA (zh) |
TW (1) | TWI679578B (zh) |
WO (1) | WO2018086268A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463406A (zh) * | 2017-08-08 | 2017-12-12 | 上海连尚网络科技有限公司 | 发布移动应用的方法和电子设备 |
CN107870789B (zh) * | 2017-10-18 | 2021-01-26 | 福建天泉教育科技有限公司 | 一种打包插件的方法及终端 |
CN109918075A (zh) * | 2017-12-12 | 2019-06-21 | 北京奇虎科技有限公司 | 利用打包插件的sdk打包方法、打包插件及相应终端 |
CN109656616A (zh) * | 2018-11-26 | 2019-04-19 | 平安科技(深圳)有限公司 | 一种基于事务处理过程优化的打包方法、系统及电子设备 |
CN111124420B (zh) * | 2019-12-19 | 2023-06-20 | 北京百度网讯科技有限公司 | 编译方法、装置、电子设备及可读存储介质 |
CN111142903B (zh) * | 2019-12-23 | 2023-09-22 | 杭州安恒信息技术股份有限公司 | 一种基于文件对比的配置文件交互式更新方法及装置 |
CN111062638B (zh) * | 2019-12-26 | 2023-09-12 | 珠海金山数字网络科技有限公司 | 一种项目资源的处理方法及装置 |
CN111273955B (zh) * | 2020-01-16 | 2024-01-19 | 惠州Tcl移动通信有限公司 | 热修复插件优化方法、装置、存储介质及电子设备 |
CN111290760B (zh) * | 2020-03-03 | 2023-03-31 | 北京字节跳动网络技术有限公司 | 应用程序编译方法、装置、电子设备及存储介质 |
CN111580834B (zh) * | 2020-04-10 | 2021-10-29 | 北京城市网邻信息技术有限公司 | 一种应用安装包的生成方法和装置 |
CN111610984B (zh) * | 2020-05-09 | 2023-10-27 | 上海万间信息技术有限公司 | 基于插件的安卓应用打包分发方法、系统及应用终端 |
CN112416353A (zh) * | 2020-08-10 | 2021-02-26 | 上海幻电信息科技有限公司 | 渠道包打包方法、装置及计算机设备 |
CN112148303B (zh) * | 2020-09-28 | 2024-05-28 | Oppo(重庆)智能科技有限公司 | 文件生成方法、装置、终端及存储介质 |
CN112463155A (zh) * | 2020-11-24 | 2021-03-09 | 歌尔科技有限公司 | 应用程序包的打包方法、打包终端和计算机可读存储介质 |
CN112437092A (zh) * | 2020-12-03 | 2021-03-02 | 许昌学院 | 分布式系统共享session无侵入方法 |
CN112631650A (zh) * | 2020-12-28 | 2021-04-09 | 掌阅科技股份有限公司 | 插件版本信息校验方法、计算设备及存储介质 |
CN112732314A (zh) * | 2020-12-30 | 2021-04-30 | 北京一亩田新农网络科技有限公司 | 基于android插件化差分打包方法、装置、电子设备及计算机可读介质 |
CN112685029A (zh) * | 2020-12-30 | 2021-04-20 | 京东数字科技控股股份有限公司 | 一种可视化模板的生成方法、装置、设备及存储介质 |
CN112685048A (zh) * | 2021-01-05 | 2021-04-20 | 南方电网深圳数字电网研究院有限公司 | 应用程序打包方法、电子设备及存储介质 |
CN112783515B (zh) * | 2021-02-08 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 插件的控制方法和装置、存储介质 |
CN113608723A (zh) * | 2021-08-05 | 2021-11-05 | 上海中通吉网络技术有限公司 | 自动化构建及发布的小程序工程化方法 |
CN116149760B (zh) * | 2023-04-21 | 2023-07-14 | 广州三晶电气股份有限公司 | 基于Vue框架的前端项目打包方法及装置 |
CN116974586A (zh) * | 2023-09-22 | 2023-10-31 | 深圳传趣网络技术有限公司 | 多渠道应用打包方法、装置、设备及存储介质 |
CN117435244B (zh) * | 2023-12-21 | 2024-03-19 | 南京掌控网络科技有限公司 | 一种前端跨工程公共库系统及其构建方法 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3991724B2 (ja) * | 2002-03-12 | 2007-10-17 | ヤマハ株式会社 | データ処理装置およびコンピュータプログラム |
US20050071438A1 (en) * | 2003-09-30 | 2005-03-31 | Shih-Wei Liao | Methods and apparatuses for compiler-creating helper threads for multi-threading |
US20070083527A1 (en) * | 2005-10-07 | 2007-04-12 | David Wadler | Systems and methods for uploading and downloading files in a distributed network |
JP5267337B2 (ja) * | 2009-06-01 | 2013-08-21 | 株式会社リコー | プログラム、記憶媒体、情報処理装置、プリンタ装置およびシステム |
CN101667135B (zh) * | 2009-09-30 | 2013-07-31 | 浙江大学 | 一种交互式并行化编译系统及其编译方法 |
CN101909082B (zh) * | 2010-07-29 | 2013-03-13 | 中国运载火箭技术研究院 | 一种基于模型驱动的网格门户配置系统及配置方法 |
CN102053836B (zh) * | 2010-12-31 | 2013-04-10 | 广东欧珀电子工业有限公司 | 一种Android应用开发的版本管理工具的实现方法 |
CN102232304B (zh) * | 2011-05-04 | 2014-01-08 | 华为终端有限公司 | 一种移动通信终端间进行系统升级的方法、系统及终端 |
TW201342232A (zh) * | 2012-04-02 | 2013-10-16 | Miiroad Inc | 應用程式包自動產生模組與方法 |
RU2523113C1 (ru) | 2012-12-25 | 2014-07-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ целевой установки сконфигурированного программного обеспечения |
CN104049986B (zh) * | 2013-03-14 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 插件加载方法及装置 |
KR101489199B1 (ko) | 2013-03-29 | 2015-02-03 | 주식회사 엘지씨엔에스 | 컴퓨터에서 실행 가능한 어플리케이션 패키지를 생성하는 방법, 이를 수행하는 컴퓨터 실행 장치 및 이를 저장한 기록 매체 |
CN104375849B (zh) * | 2013-08-15 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 加载内核的方法及装置 |
CN104461466B (zh) * | 2013-09-25 | 2018-09-21 | 广州中国科学院软件应用技术研究所 | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 |
US9361163B2 (en) | 2013-11-28 | 2016-06-07 | Good Technology Corporation | Managing containerized applications on a mobile device while bypassing operating system implemented inter process communication |
CN104700003B (zh) * | 2013-12-04 | 2019-02-01 | 腾讯科技(深圳)有限公司 | 一种文件加壳及脱壳方法、装置及系统 |
JP6326838B2 (ja) * | 2014-02-05 | 2018-05-23 | 日本電気株式会社 | プログラム処理装置、プログラム処理方法、及びプログラム処理プログラム |
CN104932928A (zh) | 2014-03-17 | 2015-09-23 | 无锡天脉聚源传媒科技有限公司 | 一种基于java的插件化开发方法及系统 |
CN104932873B (zh) * | 2014-03-19 | 2018-05-25 | 联发科技(新加坡)私人有限公司 | 档案处理方法以及电子装置 |
CN105204922B (zh) * | 2014-06-30 | 2018-12-07 | 金电联行(北京)信息技术有限公司 | 一种数据采集平台客户端采集方法 |
CN104834515A (zh) * | 2015-03-30 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | 目标文件的生成方法 |
CN105988852A (zh) * | 2015-12-25 | 2016-10-05 | 武汉安天信息技术有限责任公司 | 一种Android程序插件化实现方法及系统 |
-
2016
- 2016-11-14 CN CN201611005684.XA patent/CN106569869B/zh active Active
-
2017
- 2017-02-22 SG SG11201709274UA patent/SG11201709274UA/en unknown
- 2017-02-22 AU AU2017258904A patent/AU2017258904B2/en active Active
- 2017-02-22 EP EP17794647.2A patent/EP3540594A4/en not_active Withdrawn
- 2017-02-22 JP JP2017561419A patent/JP6518794B2/ja active Active
- 2017-02-22 WO PCT/CN2017/074373 patent/WO2018086268A1/zh active Application Filing
- 2017-02-22 US US15/577,717 patent/US10387169B2/en active Active
- 2017-02-22 KR KR1020187015590A patent/KR102096195B1/ko active IP Right Grant
- 2017-11-09 TW TW106138714A patent/TWI679578B/zh active
Also Published As
Publication number | Publication date |
---|---|
WO2018086268A1 (zh) | 2018-05-17 |
CN106569869A (zh) | 2017-04-19 |
EP3540594A4 (en) | 2020-10-21 |
TWI679578B (zh) | 2019-12-11 |
JP6518794B2 (ja) | 2019-05-22 |
AU2017258904A1 (en) | 2018-05-31 |
AU2017258904B2 (en) | 2019-02-14 |
SG11201709274UA (en) | 2018-06-28 |
EP3540594A1 (en) | 2019-09-18 |
KR20180077265A (ko) | 2018-07-06 |
KR102096195B1 (ko) | 2020-04-02 |
CN106569869B (zh) | 2019-04-19 |
JP2019502176A (ja) | 2019-01-24 |
US20180293085A1 (en) | 2018-10-11 |
US10387169B2 (en) | 2019-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679578B (zh) | 外掛程式化打包方法、裝置、終端及存儲介質 | |
US10671367B2 (en) | System and method for analyzing user experience of a software application across disparate devices | |
US10176327B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
US10200201B2 (en) | Method for application installation, electronic device, and certificate system | |
WO2011095914A1 (en) | Systems, methods, and apparatuses for facilitating distribution of firmware updates | |
CN106681749B (zh) | 基于安卓平台的局部代码补丁更新方法及装置 | |
WO2016095570A1 (zh) | 一种嵌入式系统的调试方法及装置、存储介质 | |
US20150020052A1 (en) | System and method for automating testing | |
US20140282057A1 (en) | System for applying applications of different operating systems in one electronic device and method thereof | |
WO2020097573A1 (en) | Artificial intelligence mobile integration | |
AU2018271361A1 (en) | Information display method, terminal and server | |
CN108009084B (zh) | 一种混合移动应用的测试方法、装置及系统 | |
KR102188685B1 (ko) | 애플리케이션 패키지를 생성하는 장치 및 방법 | |
CN110908882A (zh) | 一种应用程序的性能分析方法、装置、终端设备及介质 | |
CN106844186B (zh) | 应用的脱机测试方法及终端设备 | |
CN109933357B (zh) | 应用程序升级方法及装置 | |
CN110362330A (zh) | 应用程序更新方法、装置、终端及存储介质 | |
TWI611292B (zh) | 函式管理方法與記憶體裝置 | |
WO2018095045A1 (zh) | 一种信息处理方法、装置及电子设备 | |
US20190320074A1 (en) | Ringtone Setting Method, Electronic Device, and Storage Medium | |
KR102131943B1 (ko) | Url 분석 방법 및 그 전자 장치 | |
CN105700876A (zh) | 操作方式修改方法及装置 | |
TW201512859A (zh) | 資料訪問方法及系統 | |
KR20100069843A (ko) | 소프트웨어 운용 방법 및 이를 이용하는 휴대 단말기 |