應(yīng)用程序的資源注入方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種應(yīng)用程序的資源注入方法及裝置,該應(yīng)用程序的資源注入方法包括:收集需要注入到成員變量的待注入資源的信息,其中,成員變量為應(yīng)用程序的成員變量,待注入資源為需要注入的資源;在緩存中查找待注入資源與成員變量的關(guān)聯(lián)關(guān)系;根據(jù)關(guān)聯(lián)關(guān)系查找與待注入資源的信息對應(yīng)的成員變量;以及根據(jù)關(guān)聯(lián)關(guān)系將待注入資源注入到對應(yīng)的成員變量中。通過本發(fā)明,采用預(yù)先建立成員變量與該成員變量待注入資源的關(guān)聯(lián)關(guān)系,通過該關(guān)聯(lián)關(guān)系將待注入資源注入到對應(yīng)的成員變量中,解決了應(yīng)用程序注入資源效率低的問題,進而達到了提高應(yīng)用程序注入資源效率的效果。
【專利說明】應(yīng)用程序的資源注入方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種應(yīng)用程序的資源注入方法及裝置。
【背景技術(shù)】
[0002] 隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,大多數(shù)應(yīng)用程序(APP)的功能越來越復(fù)雜,構(gòu)成其 功能的窗口也相應(yīng)越來越多,每個窗口所持有的管理器和使用的用戶界面(UI)組件也相 應(yīng)增加,每個用戶界面組件上所處理的事件也越來越多。如果應(yīng)用程序中存在自定義的資 源類型,則還需要維護自定義資源的生命周期、共享范圍等。但是,不同窗口調(diào)用的資源、用 戶界面組件、每個用戶頁面組件的事件的設(shè)置方法大多數(shù)是一樣的,如果按照常規(guī)的開發(fā) 方式來處理它們,那么所編寫的代碼邏輯就越來越復(fù)雜同時存在大量冗余,不僅需要耗費 很大的時間和人力成本,也不利于代碼的維護以及生產(chǎn)效率的提升。
[0003] 針對相關(guān)技術(shù)中應(yīng)用程序注入資源效率低的問題,目前尚未提出有效的解決方 案。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的主要目的在于提供一種應(yīng)用程序的資源注入方法及裝置,以解決應(yīng)用程 序注入資源效率低的問題。
[0005] 為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種應(yīng)用程序的資源注入方 法。
[0006] 根據(jù)本發(fā)明的應(yīng)用程序的資源注入方法包括:收集需要注入到成員變量的待注入 資源的信息,其中,成員變量為應(yīng)用程序的成員變量,待注入資源為需要注入的資源;在緩 存中查找待注入資源與成員變量的關(guān)聯(lián)關(guān)系;根據(jù)關(guān)聯(lián)關(guān)系查找與待注入資源的信息對應(yīng) 的成員變量;以及根據(jù)關(guān)聯(lián)關(guān)系將待注入資源注入到對應(yīng)的成員變量中。
[0007] 進一步地,在緩存中查找待注入資源與成員變量的關(guān)聯(lián)關(guān)系包括:判斷在緩存中 是否能夠查找到待注入資源與成員變量的關(guān)聯(lián)關(guān)系;如果在緩存中能夠查找到待注入資源 與成員變量的關(guān)聯(lián)關(guān)系,則從緩存中獲取待注入資源與成員變量的關(guān)聯(lián)關(guān)系;以及如果在 緩存中不能查找到待注入資源與成員變量的關(guān)聯(lián)關(guān)系,則從注解中獲取待注入資源與成員 變量的關(guān)聯(lián)關(guān)系,并將待注入資源與成員變量的關(guān)聯(lián)關(guān)系存入緩存中,其中,注解用于標識 成員變量是否需要注入資源。
[0008] 進一步地,根據(jù)關(guān)聯(lián)關(guān)系將待注入資源注入到對應(yīng)的成員變量中包括:調(diào)用資源 分析器;通過資源分析器分析注入資源的類型;以及根據(jù)注入資源的類型執(zhí)行資源注入。
[0009] 進一步地,注入資源的類型包括普通資源和自定義資源,根據(jù)注入資源的類型執(zhí) 行資源注入包括:如果注入資源的類型為普通資源,則直接執(zhí)行資源注入;以及如果注入 資源的類型為自定義資源,則獲取自定義資源中的配置信息,獲取配置信息中的資源生成 方式,并根據(jù)獲取到的資源生成方式生成資源并執(zhí)行資源注入。
[0010] 進一步地,所述待注入資源為事件資源,根據(jù)關(guān)聯(lián)關(guān)系將待注入資源注入到對應(yīng) 的成員變量中包括:從關(guān)聯(lián)關(guān)系中獲取事件類型信息和事件方法信息;以及根據(jù)事件類型 息和事件方法息執(zhí)行資源注入。
[0011] 為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種應(yīng)用程序的資源注入裝 置。該應(yīng)用程序的資源注入裝置包括:收集單元,用于收集需要注入到成員變量的待注入資 源的信息,其中,成員變量為應(yīng)用程序的成員變量,待注入資源為需要注入的資源;第一查 找單元,用于在緩存中查找待注入資源與成員變量的關(guān)聯(lián)關(guān)系;第二查找單元,用于根據(jù)關(guān) 聯(lián)關(guān)系查找與待注入資源的信息對應(yīng)的成員變量;以及注入單元,用于根據(jù)關(guān)聯(lián)關(guān)系將待 注入資源注入到對應(yīng)的成員變量中。
[0012] 進一步地,第一查找單元包括:第一判斷模塊,用于判斷在緩存中是否能夠查找 到待注入資源與成員變量的關(guān)聯(lián)關(guān)系;第一獲取模塊,用于在緩存中能夠查找到待注入資 源與成員變量的關(guān)聯(lián)關(guān)系時,則從緩存中獲取待注入資源與成員變量的關(guān)聯(lián)關(guān)系;以及第 二獲取模塊,用于在緩存中不能查找到待注入資源與成員變量的關(guān)聯(lián)關(guān)系時,則從注解中 獲取待注入資源與成員變量的關(guān)聯(lián)關(guān)系,并將待注入資源與成員變量的關(guān)聯(lián)關(guān)系存入緩存 中,其中,注解用于標識成員變量是否需要注入資源。
[0013] 進一步地,注入單元包括:調(diào)用模塊,用于調(diào)用資源分析器;分析模塊,用于通過 資源分析器分析注入資源的類型;以及第一注入模塊,用于根據(jù)注入資源的類型執(zhí)行資源 注入。
[0014] 進一步地,注入模塊還用于在注入資源的類型為普通資源時,則直接執(zhí)行資源注 入,在注入資源的類型為自定義資源時,則獲取自定義資源中的配置信息,獲取配置信息中 的資源生成方式,并根據(jù)獲取到的資源生成方式生成資源并執(zhí)行資源注入。
[0015] 進一步地,注入單元還包括:第三獲取模塊,用于從關(guān)聯(lián)關(guān)系中獲取事件類型信息 和事件方法信息;以及第二注入模塊,根據(jù)事件類型信息和事件方法信息執(zhí)行資源注入。
[0016] 通過本發(fā)明,采用預(yù)先建立成員變量與該成員變量待注入資源的關(guān)聯(lián)關(guān)系,通過 該關(guān)聯(lián)關(guān)系將待注入資源注入到對應(yīng)的成員變量中,解決了應(yīng)用程序注入資源效率低的問 題,進而達到了提高應(yīng)用程序注入資源效率的效果。
【專利附圖】
【附圖說明】
[0017] 構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實 施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
[0018] 圖1是根據(jù)本發(fā)明實施例的應(yīng)用程序的資源注入方法的流程圖;
[0019] 圖2是根據(jù)本發(fā)明實施例的待注入資源的類型的示意圖;以及
[0020] 圖3是根據(jù)本發(fā)明實施例的應(yīng)用程序的資源注入裝置示意圖。
【具體實施方式】
[0021] 需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相 互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
[0022] 為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的 附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是 本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù) 人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當屬于本發(fā)明保護的范 圍。
[0023] 根據(jù)本發(fā)明實施例,提供了一種應(yīng)用程序的資源注入方法。圖1是根據(jù)本發(fā)明實 施例的應(yīng)用程序的資源注入方法的流程圖。
[0024] 如圖1所示,該方法包括如下的步驟S102至步驟S108:
[0025] 步驟S102 :收集需要注入到成員變量的待注入資源的信息,其中,成員變量為應(yīng) 用程序的成員變量,待注入資源為需要注入的資源。
[0026] -個應(yīng)用程序可以包含一個或多個窗口,每個窗口可以包含一個或多個成員變 量,每個成員變量可以關(guān)聯(lián)一個或多個待注入資源。成員變量分為不同的類型,例如布局類 成員變量,自定義類成員變量,圖片、文本等普通類成員變量等。如圖2所示,待注入資源包 括圖片、文本、顏色等普通資源,自定義資源,管理器資源和事件資源等。一個成員變量可以 只注入一個資源,也可以同時注入多個資源,例如可以向一個普通類成員變量同時注入多 個圖片資源和文本資源,從而應(yīng)用程序的窗口在調(diào)用成員變量時可以同時顯示多幅圖片并 同時顯示文本。在應(yīng)用程序的窗口啟動時,需要收集該窗口對應(yīng)的所有待注入資源的信息。
[0027] 步驟S104 :在緩存中查找待注入資源與成員變量的關(guān)聯(lián)關(guān)系。
[0028] 待注入資源與成員變量的關(guān)聯(lián)關(guān)系標識了待注入資源與成員變量的對應(yīng)關(guān)系,即 每個成員變量對應(yīng)于哪幾個待注入資源,每個待注入資源需要注入到哪個成員變量中???選地,可以將待注入資源的唯一標識符包含在每個成員變量中實現(xiàn)成員變量與待注入資源 的關(guān)聯(lián)。通過預(yù)先建立待注入資源與成員變量的關(guān)聯(lián)關(guān)系,可以實現(xiàn)快速的將待注入資源 注入到成員變量中。
[0029] 在應(yīng)用程序啟動時,會開啟一個線程掃描整個應(yīng)用程序所有待注入資源以及待注 入資源和成員變量的關(guān)聯(lián)關(guān)系,并將該關(guān)聯(lián)關(guān)系存入緩存中,以提高查找待注入資源與成 員變量的關(guān)聯(lián)關(guān)系的效率。
[0030] 步驟S106 :根據(jù)關(guān)聯(lián)關(guān)系查找與待注入資源的信息對應(yīng)的成員變量。
[0031] 在應(yīng)用程序收集待注入資源完成后,根據(jù)預(yù)設(shè)的關(guān)聯(lián)關(guān)系查找每個待注入資源對 應(yīng)的成員變量,從而實現(xiàn)準確的將每個待注入資源注入到對應(yīng)的成員變量中。
[0032] 步驟S108 :根據(jù)關(guān)聯(lián)關(guān)系將待注入資源注入到對應(yīng)的成員變量中。
[0033] 本發(fā)明實施例通過預(yù)先建立待注入資源和成員變量的關(guān)聯(lián)關(guān)系,根據(jù)該關(guān)聯(lián)關(guān)系 將待注入資源注入到對應(yīng)的成員變量中,實現(xiàn)快速向應(yīng)用程序中注入資源,解決了應(yīng)用程 序注入資源效率低的問題,進而達到了提高應(yīng)用程序注入資源效率的效果。
[0034] 優(yōu)選地,為了提高注入資源的效率,在緩存中查找待注入資源與成員變量的關(guān)聯(lián) 關(guān)系包括:判斷在緩存中是否能夠查找到待注入資源與成員變量的關(guān)聯(lián)關(guān)系;如果在緩存 中能夠查找到待注入資源與成員變量的關(guān)聯(lián)關(guān)系,則從緩存中獲取待注入資源與成員變量 的關(guān)聯(lián)關(guān)系;以及如果在緩存中不能查找到待注入資源與成員變量的關(guān)聯(lián)關(guān)系,則從注解 中獲取待注入資源與成員變量的關(guān)聯(lián)關(guān)系,并將待注入資源與成員變量的關(guān)聯(lián)關(guān)系存入緩 存中,其中,注解用于標識成員變量是否需要注入資源。
[0035] 由于應(yīng)用程序從緩存中獲取數(shù)據(jù)比其他位置獲取數(shù)據(jù)的速度更快。因此,應(yīng)用程 序首先在緩存中查找待注入資源與成員變量的關(guān)聯(lián)關(guān)系并獲取該關(guān)聯(lián)關(guān)系,只有在緩存中 查找不到待注入資源與成員變量的關(guān)聯(lián)關(guān)系時,才從注解中獲取該關(guān)聯(lián)關(guān)系,為了提高應(yīng) 用程序下一次獲取該關(guān)聯(lián)關(guān)系的效率,將該關(guān)聯(lián)關(guān)系存入緩存中。
[0036] 注解用于標識應(yīng)用程序中需要注入資源的成員變量。注解封裝了不同成員變量注 入對應(yīng)資源的功能,省去了重復(fù)編寫這些功能的處理邏輯,在不同的開發(fā)系統(tǒng)中可以有不 同的封裝方式,例如,在安卓平臺進行應(yīng)用程序開發(fā)中,向事件成員變量注入資源,將列表 news_listl, news_list2, news_list3 的列表點擊事件綁定到 OnListViewItemClick 上,注 解可以如下:
【權(quán)利要求】
1. 一種應(yīng)用程序的資源注入方法,其特征在于,包括: 收集需要注入到成員變量的待注入資源的信息,其中,所述成員變量為應(yīng)用程序的成 員變量,所述待注入資源為需要注入的資源; 在緩存中查找所述待注入資源與所述成員變量的關(guān)聯(lián)關(guān)系; 根據(jù)所述關(guān)聯(lián)關(guān)系查找與所述待注入資源的信息對應(yīng)的成員變量;以及 根據(jù)所述關(guān)聯(lián)關(guān)系將所述待注入資源注入到對應(yīng)的成員變量中。
2. 根據(jù)權(quán)利要求1所述的資源注入方法,其特征在于,在緩存中查找所述待注入資源 與所述成員變量的關(guān)聯(lián)關(guān)系包括: 判斷在所述緩存中是否能夠查找到所述待注入資源與所述成員變量的關(guān)聯(lián)關(guān)系; 如果在所述緩存中能夠查找到所述待注入資源與所述成員變量的關(guān)聯(lián)關(guān)系,則從所述 緩存中獲取所述待注入資源與所述成員變量的關(guān)聯(lián)關(guān)系;以及 如果在所述緩存中不能查找到所述待注入資源與所述成員變量的關(guān)聯(lián)關(guān)系,則從注解 中獲取所述待注入資源與所述成員變量的關(guān)聯(lián)關(guān)系,并將所述待注入資源與所述成員變量 的關(guān)聯(lián)關(guān)系存入所述緩存中,其中,所述注解用于標識成員變量是否需要注入資源。
3. 根據(jù)權(quán)利要求1所述的資源注入方法,其特征在于,根據(jù)所述關(guān)聯(lián)關(guān)系將所述待注 入資源注入到對應(yīng)的成員變量中包括: 調(diào)用資源分析器; 通過所述資源分析器分析注入資源的類型;以及 根據(jù)注入資源的類型執(zhí)行資源注入。
4. 根據(jù)權(quán)利要求3所述的資源注入方法,其特征在于,所述注入資源的類型包括普通 資源和自定義資源,根據(jù)注入資源的類型執(zhí)行資源注入包括: 如果所述注入資源的類型為所述普通資源,則直接執(zhí)行資源注入;以及 如果所述注入資源的類型為所述自定義資源,則獲取所述自定義資源中的配置信息, 獲取配置信息中的資源生成方式,并根據(jù)獲取到的資源生成方式生成資源并執(zhí)行資源注 入。
5. 根據(jù)權(quán)利要求1所述的資源注入方法,其特征在于,所述待注入資源為事件資源,根 據(jù)所述關(guān)聯(lián)關(guān)系將所述待注入資源注入到對應(yīng)的成員變量中包括: 從所述關(guān)聯(lián)關(guān)系中獲取事件類型信息和事件方法信息;以及 根據(jù)所述事件類型信息和所述事件方法信息執(zhí)行資源注入。
6. -種應(yīng)用程序的資源注入裝置,其特征在于,包括: 收集單元,用于收集需要注入到成員變量的待注入資源的信息,其中,所述成員變量為 應(yīng)用程序的成員變量,所述待注入資源為需要注入的資源; 第一查找單元,用于在緩存中查找所述待注入資源與所述成員變量的關(guān)聯(lián)關(guān)系; 第二查找單元,用于根據(jù)所述關(guān)聯(lián)關(guān)系查找與所述待注入資源的信息對應(yīng)的成員變 量;以及 注入單元,用于根據(jù)所述關(guān)聯(lián)關(guān)系將所述待注入資源注入到對應(yīng)的成員變量中。
7. 根據(jù)權(quán)利要求6所述的資源注入裝置,其特征在于,所述第一查找單元包括: 第一判斷模塊,用于判斷在所述緩存中是否能夠查找到所述待注入資源與所述成員變 量的關(guān)聯(lián)關(guān)系; 第一獲取模塊,用于在所述緩存中能夠查找到所述待注入資源與所述成員變量的關(guān)聯(lián) 關(guān)系時,則從所述緩存中獲取所述待注入資源與所述成員變量的關(guān)聯(lián)關(guān)系;以及 第二獲取模塊,用于在所述緩存中不能查找到所述待注入資源與所述成員變量的關(guān)聯(lián) 關(guān)系時,則從注解中獲取所述待注入資源與所述成員變量的關(guān)聯(lián)關(guān)系,并將所述待注入資 源與所述成員變量的關(guān)聯(lián)關(guān)系存入所述緩存中,其中,所述注解用于標識成員變量是否需 要注入資源。
8. 根據(jù)權(quán)利要求6所述的資源注入裝置,其特征在于,所述注入單元包括: 調(diào)用模塊,用于調(diào)用資源分析器; 分析模塊,用于通過所述資源分析器分析注入資源的類型;以及 第一注入模塊,用于根據(jù)注入資源的類型執(zhí)行資源注入。
9. 根據(jù)權(quán)利要求8所述的資源注入裝置,其特征在于,所述注入模塊還用于在所述注 入資源的類型為普通資源時,則直接執(zhí)行資源注入,在所述注入資源的類型為自定義資源 時,則獲取所述自定義資源中的配置信息,獲取配置信息中的資源生成方式,并根據(jù)獲取到 的資源生成方式生成資源并執(zhí)行資源注入。
10. 根據(jù)權(quán)利要求6所述的資源注入裝置,其特征在于,所述注入單元還包括: 第三獲取模塊,用于從關(guān)聯(lián)關(guān)系中獲取事件類型信息和事件方法信息;以及 第二注入模塊,根據(jù)所述事件類型信息和所述事件方法信息執(zhí)行資源注入。
【文檔編號】G06F17/30GK104317941SQ201410602757
【公開日】2015年1月28日 申請日期:2014年10月31日 優(yōu)先權(quán)日:2014年10月31日
【發(fā)明者】王乾宇, 宋立新, 耿利達 申請人:新華瑞德(北京)網(wǎng)絡(luò)科技有限公司