作家
登录

安卓AOP三剑客之Android APT技术浅谈

作者: 来源: 2017-10-16 16:04:53 阅读 我要评论

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!


经由过程进修与应用square公司的开源项目javapoet,来实现仓库层动态生成代码

安卓AOP三剑客: APT, AspectJ, Javassist

Android APT技巧浅谈

自定义注解设计

APT(Annotation Processing Tool 的简称),可以在代码编译期解析注解,并且生成新的 Java 文件,削减手动的代码输入。如今有很多主流库都用上了 APT,比如 Dagger2, ButterKnife, EventBus3 等

代表框架:

  • DataBinding
  • Dagger2
  • ButterKnife
  • EventBus3
  • DBFlow
  • AndroidAnnotation

应用姿势

1,在android工程中,创建一个java的Module,写一个类持续AbstractProcessor

  1. @AutoService(Processor.class) // javax.annotation.processing.IProcessor 
  2. @SupportedSourceVersion(SourceVersion.RELEASE_7) //java 
  3. @SupportedAnnotationTypes({ // 标注注解处理器支撑的注解类型 
  4.     "com.annotation.SingleDelegate"
  5.     "com.annotation.MultiDelegate" 
  6. }) 
  7. public class AnnotationProcessor extends AbstractProcessor { 
  8.  
  9. public static final String PACKAGE = "com.poet.delegate"
  10. public static final String CLASS_DESC = "From poet compiler"
  11.  
  12. public Filer filer; //文件相干的帮助类 
  13. public Elements elements; //元素相干的帮助类 
  14. public Messager messager; //日记相干的帮助类 
  15. public Types types; 
  16.  
  17. @Override 
  18. public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) { 
  19.     filer = processingEnv.getFiler(); 
  20.     elements = processingEnv.getElementUtils(); 
  21.     messager = processingEnv.getMessager(); 
  22.     types = processingEnv.getTypeUtils(); 
  23.  
  24.     new SingleDelegateProcessor().process(set, roundEnvironment, this); 
  25.     new MultiDelegateProcessor().process(set, roundEnvironment, this); 
  26.  
  27.     return true

2,在持续AbstractProcessor类中的process办法,处理我们自定义的注解,生成代码:

  1. public class SingleDelegateProcessor implements IProcessor {  
  2. @Override 
  3. public void process(Set<? extends TypeElement> 
     1/5    1 2 3 4 5 下一页 尾页

      推荐阅读

      在云端开展深度学习正逢其时

    沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!大年夜多半公共云都可以应用机械进修,这些供给了企业须要的人工智能的才能。就像深度进修一样,云计算让人工智能从新焕发>>>详细阅读


    本文标题:安卓AOP三剑客之Android APT技术浅谈

    地址:http://www.17bianji.com/lsqh/37959.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)