美文网首页Android 架构
Android模块化通信协议Protocol

Android模块化通信协议Protocol

作者: Archer_J | 来源:发表于2022-02-10 18:05 被阅读0次

    Android模块化通信协议Protocol
    Github

    原理:
    1、通过注解+APT将接口类与实现类生成映射类
    3、动态代理+反射调用

    protocol -- Protocol入口

    protocol-annotation -- 注解+接口module

    protocol-compiler -- apt:生成注解代码

    使用姿势:
    根build.gradle

    repositories {
        google()
        mavenCentral()
        maven { url 'https://www.jitpack.io' }
    }
    

    module依赖:

    api 'com.github.Archer1347.Protocol:protocol:1.0.0'
    kapt 'com.github.Archer1347.Protocol:protocol-compiler:1.0.0'
    

    例子:模块1调用模块2的代码

    模块1:
    创建接口

    @Protocol("通信协议字符串,保证全局唯一即可")
    public interface 接口类{
    
       void method1(参数1,参数2...)
    
       返回值 method2()
    
    }
    

    模块2:
    创建实现类

    @ProtocolImpl("通信协议字符串,必须与模块1的字符串一致")
    public class 实现类{
    
        //方法名与参数必须与模块1的方法名与参数一致
        public void method1(参数1,参数2){
            // do something
        }
    
        public 返回值 method2(){
            //do something
        return 返回值
        }
    }
    

    模块1调用模块2

    ProtocolFactory.getInstance().invoke(接口类.class).method1(参数1,参数2)
    返回值 = ProtocolFactory.getInstance().invoke(接口类.class).method2()
    

    混淆配置:
    Protocol生成中间代码

    -keep class com.protocol.provider.** { *; }
    

    Protocol注解的类需要过滤混淆

    相关文章

      网友评论

        本文标题:Android模块化通信协议Protocol

        本文链接:https://www.haomeiwen.com/subject/rofokrtx.html