gpt4 book ai didi

android - 注释在编译时在 Android 中究竟做了什么?

转载 作者:行者123 更新时间:2023-11-30 02:30:00 25 4
gpt4 key购买 nike

  1. @SuppressWarnings("未起诉")
  2. @覆盖
  3. @SuppressLint({ "InflateParams", "SimpleDateFormat"})

我不明白为什么我们需要声明注释。

最佳答案

我们希望促进 Android 应用程序的编写和维护。

我们相信具有明确 Intent 的简单代码是实现这些目标的最佳方式。

罗伯特 C. 马丁写道:

花在阅读 [代码] 和写作上的时间之比远远超过 10 比 1 [因此] 读起来容易,写起来也容易。虽然我们都喜欢开发 Android 应用程序,但我们常常想知道:为什么我们总是需要一遍又一遍地编写相同的代码?为什么我们的应用程序越来越难维护?上下文和 Activity 上帝对象、处理线程的复杂性、难以发现的 API、大量匿名监听器类、大量不需要的转换……我们不能改进它吗?

怎么做?

使用 Java 注释,开发人员可以显示他们的 Intent 并让 AndroidAnnotations 在编译时生成管道代码。

特点

依赖注入(inject):注入(inject) View 、附加功能、系统服务、资源……简化的线程模型:注释您的方法,以便它们在 UI 线程或后台线程上执行。事件绑定(bind):注释处理 View 事件的方法,不再有丑陋的匿名监听器类!REST 客户端:创建客户端接口(interface),AndroidAnnotations 生成实现。没有魔法:由于 AndroidAnnotations 在编译时生成子类,您可以检查代码以了解它是如何工作的。AndroidAnnotations 以不到 50kb 的大小提供了这些好东西甚至更多,而且对运行时性能没有任何影响!

您的 Android 代码是否易于编写、阅读和维护?

看看那个:

@EActivity(R.layout.translate) // Sets content view to R.layout.translate
public class TranslateActivity extends Activity {

@ViewById // Injects R.id.textInput
EditText textInput;

@ViewById(R.id.myTextView) // Injects R.id.myTextView
TextView result;

@AnimationRes // Injects android.R.anim.fade_in
Animation fadeIn;

@Click // When R.id.doTranslate button is clicked
void doTranslate() {
translateInBackground(textInput.getText().toString());
}

@Background // Executed in a background thread
void translateInBackground(String textToTranslate) {
String translatedText = callGoogleTranslate(textToTranslate);
showResult(translatedText);
}

@UiThread // Executed in the ui thread
void showResult(String translatedText) {
result.setText(translatedText);
result.startAnimation(fadeIn);
}

// [...]
}

关于android - 注释在编译时在 Android 中究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27439221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com