美文网首页组件化&模块化组件化开发thor
第3章 组件声明式编程 仿微信".api"化

第3章 组件声明式编程 仿微信".api"化

作者: 陈桐Caliburn | 来源:发表于2019-05-16 16:50 被阅读295次

今天终于方案研究出来了,双击666

导航

第3章 组件声明式编程 仿微信".api"化(上)
第3章 仿微信".api"化 实现原理(下)

1、背景

微信Android模块化架构重构实践,在腾讯文章中提到“.api”解决方案
原文介绍位置,建议读此文读者反复读这个位置

--重塑模块化
    --改变通信方式
        --接口暴露

难点:技术难点卡在如何创造这两个函数上来支持这个功能

include_with_api(project:":plugin-messenger-foundation")//初始化项目
dependencies{
      compileApi(":plugin-messenger-foundation")//引入项目依赖
}

“.api”化的功能,强大在于,在编译的时候,子组件将公用接口下沉到基础库,供其他module使用,而不会导致base module急剧增大,分工职责更加明确化

效果==>使用效果前
使用效果后==>

其中“.api”立下承担50%效果

2、编写的思想

声明式编程:将模块中代码拆分为“声明+实现”,其他模块只需要引用声明即可。
微信的方案,只留了一个遐想空间“自动生成一个sdk工程,拷贝.api后缀文件到工程当中,后面其他工程依赖编译的只是这个生成工程,简单好用”
解决方案是那两个函数include_with_api,compileApi,此时感受到一万点暴击

经过了一周的钻研已经攻克了,先从使用教程,再到原理分析

3使用教程

在根目录下build.gradle

buildscript{
  dependencies {
    //本插件代码已上传jcenter ,下载记得翻墙
    classpath 'com.chaoliu:weixinApi:1.0.0' 
  }
    repositories {
        jcenter()
    }
}

//gradle 脚本尾部
apply plugin: 'weixinApi'

gradle.properties 声明

##支持声明api式编程
##引用的moudle
ApiModule=':module_api'
##是否每次都执行 未配置此属性 默认为true 
isRunAlways=true

支持weixinapi脚本自动触发,且有良心提示

组名weixinapi,且有良心提示

settings.gradle 正常写法

//api testmodule 为lib库
include ':module_api'

若有module采用".api"方式开发
引入公共ApiModule即可

特别提供addComponent 函数,只有在assemble任务才引入依赖
开发中避免本moudle引入过多其他module声明

    //和正常开发无任何变化
    implementation project(':module_api')

    // addComponent(':module_api')

如果想编辑.api后缀的java文件,为了能让Android Studio继续高亮该怎么办?可以在File Type中把.api作为java文件类型。

设置File Types
4、喜欢的朋友们记得给我的项目一个star

https://github.com/yinlingchaoliu/AndroidComponent
具体代码位置去".api"插件
component/weixinApi

示例module
module_main ,module_girls

下一篇进行原理分析,如何进行操作,解决这个问题

相关文章

  • 第3章 仿微信".api"化 实现原理(下)

    导航 第3章 组件声明式编程 仿微信".api"化(上)第3章 仿微信".api"化 实现原理(下) 1、思考路径...

  • 第3章 组件声明式编程 仿微信".api"化

    今天终于方案研究出来了,双击666 导航 第3章 组件声明式编程 仿微信".api"化(上)第3章 仿微信".ap...

  • react

    什么是声明式编程 声明式编程 vs 命令式编程 什么是函数式编程 什么是组件设计模式 React 是什么 Reac...

  • 001.react环境搭建

    1. react的优势 响应式更新 组件化 jsx声明式编程 多平台性 2. 创建工程的方式:2.1:react的...

  • vue params、query传参使用

    声明式:编程式:router.push(...)主要实现:通过A组件...

  • 声明式编程与命令式编程区别

    声明式编程 与 命令式编程: 命令式编程:描述计算机所做行为的编程规范 声明式编程:响应式编程属于声明式编程的一种...

  • React简介

    react是什么 FaceBook的一个开源js库 一个用于构建动态界面的js库 react特点声明式编程组件化编...

  • vue:vue3.x学习笔记

    命令式编程和声明式编程 命令式编程关注的是 “how to do”;声明式编程关注的是 “what to do”,...

  • 基于Kotlin DSL实现的声明式插件

    声明式编程 声明式编程是近年来越来越火的编程思想。万物互联的发展,驱动分布式UI前进。而声明式编程,恰恰式实现分布...

  • props

    每个组件都存在Props属性,函数声明式组件(props),类声明式组件(this.props) 组件标签中所有的...

网友评论

    本文标题:第3章 组件声明式编程 仿微信".api"化

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