我评估依赖注入(DI)框架Android应用程序。顶级的竞争者是:匕首(用黄油刀)和Android注解。据我所知,匕首和ButterKnife是来自同一个源 - 广场和相互补充。 Here're是我要找的关键矩阵:
易于使用(我们的构建是基于摇篮,我们采用Android Studio IDE中) 在测试的支持(我们使用Robotium进行功能测试和RoboLectric单元测试) 性能(DI框架使用反射,哪一个是更快?) 解决方案 AndroidAnnotations
使用编译时批注处理。它会产生一个子类apppended原来的名称下划线( MyActivity _
从 MyActivity
生成)。所以有它的工作,你总是使用生成的类的引用,而不是你原来的类。
它有一个非常丰富的功能集,会看到可用注释中的列表。
Butterknife
使用同样的编译时间注释处理,但它产生一个用于通过中央级的取景器类( ButterKnife
)。这意味着你可以使用你原来的类引用,但是你必须手动调用注入。从ButterKnife引进副本:
@覆盖公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.simple_activity);
ButterKnife.inject(本);
// TODO使用注入的观点......
}
该功能集不是那么丰富,ButterKnife支持视图注射液(AndroidAnnotations相当于将 @ViewById
和 @ViewsById
)和一些事件绑定(对于一个完整列表,请参阅命名空间目录here,只是算 OnXXX
事件注解)。
匕首
是DI的实现为Android,类似于吉斯。它还使用编译时批注处理和生成您使用手动注射对象图。要区分应用程序对象图和范围的对象图之间的注射如在活动。在这里,你看到一个 Application.onCreate
例如:
@覆盖公共无效的onCreate(){
super.onCreate();
objectGraph = ObjectGraph.create(getModules()的toArray());
objectGraph.inject(本);
//使用注射类
}
我发现这是很难下手匕首,但是这可能只是我的经验。但看到一些视频在这里一个更好的开始: 1 ,的
上一篇:在Android中;岂不是更好施加OnClickListener或使用安卓的onClick?岂不是、Android、onClick、OnClickListener
下一篇:我可以指定supportedRuntime(或任何其它配置参数),而在.NET中的config文件?而在、参数、文件、supportedRuntime