Android组件化APT使用与介绍

本文介绍了Android中如何利用APT(Annotation Processing Tool)进行组件化开发,特别是路由概念的应用。通过创建注解、注解处理器库以及自定义ARouterProcessor类,实现注解在编译期间生成代码。在实际操作中,详细展示了如何配置build.gradle文件,传递参数,并最终在APP模块中使用生成的类进行module间的交互。
摘要由CSDN通过智能技术生成

针对上篇讲的module之间的跳转问题, 这就出现了路由的概念了,应该上路由去帮助我们去做那些事

APT(Annatotion Processing Tool)

是一种处理注解的工具,它对源代码文件进行检测找出其中的注解(Annotation)  根据注解自动生成代码,如果想要自定义的注解处理器能够正常运行,必须要通过APT工具进行处理,也可以这么理解, 只有通过APT工具后,程序在编译期间注解解释器才能执行

 

通俗理解  根据规则  帮我们生成代码  生成类文件

现在动手来实现,新建个项目 APTTest

APT是注解处理器,那么先写个注解,创建一个java library  叫annotation,存放注解的,

package com.example.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.TYPE) 
@Retention(RetentionPolicy.CLASS) // 要在编译时进行一些预处理操作。注解会在class文件中存在
public @interface ARouter {
    String path();
    String group() default "";
}

annotation library如下目录

然后在app中引入这个library

 // 依赖注解
    implementation project(':annotation')

再创建一个java library 注解处理器 compiler 这个是专门处理注解的

看下compiler中的build.gradle中配置

apply plugin: 'java-library'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    // As-3.4.1 + gradle5.1.1-all + auto-service:1.0-rc4
    compileOnly'com.google.auto.service:auto-service:1.0-rc4'
    annotationProcessor'com.google.auto.service:auto-service:1.0-rc4'

    // 引入annotation,让注解处理器-处理注解
    implementation project(':annotation')
}
// java控制台输出中文乱码
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}
//jdk编译的版本是1.7
sourceCompatibility = "7"
targetCompatibility = "7"

其中

 compileOnly'com.google.auto.service:auto-service:1.0-rc4'
    annotationProcessor'com.google.auto.service:auto-service:1.0-rc4'

是Google给我们提供的注解处理器的一种服务,会生成一个文件,在build目录下生成文件

当然上面也引入了annotation 因为要处理这里的注解

现在在compiler中写个注解处理器类ARouterProcessor用来处理ARouter注解的,它继承此AbstractProcessor

在这个自定义的类上要添加几个注解

// AutoService则是固定的写法,加个注解即可
// 通过auto-service中的@AutoService可以自动生成AutoService注解处理器,用来注册
// 用来生成 META-INF/services/javax.annotation.processing.Processor 文件
@AutoService(Processor.class)
// 允许/支持的注解类型,让注解处理器处理(新增annotation module)
@SupportedAnnotationTypes({"com.example.annotation.ARouter"})
// 指定JDK编译版本
@SupportedSourceVersion(SourceVersion.RELEASE_7)
// 注解处理器接收的参数
@SupportedOptions("content")

代码中使用


                
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android组件是将一个大型的Android应用拆分为多个模块或组件,每个组件都是独立的可重用模块。这种架构有助于代码的模块、开发效率的提高和维护的便捷。 在组件架构中,同的组件之间需要进行通信和跳转。路由就是组件之间相互跳转的机制。在路由中,每个组件都可以注册自己路由,其他组件可以通过路由跳转到该组件Android中常用的路由框架有ARouter、RouterX和Fragmentation等。这些框架都提供了路由的基本功能,如路由注册、路由跳转、参数传递等。同时,这些框架还支持拦截器、注解、跨模块通信等高级功能,使得组件之间的通信更加方便和灵活。 总之,组件和路由是Android开发中的重要概念和技术,它们可以使得应用更加模块、可扩展和易于维护。 ### 回答2: Android组件是一种将一个大型的Android应用拆分成多个独立的组件,每个组件都可以独立开发、测试和维护的开发方式。而路由是组件开发中一个重要的技术,用于实现不同组件之间的通信和页面跳转。 在Android组件开发中,不同功能的模块或组件被拆分成独立的子模块,每个子模块可以独立编译、测试和发布。这样的好处是提高开发效率,降低代码耦合度,方便团队协作和模块复用。 而路由作为组件开发中的一个重要技术,用于实现不同组件之间的通信和页面跳转。它能够将各个组件间的依赖关系解耦,简组件间的调用和传递参数。通过路由,一个组件可以通过简单的接口调用来启动其他组件的页面,并可以传递参数,实现页面间的跳转和数据交互。 实现Android组件路由的方法有很多种,比较常见的有利用APT(Annotation Processing Tool)技术动态生成路由表,利用反射技术实现路由跳转,或者利用路由框架实现路由功能。通过使用这些方法,可以简组件间的调用和页面跳转的过程,提高开发效率和代码的可维护性。 总而言之,Android组件是一种将大型应用拆分成独立的组件进行开发的方式,而路由是实现组件之间通信和页面跳转的重要技术。组件开发和路由技术的应用可以提高开发效率,降低代码耦合度,并方便团队协作和模块复用。 ### 回答3: Android组件是一种软件开发的架构设计模式,它将一个大型的Android应用程序拆分成若干个独立的组件,每个组件都可以独立开发、测试和部署。这种组件的设计方式旨在提高应用程序的可维护性、可测试性和代码重用性。 在Android组件中,路由是一个非常重要的概念。路由用于管理和控制组件之间的通信和跳转。通过路由,不同的组件可以实现互相之间的跳转和数据传递,从而实现组件之间的解耦和灵活性。 Android组件中的路由通常通过路由表或者路由映射来实现。路由表是一个集中管理和维护路由信息的表格,它记录了组件之间的跳转路径和参数传递规则。当一个组件需要跳转到另一个组件时,它可以通过查询路由表来找到目标组件的路径和参数,从而实现跳转。 另外,路由还可以实现在不同组件之间传递数据。通过路由,可以将数据从一个组件传递给另一个组件,实现数据的共享和交互。这种方式可以避免组件之间直接依赖和耦合,提高代码的可维护性和可扩展性。 总之,Android组件中的路由是实现组件间通信和跳转的重要手段,它可以提高应用程序的可维护性、可测试性和代码重用性。通过良好的路由设计和管理,可以实现更加灵活、模块和可扩展的Android应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值