Android Annotations

本来我想写个 Java 版本的《RESTful客户端库:RestClient》用于 Android 应用开发,结果发现不太好写,虽然用了 Dynamic Proxy 实现了大部分功能,但是因为无法通过反射取得参数名,而且 Java 没有 DuckType ,再加上也没有方便的 Dict 类型,搞出来的东西很难看,不好用。

后来令狐给我推荐了这个 Android Annotations ,这个用 annotation 实现的方法真是好,所以想试一下,刚好在 eoe 论坛看到有人问这个东西有没有一个可以跑的例子程序参考一下,我就去试了一下官方的例子,还是可以用的,估计是他配置不对。

这货的配置的确有点麻烦,我也是按官网的步骤一步步做才成功的,但是实际使用起来不知道如何,还是写个 Demo 试试吧。

配置

基本的配置方法来自《官方文档(Eclipse)》。

首先从这里下载编译好的包——当然要自己从 Github 上 clone 源码来编译也行。

解包后可以得到两个 jar 文件,一个是 androidannotations-xxx.jar 另一个是 androidannotations-api-xxx.jar 。

把 aa-api-xxx.jar 放到 libs 目录下,但是 aa-xxx.jar不可以放到 libs 目录下,可以另外建一个目录,比如说叫 compile-libs 。

然后打开 Project | Properties …

查看 Java Compiler ,确定 Compiler compliance level 必须是 1.6 。

查看 Java Compiler | Annontation Processing ,选中 Enabled annontation processing (可能需要先选中 Enable project specific settings) 。

查看 Java Compiler | Annontation Process | Factory Path ,点击 Add JARs (可能需要先选中 Enable project specific settings),把刚才那个 aa-xxx.jar 加进来。

点击确定后将弹出个对话框,提示 annotation 设置变更,要求 rebuild project ,确定即可重建项目。

最后在 Java Build Path 里,选择 Libraries 页,点 Add JARs ,把刚才那个 aa-api-xxx.jar 加进来即可。

最后修改AndroidManifest中的activity名称后面加上"_"。

配置完成。

使用

就拿自动生成的空白项目为例子。

首先一步是修改 Manifest 将默认的 xxx.MainActivity 名字改为 .MainActivity_ 。这个带下划线的版本是 AndroidAnnotations 生成的。

然后去修改 class MainActivity 的代码,把里面的 onCreate 什么的全删除了,只要这样即可自动在生成的 MainActivity_ 里加入 onCreate 并 setContentView :

  1. @EActivity(R.layout.activity_main)
  2. public class MainActivity extends Activity {
  3. }

如果需要在程序里使用 UI 控件,也不需要再写一大堆的 findViewById 和相应的强制类型转换。只需要这样即可:

  1. @ViewById(R.id.hello)
  2. TextView tvHello;

基本用法就是这么简单。

更多用法参见 Cookbook 及所有可用的 annotations 说明

当然最后还是要泼一盆冷水。这个东西跟很多非官方库不兼容,甚至我试了官方最新推出的 support - ActionBarCompat 也没成功。

Android Annotations Eclipse 配置 (3)的更多相关文章

  1. eclipse 配置android sdk和maven

    首先下载 ADT-22.2.0.rar eclipse-jee-kepler-R-win32-x86_64.zip android SDK4.2.zip 分别解压在一个盘 将ADT里面的两个目录内容相 ...

  2. Android Studio配置Android Annotations框架详解--说说那些坑

    我们开发过程中都需要写些findViewByid.serOnclickListener等类似的代码,虽然不费事,但是一个项目下来,工作量还是很大的.为了节省工作量,运生了很多对应的注解框架.网上的博客 ...

  3. Android 开发环境配置图文教程(jdk+eclipse+android sdk)

    一 相关下载(1) java JDK下载:进入该网页: http://java.sun.com/javase/downloads/index.jsp (或者直接点击下载)如下图: 选择 Downloa ...

  4. eclipse配置android开发环境并搭建第一个helloWord工程

    一.搭建Android在eclipse下环境    一.JDK(不用安装  下载地址: http://www.xp510.com/xiazai/Application/program/23625.ht ...

  5. 根坤 eclipse配置android开发环境并搭建第一个helloWord工程

    一.搭建Android在eclipse下环境    一.JDK(不用安装  下载地址: http://www.xp510.com/xiazai/Application/program/23625.ht ...

  6. Android Annotations 注解例子

    1.AndroidAnnotations官网: http://androidannotations.org/ (也许你需要FQ) 2.eclipse中使用androidannotations的配置方法 ...

  7. Android Annotations浅析

    这阵子遇到了好多事情,挺久没来更新博文了,这两天在学这个开源框架Android Annotations,用起来感觉挺方便的, 相信用过Spring注解的孩子理解起来应该比較easy! 就是配置起来比較 ...

  8. Android Studio最新配置教程2016

    http://blog.csdn.net/wen_demo 一.Android studio 基本简单介绍 1.Android studio和Eclipse的差别: 1.Studio中有Project ...

  9. 【Android】Eclipse自动编译NDK/JNI的三种方法

    [Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:skyseraph00@163.com 更多精彩请直接访问SkySer ...

随机推荐

  1. 集美大学网络1413第八次作业(团队四)-- 第一次项目冲刺(Alpha版本)成绩

    首先非常抱歉,刚休完假,凌晨才回来,导致这么晚发布成绩,以后旅行可以考虑带点轻便点的笔记本~ O(∩_∩)O 第一次项目冲刺结束了,可以看出来,有的团队做的很棒,也有的团队组合不是很理想,导致进度一直 ...

  2. 201521123006 《java程序设计》 第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) **1.2 ...

  3. 201521123004 《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  4. Azure ARM (17) 基于角色的访问控制 (Role Based Access Control, RBAC) - 自定义Role

    <Windows Azure Platform 系列文章目录> 在上面一篇博客中,笔者介绍了如何在RBAC里面,设置默认的Role. 这里笔者将介绍如何使用自定的Role. 主要内容有: ...

  5. 添加事务后 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type available

    今天遇到了一个奇怪的问题   在没添加事务之前  所有的代码都是好的 , 当我添加了事务之后, 代码报错 org.springframework.beans.factory.NoSuchBeanDef ...

  6. Unity GameObject Class

    GameObject  Note : gameObject 指的是当前挂着的对象. class in UnityEngine / Inherits from:Object     Descriptio ...

  7. angular directive自定义指令

    先来看一下自定义指令的写法 app.directive('', ['', function(){ // Runs during compile return { // name: '', // pri ...

  8. Ubuntu16.04.1上搭建分布式的Redis集群

    为什么要集群: 通常为了,提高网站的响应速度,总是把一些经常用到的数据放到内存中,而不是放到数据库中,Redis是一个很好的Cache工具,当然了还有Memcached,这里只讲Redis.在我们的电 ...

  9. 中国移动飞信WAP登陆分析及脚本

    中国移动飞信WAP网页版 http://f.10086.cn/im5/ 用WAP飞信登录并向好友发送信息,同时用wireshark抓包. 1.过滤POST表单提交数据包(wireshark规则: ht ...

  10. [js高手之路] html5 canvas系列教程 - arc绘制曲线图形(曲线,弧线,圆形)

    绘制曲线,经常会用到路径的知识,如果你对路径有疑问,可以参考我的这篇文章[js高手之路] html5 canvas系列教程 - 开始路径beginPath与关闭路径closePath详解. arc:画 ...