You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看Android APK中各依赖库带来的具体体积增量?

第三方SDK/库APK体积占比分析方案

以下几种方案可以帮你精准统计每个第三方SDK/库对APK体积的贡献:

  • 利用R8/ProGuard的使用报告
    开启混淆后,R8/ProGuard会生成usage.txt报告,记录哪些类被保留到最终APK里。结合这份报告和APK Analyzer的dex文件大小,就能统计出每个SDK对应的保留类总字节数,算出实际体积贡献。
    配置方式:在app/build.gradle的release构建类型中开启混淆并确保生成报告:

    android {
        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    

    报告路径:build/outputs/mapping/release/usage.txt,里面会标注类似com.bumptech.glide.**的保留类,你可以用脚本批量统计这些类在dex文件中的大小总和。

  • Gradle任务统计依赖库体积
    编写一个简单的Gradle任务,直接统计每个第三方依赖的原始jar大小,再根据混淆压缩比例(通常30%-50%)估算最终APK中的实际体积。
    示例任务:

    task calculateLibrarySizes {
        doLast {
            configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts.each { artifact ->
                // 过滤掉自己项目的代码,只统计第三方库
                if (!artifact.moduleVersion.id.group.startsWith("com.yourcompany")) {
                    def rawSizeMB = artifact.file.size() / 1024 / 1024
                    // 按60%的压缩率估算最终体积(可根据自己项目的混淆情况调整)
                    def finalSizeMB = rawSizeMB * 0.6
                    println "${artifact.moduleVersion.id.group}:${artifact.moduleVersion.id.name}: 原始jar大小 ${rawSizeMB.round(2)} MB,估算最终APK体积 ${finalSizeMB.round(2)} MB"
                }
            }
        }
    }
    

    运行命令:./gradlew calculateLibrarySizes,就能得到每个第三方库的体积数据。

  • Dexcount插件统计类数量估算体积
    Dexcount插件可以统计每个包的类、方法数量,按每个类平均1-2KB的大小估算,就能得到SDK的大致体积贡献。
    配置步骤:

    1. 根项目build.gradle添加依赖:
      buildscript {
          dependencies {
              classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:3.1.0'
          }
      }
      
    2. app模块build.gradle应用插件:
      apply plugin: 'com.getkeepsafe.dexcount'
      

    构建完成后,报告在build/outputs/dexcount/release/index.html,可以按包名筛选第三方SDK,统计类数量后乘以平均类大小得到体积。

  • 手动对比移除法
    暂时移除某个第三方SDK(注意排除其传递依赖),重新构建APK,对比移除前后的APK大小差值,就是该SDK的实际体积贡献。这种方法虽然繁琐,但结果最准确,适合重点怀疑的SDK。

内容的提问来源于stack exchange,提问作者Jhon Fredy Trujillo Ortega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:09:26