[發明專利]封裝Dagger的方法、裝置、終端設備及存儲介質有效
| 申請號: | 201810971690.3 | 申請日: | 2018-08-24 |
| 公開(公告)號: | CN109597621B | 公開(公告)日: | 2022-10-14 |
| 發明(設計)人: | 鄭凌山 | 申請(專利權)人: | 天津字節跳動科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/30 |
| 代理公司: | 北京品源專利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 300450 天津市濱海新*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 封裝 dagger 方法 裝置 終端設備 存儲 介質 | ||
本公開實施例公開了一種封裝Dagger的方法、裝置、終端設備及存儲介質。封裝Dagger的方法包括:創建自定義注解AutoWire,所述AutoWire為編譯時注解;創建AutoWire注解對應的注解處理器,所述注解處理器用于在編譯時獲取添加AutoWire注解的類信息;根據所述類信息,生成Dagger所需的Component文件和Module文件。本公開實施例實現了對Dagger的封裝,而且可以自動生成Component文件和Module文件,解決了配置文件難以維護及人為管理易疏漏的問題,并減少研發的學習周期。
技術領域
本公開實施例涉及計算機技術,尤其涉及一種封裝Dagger的方法、裝置、終端設備及存儲介質。
背景技術
針對項目變大后內部類太多,類與類之間出現多重依賴的問題,Google推出編譯時注解版本的Dagger2方案,旨在以編譯期生成代碼替代原有的反射方案,不影響原有應用程序(Application,App)性能的前提下,解決依賴性問題,同時由于Android應用開發中大量采用MVP的架構,因此會頻繁出現在MVP架構的基礎上引入Dagger2,項目中需單獨維護Dagger所需的Component和Module文件。
由于Dagger2要求我們為每個頁面(或模塊)配置Component和Module文件,隨著業務的快速擴大,App內模塊和頁面也越來越多,手動維護這個配置列表將變得越發臃腫,難以維護,人為的管理同步也增加了疏漏的幾率;Dagger2由于設計上的考慮,添加4個內部類來達到間接注入的目的,使得研發的學習周期較長。
發明內容
有鑒于此,本公開實施例提供一種封裝Dagger的方法、裝置、終端設備及存儲介質,以至少地解決上述問題。
第一方面,本公開實施例提供了一種封裝Dagger的方法,所述方法包括:
創建自定義注解AutoWire,所述AutoWire為編譯時注解;
創建AutoWire注解對應的注解處理器,所述注解處理器用于在編譯時獲取添加AutoWire注解的類信息;
根據所述類信息,生成Dagger所需的Component文件和Module文件。
可選的,還包括:
通過所述注解處理器將所述類信息作為Element輸出;
通過所述注解處理器中的process方法將所述Element輸出的類信息進行封裝,得到傳入參數;
解析所述傳入參數,得到被注解的類信息。
可選的,根據所述類信息,生成Dagger所需的Component文件和Module文件,包括:
根據所述類信息,利用JavaPoet庫生成Dagger所需的Component文件;
根據所述類信息,利用JavaPoet庫生成Dagger所需的Module文件。
第二方面,本公開實施例還提供了一種封裝的Dagger,所述封裝的Dagger由本公開任一實施例所述的封裝Dagger的方法封裝而成。
第三方面,本公開實施例還提供了一種封裝的Dagger對MVP架構的解耦方法,包括:
針對MVP架構,將Activity的基類對應的Activity實例注入所述Dagger中;
在編譯時,通過所述Dagger中的注解處理器獲取添加AutoWire注解的Activity的類信息,所述AutoWire注解為編譯時注解,包括Activity對應的presenter參數和contract參數;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津字節跳動科技有限公司,未經天津字節跳動科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810971690.3/2.html,轉載請聲明來源鉆瓜專利網。





