導航:首頁 > 源碼編譯 > 模塊化編譯鏈接

模塊化編譯鏈接

發布時間:2023-09-12 11:45:27

android模塊化之MicroMole(微信Pins工程)

相信你看過微信關於模塊化的分享 《微信Android模塊化架構重構實踐》 ,也注意到裡面提到的pins工程結構。

作者是這樣描述的 ------「pins工程能在mole之畢模簡內再次構建完整的多子工程結構,通過project.properties來指定編譯依賴關系。通過依賴關系碼正在編譯時找到所有的資源和源碼路徑。」

仔細推敲這句話的意思,應該能知道它實現的基本原理------通過設置sourceSets指定手褲多個java、res等路徑.

有關sourceSets的介紹:
https://developer.android.com/studio/build/index.html#sourcesets
https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.api.AndroidSourceSet.html

但是,有一個問題需要要知道的是,一個mole只能指定一個AndroidManifest文件,pins工程中包含了多個AndroidManifest,它是怎麼做到的?

研究過 com.android.tools.build:gradle ,會留意到它使用到一個子庫 com.android.tools.build:manifest-merger ,官方通過這個庫來合並多個AndroidManifest文件,或許pins工程也是用了這方式。

接下來,再它的基礎上,我做的一些改動,取了另一個名字叫 MicroMole ,先來看一下工程結構:

與pins工程的結構大致不變,增加了 androidTest 和 test ,以及將 project.properties 替換為 build.gradle 。

基本原理是不變的,與微信pins工程一樣配置 sourceSets 。AndroidManifest合並用了 com.android.tools.build:manifest-merger 。

在根項目的build.gradle中添加插件依賴:

在模塊的build.gradle中引用插件並配置 MicroMole:

MicroMole中的build.gradle:

為了使用上的更加方便,專門寫了Android Studio的插件,能快速的創建一個MicroMoudle.

插件安裝步驟 :

插件詳解 :
https://plugins.jetbrains.com/plugin/10785-micromole

插件項目地址 :
https://github.com/EastWoodYang/micro-mole-idea-plugin

MicroMole已經上傳至Github,歡迎star交流。
https://github.com/EastWoodYang/MicroMole

Ⅱ 關於單片機 模塊化編程的 問題

可以,但是加了頭文件有幾點好處:首先模塊化更清晰;通過頭文件申明需要對外提供調用的函數,比你在其他C文件裡面用extern 申明要方便。舉個例子,現在有main.c,a.c,b.c三個C文件,當你在main.c需要用到的a.c里的函數,且函數很多,好幾十個,你需要在main.c寫好幾十個extern申明的函數語句。如果你還需要在b.c調用的話,還要在b.c裡面寫幾十個申明語句。當你還需要在其他C文件裡面調用的話,那工作量就太大了。如果我們寫個h文件,然後在裡面去extern申明需要對外提供的函數,其他C文件裡面調用只需要寫個#include "a.h"即可,方便且快捷。

閱讀全文

與模塊化編譯鏈接相關的資料

熱點內容
web應用安全pdf 瀏覽:47
linuxintel網卡驅動下載 瀏覽:217
資源解壓後怎麼刪除 瀏覽:868
編程之美15種演算法 瀏覽:147
java的圖形用戶界面設計 瀏覽:769
算數游戲源碼 瀏覽:999
壓縮機工作聲音判斷 瀏覽:985
事業單位程序員 瀏覽:506
易語言取相似顏色源碼 瀏覽:773
pyodbclinux 瀏覽:585
vivo為什麼把伺服器沉到深海 瀏覽:460
程序員能為電商做什麼 瀏覽:401
騰訊直充qq號加密碼 瀏覽:140
qt搭建msvc編譯器環境 瀏覽:338
單片機晶振壞了會不會工作不穩定 瀏覽:770
天天影迷APP顯示連接伺服器失敗怎麼回事 瀏覽:961
鋼鐵命令同盟第七關怎麼過 瀏覽:7
android底部控制項彈出 瀏覽:43
為程序員而自豪 瀏覽:583
可以進行c語言編譯的文件名 瀏覽:384