Android Studio如何仅引入Material依赖中的CircularProgressIndicator组件
解决方案
你设想的按单个组件引入MDC依赖的写法目前官方不支持,Google并未对Material Components库做单个组件的单独发布,所有组件都整合在同一个依赖包中,无法仅通过依赖配置筛选引入部分组件。
以下是两种可实现需求的可行方案:
方案1:开启R8/ProGuard代码压缩(最便捷)
你只需要在release构建配置中开启代码压缩,打包时R8会自动剥离所有未被调用的MDC组件代码,最终只会保留CircularProgressIndicator相关的逻辑,最终包体积增量和单独引入组件几乎无差异。
- 配置示例:
android { buildTypes { release { // 开启代码压缩 minifyEnabled true // 开启无用资源裁剪 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } dependencies { // 正常引入全量依赖即可 implementation 'com.google.android.material:material:1.5.0-alpha02' }
- 注意:debug构建为了保证编译速度默认不开启压缩,所以debug包体积会包含全量MDC代码,正式发布包会自动完成裁剪。
方案2:手动拷贝组件源码(适合对体积控制要求极高的场景)
如果确实不需要引入全量MDC依赖,可以直接拷贝CircularProgressIndicator以及它依赖的所有工具类、父类、主题属性源码到你的项目中,本地直接使用即可。但这种方式后续组件有bug修复、版本更新需要你手动同步维护,成本相对更高。
- 注意拷贝时要覆盖该组件的所有依赖文件,避免出现运行时类缺失、属性找不到的异常。
内容的提问来源于stack exchange,提问作者linker
相关产品推荐
相关产品推荐

