AndroidAnnotation配置与使用

原创 2015年07月10日 17:06:43

背景

随着安卓手机在市场上的普及,安卓开发的需求也越来越大。但是在安卓开发过程中,其实很多操作都是较为繁琐,且没有必要的,虽然一天下来看看写的代码很多,但是可能也就一个界面,几个功能点。所以对于安卓开发中代码的简化和重用是十分有必要的。
昨天偶然在网易云课堂上看到了AndroidAnnotation这个第三方框架,据说能够大幅度简化安卓编程,提高编程效率。怀着一颗好东西都要尝试一下的心态,今天将之配置并尝试了一下。

配置

AndroidAnnotation的官网为http://androidannotations.org/。但是事实上,在这个网站上只有一个例子代码展示它能够如何如何简化代码,实际的内容主要还是在github上。
通过连接打开git,进入它的git wiki。在这里可以下载jar包,并由一些如何使用的guide。包括如何在Eclipse和IntelliJ上配置。不过在这里它讲的比较简单,如果按照它的方法配置,可能会遇到很多问题。另外bz用的时AndroidStudio,虽然是基于IntelliJ,但是不知为何在细节上还是有些差距的,比如AndroidStudio上就没有Annotation Processing这个设置项。所以我们需要找寻一种适用于AndroidStudio且更为简洁的方式。
得益于Gradle,我们可以直接使用build文件引入AndroidAnnotation。这里需要五步。

1.引入对android-apt的依赖。在app module的build文件中添加以下代码。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2+'
    }
}

apply plugin: 'android-apt'  //添加android-apt插件

2.设置android-apt参数 。注意把包名换成你的应用的。另外outputs[0]是在新的android-studio的版本中才需要加的。

apt {
    arguments {
        androidManifestFile variant.outputs[0].processResources.manifestFile
        resourcePackageName "你的包名"
    }
}

3.使用apt引入对androidannotation的依赖。

dependencies {
    apt "org.androidannotations:androidannotations:3.0+"          
    compile "org.androidannotations:androidannotations-api:3.0+"
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

5.最后的build文件应该是这样的。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2+'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'android-apt'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.tanglikang.annotationtest"
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

apt {
    arguments {
        androidManifestFile variant.outputs[0].processResources.manifestFile
        resourcePackageName "com.tanglikang.annotationtest"
    }
}



dependencies {
    apt "org.androidannotations:androidannotations:3.0+"          // add these
    compile "org.androidannotations:androidannotations-api:3.0+"  // two lines
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

6.重新build工程,系统会自动下载依赖的第三方库。然后就可以使用AndroidAnnotation了。

使用

AndroidAnnotation的使用其实很简单,主要需要注意两个点。
一是标签的使用。AA中有很多有用的标签,具体可以参考以下网页:https://github.com/excilys/androidannotations/wiki/AvailableAnnotations
二是在编译工程的时候,AA会将原来的Activity换成Activity_的形式,所以需要在AndroidMainfest中也做相应地修改。
这里尝试一个最简单地例子。这里使用了三个标签@EActivity设置布局文件。@ViewById引入一个控件。@Click设置空间点击事件。

@EActivity(R.layout.activity_main)
public class MainActivity extends ActionBarActivity {


    @ViewById(R.id.tv_1)
    TextView hello;

    @Click(R.id.tv_1)
    public void showToast(){
        Toast.makeText(MainActivity.this, "ok", Toast.LENGTH_LONG).show();
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tanglikang.annotationtest" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity_"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

总结

经过实践,AndroidAnnotation确实能够大幅度增加android编程效率,值得学习和使用。

参考文献:
http://www.jayway.com/2014/02/21/androidannotations-setup-in-android-studio/

相关文章推荐

软件包 android.annotation 不存在 的解决办法

今天在用ant编译android项目的时候发生了 “软件包 android.annotation 不存在 ”这个错误,发现这个包在sdk目录下,只要把这个包引用进来就行了    ...

Android Support库——support annotations

Android Support库是官方出的第三方库,包含了丰富的组件、工具类等,通过在Android SDK Manager中勾选以下两项来获取到。   其中,Android Support L...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Android开源框架(一):AndroidAnnotations

Android开源框架(一):AndroidAnnotations AndroidAnnotations是一个能够让你快速进行Android开发的开源框架,它能让你专注于真正重要的地方。 使代码更加精...
  • zjbpku
  • zjbpku
  • 2014年01月23日 00:02
  • 75439

Android懒人框架Android annotation

不知不觉有一个多月没更新了。唉,辞职了,最近一直在找工作没办法。蓝瘦。香菇。 annotation的配置 project的build.gradlebuildscript { reposit...

AndroidAnnotation 在AS中的配置

在全局的gradle中先配置`buildscript { repositories { jcenter() } dependencies { ...

Android studio正确配置AndroidAnnotation注解

新建一个工程,然后在外部的配置文件添加如下代码: buildscript { repositories { mavenCentral() } dependenci...

Android注解框架Annotations从配置到应用

最近在看一个新的基于注解开发的项目,了解到Android中同样存在一些注解框架,能够大大提高我们的编码规范和效率,减少代码量。本文主要分为两部分,针对较热门的注解框架Android Annotatio...

AndroidAnnotations 注解框架的优势对比、配置及使用教程

AndroidAnnotations 是一个开源注解框架,旨在加快 Android 开发的效率,其区别于其他基于反射的注解框架,使用 jdk 1.6引入的 Java Annotation Proces...

Androidannotation配置工程示例

  • 2017年01月03日 13:19
  • 24.8MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AndroidAnnotation配置与使用
举报原因:
原因补充:

(最多只允许输入30个字)