第3章 组件声明式编程 仿微信".api"化
今天终于方案研究出来了,双击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 Types4、喜欢的朋友们记得给我的项目一个star
https://github.com/yinlingchaoliu/AndroidComponent
具体代码位置去".api"插件
component/weixinApi
示例module
module_main ,module_girls
下一篇进行原理分析,如何进行操作,解决这个问题