AndroidAnnotations FAQ

参见 https://github.com/excilys/androidannotations/wiki/FAQ


一般性问题


AndroidAnnotations对性能有没有影响?

简单说:没有。AndroidAnnotations在编译时有一些花销 (参见它如何工作) 但是生成的类都是经典的Android代码。没有反射。不需要启动时间,对运行时没有影响。


生成的代码?是的!

有些人认为生成的代码应该尽可能地避免。这里有一些我认为生成代码仍然是一个好想法的原因:

  • 感谢Java6标记处理工具,所有的代码在你编译的时候自动生成。这意味着生成的代码会 永远是最新的。
  • 安卓现在还没有提供快速的反射和动态代码生成。这意味着我们现在必须面临一个选择,即缓慢的反射/Java动态代理(限制在实现接口)或是生成代码。
  • 大多数工具和IDE 无缝的 和Java's Annotation Processing Tool结合 : Maven, Ant, Eclipse, Netbeans...

你怎么比较和RoboGuice 的异同?

RoboGuice 是一个伟大的项目,它使用Guice使得安卓里可以依赖注入(DI)。它还提供了一些跟AndroidAnnotations 很类似的标注(视图注入等)。

但是 RoboGuice 在runtime读入这些标注,并且使用反射注入这些字段,这会影响到运行时的 性能。

AndroidAnnotations在编译时生成在子类生成这些样板代码,这显然在性能上对runtime没有任何影响。

AndroidAnnotations 和 RoboGuice没有竞争反而相当互补,这取决于你的需求。事实上,你甚至可以同时使用它们两个

老实说,我(@pyricau)也使用和对RoboGuice对一些贡献 ,这也是为什么AndroidAnnotations 用起来很相似的原因。


为什么生成子类而不是直接修改这些Activity?

因为Java标注处理工具不允许修改代码。这个规则的唯一意外是project Lombok,这个项目非常的伟大但并不是在所有Java编译器下都能工作。



TO BE CONTINUE...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值