Android Annotations 介绍

Android Annotations 介绍 - hack8的专栏 - 博客频道 - CSDN.NET

开发过程中看到别人使用了Android Annotations的代码,该代码是一个第三方框架,通过注释来开发应用。使用Android Annotations能够大大减少代码量。

请看下面的Java代码

  1. package com.example.androidannotations;   
  2. import android.app.Activity;   
  3. import android.widget.TextView;   
  4.     
  5. import com.googlecode.androidannotations.annotations.AfterViews;   
  6. import com.googlecode.androidannotations.annotations.EActivity;   
  7. import com.googlecode.androidannotations.annotations.ViewById;   
  8.     
  9. //Eactivity注释可以设置Layout,相当于setConentView方法    
  10. @EActivity(R.layout.activity_main)   
  11. public class MainActivity extends Activity {   
  12.     //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv)    
  13.     @ViewById   
  14.     TextView tv;   
  15.     //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行    
  16.     @AfterViews   
  17.     void init()   
  18.     {   
  19.         tv.setText("asfsdf");   
  20.     }   
  21. }   
  22.   
  23. package com.example.androidannotations;  
  24. import android.app.Activity;  
  25. import android.widget.TextView;  
  26.    
  27. import com.googlecode.androidannotations.annotations.AfterViews;  
  28. import com.googlecode.androidannotations.annotations.EActivity;  
  29. import com.googlecode.androidannotations.annotations.ViewById;  
  30.    
  31. //Eactivity注释可以设置Layout,相当于setConentView方法  
  32. @EActivity(R.layout.activity_main)  
  33. public class MainActivity extends Activity {  
  34.  //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv)  
  35.  @ViewById  
  36.  TextView tv;  
  37.  //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行  
  38.  @AfterViews  
  39.  void init()  
  40.  {  
  41.   tv.setText("asfsdf");  
  42.  }  
  43. }  
 package com.example.androidannotations; 
 import android.app.Activity; 
 import android.widget.TextView; 
   
 import com.googlecode.androidannotations.annotations.AfterViews; 
 import com.googlecode.androidannotations.annotations.EActivity; 
 import com.googlecode.androidannotations.annotations.ViewById; 
   
 //Eactivity注释可以设置Layout,相当于setConentView方法  
 @EActivity(R.layout.activity_main) 
 public class MainActivity extends Activity { 
     //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv)  
     @ViewById 
     TextView tv; 
     //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行  
     @AfterViews 
     void init() 
     { 
         tv.setText("asfsdf"); 
     } 
 } 

 package com.example.androidannotations;
 import android.app.Activity;
 import android.widget.TextView;
  
 import com.googlecode.androidannotations.annotations.AfterViews;
 import com.googlecode.androidannotations.annotations.EActivity;
 import com.googlecode.androidannotations.annotations.ViewById;
  
 //Eactivity注释可以设置Layout,相当于setConentView方法
 @EActivity(R.layout.activity_main)
 public class MainActivity extends Activity {
  //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv)
  @ViewById
  TextView tv;
  //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行
  @AfterViews
  void init()
  {
   tv.setText("asfsdf");
  }
 }



一些常用注释的使用方法:
@AfterInject 定义的方法在类的构造方法执行后执行
@AfterTextChange定义的方法在TextView及其子类的Text属性改变后执行
@AfterViews 定义的方法在setContentView后执行
@Background 定义的方法在后台线程执行
@BeforeTextChange 定义的方法在TextView及其子类的Text属性改变前执行
@Click 定义点击监听器
@EActivity 在Activity中启用Annotations
@EProvider 在 ContentProvider中启用Annotations
@EReceive 在BroadcastReceiver中启用Annotations
@EService 在Service中启用Annotations
@EView 在自定义的View的子类中启用Annotations
@Fullscreen 全屏
@NoTitle 无标题栏

掌握这些注视对读懂利用该第三方代码开发的代码非常有帮助,同时对利用该代码开发的APK文件反编译的解释能够有更深入的了解。

原文地址:https://www.cnblogs.com/seven1979/p/4272638.html