今天終于方案研究出來了,雙擊666
導(dǎo)航
第3章 組件聲明式編程 仿微信".api"化(上)
第3章 仿微信".api"化 實(shí)現(xiàn)原理(下)
1、背景
微信Android模塊化架構(gòu)重構(gòu)實(shí)踐,在騰訊文章中提到“.api”解決方案
原文介紹位置,建議讀此文讀者反復(fù)讀這個位置
--重塑模塊化
--改變通信方式
--接口暴露
難點(diǎn):技術(shù)難點(diǎn)卡在如何創(chuàng)造這兩個函數(shù)上來支持這個功能
include_with_api(project:":plugin-messenger-foundation")//初始化項目
dependencies{
compileApi(":plugin-messenger-foundation")//引入項目依賴
}
“.api”化的功能,強(qiáng)大在于,在編譯的時候,子組件將公用接口下沉到基礎(chǔ)庫,供其他module使用,而不會導(dǎo)致base module急劇增大,分工職責(zé)更加明確化

使用效果后==>

其中“.api”立下承擔(dān)50%效果
2、編寫的思想
聲明式編程:將模塊中代碼拆分為“聲明+實(shí)現(xiàn)”,其他模塊只需要引用聲明即可。
微信的方案,只留了一個遐想空間“自動生成一個sdk工程,拷貝.api后綴文件到工程當(dāng)中,后面其他工程依賴編譯的只是這個生成工程,簡單好用”
解決方案是那兩個函數(shù)include_with_api,compileApi,此時感受到一萬點(diǎn)暴擊
經(jīng)過了一周的鉆研已經(jīng)攻克了,先從使用教程,再到原理分析
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'
##是否每次都執(zhí)行 未配置此屬性 默認(rèn)為true
isRunAlways=true
支持weixinapi腳本自動觸發(fā),且有良心提示

settings.gradle 正常寫法
//api testmodule 為lib庫
include ':module_api'
若有module采用".api"方式開發(fā)
引入公共ApiModule即可
特別提供addComponent 函數(shù),只有在assemble任務(wù)才引入依賴
開發(fā)中避免本moudle引入過多其他module聲明
//和正常開發(fā)無任何變化
implementation project(':module_api')
// addComponent(':module_api')
如果想編輯.api后綴的java文件,為了能讓Android Studio繼續(xù)高亮該怎么辦?可以在File Type中把.api作為java文件類型。

4、喜歡的朋友們記得給我的項目一個star
https://github.com/yinlingchaoliu/AndroidComponent
具體代碼位置去".api"插件
component/weixinApi
示例module
module_main ,module_girls
下一篇進(jìn)行原理分析,如何進(jìn)行操作,解決這個問題