# android **Repository Path**: xinyuliao/android ## Basic Information - **Project Name**: android - **Description**: No description available - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-18 - **Last Updated**: 2021-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # android # module_aop ## AOP 面向切面编程 ### AspectJ AspectJ实际上是对AOP编程思想的一个实践,AOP虽然是一种思想,但就好像OOP中的Java一样,一些先行者也开发了一套语言来支持AOP。 使用AspectJ有两种方法:
 - 完全使用AspectJ的语言。这语言一点也不难,和Java几乎一样,也能在AspectJ中调用Java的任何类库。 - 使用纯Java语言开发,然后使用AspectJ注解,简称@AspectJ。 基础概念
- Aspect 切面:切面是切入点和通知的集合。 * PointCut 切入点:切入点是指那些通过使用一些特定的表达式过滤出来的想要切入Advice的连接点。 * Advice 通知:通知是向切点中注入的代码实现方法。 * Joint Point 连接点:所有的目标方法都是连接点. * Weaving 编织:主要是在编译期使用AJC将切面的代码注入到目标中, 并生成出代码混合过的.class的过程. # module_apt ## APT 注解处理器 APT(Annotation Processing Tool) 是一种处理注释的工具, 它对源代码文件进行检测找出其中的 Annotation,使用 Annotation 进行额外的处理。 Annotation 处理器在处理 Annotation 时可以根据源文件中的 Annotation 生成额外的源文件和其它的文件 (文件具体内容由 Annotation 处理器的编写者决定),APT 还会编译生成的源文件和原来的源文件,将它们一起生成 class 文件。