本發(fā)明涉及終端
技術(shù)領(lǐng)域:
:,具體而言,本發(fā)明涉及一種多系統(tǒng)的基礎(chǔ)庫文件加載方法及裝置。
背景技術(shù):
::目前,智能手機、平板電腦、二合一電腦、智能穿戴設(shè)備或電子閱讀器等終端設(shè)備越來越普及。相當一部分數(shù)量的終端設(shè)備中安裝了兩個操作系統(tǒng)。以兩個操作系統(tǒng)之間的切換方式,分為熱切換雙系統(tǒng)和冷切換雙系統(tǒng)。對于熱切換雙系統(tǒng),通常采用linux容器虛擬化技術(shù),創(chuàng)建兩個容器,將兩個操作系統(tǒng)分別設(shè)置于兩個容器中;兩個操作系統(tǒng)共享一個內(nèi)核,可以同時運行;切換系統(tǒng)時,無需關(guān)閉或重啟操作系統(tǒng),可以直接對兩個操作系統(tǒng)進行切換。熱切換雙系統(tǒng)的庫文件加載方法,通常包括:一個操作系統(tǒng)名下的應(yīng)用啟動時,內(nèi)核從該一個操作系統(tǒng)對應(yīng)的基礎(chǔ)文件庫中,獲取該應(yīng)用運行所依賴的庫文件進行加載。另一個操作系統(tǒng)名下的應(yīng)用啟動時,內(nèi)核從該另一個操作系統(tǒng)對應(yīng)的基礎(chǔ)文件庫中,獲取該應(yīng)用運行所依賴的庫文件進行加載。對于冷切換雙系統(tǒng),兩個操作系統(tǒng)處于完全不同的文件系統(tǒng)內(nèi),每個操作系統(tǒng)啟動時都會掛載不同的文件系統(tǒng)。當需要從一個操作系統(tǒng)切換至另一個操作系統(tǒng)時,通常需要關(guān)機再重啟;此過程中一個操作系統(tǒng)關(guān)閉,則另一個操作系統(tǒng)啟動,兩個操作系統(tǒng)的運行狀態(tài)是互斥的。冷切換雙系統(tǒng)的庫文件加載方法,通常包括:一個操作系統(tǒng)名下的應(yīng)用啟動時,該一個操作系統(tǒng)從其對應(yīng)的基礎(chǔ)文件庫中,獲取該應(yīng)用運行所依賴的庫文件進行加載。關(guān)機重啟,使得該一個操作系統(tǒng)完畢,另一個操作系統(tǒng)啟動;另一個操作系統(tǒng)名下的應(yīng)用啟動時,該另一個操作系統(tǒng)從其對應(yīng)的基礎(chǔ)文件庫中,獲取該應(yīng)用運行所依賴的庫文件進行加載。然而,本發(fā)明的發(fā)明人發(fā)現(xiàn),利用現(xiàn)有的庫文件加載方法,設(shè)置有多操作系統(tǒng)的終端設(shè)備中,需要為每個操作系統(tǒng)單獨配置對應(yīng)的基礎(chǔ)文件庫,才能支持該操作系統(tǒng)下的應(yīng)用的啟動運行;兩個以上基礎(chǔ)文件庫中存在大量相同的庫文件,冗余的庫文件占用了大量的存儲空間,導(dǎo)致終端設(shè)備的存儲空間的利用水平低下。技術(shù)實現(xiàn)要素:本發(fā)明針對現(xiàn)有方式的缺點,提出一種多系統(tǒng)的基礎(chǔ)庫文件加載方法及裝置,用以解決現(xiàn)有技術(shù)存在至少兩個操作系統(tǒng)的基礎(chǔ)庫占用較多存儲空間的問題,以實現(xiàn)至少兩個操作系統(tǒng)的基礎(chǔ)庫文件的共享,減少基礎(chǔ)庫占用的存儲空間。本發(fā)明的實施例根據(jù)一個方面,提供了一種多系統(tǒng)的基礎(chǔ)庫文件加載方法,包括:接收到應(yīng)用的運行請求時,確定出所述應(yīng)用所屬第一操作系統(tǒng)的第一改良型基礎(chǔ)庫文件加載器、以及待加載的所述應(yīng)用所依賴的基礎(chǔ)庫文件;根據(jù)所述應(yīng)用的可執(zhí)行文件所包含的信息,確定出所述應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng);當所述應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為其它操作系統(tǒng)時,調(diào)用第一改良型基礎(chǔ)庫文件加載器中的所述其它操作系統(tǒng)的其它基礎(chǔ)庫文件加載器,從公共庫中獲取所述應(yīng)用所依賴的基礎(chǔ)庫文件進行加載,以供所述應(yīng)用調(diào)用。本發(fā)明的實施例根據(jù)另一個方面,還提供了一種多系統(tǒng)的基礎(chǔ)庫文件加載裝置,包括:基礎(chǔ)庫文件確定模塊,用于接收到應(yīng)用的運行請求時,確定出所述應(yīng)用所屬第一操作系統(tǒng)的第一改良型基礎(chǔ)庫文件加載器、以及待加載的所述應(yīng)用所依賴的基礎(chǔ)庫文件;基礎(chǔ)庫文件加載模塊,用于根據(jù)所述應(yīng)用的可執(zhí)行文件所包含的信息,確定出所述應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng);當所述應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為其它操作系統(tǒng)時,調(diào)用第一改良型基礎(chǔ)庫文件加載器中的所述其它操作系統(tǒng)的其它基礎(chǔ)庫文件加載器,從公共庫中獲取所述應(yīng)用所依賴的基礎(chǔ)庫文件進行加載,以供所述應(yīng)用調(diào)用。本發(fā)明實施例中,保留了基礎(chǔ)庫文件與基礎(chǔ)庫文件加載器之間的對應(yīng)加載關(guān)系,將每個操作系統(tǒng)的基礎(chǔ)庫文件加載器擴充為改良型基礎(chǔ)庫文件加載器。當發(fā)送運行請求的應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為其它操作系統(tǒng)時,可以調(diào)用第一改良型基礎(chǔ)庫文件加載器中的其它操作系統(tǒng)的其它基礎(chǔ)庫文件加載器,對公共庫中原本屬于其他操作系統(tǒng)的、該應(yīng)用所依賴的基礎(chǔ)庫文件,進行獲取和加載;既可以實現(xiàn)不同操作系統(tǒng)之間的基礎(chǔ)庫文件的共享;又可以減少公共庫中相同的(冗余的)基礎(chǔ)庫文件,節(jié)省基礎(chǔ)庫文件占用的存儲空間。本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。附圖說明本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:圖1為本發(fā)明實施例的終端設(shè)備的內(nèi)部結(jié)構(gòu)的框架示意圖;圖2為本發(fā)明實施例的多系統(tǒng)的基礎(chǔ)庫文件加載方法的流程示意圖;圖3a和圖3b分別為本發(fā)明實施例的多系統(tǒng)的基礎(chǔ)庫文件加載方法的一個實例的示意圖和局部細化示意圖;圖4為本發(fā)明實施例的多系統(tǒng)的基礎(chǔ)庫文件加載裝置的內(nèi)部結(jié)構(gòu)的框架示意圖。具體實施方式下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。本
技術(shù)領(lǐng)域:
:技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。本
技術(shù)領(lǐng)域:
:技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。本
技術(shù)領(lǐng)域:
:技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”既包括無線信號接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號接收器的設(shè)備,又包括接收和發(fā)射硬件的設(shè)備,其具有能夠在雙向通信鏈路上,進行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示器的蜂窩或其他通信設(shè)備;pcs(personalcommunicationsservice,個人通信系統(tǒng)),其可以組合語音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;pda(personaldigitalassistant,個人數(shù)字助理),其可以包括射頻接收器、尋呼機、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、日歷和/或gps(globalpositioningsystem,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或掌上型計算機或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計算機或其他設(shè)備。這里所使用的“終端”、“終端設(shè)備”可以是便攜式、可運輸、安裝在交通工具(航空、海運和/或陸地)中的,或者適合于和/或配置為在本地運行,和/或以分布形式,運行在地球和/或空間的任何其他位置運行。這里所使用的“終端”、“終端設(shè)備”還可以是通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是pda、mid(mobileinternetdevice,移動互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動電話,也可以是智能電視、機頂盒等設(shè)備。本發(fā)明的發(fā)明人經(jīng)過研究發(fā)現(xiàn),不同的操作系統(tǒng)的abi(applicationbinaryinterface,應(yīng)用二進制接口)不同,也就是不同操作系統(tǒng)中的應(yīng)用運行時,所需的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)不同,基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)涉及的文件包括可執(zhí)行程序和(動態(tài)的)基礎(chǔ)庫文件。不同操作系統(tǒng)的應(yīng)用通過系統(tǒng)調(diào)用基礎(chǔ)庫文件的調(diào)用方式不同;具體地,操作系統(tǒng)與加載器通常一一對應(yīng),每個操作系統(tǒng)的應(yīng)用在編譯期間通常指定該操作系統(tǒng)的加載器用于加載該應(yīng)用所依賴的基礎(chǔ)庫文件;因此不同操作系統(tǒng)的應(yīng)用在編譯期間指定的加載器不同,而不同的加載器通常對應(yīng)不同的基礎(chǔ)庫文件和基礎(chǔ)庫的搜索路徑。一個操作系統(tǒng)的加載器通常無法獲取并加載另一個加載器對應(yīng)的基礎(chǔ)庫文件。本發(fā)明的實施例,支持至少兩個操作系統(tǒng),為了便于表述和理解,選定一個發(fā)送運行請求的應(yīng)用所屬的操作系統(tǒng)為第一操作系統(tǒng);至少兩個操作系統(tǒng)中除了第一操作系統(tǒng)之外的操作系統(tǒng)為其它操作系統(tǒng)。各操作系統(tǒng)分別對應(yīng)各自的加載器和基礎(chǔ)庫文件。內(nèi)核接收到應(yīng)用的運行請求時,確定出應(yīng)用所屬第一操作系統(tǒng)的第一改良型基礎(chǔ)庫文件加載器、以及第一改良型基礎(chǔ)庫文件加載器待加載的應(yīng)用所依賴的基礎(chǔ)庫文件;根據(jù)應(yīng)用的可執(zhí)行文件所包含的信息,確定出應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng);當應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為其它操作系統(tǒng)時,調(diào)用第一改良型基礎(chǔ)庫文件加載器中的其它操作系統(tǒng)的其它基礎(chǔ)庫文件加載器,從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載,以供應(yīng)用調(diào)用??梢?,本發(fā)明實施例中,公共庫包含各操作系統(tǒng)中的應(yīng)用運行所依賴的大部分基礎(chǔ)庫文件,通過識別出應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng),進而調(diào)用識別出的操作系統(tǒng)對應(yīng)的加載器,從公共庫中獲取該應(yīng)用所依賴的基礎(chǔ)庫文件并進行加載,從而實現(xiàn)應(yīng)用的啟動運行。公共庫相比于傳統(tǒng)的為各操作系統(tǒng)各自配備的基礎(chǔ)庫的總和,減少了大量相同的基礎(chǔ)庫文件,即減少了大量冗余的基礎(chǔ)庫文件,減少了基礎(chǔ)庫所占用的存儲空間,提升了存儲資源的利用率水平。下面結(jié)合附圖具體介紹本發(fā)明實施例的技術(shù)方案。本發(fā)明實施例的終端設(shè)備的內(nèi)部結(jié)構(gòu)的框架示意圖如圖1所示,包括:內(nèi)核和至少兩個操作系統(tǒng)。其中,至少兩個操作系統(tǒng)包括第一操作系統(tǒng)、第二操作系統(tǒng)、……、第n操作系統(tǒng)。n為2以上的正整數(shù)。本發(fā)明實施例的操作系統(tǒng)包括容器系統(tǒng)。較佳地,本發(fā)明實施例中的操作系統(tǒng),可以是設(shè)置在以linuxcontainer(容器)虛擬化技術(shù)創(chuàng)建的容器中的操作系統(tǒng)。操作系統(tǒng)可以為傳統(tǒng)意義上的linux操作系統(tǒng)或unix操作系統(tǒng),也可以是基于linux操作系統(tǒng)衍生出來的android系統(tǒng)或ubuntu系統(tǒng)等,還可以為以windows平臺為基礎(chǔ)的windows系統(tǒng)等等。實際上,本發(fā)明中的操作系統(tǒng)不限于前述例舉的操作系統(tǒng),可以涵蓋所有能夠在容器中運行的操作系統(tǒng)。為便于理解,下面以linux操作系統(tǒng)或其衍生操作系統(tǒng)為例,介紹本發(fā)明實施例的技術(shù)方案。本發(fā)明實施例中的內(nèi)核,是以傳統(tǒng)的linux內(nèi)核為基礎(chǔ)改進而來。增加的主要功能包括:接收到應(yīng)用的運行請求時,確定出該應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng),調(diào)用該操作系統(tǒng)的基礎(chǔ)庫文件加載器對該應(yīng)用所依賴的基礎(chǔ)庫文件進行加載;具體功能將在后續(xù)進行詳細介紹,此處不再贅述。為便于理解,將至少兩個操作系統(tǒng)中的一個操作系統(tǒng)作為第一操作系統(tǒng)、至少兩個操作系統(tǒng)中除了第一操作系統(tǒng)之外的操作系統(tǒng)作為其它操作系統(tǒng)。各操作系統(tǒng)對應(yīng)各自的基礎(chǔ)庫文件加載器;各基礎(chǔ)庫文件加載器對應(yīng)各自的基礎(chǔ)庫文件;全部或者大部分基礎(chǔ)庫文件存放于公共庫中。較佳地,公共庫包括除了基礎(chǔ)c(c語言)庫文件之外的基礎(chǔ)庫文件。較佳地,基礎(chǔ)庫文件為動態(tài)的基礎(chǔ)庫文件。下面展開介紹本發(fā)明實施例的多系統(tǒng)的基礎(chǔ)庫文件加載方法,該方法的流程示意圖如圖2所示,包括下述步驟:s201:內(nèi)核接收到應(yīng)用的運行請求時,確定出應(yīng)用所屬第一操作系統(tǒng)的第一改良型基礎(chǔ)庫文件加載器、以及待加載的應(yīng)用所依賴的基礎(chǔ)庫文件。第一操作系統(tǒng)中的應(yīng)用接收到啟動運行的指令后,向內(nèi)核發(fā)送運行請求。內(nèi)核接收到第一操作系統(tǒng)的應(yīng)用的運行請求時,使用dlopen方式加載第一操作系統(tǒng)的應(yīng)用所依賴的基礎(chǔ)庫文件時,確定出第一改良型基礎(chǔ)庫文件加載器、以及第一改良型基礎(chǔ)庫文件加載器待加載的應(yīng)用所依賴的基礎(chǔ)庫文件。較佳地,內(nèi)核根據(jù)第一操作系統(tǒng)的應(yīng)用的運行請求中、以dlopen方式加載基礎(chǔ)庫文件的指令,確定出第一改良型基礎(chǔ)庫文件加載器、及第一改良型基礎(chǔ)庫文件加載器待加載的該應(yīng)用所依賴的基礎(chǔ)庫文件。標準用法舉例如下:內(nèi)核接收到針對第一操作系統(tǒng)的應(yīng)用的void*handle=dlopen("xxx.so")指令時,確定出待加載的應(yīng)用所依賴的基礎(chǔ)庫文件為xxx.so、以及負責對xxx.so進行加載的基礎(chǔ)庫文件加載器為第一操作系統(tǒng)的第一改良型基礎(chǔ)庫文件加載器。上述指令中,handle表示句柄;dlopen表示一種系統(tǒng)調(diào)用,主要用于open(打開)動態(tài)鏈接基礎(chǔ)庫文件,并返回一個句柄。第一改良型基礎(chǔ)庫文件加載器包含:第一操作系統(tǒng)的基礎(chǔ)庫文件加載器、以及其它基礎(chǔ)庫文件加載器。進一步,第一改良型基礎(chǔ)庫加載器包含:第一操作系統(tǒng)的基礎(chǔ)庫文件加載器、以及其它基礎(chǔ)庫文件加載器中用以加載其它操作系統(tǒng)相比于第一操作系統(tǒng)所特有的基礎(chǔ)庫文件的部分。可見,本發(fā)明實施例中,一個操作系統(tǒng)的應(yīng)用默認指定由該操作系統(tǒng)的基礎(chǔ)庫文件加載器,加載該應(yīng)用所依賴的基礎(chǔ)庫文件;無需對現(xiàn)有的應(yīng)用進行改動,就可以實施本發(fā)明實施例;也就是說,本發(fā)明實施例對大量的現(xiàn)有應(yīng)用的兼容性較強。s202:內(nèi)核暫停第一改良型基礎(chǔ)庫文件加載器對應(yīng)用所依賴的基礎(chǔ)庫文件的加載,判斷應(yīng)用所依賴的基礎(chǔ)庫文件是否是基礎(chǔ)c庫文件;若否,則執(zhí)行步驟s203;若是,則執(zhí)行步驟s207。發(fā)明人注意到傳統(tǒng)的使用dlopen方式加載基礎(chǔ)庫文件方法,為內(nèi)核使用dlopen函數(shù)打開動態(tài)基礎(chǔ)庫,dlopen這個函數(shù)會直接觸發(fā)第一操作系統(tǒng)的第一linker(基礎(chǔ)庫文件加載器)的加載過程,即調(diào)用第一linker將xxx.so加載進應(yīng)用程序的進程空間,供應(yīng)用調(diào)用。本發(fā)明實施例中,步驟s201和s202可以同步執(zhí)行。本發(fā)明實施例中,對內(nèi)核的功能進行了改進;內(nèi)核使用dlopen方式加載第一操作系統(tǒng)的應(yīng)用所依賴的基礎(chǔ)庫文件的過程中,確定出第一改良型基礎(chǔ)庫文件加載器待加載的應(yīng)用所依賴的基礎(chǔ)庫文件,并同時暫停第一改良型基礎(chǔ)庫文件加載器對應(yīng)用所依賴的基礎(chǔ)庫文件的加載;判斷應(yīng)用所依賴的基礎(chǔ)庫文件是否是基礎(chǔ)c庫文件;若否,則執(zhí)行步驟s203;若是,則執(zhí)行步驟s207。s203:內(nèi)核根據(jù)應(yīng)用的可執(zhí)行文件所包含的信息,確定出應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)。內(nèi)核根據(jù)應(yīng)用的可執(zhí)行文件的頭部信息,確定出應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)。較佳地,加載應(yīng)用的可執(zhí)行程序;解析出應(yīng)用的可執(zhí)行程序的頭部信息;根據(jù)頭部信息,確定出應(yīng)用所屬第一操作系統(tǒng)的第一改良型基礎(chǔ)庫文件加載器。較佳地,本發(fā)明的發(fā)明人注意到,應(yīng)用在編譯過程中,使用編譯器將應(yīng)用的源碼編譯成可執(zhí)行程序。編譯過程可以分為兩步,第一步將應(yīng)用的源碼編譯成可鏈接中間文件;例如可鏈接中間文件可以為后綴名為.o的文件;第二步編譯器將該應(yīng)用對應(yīng)的所有的可鏈接中間文件(例如名稱為*.o的文件,*為通配符,表示若干字符)鏈接成可執(zhí)行文件。在鏈接過程中,編譯器會在可執(zhí)行程序文件的頭部填寫elf(executableandlinkableformat,可執(zhí)行與可鏈接格式)信息;在elf頭信息中,會包含一個叫做interpreter(解釋器)的字段,這個字段就指定了使用哪個linker(基礎(chǔ)庫文件加載器)來加載動態(tài)基礎(chǔ)庫文件。較佳地,內(nèi)核加載應(yīng)用的可執(zhí)行程序到內(nèi)存中后,解析出應(yīng)用的可執(zhí)行程序的頭部信息中的elf信息;從elf信息中讀取interpreter字段的內(nèi)容,根據(jù)interpreter字段的內(nèi)容,確定出該應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)。s204:內(nèi)核判斷應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)是否為第一操作系統(tǒng);若否,則執(zhí)行步驟s205;若是,則執(zhí)行步驟s206。內(nèi)核根據(jù)預(yù)設(shè)的多個操作系統(tǒng)與多個基礎(chǔ)庫文件的對應(yīng)關(guān)系,判斷出上述步驟中確定出的應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)是否為該應(yīng)用所屬的第一操作系統(tǒng)。其中,一個操作系統(tǒng)可以對應(yīng)多個基礎(chǔ)庫文件;同一個基礎(chǔ)庫文件可能與多個操作系統(tǒng)相對應(yīng)。較佳地,一個操作系統(tǒng)可以與公共庫中多個基礎(chǔ)庫文件相對應(yīng);公共庫中的一個基礎(chǔ)庫文件可以與多個操作系統(tǒng)相對應(yīng)。較佳地,多個操作系統(tǒng)與多個基礎(chǔ)庫文件的對應(yīng)關(guān)系可以預(yù)設(shè)在內(nèi)核中。多個操作系統(tǒng)與多個基礎(chǔ)庫文件的對應(yīng)關(guān)系,也可以預(yù)設(shè)在每個linker或操作系統(tǒng)中,并在確定出需要調(diào)用基礎(chǔ)庫文件(即確定出應(yīng)用所依賴的基礎(chǔ)庫文件)時傳遞至內(nèi)核。s205:內(nèi)核調(diào)用第一改良型基礎(chǔ)庫文件加載器中的其它操作系統(tǒng)的其它基礎(chǔ)庫文件加載器,從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載,以供應(yīng)用調(diào)用。當應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為其它操作系統(tǒng)(指第一操作系統(tǒng)之外的操作系統(tǒng))時,內(nèi)核調(diào)用第一改良型基礎(chǔ)庫文件加載器中的其它操作系統(tǒng)的其它基礎(chǔ)庫文件加載器,從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載,以供應(yīng)用調(diào)用。較佳地,可以預(yù)先將終端設(shè)備中多個操作系統(tǒng)的基礎(chǔ)庫文件加載器可拆分地組合在一起,形成一個改性型基礎(chǔ)庫文件加載器;第一、二、n操作系統(tǒng)分別對應(yīng)第一、二、n改良型基礎(chǔ)庫文件加載器。第一改良型基礎(chǔ)庫文件加載器、第二改良型基礎(chǔ)庫文件加載器、…、與第n改良型基礎(chǔ)庫文件加載器都是相同的。對于第一改良型基礎(chǔ)庫文件加載器而言,第二、…、n改良型基礎(chǔ)庫文件加載器都是其它操作系統(tǒng)的其它改良型基礎(chǔ)庫文件加載器。當應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為其它操作系統(tǒng)時,內(nèi)核從綜合基礎(chǔ)庫文件加載器中,調(diào)用第一改良型基礎(chǔ)庫文件加載器中的其它操作系統(tǒng)的其它基礎(chǔ)庫文件加載器,從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載,以供應(yīng)用調(diào)用??梢岳斫?,本步驟中,公共庫中應(yīng)用所依賴的基礎(chǔ)庫文件,實際上本就是由其它基礎(chǔ)庫文件加載器來調(diào)用的;本發(fā)明實施例中保留了基礎(chǔ)庫文件與基礎(chǔ)庫文件加載器之間的對應(yīng)(加載)關(guān)系;但是將每個操作系統(tǒng)的基礎(chǔ)庫文件加載器進行了擴充,使得每個操作系統(tǒng)可以根據(jù)擴充后的基礎(chǔ)庫文件加載器,對公共庫中原本屬于其他操作系統(tǒng)的基礎(chǔ)庫文件進行調(diào)用。既可以實現(xiàn)不同操作系統(tǒng)之間的基礎(chǔ)庫文件的共享;又可以減少公共庫中相同的(冗余的)基礎(chǔ)庫文件,節(jié)省基礎(chǔ)庫文件占用的存儲空間。較佳地,本發(fā)明的發(fā)明人考慮到,終端設(shè)備中不同操作系統(tǒng)的基礎(chǔ)庫文件加載器各自對應(yīng)的多個基礎(chǔ)庫文件中,既存在相同的基礎(chǔ)庫文件,又存在不同的基礎(chǔ)庫文件。對于每個操作系統(tǒng),針對除了該操作系統(tǒng)之外的每個其它操作系統(tǒng),確定出該其它操作系統(tǒng)相比于該操作系統(tǒng)所特有的基礎(chǔ)庫文件;進而將其它基礎(chǔ)庫文件加載器中用于加載該特有的基礎(chǔ)庫文件的部分,作為該其它操作系統(tǒng)相比于該操作系統(tǒng)的其它基礎(chǔ)庫文件子加載器;之后,由該操作系統(tǒng)的基礎(chǔ)庫文件加載器、和至少一個其它基礎(chǔ)庫文件子加載器,組合得到該操作系統(tǒng)的改良型基礎(chǔ)庫文件加載器??梢岳斫?,每個操作系統(tǒng)的基礎(chǔ)庫文件加載器、以及每個其它操作系統(tǒng)相比于該操作系統(tǒng)的其它基礎(chǔ)庫文件子加載器都是不同的。對于第一操作系統(tǒng),將其它基礎(chǔ)庫文件加載器中、用以加載其它操作系統(tǒng)相比于第一操作系統(tǒng)所特有的基礎(chǔ)庫文件的部分,作為其它操作系統(tǒng)的其它基礎(chǔ)庫文件子加載器。因此,其它基礎(chǔ)庫文件子加載器對應(yīng)的基礎(chǔ)庫文件,為其它操作系統(tǒng)相比于第一操作系統(tǒng)所特有的基礎(chǔ)庫文件。內(nèi)核將第一操作系統(tǒng)的(第一)基礎(chǔ)庫文件加載器、與其它基礎(chǔ)庫文件子加載器預(yù)先組合為第一改良型基礎(chǔ)庫文件加載器。也就是說,第一改良型基礎(chǔ)庫文件加載器包含:第一操作系統(tǒng)的(第一)基礎(chǔ)庫文件加載器、以及除了第一操作系統(tǒng)之外的其它基礎(chǔ)庫文件子加載器。進一步,同理可得第二操作系統(tǒng)的第二改良型基礎(chǔ)庫文件加載器,第二改良型基礎(chǔ)庫文件加載器包含:第二操作系統(tǒng)的(第二)基礎(chǔ)庫文件加載器、以及除了第二操作系統(tǒng)之外的其它操作系統(tǒng)的其它基礎(chǔ)庫文件子加載器。同理可得第三改良型基礎(chǔ)庫文件加載器、…、第n改良型基礎(chǔ)庫文件加載器。較佳地,對于第一改良型基礎(chǔ)庫文件加載器、第二改良型基礎(chǔ)庫文件加載器、…、第n改良型基礎(chǔ)庫文件加載器,兩兩之間都是相同的。內(nèi)核從第一改良型基礎(chǔ)庫文件加載器中調(diào)用預(yù)設(shè)的其它操作系統(tǒng)的其它基礎(chǔ)庫文件子加載器,由其它基礎(chǔ)庫文件子加載器從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載??梢岳斫猓静襟E中,公共庫中應(yīng)用所依賴的基礎(chǔ)庫文件,實際上本就是由其它基礎(chǔ)庫文件子加載器來調(diào)用的;本發(fā)明實施例中保留了基礎(chǔ)庫文件與基礎(chǔ)庫文件子加載器之間的對應(yīng)(加載)關(guān)系;并根據(jù)其它基礎(chǔ)庫文件子加載器,對一個操作系統(tǒng)的基礎(chǔ)庫文件加載器進行了擴充,使得該一個操作系統(tǒng)可以根據(jù)擴充后的基礎(chǔ)庫文件加載器,對公共庫中原本屬于其他操作系統(tǒng)的基礎(chǔ)庫文件進行調(diào)用??梢栽诠蚕聿煌僮飨到y(tǒng)的基礎(chǔ)庫文件且減少公共庫中相同的(冗余的)基礎(chǔ)庫文件的情況下,進一步減少針對基礎(chǔ)庫文件加載器所擴充的內(nèi)容,減少擴充后的基礎(chǔ)庫文件加載器所占用的存儲空間。進一步,本發(fā)明的發(fā)明人發(fā)現(xiàn),不同的linker來執(zhí)行動態(tài)基礎(chǔ)庫文件的加載過程。那么不同的linker也就有不同的動態(tài)基礎(chǔ)庫搜索路徑順序,因為動態(tài)基礎(chǔ)庫文件的放置位置不定,所以針對每個linker會對應(yīng)設(shè)置有一個配置文件,來指示linker需要搜索那些路徑來找到相應(yīng)的動態(tài)基礎(chǔ)庫文件,例如某一種操作系統(tǒng)的動態(tài)基礎(chǔ)庫的搜索路徑包括(/lib、/usr/lib),而另一種操作系統(tǒng)的動態(tài)基礎(chǔ)庫的搜索路徑則是(/system/lib)本發(fā)明實施例中,內(nèi)核調(diào)用其它基礎(chǔ)庫文件子加載器,根據(jù)預(yù)設(shè)的與其它基礎(chǔ)庫文件子加載器對應(yīng)的基礎(chǔ)庫文件搜索路徑,從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載。加載應(yīng)用所依賴的基礎(chǔ)庫文件后,應(yīng)用對該基礎(chǔ)庫文件進行調(diào)用。例如,內(nèi)核根據(jù)funcptr=dlsym(handle,"xyz")指令,確定出應(yīng)用需要的基礎(chǔ)庫文件(由handle指向的xxx.so文件)中的具體函數(shù)xyz,將這個函數(shù)的地址賦予funcptr。應(yīng)用利用funcptr()指令,訪問此函數(shù)地址,也就是對xyz函數(shù)的實質(zhì)調(diào)用。該指令中,dlsym表示系統(tǒng)調(diào)用,主要用以根據(jù)動態(tài)鏈接基礎(chǔ)庫文件的操作句柄與符號,返回符號對應(yīng)的地址。使用這個函數(shù)不但可以獲取函數(shù)地址,也可以獲取變量地址。s206:內(nèi)核調(diào)用第一改良型基礎(chǔ)庫文件加載器從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載。當應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為第一操作系統(tǒng)時,調(diào)用第一改良型基礎(chǔ)庫文件加載器中的、第一操作系統(tǒng)的(第一)基礎(chǔ)庫文件加載器,從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載。較佳地,從上述第一改良型基礎(chǔ)庫文件加載器中的第一操作系統(tǒng)的(第一)基礎(chǔ)庫文件加載器、對應(yīng)用所依賴的基礎(chǔ)庫文件進行加載的暫停狀態(tài),恢復(fù)到加載狀態(tài),即從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載。s207:內(nèi)核調(diào)用第一改良型基礎(chǔ)庫文件加載器獲取應(yīng)用所依賴的基礎(chǔ)c庫文件進行加載。較佳地,本發(fā)明實施例的公共庫中的基礎(chǔ)庫文件都是除了基礎(chǔ)c庫文件之外的動態(tài)基礎(chǔ)庫文件。本發(fā)明實施例中,不同的操作系統(tǒng),都有對應(yīng)預(yù)設(shè)有不同的libc基礎(chǔ)庫。例如某一種操作系統(tǒng)依賴glibc基礎(chǔ)c庫,而另一種操作系統(tǒng)則依賴bionic。libc、glibc和bionic為開源庫編譯得到的文件名稱。內(nèi)核調(diào)用第一改良型基礎(chǔ)庫文件加載器中的、第一操作系統(tǒng)的(第一)基礎(chǔ)庫文件加載器,通過傳統(tǒng)路徑獲取應(yīng)用所依賴的基礎(chǔ)c庫文件,并對獲取的基礎(chǔ)c庫文件進行加載。下面介紹本發(fā)明實施例的多系統(tǒng)的基礎(chǔ)庫文件加載方法的一個特例,該特例的示意圖如圖3a所示。圖3a中,應(yīng)用1、2分別為第一操作系統(tǒng)、第二操作系統(tǒng)的應(yīng)用;linker1、2分別為第一操作系統(tǒng)的基礎(chǔ)庫文件加載器、第二操作系統(tǒng)的基礎(chǔ)庫文件加載器;基礎(chǔ)c庫1、2分別為第一操作系統(tǒng)的基礎(chǔ)c庫文件、第二操作系統(tǒng)的基礎(chǔ)c庫文件;第一、二操作系統(tǒng)的除了基礎(chǔ)c庫文件之外的其它基礎(chǔ)庫文件都預(yù)設(shè)于公共庫中。linker1、2分別通過各自的傳統(tǒng)路徑獲取基礎(chǔ)c庫1、基礎(chǔ)c庫2并進行加載。當確定出應(yīng)用1所依賴的基礎(chǔ)庫文件不是基礎(chǔ)c庫文件、且該基礎(chǔ)庫文件屬于第二操作系統(tǒng)時,從linker1中調(diào)用linker2或第二基礎(chǔ)庫文件子加載器(圖中未顯示)從公共庫中獲取該基礎(chǔ)庫文件并進行加載。反義亦然。圖3b為本發(fā)明實施例的多系統(tǒng)的基礎(chǔ)庫文件加載方法的一個特例的局部細化示意圖。圖3b中,linker1中除了linker2.a的部分、linker2中除了linker1.a的部分,分別表示第一操作系統(tǒng)的基礎(chǔ)庫文件加載器、第二操作系統(tǒng)的基礎(chǔ)庫文件加載器;系統(tǒng)2的動態(tài)庫表示第二操作系統(tǒng)相比于第一操作系統(tǒng)所特有的基礎(chǔ)庫文件,linker2.a表示linker2中用以加載第二操作系統(tǒng)相比于第一操作系統(tǒng)所特有的基礎(chǔ)庫文件的部分;系統(tǒng)1的動態(tài)庫表示第一操作系統(tǒng)相比于第二操作系統(tǒng)所特有的基礎(chǔ)庫文件,linker1.a表示linker1中用以加載第一操作系統(tǒng)相比于第二操作系統(tǒng)所特有的基礎(chǔ)庫文件的部分。linker1表示由第一操作系統(tǒng)的基礎(chǔ)庫文件加載器、和作為第二基礎(chǔ)庫文件子加載器的linker2.a組成的第一操作系統(tǒng)的第一改良型基礎(chǔ)庫文件加載器;linker2表示由第二操作系統(tǒng)的基礎(chǔ)庫文件加載器、和作為第一基礎(chǔ)庫文件子加載器的linker1.a組成的第二操作系統(tǒng)的第二基礎(chǔ)庫文件加載器。當確定出應(yīng)用1所依賴的基礎(chǔ)庫文件不是基礎(chǔ)c庫文件、且該基礎(chǔ)庫文件屬于第二操作系統(tǒng)時,從linker1中調(diào)用linker2.a從公共庫中獲取該基礎(chǔ)庫文件并進行加載。反義亦然。基于上述多系統(tǒng)的基礎(chǔ)庫文件加載方法,本發(fā)明實施例還提供了多系統(tǒng)的基礎(chǔ)庫文件加載裝置,該裝置設(shè)置于終端設(shè)備中,該裝置的內(nèi)部結(jié)構(gòu)的框架示意圖如圖4所示,包括:基礎(chǔ)庫文件確定模塊401和基礎(chǔ)庫文件加載模塊402。其中,基礎(chǔ)庫文件確定模塊401用于接收到應(yīng)用的運行請求時,確定出應(yīng)用所屬第一操作系統(tǒng)的第一改良型基礎(chǔ)庫文件加載器、以及待加載的應(yīng)用所依賴的基礎(chǔ)庫文件。基礎(chǔ)庫文件加載模塊402用于根據(jù)應(yīng)用的可執(zhí)行文件所包含的信息,確定出應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng);當應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為其它操作系統(tǒng)時,調(diào)用第一改良型基礎(chǔ)庫文件加載器中的其它操作系統(tǒng)的其它基礎(chǔ)庫文件加載器,從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載,以供應(yīng)用調(diào)用。較佳地,基礎(chǔ)庫文件確定模塊401還用于確定出第一改良型基礎(chǔ)庫文件加載器待加載的應(yīng)用所依賴的基礎(chǔ)庫文件時,暫停第一改良型基礎(chǔ)庫文件加載器對應(yīng)用所依賴的基礎(chǔ)庫文件的加載,判斷應(yīng)用所依賴的基礎(chǔ)庫文件是否是基礎(chǔ)c庫文件。以及,基礎(chǔ)庫文件加載模塊402還用于當基礎(chǔ)庫文件確定模塊判斷出應(yīng)用所依賴的基礎(chǔ)庫文件是基礎(chǔ)c庫文件時,調(diào)用第一改良型基礎(chǔ)庫文件加載器獲取應(yīng)用所依賴的基礎(chǔ)c庫文件進行加載;當基礎(chǔ)庫文件確定模塊判斷出應(yīng)用所依賴的基礎(chǔ)庫文件不是基礎(chǔ)c庫文件時,根據(jù)應(yīng)用的可執(zhí)行文件所包含的信息,確定出應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng);其中,公共庫包括除了基礎(chǔ)c庫文件之外的基礎(chǔ)庫文件。較佳地,基礎(chǔ)庫文件加載模塊402具體用于從第一改良型基礎(chǔ)庫文件加載器中調(diào)用預(yù)設(shè)的其它操作系統(tǒng)的其它基礎(chǔ)庫文件子加載器,從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載;其它基礎(chǔ)庫文件子加載器對應(yīng)的基礎(chǔ)庫文件,為其它操作系統(tǒng)相比于第一操作系統(tǒng)所特有的基礎(chǔ)庫文件。較佳地,基礎(chǔ)庫文件加載模塊402具體用于調(diào)用其它基礎(chǔ)庫文件子加載器,根據(jù)預(yù)設(shè)的與其對應(yīng)的基礎(chǔ)庫文件搜索路徑,從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載。較佳地,基礎(chǔ)庫文件加載模塊402具體用于根據(jù)應(yīng)用的可執(zhí)行文件的頭部信息,確定出應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)。較佳地,基礎(chǔ)庫文件加載模塊402還用于根據(jù)應(yīng)用的可執(zhí)行文件所包含的信息,確定出應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)之后,當應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為第一操作系統(tǒng)時,調(diào)用第一改良型基礎(chǔ)庫文件加載器從公共庫中獲取應(yīng)用所依賴的基礎(chǔ)庫文件進行加載。上述基礎(chǔ)庫文件確定模塊401和基礎(chǔ)庫文件加載模塊402功能的實現(xiàn)方法,可以參數(shù)上述多系統(tǒng)的基礎(chǔ)庫文件加載方法的具體流程和步驟的內(nèi)容,此處不再贅述。本發(fā)明實施例中,保留了基礎(chǔ)庫文件與基礎(chǔ)庫文件加載器之間的對應(yīng)加載關(guān)系,將每個操作系統(tǒng)的基礎(chǔ)庫文件加載器擴充為改良型基礎(chǔ)庫文件加載器。當發(fā)送運行請求的應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為其它操作系統(tǒng)時,可以調(diào)用第一改良型基礎(chǔ)庫文件加載器中的其它操作系統(tǒng)的其它基礎(chǔ)庫文件加載器,對公共庫中原本屬于其他操作系統(tǒng)的、該應(yīng)用所依賴的基礎(chǔ)庫文件,進行獲取和加載;既可以實現(xiàn)不同操作系統(tǒng)之間的基礎(chǔ)庫文件的共享;又可以減少公共庫中相同的(冗余的)基礎(chǔ)庫文件,節(jié)省基礎(chǔ)庫文件占用的存儲空間。而且,本發(fā)明實施例中,保留了基礎(chǔ)庫文件與基礎(chǔ)庫文件子加載器之間的對應(yīng)加載關(guān)系;并對于每個操作系統(tǒng),根據(jù)其它基礎(chǔ)庫文件子加載器,將該操作系統(tǒng)的基礎(chǔ)庫文件加載器擴充為改良型基礎(chǔ)庫文件加載器。當發(fā)送運行請求的應(yīng)用所依賴的基礎(chǔ)庫文件所屬的操作系統(tǒng)為其它操作系統(tǒng)時,可以調(diào)用第一改良型基礎(chǔ)庫文件加載器中的其它操作系統(tǒng)的其它基礎(chǔ)庫文件子加載器,對公共庫中原本屬于其他操作系統(tǒng)的、該應(yīng)用所依賴的基礎(chǔ)庫文件,進行獲取和加載;可以在共享不同操作系統(tǒng)的基礎(chǔ)庫文件且減少公共庫中相同的(冗余的)基礎(chǔ)庫文件的情況下,進一步減少針對基礎(chǔ)庫文件加載器所擴充的內(nèi)容,減少擴充后的基礎(chǔ)庫文件加載器所占用的存儲空間。此外,本發(fā)明實施例中,主要是對內(nèi)核和基礎(chǔ)庫文件的加載器進行該井,對應(yīng)用本身不需要改進,對大量的應(yīng)用具有良好的兼容性。本
技術(shù)領(lǐng)域:
:技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項或多項的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計和制造,或者也可以包括通用計算機中的已知設(shè)備。這些設(shè)備具有存儲在其內(nèi)的計算機程序,這些計算機程序選擇性地激活或重構(gòu)。這樣的計算機程序可以被存儲在設(shè)備(例如,計算機)可讀介質(zhì)中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計算機可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、cd-rom、和磁光盤)、rom(read-onlymemory,只讀存儲器)、ram(randomaccessmemory,隨即存儲器)、eprom(erasableprogrammableread-onlymemory,可擦寫可編程只讀存儲器)、eeprom(electricallyerasableprogrammableread-onlymemory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質(zhì)。本
技術(shù)領(lǐng)域:
:技術(shù)人員可以理解,可以用計算機程序指令來實現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本
技術(shù)領(lǐng)域:
:技術(shù)人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業(yè)計算機或其他可編程數(shù)據(jù)處理方法的處理器來實現(xiàn),從而通過計算機或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。本
技術(shù)領(lǐng)域:
:技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。以上所述僅是本發(fā)明的部分實施方式,應(yīng)當指出,對于本
技術(shù)領(lǐng)域:
:的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。當前第1頁12當前第1頁12