標籤:可見 http 複製 repos artifact 功能 ted you repo
- 如何通過 AAR 形式整合 leakcanary-android 服務
- 如何通過線上引用的方式拿到所有相關的依賴項檔案?
- #1.禁用 Gradle 離線模式
- #2.按照文檔要求添加項目依賴
- #3.Sync同步後會線上解析並緩衝所有相關依賴項
- #4.從依賴項緩衝所在目錄裡找到 *.pom 檔案分析其子依賴項
- #5.將所有依賴項複製出來.
- #6.改造 .aar 依賴項檔案
- #7.修改原線上形式的項目依賴為AAR形式的依賴
- #8.啟用 Gradle離線模式即可正常使用了.
- 如何改造 Release 依賴項 .aar 檔案 將僅在Release模式才使用的JAR類庫檔案整合到一塊?
- 改造前:leakcanary-android-1.5.4.aar > libs 為空白
- 改造後:將其所有依賴的JAR包添加到 `leakcanary-android-1.5.4.aar > libs` 目錄裡.
- 結果驗證
如何通過 AAR 形式整合 leakcanary-android 服務
leakcanary-android 官網: square/leakcanary: A memory leak detection library for Android and Java.
如何通過線上引用的方式拿到所有相關的依賴項檔案?#1.禁用 Gradle 離線模式#2.按照文檔要求添加項目依賴
In your build.gradle:
dependencies {
debugImplementation ‘com.squareup.leakcanary:leakcanary-android:1.5.4‘
releaseImplementation ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5.4‘
}
#3.Sync同步後會線上解析並緩衝所有相關依賴項#4.從依賴項緩衝所在目錄裡找到 *.pom 檔案分析其子依賴項
Windows系統緩衝一般所在路徑:
.gradle\caches\modules-2\files-2.1\com.squareup.leakcanary\leakcanary-android\1.5.4
.gradle\caches\modules-2\files-2.1\com.squareup.leakcanary\leakcanary-android-no-op\1.5.4
子目錄裡一般存在以下幾種類型的檔案: *-sources.jar, .aar或.jar, *.pom
通過文本工具開啟 *.pom 檔案,可見是XML格式的文本,尋找到以下節點資料即可獲知其子依賴項資訊:
project - dependencies - dependency - artifactId
#5.將所有依賴項複製出來.
將緩衝裡的所有*.aar或*.jar格式的檔案依賴項都複製出來.並放入指定的flatDir目錄中(如libs目錄裡.)
#6.改造 .aar 依賴項檔案
將僅在Release模式才使用的JAR類庫檔案整合到一塊
#7.修改原線上形式的項目依賴為AAR形式的依賴
debugImplementation(name: ‘leakcanary-android-1.5.4‘, ext: ‘aar‘)
releaseImplementation(name: ‘leakcanary-android-no-op-1.5.4‘, ext: ‘aar‘)
注意AAR形式的依賴需要在build.gradle裡增加以下設定:
repositories {
flatDir {
dirs ‘libs‘
}
}
#8.啟用 Gradle離線模式即可正常使用了.如何改造 Release 依賴項 .aar 檔案 將僅在Release模式才使用的JAR類庫檔案整合到一塊?
最終目的為:
- 保證在
debug 運行模式能正常使用leakcanary-android的功能,
- 保證在
Release發布模式時不額外添加任何多餘的代碼和資源(只增加no-op類保證編譯不報錯即可)
改造前:leakcanary-android-1.5.4.aar > libs 為空白改造後:將其所有依賴的JAR包添加到
leakcanary-android-1.5.4.aar > libs 目錄裡.
leakcanary-android依賴項本來就是JAR的有:
- leakcanary-watcher-1.5.4.jar
- haha-2.0.3.jar
部分依賴項是AAR的需要提取出JAR檔案:
- leakcanary-analyzer-1.5.4.aar
將其解壓後,提取出 classes.jar 改一下名字leakcanary-analyzer-1.5.4.jar以便區分.
最終leakcanary-android-1.5.4.aar > libs 目錄裡有以下檔案:
- leakcanary-watcher-1.5.4.jar
- haha-2.0.3.jar
- leakcanary-analyzer-1.5.4.jar
結果驗證
Release 模式類結構圖:
debug 模式類結構圖:
如何通過 AAR 形式整合 leakcanary-android 服務