And*_*ial 31 android annotations
我想了解Android Annotations,它是否更适合在所有Android项目中使用?
如果正确,如何实现它.它有什么好的教程吗?
如果是错误的方式.Android Annotations的吸引力是什么?
在此先感谢您的帮助.
ras*_*ian 36
Android Annotations是一个注释驱动的框架,允许您简化应用程序中的代码并减少常见模式的样板,例如设置单击侦听器,强制执行ui /后台线程执行等.
你可以从这样的东西:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView descriptionTextView = (TextView) findViewById(R.id.tv_description);
final Button hideButton = (Button) findViewById(R.id.btn_hide);
hideButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
descriptionTextView.setVisibility(View.INVISIBLE);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
对于这样的事情:
@EActivity(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {
@ViewById(R.id.tv_description)
TextView mDescriptionTextView;
@Click(R.id.btn_hide)
protected void onHideButtonClick() {
mDescriptionTextView.setVisibility(View.INVISIBLE);
}
}
Run Code Online (Sandbox Code Playgroud)
这个怎么运作
你注释你的活动和组件,注释处理器然后生成与默认下划线后缀扩展您的活动和组件(即你的活动不能是最终的),所以如果你有类(在编译时)MainActivity,现在你也将有一个MainActivity_类.
这个新类包含一个编写良好的样板代码,可以执行注释指定的任何内容.
如何实施
我写了这个教程,关于如何集成Android注释,甚至包括一个关于如何更新集成测试的示例,请点击此处.
该教程在今天有效,使用Android Studio~1.5.1,它试图解释一下内部是如何工作的.
你应该用吗?
我会说,如果你有一个中小型项目的罚款.它将使您的代码更容易阅读.但是,如果您的应用程序更大并且包含大量具有复杂活动/组件生命周期的导航流,则如果没有适当地注释某些内容,则可能会难以实现或难以调试并理解错误.
因为如何Android的批注操作,它们嵌入自己的生命周期和这样做,你现在依赖其生命周期中,如果你注释你的看法与(例如@ViewById,那么你就不能引用他们onCreate(),你需要做的方法,并对其进行批注使用@AfterViews和执行此方法时,您的视图就可以使用了).这不一定是个问题,你只需要很好地理解Android的行为以及Android Annotations行为.
总而言之,就像在任何库中一样,如果你依赖它,那么你依赖它,所以你也可以非常彻底地理解它是如何工作的.您的项目现在取决于其他人的.
我不再使用Android Annotations了.当我使用这个库时,它是错误的,并使调试成为一场噩梦.另一个缺点是它降低了代码的可移植性.如果你在这个项目上独自工作,那么没关系,你没有这个问题,但是当你在团队中工作时,你必须再考虑一下.
如果你想使用它,他们的网站上有很多教程.
另一种方法:如果你想减少代码量,同时使它易于使用和理解,我建议你使用Butter Knife库.我用了很多,到目前为止没有遇到任何错误.非常容易使用和阅读.
Android Annotations是一个库,它通过使用一些属性或注释(如@EActivity、@ViewById、@OnClick)为我们“自动生成”代码。它旨在促进和减少编码时间。
“AndroidAnnotations 是一个开源框架,可以加速 Android 开发。它负责处理管道,让您专注于真正重要的事情。通过简化代码,它有助于维护。”
(此处的文档:https : //github.com/excilys/androidannotations/wiki)
但是......我们不使用它,我完全同意DDsix的回答。使用 SOLID 原则并编码应该在何时何地编码的内容......
| 归档时间: |
|
| 查看次数: |
14303 次 |
| 最近记录: |