简化开发的Android注解框架:AndroidAnnotations

jopen 10年前

AndroidAnnotations是一个利用注解方式来简化代码结构,提高开发效率的开源框架。另外,针对REST的使用,框架提供了类似Spring IOC的机制,非常方便。
相比原生的Android开发,确实能够让你少些很多代码,它的首页也给出了一个简单

的例子,通过例子也可以看到代码比之前几乎少写了一半。由于是开源,所以大家都可以直接拿来使用,这里给

AndroidAnnotations首页 和github上的项目地址AndroidAnnotations Github

使用这个开源框架有什么好处(只有不到50k大小),特性:

1、使用依赖注入(Dependency Injection)#本博接来下几篇的文章将要介绍的开源组件都使用DI, 不熟悉

的可以了解一下Inversion of Control(IoC)

2、简化的线程模型(Simplified  threading model)  

3、事件绑定(Event binding)

4、REST Client

5、No Magic  [不知道为什么这样称呼,直译过来就是:无魔法,它的意思是:AndroidAnnotations在编译

的时候会产生一个子类(接下来你会明白),你查看这个子类,可以看到它是如何工作的]


以下是一个块简单的代码片段:
    @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);            }                    // [...]        }