zoukankan      html  css  js  c++  java
  • Android Annotations Eclipse 配置 (3)

    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 :

    [java] view plaincopy
     
    1. @EActivity(R.layout.activity_main)  
    2.     public class MainActivity extends Activity {  
    3. }  

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

    [java] view plaincopy
     
    1. @ViewById(R.id.hello)  
    2. TextView tvHello;  

    基本用法就是这么简单。

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

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

    齊帥
  • 相关阅读:
    LeetCode OJ 107. Binary Tree Level Order Traversal II
    LeetCode OJ 116. Populating Next Right Pointers in Each Node
    LeetCode OJ 108. Convert Sorted Array to Binary Search Tree
    LeetCode OJ 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode OJ 98. Validate Binary Search Tree
    老程序员解Bug的通用套路
    转载 四年努力,梦归阿里,和大家聊聊成长感悟
    转载面试感悟----一名3年工作经验的程序员应该具备的技能
    Web Service和Servlet的区别
    关于spring xml文件中的xmlns,xsi:schemaLocation
  • 原文地址:https://www.cnblogs.com/qishuai/p/4438757.html
Copyright © 2011-2022 走看看