如何通過 AAR 形式整合 leakcanary-android 服務

來源:互聯網
上載者:User

標籤:可見   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類庫檔案整合到一塊?

最終目的為:

  1. 保證在 debug 運行模式能正常使用leakcanary-android的功能,
  2. 保證在 Release發布模式時不額外添加任何多餘的代碼和資源(只增加no-op類保證編譯不報錯即可)
改造前:leakcanary-android-1.5.4.aar > libs 為空白改造後:將其所有依賴的JAR包添加到  leakcanary-android-1.5.4.aar > libs 目錄裡.

leakcanary-android依賴項本來就是JAR的有:

  1. leakcanary-watcher-1.5.4.jar
  2. haha-2.0.3.jar

部分依賴項是AAR的需要提取出JAR檔案:

  1. leakcanary-analyzer-1.5.4.aar

將其解壓後,提取出 classes.jar 改一下名字leakcanary-analyzer-1.5.4.jar以便區分.

最終leakcanary-android-1.5.4.aar > libs 目錄裡有以下檔案:

  1. leakcanary-watcher-1.5.4.jar
  2. haha-2.0.3.jar
  3. leakcanary-analyzer-1.5.4.jar
結果驗證

Release 模式類結構圖:

debug 模式類結構圖:

如何通過 AAR 形式整合 leakcanary-android 服務

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.