Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android RoboGuice開源框架、Butter Knife開源框架淺析

Android RoboGuice開源框架、Butter Knife開源框架淺析

編輯:關於Android編程

Google Guice on Android(RoboGuice)

今天介紹一下Google的這個開源框架RoboGuice, 它的作用跟之前講過的Dagger框架幾乎是一樣的,只是Dagger比它的功能更強大一些。Dagger通過專注於一種簡化的功能集以一種不同的方式達到了更好的性能。有人認為RoboGuice節約了大量的時間。較少的代碼意味著較少的錯誤,較少的樣板代碼意味著可以把更多的時間放到應用的核心邏輯上。所以這就是為什麼我們要使用這些開源框架來開發的原因。 下面我們來說說RoboGuice的使用:

  • Views Injection: 我們要想取得一個xml文件中的某個控件對象時,不再采用findViewById(R.id...)這種方式了,而是用@InjectViews注解來實現, 如: @InjectView(R.id.textView1) TextView textView1; //這樣我們就得到了這個TextView對象實體
  • Resources Injection: 同樣也提供了資源的注入方式,也不再是傳統的getResources().getDrawable(R.id.ic_launcher)這種方式, 而是用 @InjectResources注解來做, 如: @InjectResource(R.id.ic_launcher) Drawable icLauncher;
  • System services Injection: 獲取一些系統級服務對象, 不會再沿用原來的
    locManager = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);的方法了,而是運用@Inject注解來實現,如:
    @Inject LocationManager locManager;
  • POJO object Injection: 注入一個簡單JAVA對象(POJO)也是用注解@Inject, 如: @Inject Student student;

    事實上很多人都認為RoboGuice的效率很低,所以其實很少人願意用這個,而更多人傾向於用AA (Android Annotation)。
    當然RoboGuice中還有一些其他的注解:如:@ContentView(R.layout.layout_main) 代替 setContentView(R.layout.layout_main);@ContextSingleton 來設計一個單例的類。(在dagger中其實都有)如果網友有興趣,再去深入研究它的Java Doc(http://www.imobilebbs.com/download/android/roboguice/javadoc/)

    Butter Knife

    這個框架跟RoboGuice框架的使用方法機會一樣,順帶稍微記錄一下。例子:
    class ExampleActivity extends Activity {
      @InjectView(R.id.user) EditText username;
      @InjectView(R.id.pass) EditText password;
    
      @OnClick(R.id.submit) void submit() {
        // TODO call server...
      }
    
      @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_activity);
        ButterKnife.inject(this);
        // TODO Use "injected" views...
      }
    }

    Gradle中的配置:
    compile 'com.jakewharton:butterknife:5.1.1'
    1. 上一頁:
    2. 下一頁:
    熱門文章
    閱讀排行版
    Copyright © Android教程網 All Rights Reserved