ButterKnife vs RoboGuice
当涉及到Android上的依赖注入(DI)类库的时候,存在不少的选择,我在公司项目中用了RoboGuice,现在非常后悔。最开始认为RoboGuice节约了大量的时间。较少的代码意味着较少的错误,较少的样板代码意味着可以把更多的时间放到应用的核心逻辑上。
比较 | RoboGuice | ButterKnife |
---|---|---|
所需的最少jar包 | 3 (roboguice-2.0.jar, javax.inject-1.jar and guice-3.0-no_aop.jar) | 1 (butterknife-4.0.1.jar) |
是否需要替代Activity | 需要,RoboActivity替代Activity | 不需要 |
与ActionBarSherlock的兼容性 | 兼容,需添加roboguice-sherlock-1.5.jar包到应用并且用RoboSherlockActivity替换SherlockActivity | 兼容,不需要额外jars包 |
单击监听器的注入 | 不支持 | 支持 |
性能 | 运行时采取反射机制有性能影响 | 没有采取反射而使用了预编译技术,因为基于反射的DI非常占用资源和耗时 |
POJO注入 | 支持 | 不支持 |
Fragments注入 | 支持 | 支持 |
适配器注入 | 不支持 | 支持 |
代码协议 | Apache License 2.0 | Apache License 2.0 |
链接 | Rroboguice Link | Butterknife Link |