AndroidAnnotations使用说明书—AndroidAnnotations是如何工作的?

AndroidAnnotations的工作方式很简单,它使用标准的java注入处理工具,自动添加了一个额外的编译步骤来生成源代码。

源码是什么?每一个增强的类,比如每一个用@EActivity注入的Activity,会自动生成一个以该类类名+下划线为类名的该Activity子类。

比如下面这个类:

package com.some.company;

@EActivity
public class MyActivity extends Activity {
  // ...
}

将会生成下面这个子类,他们在同一个包下面但处在不同的文件夹:

package com.some.company;

public final class MyActivity_ extends MyActivity {
  // ...
}

这个子类通过复写一些方法(比如onCreate())来为你的activity增加一些行为。

上面介绍的这些就是你在AndroidManifest.xml生命Acitivty时需要为你的类名后面增加一个下划线的原因:

<activity android:name=".MyListActivity_" />

启动一个使用注入的Activity:

在Android中,我们通常会通过如下的方式来启动一个activity:

startActivity(this, MyListActivity.class);

然而,如果使用AndroidAnnotations的话,真正被启动的activity是MyListActivity_而不是MyListActivity:

startActivity(this, MyListActivity_.class);

 Intent Builder(AndroidAnnotations 2.4及以上):

我们提供了一个静态的帮助类来启动编译生成的activity:

// Starting the activity
MyListActivity_.intent(context).start();

// Building an intent from the activity
Intent intent = MyListActivity_.intent(context).get();

// You can provide flags
MyListActivity_.intent(context).flags(FLAG_ACTIVITY_CLEAR_TOP).start();

// You can even provide extras defined with @Extra in the activity
MyListActivity_.intent(context).myDateExtra(someDate).start();

在AndroidAnnotations 2.7及以上的版本中你可以使用另一个启动Activity的方法startActivityForResult()了 :

MyListActivity_.intent(context).startForResult();

启动一个使用注解的服务:

在Android中,我们通常通过如下的方式来启动一个服务:

startService(this, MyService.class);

然而,如果使用AndroidAnnotations的话,真正被启动的Service是MyService_而不是MyService:

startService(this, MyService_.class);

Intent Builder(AndroidAnnotations 2.7及以上版本):

我们提供了一个静态的帮助类来启动生产的Service:

// Starting the service
MyService_.intent(context).start();

// Building an intent from the activity
Intent intent = MyService_.intent(context).build();

// You can provide flags
MyService_.intent(context).flags(Intent.FLAG_GRANT_READ_URI_PERMISSION).start();
时间: 2025-01-02 02:54:12

AndroidAnnotations使用说明书—AndroidAnnotations是如何工作的?的相关文章

AndroidAnnotations使用说明书—简介

一.AndroidAnnotations是什么: AndroidAnnotations是一个利用注解方式来简化代码结构,提高开发效率的开源框架,类似开源框架还有:roboguice .butterknife .dagger 等. AndroidAnnotations的目标是使Android应用程序易于开发和维护,而它使用的主要手段是通过注解减少代码量来实现这个目标. 开发者可以通过注解来表明自己的意图,然后AndroidAnnotations会在程序编译的时候生成和意图对应的代码. Androi

[AndroidAnnotations框架]AndroidAnnotations的配置

一.在AndroidStudio下配置androidannotations 首先,准备好你的project. AndroidStudio下的androidannotations配置是比较容易的,只需要配置两个build.gradle就可以. 配置build.gradle ( 1 ) 我们先配置preject目录下的build.gradle 在buildscript> dependencies>下添加 classpath'com.neenbedankt.gradle.plugins : andr

AndroidAnnotations框架

AndroidAnnotations框架 AndroidAnnotations配置 首先在全局gradle文件中添加如下信息 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() mavenCentral() //添加maven中心仓库 } dependencies { cl

AndroidAnnotations简明指南

AndroidAnnotations简明指南 Android 开源 AndroidAnnotations简介 AndroidAnnotations是注释框架,它能够让你快速进行Android开发的开源框架,它能让你专注于真正重要的地方. 使代码更加精简,使项目更加容易维护,它的目标就是"Fast Android Development.Easy maintainance".

Android相关开发网站

转载自: http://my.oschina.net/luforn/blog/383157 Android                                   http://www.android.com Android开发                            http://developer.android.com AndroidTV                               http://developer.android.com/tv A

Android Studio配置中AndroidAnnotations

今天正好得空看了下关于AndroidAnnotations这个东西,这个东西发现也算是来源于其他的三方的框架吧,具体的是什么框架已经不记得了,总之是这个东西让我很是流连忘返,虽然当时看到这个东西很惊讶,也是恨不得赶紧就能啪进去看看究竟. 也是由于工作原因吧,说实话我也算是个敬业的小愤青,苦于不会套路,然后一直拖延到今天. 这里就到了我今天写这篇博客的原因说明了,这里让我万分恼怒和气愤,这东西中文版很少人写,写的也基本就没法看,其次就是一片博客被N多人拷贝,我也就呵呵了. 那么咱们开始今天的主题配

注解框架---AndroidAnnotations

AndroidAnnotations是一个开源框架,旨在加快Android开发的效率.通过使用它开放出来的注解api,你几乎可以使用在任何地方, 大大的减少了无关痛痒的代码量,让开发者能够抽身其外,有足够的时间精力关注在真正的业务逻辑上面.而且通过简洁你的代码,也提高了代码的稳定性和后期的维护成本.以下AndroidAnnotations简称为AA 可能会有人提出异议了,我们移动设备的性能,不比后台服务器拥有充足的内存和运算能力.当大量的使用注解的时候,会不会对APP的造成什么不良的影响,会不会

Android框架之AndroidAnnotations基础

一:开源网址 https://github.com/excilys/androidannotations/wiki 二:AndroidAnnotation特点 (1)依赖注入 可以注入 views, extras, system services, resources  (2)  简化线程模型 通过注释你的方法,让你的方法在ui线程执行,或者在a background thread执行 (3)  绑定事件 注释的方法去处理事件,不使用匿名类 (4) REST client  创建一个自定义接口,

记录使用Gradle配置AndroidAnnotations

系统:Mac Yosemit 10.10 JDK:1.6+ Android Studio:1.2 原来看到有人用AndroidAnnotations,十分羡慕.但是Gradle并不熟悉,现找到了正确的配置方法,此篇作为记录.奇怪的是为什么官方不放出可以帮助配置的插件呢~~ Android Studio上找到的插件不清楚是怎么工作的~~|| 需要注意的是,使用Gradle配置AndroidAnnotations需要连接网络 新建一个项目或者是在原有项目上都可以配置.首先来看我们的android s