AndroidAnnotations一個可以讓你的android代碼更加簡潔的框架

簡介

AndroidAnnotations是一個利用註解方式來簡化代碼結構,提高開發效率的開源框架。另外,針對REST的使用,框架提供瞭類似Spring IOC的機制,非常方便。

以下是一個塊簡單的代碼片段:

[java] 

@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);  

    }  

  

    // […]  

}  

如何安裝

官網:https://androidannotations.org/

下載地址:https://github.com/excilys/androidannotations/wiki/Download

 

壓縮包裡包含兩個jar文件:androidannotations-x.x.x.jar和androidannotations-api-x.x.x.jar,另外還有個examples文件夾

androidannotations-x.x.x.jar是用來提供給java的註解處理插件

androidannotations-api-x.x.x.jar是給android工程使用的包

下面用實例裡帶的HelloWorldEclipse演示如何使用

1. 在eclipse裡導入實例工程HelloWorldEclipse

2. 修改HelloWorldEclipse中的lib文件夾為libs,並把androidannotations-api-x.x.x.jar放入目錄,回到Eclipse裡刷新工程,androidannotations-api-x.x.x.jar被自動引入到瞭build path

3. 新建一個compilers文件夾,將androidannotations-x.x.x.jar拷貝進來待用

4. 打開工程屬性,在Java Build Path-library中的androidannotations-2.6-SNAPSHOT-api.jar刪除

5. 打開過程屬性,在Java compiler-Annotation Processing中啟用Annotation Processing

 

6. 打開過程屬性,在Java compiler-Annotation Processing-Factory path中,先刪除之前的androidannotations-2.6-SNAPSHOT-api.jar,在把androidannotations-x.x.x.jar(在之前添加的compilers文件夾裡)添加進來

 

 

 

7. Eclipse會提示重新編譯,選擇yes,編譯成功!

 

 

如何使用Gradle編譯

官方給的Gradle插件我沒有測試成功,這個編譯腳本是參照瞭網上的一個腳本寫的

[plain] 

buildscript {  

    repositories {  

        mavenLocal()  

        mavenCentral()  

    }    

    dependencies {  

        classpath 'com.android.tools.build:gradle:0.6.+'  

        classpath 'com.googlecode.androidannotations:androidannotations:2.7.1'  

        classpath 'com.googlecode.androidannotations:androidannotations-api:2.7.1'  

    }    

}  

  

repositories {  

    mavenCentral()  

}  

  

apply plugin: 'android'  

  

dependencies {  

    compile fileTree(dir: 'libs', include: '*.jar')    

    compile 'com.squareup.dagger:dagger-compiler:1.0.1'  

    compile 'com.squareup.dagger:dagger:1.0.1'  

    compile 'com.squareup:otto:1.3.3'  

}  

  

android {  

    compileSdkVersion 8  

    buildToolsVersion "19.0.0"  

  

    sourceSets {  

        main {  

            manifest.srcFile 'AndroidManifest.xml'  

            res.srcDirs = ['res']  

            assets.srcDirs = ['assets']  

        }  

  

        instrumentTest.setRoot('tests')  

    }  

}  

  

  

configurations {  

    androidannotations  

    androidannotations.extendsFrom(compile)  

}  

  

dependencies {  

    androidannotations 'com.googlecode.androidannotations:androidannotations:2.7.1'  

    compile 'com.googlecode.androidannotations:androidannotations-api:2.7.1'  

}  

  

  

android.applicationVariants.each { variant ->  

            variant.javaCompile.classpath += configurations.androidannotations  

            variant.javaCompile.options.compilerArgs += [  

                '-processor', 'com.googlecode.androidannotations.AndroidAnnotationProcessor',  

                '-AandroidManifestFile=' + variant.processResources.manifestFile  

            ]  

}  

 

 

 

 

 

 

 

發佈留言