日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

浅谈ButterKnife对Android性能的影响

發布時間:2025/3/15 Android 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈ButterKnife对Android性能的影响 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ButterKnife是大神JakeWharton開源的View依賴注入框架,使用注解就可以完成View的查找,簡化了代碼的書寫。有人擔心項目中使用ButterKnife會對性能有影響,但又有人說ButterKnife使用了APT故不影響性能,事實到底如何?實現原理面前,一切都是透明的。

二 ButterKnife實現原理

2.1 注解處理

對于使用ButterKnife注解的類,都會生成實現ViewBinder接口名稱原類名+$$ViewBinder的相應輔助類。這個過程處于編譯期間,也就是我們APT在編譯時處理注解生成的。由此可知,對運行時的性能,這個階段是沒有影響的。

2.2 ButterKnife.bind過程

編譯期生成的輔助類,想要完成綁定View,還需要一個bind的過程。源碼如下:


Paste_Image.png

可以看到,bind分為兩個步驟。一個是找到注解處理器生成的輔助類,一個就是Android原本的findViewById過程。第二步就不用說了,性能影響主要是看第一步。

findViewBinderForClass方法如下:


Paste_Image.png

可以知道,該方法有兩個影響性能的地方,就是Class.forName和viewBindingClass.newInstance這兩個方法。ButterKnife對此進行了一些優化,使用靜態Map進行緩存,但是第一次查找的時候的性能影響是免不了的。

三 結論

通過原理分析,結論顯而易見。ButterKnife對性能有一定的影響,并且引入了更多的類和方法,增加了安裝包的大小。但是,對開發效率的提升也是顯而易見的,尤其是配合AS插件的使用。如何取舍,完全是由作為開發者的你來決定了。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的浅谈ButterKnife对Android性能的影响的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。