本發明涉及應用程序技術領域,尤其涉及一種生成應用程序安裝包的方法、加載應用程序的方法及裝置。
背景技術:
reactnative框架是react在原生移動應用平臺的衍生產物,是一種跨平臺移動應用開發框架,其結合了web應用和natice應用的優勢,可以使用javascript語言來開發ios和安卓兩大平臺的原生應用。
然而,由于reactnative框架體積龐大,因此,采用reactnative框架開發的應用程序存在占用存儲空間大的問題。
技術實現要素:
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的生成應用程序安裝包的方法、加載應用程序的方法及裝置。
依據本發明的一個方面,提供了一種生成應用程序安裝包的方法,所述方法包括:
對基于reactnative框架開發的目標應用程序進行裁剪,至少從所述目標應用程序中裁剪出so庫文件;
根據裁剪后的所述目標應用程序生成主應用程序安裝包,以及根據裁剪出的so庫文件生成從屬應用程序安裝包。
依據本發明的另一個方面,提供了一種加載應用程序的方法,所述方法包括:
在與基于reactnative框架開發的目標應用程序對應的主應用程序安裝包中,檢測是否存在用于啟用與所述主應用程序安裝包對應的從屬應用程序安裝包的觸發操作,其中,所述從屬應用程序安裝包根據從所述目標應用程序中裁剪出的so庫文件生成,所述主應用程序安裝包根據裁剪后的所述目標應用程序生成;
當存在所述觸發操作時,將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中;
在所述主應用程序安裝包中加載所述so庫文件。
依據本發明的另一個方面,提供了一種生成應用程序安裝包的裝置,所述裝置包括:
裁剪模塊,用于對基于reactnative框架開發的目標應用程序進行裁剪,至少從所述目標應用程序中裁剪出so庫文件;
安裝包生成模塊,用于根據裁剪后的所述目標應用程序生成主應用程序安裝包,以及根據裁剪出的so庫文件生成從屬應用程序安裝包。
依據本發明的另一個方面,提供了一種加載應用程序的裝置,所述裝置包括:
檢測模塊,用于在與基于reactnative框架開發的目標應用程序對應的主應用程序安裝包中,檢測是否存在用于啟用與所述主應用程序安裝包對應的從屬應用程序安裝包的觸發操作,其中,所述從屬應用程序安裝包根據從所述目標應用程序中裁剪出的so庫文件生成,所述主應用程序安裝包根據裁剪后的所述目標應用程序生成;
拷貝模塊,用于當存在所述觸發操作時,將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中;
加載模塊,用于在所述主應用程序安裝包中加載所述so庫文件。
根據本發明的生成應用程序安裝包的方法、加載應用程序的方法及裝置,首先對基于reactnative框架開發的目標應用程序進行裁剪,從目標應用程序中至少裁剪出so庫文件,并根據裁剪出的so庫文件生成從屬應用程序安裝包,同時,根據裁剪后得到的目標應用程序生成主應用程序安裝包,本申請通過將占用存儲空間較大的so庫文件從目標應用程序中裁剪出,根據裁剪后的目標應用程序生成主應用程序安裝包,將so庫文件獨立地放到從屬應用程序安裝包中,實現了減少主應用程序安裝包所占用的存儲空間的技術效果。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
附圖說明
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考圖形表示相同的部件。在附圖中:
圖1示出了本發明第一實施例的一種生成應用程序安裝包的方法的流程圖;
圖2示出了本發明第一實施例的一種生成應用程序安裝包的裝置的結構圖;
圖3示出了本發明第二實施例的一種加載應用程序的方法的流程圖;
圖4示出了本發明第二實施例的一種加載應用程序的裝置的結構圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
圖1為本發明的第一實施例中一種生成應用程序安裝包的方法的流程圖。具體地,該方法包括以下步驟:
步驟101:對基于reactnative框架開發的目標應用程序進行裁剪,至少從所述目標應用程序中裁剪出so庫文件。
步驟102:根據裁剪后的所述目標應用程序生成主應用程序安裝包,以及根據裁剪出的so庫文件生成從屬應用程序安裝包。
具體來講,針對某一目標應用程序而言,在基于reactnative框架對該目標應用程序進行開發之后,將會生成若干文件資源,這些文件資源中包含有so庫文件,so庫文件具體可以包括:libbitmaps.so,libfb.so,libfbjni.so,libfolly_json.so,libglog_init.so,libglog.so,libicu_common.so,libjsc.so,libmemchunk.so,libreactnativejni.so,可見,so庫文件會占用較大的存儲空間,由此,本申請對基于reactnative框架開發的目標應用程序進行裁剪,從目標應用程序中至少裁剪出so庫文件。進一步,在從目標應用程序中裁剪出so庫文件之后,根據裁剪出的so庫文件生成從屬應用程序安裝包,同時,根據裁剪后得到的目標應用程序生成主應用程序安裝包。從而,本申請針對基于reactnative框架開發的目標應用程序,通過將占用存儲空間較大的so庫文件從目標應用程序中裁剪出,根據裁剪后的目標應用程序生成主應用程序安裝包,將so庫文件獨立地放到從屬應用程序安裝包中,實現了減少主應用程序安裝包所占用的存儲空間的技術效果。
進一步,在步驟102中,根據裁剪后的所述目標應用程序生成主應用程序安裝包,具體可以包括:根據裁剪后的所述目標應用程序中的所述reactnative框架的java源碼和所述reactnative框架的jar包生成主應用程序安裝包。
具體來講,在從目標應用程序中裁剪出so庫文件之后,可以根據目標應用程序中余下的reactnative框架的java源碼和reactnative框架的jar包,編譯生成主應用程序安裝包。其中,jar包具體可以包括:bolts-android-1.1.4.jar,fresco-drawee-0.8.1.jar,fresco-fbcore-0.8.1.jar,fresco-fresco-0.8.1.jar,fresco-imagepipeline-0.8.1.jar,fresco-imagepipeline-okhttp-0.8.1.jar,jsr305-3.0.0.jar,okhttp-2.5.0.jar,okhttp-ws-2.5.0.jar,okio-1.6.0.jar。
進一步,在本申請中,針對步驟102而言,在生成主應用程序安裝包和從屬應用程序安裝包時,為了使主應用程序安裝包和從屬應用程序安裝包之間能夠進行資源共享,向主應用程序安裝包添加第一文件簽名,同時,向從屬應用程序安裝包添加第二文件簽名,第一文件簽名和第二文件簽名相互匹配,即,步驟102可以包括:根據裁剪后的所述目標應用程序生成具有第一文件簽名的主應用程序安裝包,以及根據裁剪出的so庫文件生成具有第二文件簽名的從屬應用程序安裝包。從而,當主應用程序安裝包和從屬應用程序安裝包之間進行資源的拷貝以及兩個應用程序安裝包之間進行相互跳轉時,進行文件簽名的匹配,只有在主應用程序安裝包和從屬應用程序安裝包之間的文件簽名匹配成功之后,才能夠進行資源的拷貝或應用程序安裝包的跳轉,從而提高了主應用程序安裝包加載從屬應用程序安裝包的安全性。
在本申請中,針對步驟101而言,在另一種實施方式中,可以:從所述目標應用程序中裁剪出so庫文件和jsbundle文件。從而,在步驟102中,根據so庫文件和jsbundle文件生成從屬應用程序安裝包。本申請通過將jsbundle文件與so庫文件一同從目標應用程序中裁剪出,能夠進一步減少主應用程序安裝包所占用的存儲空間。
基于同一發明構思,本發明的第二實施例還提供一種加載應用程序的方法,該加載應用程序的方法用于加載第一實施例中生成的應用程序安裝包,如圖2所示,所述方法包括:
步驟201:在與基于reactnative框架開發的目標應用程序對應的主應用程序安裝包中,檢測是否存在用于啟用與所述主應用程序安裝包對應的從屬應用程序安裝包的觸發操作,其中,所述從屬應用程序安裝包根據從所述目標應用程序中裁剪出的so庫文件生成,所述主應用程序安裝包根據裁剪后的所述目標應用程序生成。
步驟202:當存在所述觸發操作時,將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中。
步驟203:在所述主應用程序安裝包中加載所述so庫文件。
具體來講,與前述第一實施例相對應,針對某一基于reactnative框架開發的目標應用程序而言,該目標應用程序對應有主應用程序安裝包和從屬應用程序安裝包,從而,本申請在主應用程序安裝包中檢測是否存在用于啟用從屬應用程序安裝包的觸發操作。具體地,用戶在主應用程序安裝包中可以對從屬應用程序安裝包進行觸發操作,當存在對某一從屬應用程序安裝包進行的觸發操作時,表明需要加載該從屬應用程序安裝包并執行該從屬應用程序安裝包所對應的功能。進而,在本申請中,當存在該觸發操作時,將從屬應用程序安裝包中的so庫文件拷貝到主應用程序安裝包中,以便后續進行加載。
進一步,在本申請中,在步驟202之前,所述方法還包括:
判斷所述主應用程序安裝包所處的客戶端中是否存在所述從屬應用程序安裝包;
若所述客戶端中不存在所述從屬應用程序安裝包,則,根據指定路徑下載所述從屬應用程序安裝包到所述客戶端。
具體來講,當客戶端中存在從屬應用程序安裝包,則直接將從屬應用程序安裝包中的so庫文件拷貝到主應用程序安裝包中,當客戶端中不存在從屬應用程序安裝包,由于從屬應用程序安裝包通常具有指定的下載路徑,因此,可以根據指定路徑將從屬應用程序安裝包下載到客戶端。
在本申請中,針對步驟202而言,可以采用以下兩種實現方式:
在第一種實現方式中,主應用程序安裝包主動調用從屬應用程序安裝包,從從屬應用程序安裝包中拷貝so庫文件。在該實現方式中,由主應用程序安裝包主動將從屬應用程序安裝包中的so庫文件拷貝到其程序內。
在第二種實現方式中,由主應用程序安裝包跳轉到從屬應用程序安裝包,從屬應用程序將其包含的so庫文件拷貝到主應用程序安裝包中。在該實現方式中,當存在觸發操作時進行應用程序安裝包的跳轉,將客戶端的顯示界面由主應用程序安裝包的界面跳轉到從屬應用程序安裝包的界面,由從屬應用程序安裝包將其包含的so庫文件拷貝到主應用程序安裝包中。進一步,當拷貝完成后,再由從屬應用程序安裝包的界面跳轉到主應用程序安裝包的界面,在主應用程序安裝包中加載so庫文件。
在本申請中,針對步驟202而言,當主應用程序安裝包具有第一文件簽名,且從屬應用程序安裝包具有與第一文件簽名對應的第二文件簽名時,將從屬應用程序安裝包中的so庫文件拷貝到主應用程序安裝包中,包括:
判斷第一文件簽名與第二文件簽名是否匹配;
若第一文件簽名與第二文件簽名匹配,則將從屬應用程序安裝包中的so庫文件拷貝到主應用程序安裝包中。
具體來講,在本申請中,只有第一文件簽名和第二文件簽名匹配時,才會將從屬應用程序安裝包中的so庫文件拷貝到主應用程序安裝包中,當第一文件簽名和第二文件簽名不匹配時,將不會進行so庫文件的拷貝。本申請通過對主應用程序安裝包和從屬應用程序安裝包進行文件簽名的匹配,當主應用程序安裝包和從屬應用程序安裝包之間的文件簽名匹配成功之后才能夠進行資源的拷貝,提高了主應用程序安裝包加載從屬應用程序安裝包的安全性。
基于同一發明構思,本發明實施例提供與第一實施例對應的生成應用程序安裝包的裝置,如圖3所示,所述裝置包括:
裁剪模塊301,用于對基于reactnative框架開發的目標應用程序進行裁剪,至少從所述目標應用程序中裁剪出so庫文件;
安裝包生成模塊302,用于根據裁剪后的所述目標應用程序生成主應用程序安裝包,以及根據裁剪出的so庫文件生成從屬應用程序安裝包。
其中,裁剪模塊301,包括:
第一裁剪單元,用于從所述目標應用程序中裁剪出so庫文件和jsbundle文件;
所述安裝包生成模塊,包括:
第一生成單元,用于根據所述so庫文件和所述jsbundle文件生成從屬應用程序安裝包。
其中,安裝包生成模塊302,包括:
第二生成單元,用于根據裁剪后的所述目標應用程序中的所述reactnative框架的java源碼和所述reactnative框架的jar包生成主應用程序安裝包。
其中,安裝包生成模塊302,包括:
第三生成單元,用于根據裁剪后的所述目標應用程序生成具有第一文件簽名的主應用程序安裝包,以及根據裁剪出的so庫文件生成具有第二文件簽名的從屬應用程序安裝包,其中,所述第一文件簽名和所述第二文件簽名相互匹配。
基于同一發明構思,本發明實施例提供與第二實施例對應的加載應用程序的裝置,如圖4所示,所述裝置包括:
檢測模塊401,用于在與基于reactnative框架開發的目標應用程序對應的主應用程序安裝包中,檢測是否存在用于啟用與所述主應用程序安裝包對應的從屬應用程序安裝包的觸發操作,其中,所述從屬應用程序安裝包根據從所述目標應用程序中裁剪出的so庫文件生成,所述主應用程序安裝包根據裁剪后的所述目標應用程序生成;
拷貝模塊402,用于當存在所述觸發操作時,將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中;
加載模塊403,用于在所述主應用程序安裝包中加載所述so庫文件。
其中,所述裝置還包括:
判斷模塊,用于判斷所述主應用程序安裝包所處的客戶端中是否存在所述從屬應用程序安裝包;
下載模塊,用于若所述客戶端中不存在所述從屬應用程序安裝包,則,根據指定路徑下載所述從屬應用程序安裝包到所述客戶端。
其中,拷貝模塊402,包括:
第一拷貝單元,用于所述主應用程序安裝包主動調用所述從屬應用程序安裝包,從所述從屬應用程序安裝包中拷貝所述so庫文件;或
第二拷貝單元,用于由所述主應用程序安裝包跳轉到所述從屬應用程序安裝包,所述從屬應用程序將其包含的所述so庫文件拷貝到所述主應用程序安裝包中。
其中,當所述主應用程序安裝包具有第一文件簽名,且所述從屬應用程序安裝包具有與所述第一文件簽名對應的第二文件簽名時,拷貝模塊402,包括:
判斷單元,用于判斷所述第一文件簽名與所述第二文件簽名是否匹配;
第三拷貝單元,用于若所述第一文件簽名與所述第二文件簽名匹配,則將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中。
總之,根據本發明的生成應用程序安裝包的方法、加載應用程序的方法及裝置,首先對基于reactnative框架開發的目標應用程序進行裁剪,從目標應用程序中至少裁剪出so庫文件,并根據裁剪出的so庫文件生成從屬應用程序安裝包,同時,根據裁剪后得到的目標應用程序生成主應用程序安裝包,本申請通過將占用存儲空間較大的so庫文件從目標應用程序中裁剪出,根據裁剪后的目標應用程序生成主應用程序安裝包,將so庫文件獨立地放到從屬應用程序安裝包中,實現了減少主應用程序安裝包所占用的存儲空間的技術效果。
在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發明的內容,并且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(dsp)來實現根據本發明實施例的生成應用程序安裝包的裝置及加載應用程序的裝置中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用于執行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
本發明公開了,a1、一種生成應用程序安裝包的方法,其特征在于,所述方法包括:
對基于reactnative框架開發的目標應用程序進行裁剪,至少從所述目標應用程序中裁剪出so庫文件;
根據裁剪后的所述目標應用程序生成主應用程序安裝包,以及根據裁剪出的so庫文件生成從屬應用程序安裝包。
a2、根據a1所述的方法,其特征在于,所述至少從所述目標應用程序中裁剪出so庫文件,包括:
從所述目標應用程序中裁剪出so庫文件和jsbundle文件;
所述根據裁剪出的so庫文件生成從屬應用程序安裝包,包括:
根據所述so庫文件和所述jsbundle文件生成從屬應用程序安裝包。
a3、根據a1所述的方法,其特征在于,所述根據裁剪后的所述目標應用程序生成主應用程序安裝包,包括:
根據裁剪后的所述目標應用程序中的所述reactnative框架的java源碼和所述reactnative框架的jar包生成主應用程序安裝包。
a4、根據a1所述的方法,其特征在于,所述根據裁剪后的所述目標應用程序生成主應用程序安裝包,以及根據裁剪出的so庫文件生成從屬應用程序安裝包,包括:
根據裁剪后的所述目標應用程序生成具有第一文件簽名的主應用程序安裝包,以及根據裁剪出的so庫文件生成具有第二文件簽名的從屬應用程序安裝包,其中,所述第一文件簽名和所述第二文件簽名相互匹配。
b5、一種加載應用程序的方法,其特征在于,所述方法包括:
在與基于reactnative框架開發的目標應用程序對應的主應用程序安裝包中,檢測是否存在用于啟用與所述主應用程序安裝包對應的從屬應用程序安裝包的觸發操作,其中,所述從屬應用程序安裝包根據從所述目標應用程序中裁剪出的so庫文件生成,所述主應用程序安裝包根據裁剪后的所述目標應用程序生成;
當存在所述觸發操作時,將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中;
在所述主應用程序安裝包中加載所述so庫文件。
b6、根據b5所述的方法,其特征在于,在所述將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中之前,所述方法還包括:
判斷所述主應用程序安裝包所處的客戶端中是否存在所述從屬應用程序安裝包;
若所述客戶端中不存在所述從屬應用程序安裝包,則,根據指定路徑下載所述從屬應用程序安裝包到所述客戶端。
b7、根據b5所述的方法,其特征在于,所述將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中,包括:
所述主應用程序安裝包主動調用所述從屬應用程序安裝包,從所述從屬應用程序安裝包中拷貝所述so庫文件;或
由所述主應用程序安裝包跳轉到所述從屬應用程序安裝包,所述從屬應用程序將其包含的所述so庫文件拷貝到所述主應用程序安裝包中。
b8、根據b5所述的方法,其特征在于,當所述主應用程序安裝包具有第一文件簽名,且所述從屬應用程序安裝包具有與所述第一文件簽名對應的第二文件簽名時,所述將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中,包括:
判斷所述第一文件簽名與所述第二文件簽名是否匹配;
若所述第一文件簽名與所述第二文件簽名匹配,則將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中。
c9、一種生成應用程序安裝包的裝置,其特征在于,所述裝置包括:
裁剪模塊,用于對基于reactnative框架開發的目標應用程序進行裁剪,至少從所述目標應用程序中裁剪出so庫文件;
安裝包生成模塊,用于根據裁剪后的所述目標應用程序生成主應用程序安裝包,以及根據裁剪出的so庫文件生成從屬應用程序安裝包。
c10、根據c9所述的裝置,其特征在于,所述裁剪模塊,包括:
第一裁剪單元,用于從所述目標應用程序中裁剪出so庫文件和jsbundle文件;
所述安裝包生成模塊,包括:
第一生成單元,用于根據所述so庫文件和所述jsbundle文件生成從屬應用程序安裝包。
c11、根據c9所述的裝置,其特征在于,所述安裝包生成模塊,包括:
第二生成單元,用于根據裁剪后的所述目標應用程序中的所述reactnative框架的java源碼和所述reactnative框架的jar包生成主應用程序安裝包。
c12、根據c9所述的裝置,其特征在于,所述安裝包生成模塊,包括:
第三生成單元,用于根據裁剪后的所述目標應用程序生成具有第一文件簽名的主應用程序安裝包,以及根據裁剪出的so庫文件生成具有第二文件簽名的從屬應用程序安裝包,其中,所述第一文件簽名和所述第二文件簽名相互匹配。
d13、一種加載應用程序的裝置,其特征在于,所述裝置包括:
檢測模塊,用于在與基于reactnative框架開發的目標應用程序對應的主應用程序安裝包中,檢測是否存在用于啟用與所述主應用程序安裝包對應的從屬應用程序安裝包的觸發操作,其中,所述從屬應用程序安裝包根據從所述目標應用程序中裁剪出的so庫文件生成,所述主應用程序安裝包根據裁剪后的所述目標應用程序生成;
拷貝模塊,用于當存在所述觸發操作時,將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中;
加載模塊,用于在所述主應用程序安裝包中加載所述so庫文件。
d14、根據d13所述的裝置,其特征在于,所述裝置還包括:
判斷模塊,用于判斷所述主應用程序安裝包所處的客戶端中是否存在所述從屬應用程序安裝包;
下載模塊,用于若所述客戶端中不存在所述從屬應用程序安裝包,則,根據指定路徑下載所述從屬應用程序安裝包到所述客戶端。
d15、根據d13所述的裝置,其特征在于,所述拷貝模塊,包括:
第一拷貝單元,用于所述主應用程序安裝包主動調用所述從屬應用程序安裝包,從所述從屬應用程序安裝包中拷貝所述so庫文件;或
第二拷貝單元,用于由所述主應用程序安裝包跳轉到所述從屬應用程序安裝包,所述從屬應用程序將其包含的所述so庫文件拷貝到所述主應用程序安裝包中。
d16、根據d13所述的裝置,其特征在于,當所述主應用程序安裝包具有第一文件簽名,且所述從屬應用程序安裝包具有與所述第一文件簽名對應的第二文件簽名時,所述拷貝模塊,包括:
判斷單元,用于判斷所述第一文件簽名與所述第二文件簽名是否匹配;
第三拷貝單元,用于若所述第一文件簽名與所述第二文件簽名匹配,則將所述從屬應用程序安裝包中的所述so庫文件拷貝到所述主應用程序安裝包中。