ndom AccessMemory, RAM)等。
[0092]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種自定義類(lèi)的加載方法,其特征在于,該方法包括: 接收第一自定義類(lèi)的加載請(qǐng)求,查詢(xún)所述第一自定義類(lèi)是否繼承有第二自定義類(lèi),如果有,獲取所述第一自定義類(lèi)的類(lèi)加載器鏈; 在獲取的所述類(lèi)加載器鏈中,查找到加載所述第二自定義類(lèi)的類(lèi)加載器; 提取所述第二自定義類(lèi)的類(lèi)加載器中預(yù)先設(shè)置的加載目錄,并將提取的加載目錄添加到所述類(lèi)加載器鏈中用于加載所述第一自定義類(lèi)的類(lèi)加載器的加載路徑中; 刪除所述類(lèi)加載器鏈中除所述第一自定義類(lèi)的類(lèi)加載器之外的自定義類(lèi)加載器,得到更新的類(lèi)加載器鏈; 按照所述更新的類(lèi)加載器鏈加載所述第一自定義類(lèi)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,第一自定義類(lèi)為組件自定義類(lèi),所述第二自定義類(lèi)為應(yīng)用程序自定義類(lèi),所述應(yīng)用程序?yàn)樗鼋M件所屬的應(yīng)用程序,所述應(yīng)用程序自定義類(lèi)存在于所述應(yīng)用程序以及所述組件中。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述查找到加載所述第二自定義類(lèi)的類(lèi)加載器包括: 提取第一自定義類(lèi)的類(lèi)加載器鏈中的所述第一自定義類(lèi)的類(lèi)加載器,將預(yù)加載第二自定義類(lèi)的任務(wù)請(qǐng)求,從所述鏈頭至所述第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾的方向,依序傳遞至鏈尾對(duì)應(yīng)的類(lèi)加載器; 所述鏈尾對(duì)應(yīng)的類(lèi)加載器在加載任務(wù)列表中查找是否包含所述第二自定義類(lèi),如果包含,所述鏈尾對(duì)應(yīng)的類(lèi)加載器為所述第二自定義類(lèi)的類(lèi)加載器,如果未包含,從所述鏈尾對(duì)應(yīng)的類(lèi)加載器至所述所述第一自定義類(lèi)的類(lèi)加載器的方向,依序查詢(xún)相應(yīng)的加載任務(wù)列表中查找是否包含所述第二自定義類(lèi),并將包含所述第二自定義類(lèi)的加載任務(wù)列表對(duì)應(yīng)的自定義類(lèi)加載器作為所述第二自定義類(lèi)的類(lèi)加載器。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)先設(shè)置的加載目錄包括-/vendor/lib目錄以及/system/lib目錄。5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述按照所述更新的類(lèi)加載器鏈加載所述第一自定義類(lèi)包括: 提取所述更新的第一自定義類(lèi)的類(lèi)加載器鏈中的所述第一自定義類(lèi)的類(lèi)加載器,將加載第一自定義類(lèi)的任務(wù)請(qǐng)求,從所述所述第一自定義類(lèi)的類(lèi)加載器至所述更新的第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾的方向,依序傳遞至鏈尾對(duì)應(yīng)的類(lèi)加載器; 所述更新的第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾對(duì)應(yīng)的類(lèi)加載器在加載任務(wù)列表中查找是否包含所述第一自定義類(lèi),如果包含,加載所述第一自定義類(lèi)并返回加載結(jié)果,如果未包含,從所述鏈尾對(duì)應(yīng)的類(lèi)加載器至所述所述第一自定義類(lèi)的類(lèi)加載器的方向,依序查詢(xún)相應(yīng)的加載任務(wù)列表中查找是否包含所述第一自定義類(lèi),并從包含所述第一自定義類(lèi)的加載任務(wù)列表對(duì)應(yīng)的自定義類(lèi)加載器加載所述第一自定義類(lèi)并返回加載結(jié)果;接收加載結(jié)果信息,提取所述更新的第一自定義類(lèi)的類(lèi)加載器鏈中的所述第一自定義類(lèi)的類(lèi)加載器,將加載第二自定義類(lèi)的任務(wù)請(qǐng)求,從所述所述第一自定義類(lèi)的類(lèi)加載器至所述更新的第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾的方向,依序傳遞至鏈尾對(duì)應(yīng)的類(lèi)加載器;所述更新的第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾對(duì)應(yīng)的類(lèi)加載器在加載任務(wù)列表中查找是否包含所述第二自定義類(lèi),如果包含,加載所述第二自定義類(lèi)并返回加載結(jié)果,如果未包含,從所述鏈尾對(duì)應(yīng)的類(lèi)加載器至所述所述第一自定義類(lèi)的類(lèi)加載器的方向,依序查詢(xún)相應(yīng)的加載任務(wù)列表中查找是否包含所述第二自定義類(lèi),并從包含所述第二自定義類(lèi)的加載任務(wù)列表對(duì)應(yīng)的自定義類(lèi)加載器加載所述第二自定義類(lèi)并返回加載結(jié)果。6.一種自定義類(lèi)的加載裝置,其特征在于,該裝置包括:繼承關(guān)系查詢(xún)模塊、加載查詢(xún)模塊、目錄添加模塊、類(lèi)加載器鏈更新模塊以及組件加載模塊,其中, 繼承關(guān)系查詢(xún)模塊,用于接收第一自定義類(lèi)的加載請(qǐng)求,查詢(xún)所述第一自定義類(lèi)是否繼承有第二自定義類(lèi),如果有,獲取所述第一自定義類(lèi)的類(lèi)加載器鏈; 加載查詢(xún)模塊,用于在獲取的所述類(lèi)加載器鏈中,查找到加載所述第二自定義類(lèi)的類(lèi)加載器; 目錄添加模塊,用于提取所述第二自定義類(lèi)的類(lèi)加載器中預(yù)先設(shè)置的加載目錄,并將提取的加載目錄添加到所述類(lèi)加載器鏈中用于加載所述第一自定義類(lèi)的類(lèi)加載器的加載路徑中; 類(lèi)加載器鏈更新模塊,用于刪除所述類(lèi)加載器鏈中除所述第一自定義類(lèi)的類(lèi)加載器之外的自定義類(lèi)加載器,得到更新的類(lèi)加載器鏈; 組件加載模塊,用于按照所述更新的類(lèi)加載器鏈加載所述第一自定義類(lèi)。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一自定義類(lèi)為組件自定義類(lèi),第二自定義類(lèi)為應(yīng)用程序自定義類(lèi),第二自定義類(lèi)存在于應(yīng)用程序以及所述組件中,所述應(yīng)用程序?yàn)榻M件所屬的應(yīng)用程序。8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述加載查詢(xún)模塊包括:預(yù)加載任務(wù)請(qǐng)求單元以及第二自定義類(lèi)的類(lèi)加載器獲取單元,其中, 預(yù)加載任務(wù)請(qǐng)求單元,用于提取第一自定義類(lèi)的類(lèi)加載器鏈中的所述第一自定義類(lèi)的類(lèi)加載器,將預(yù)加載第二自定義類(lèi)的任務(wù)請(qǐng)求,從所述鏈頭至所述第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾的方向,依序傳遞至鏈尾對(duì)應(yīng)的類(lèi)加載器; 第二自定義類(lèi)的類(lèi)加載器獲取單元,用于在所述鏈尾對(duì)應(yīng)的類(lèi)加載器在加載任務(wù)列表中查找是否包含所述第二自定義類(lèi),如果包含,所述鏈尾對(duì)應(yīng)的類(lèi)加載器為所述第二自定義類(lèi)的類(lèi)加載器,如果未包含,從所述鏈尾對(duì)應(yīng)的類(lèi)加載器至所述所述第一自定義類(lèi)的類(lèi)加載器的方向,依序查詢(xún)相應(yīng)的加載任務(wù)列表中查找是否包含所述第二自定義類(lèi),并將包含所述第二自定義類(lèi)的加載任務(wù)列表對(duì)應(yīng)的自定義類(lèi)加載器作為所述第二自定義類(lèi)的類(lèi)加載器。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述組件加載模塊包括:第一自定義類(lèi)加載任務(wù)請(qǐng)求單元、第一自定義類(lèi)加載單元、第二自定義類(lèi)加載任務(wù)請(qǐng)求單元以及第二自定義類(lèi)加載單元,其中, 第一自定義類(lèi)加載任務(wù)請(qǐng)求單元,用于提取所述更新的第一自定義類(lèi)的類(lèi)加載器鏈中的所述第一自定義類(lèi)的類(lèi)加載器,將加載第一自定義類(lèi)的任務(wù)請(qǐng)求,從所述所述第一自定義類(lèi)的類(lèi)加載器至所述更新的第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾的方向,依序傳遞至鏈尾對(duì)應(yīng)的類(lèi)加載器; 第一自定義類(lèi)加載單元,用于在所述更新的第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾對(duì)應(yīng)的類(lèi)加載器在加載任務(wù)列表中查找是否包含所述第一自定義類(lèi),如果包含,加載所述第一自定義類(lèi)并返回加載結(jié)果,如果未包含,從所述鏈尾對(duì)應(yīng)的類(lèi)加載器至所述所述第一自定義類(lèi)的類(lèi)加載器的方向,依序查詢(xún)相應(yīng)的加載任務(wù)列表中查找是否包含所述第一自定義類(lèi),并從包含所述第一自定義類(lèi)的加載任務(wù)列表對(duì)應(yīng)的自定義類(lèi)加載器加載所述第一自定義類(lèi)并返回加載結(jié)果; 第二自定義類(lèi)加載任務(wù)請(qǐng)求單元,用于接收加載結(jié)果信息,提取所述更新的第一自定義類(lèi)的類(lèi)加載器鏈中的所述第一自定義類(lèi)的類(lèi)加載器,將加載第二自定義類(lèi)的任務(wù)請(qǐng)求,從所述所述第一自定義類(lèi)的類(lèi)加載器至所述更新的第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾的方向,依序傳遞至鏈尾對(duì)應(yīng)的類(lèi)加載器; 第二自定義類(lèi)加載單元,用于在所述更新的第一自定義類(lèi)的類(lèi)加載器鏈的鏈尾對(duì)應(yīng)的類(lèi)加載器在加載任務(wù)列表中查找是否包含所述第二自定義類(lèi),如果包含,加載所述第二自定義類(lèi)并返回加載結(jié)果,如果未包含,從所述鏈尾對(duì)應(yīng)的類(lèi)加載器至所述所述第一自定義類(lèi)的類(lèi)加載器的方向,依序查詢(xún)相應(yīng)的加載任務(wù)列表中查找是否包含所述第二自定義類(lèi),并從包含所述第二自定義類(lèi)的加載任務(wù)列表對(duì)應(yīng)的自定義類(lèi)加載器加載所述第二自定義類(lèi)并返回加載結(jié)果。10.根據(jù)權(quán)利要求6至9任一項(xiàng)所述的裝置,其特征在于,所述預(yù)先設(shè)置的加載目錄包括:/vendor/lib 目錄以及/system/lib 目錄。
【專(zhuān)利摘要】本發(fā)明的實(shí)施例公開(kāi)一種自定義類(lèi)的加載方法及裝置。方法包括:接收第一自定義類(lèi)的加載請(qǐng)求,獲取所述第一自定義類(lèi)的類(lèi)加載器鏈;在獲取的所述類(lèi)加載器鏈中,查找到加載所述第二自定義類(lèi)的類(lèi)加載器;提取所述第二自定義類(lèi)的類(lèi)加載器中預(yù)先設(shè)置的加載目錄,并將提取的加載目錄添加到所述類(lèi)加載器鏈中用于加載所述第一自定義類(lèi)的類(lèi)加載器的加載路徑中;刪除所述類(lèi)加載器鏈中除所述第一自定義類(lèi)的類(lèi)加載器之外的自定義類(lèi)加載器,得到更新的類(lèi)加載器鏈;按照所述更新的類(lèi)加載器鏈加載所述第一自定義類(lèi)。應(yīng)用本發(fā)明,可以有效擴(kuò)展組件中自定義類(lèi)功能。
【IPC分類(lèi)】G06F9/445
【公開(kāi)號(hào)】CN105045642
【申請(qǐng)?zhí)枴緾N201510548994
【發(fā)明人】孫文鴻
【申請(qǐng)人】北京金山安全軟件有限公司
【公開(kāi)日】2015年11月11日
【申請(qǐng)日】2015年8月31日