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

使用Jetpack Compose Landscapist库,previewPlaceholder会增大APK体积吗?

关于Compose中GlideImage预览占位资源对应用体积的影响

首先明确结论:如果你的poster资源放在默认的src/main/res目录下,它会被打包进最终的release版本,从而增加应用体积——因为Android构建工具默认会把main目录下的所有资源打包到所有变体的安装包中,不管你是不是只在预览代码里引用它。

解决办法:让预览占位资源只在Debug构建中存在

要避免这个问题,最直接的方式是把poster资源移到src/debug/res/drawable目录下:

  • Debug构建时,这个资源会被包含,你在Compose预览里依然能正常看到占位图;
  • Release构建时,debug目录下的资源会被自动排除,不会进入最终安装包,也就不会影响应用体积。

补充说明

如果你不想移动资源,也可以通过代码结合BuildConfig来控制:

GlideImage(
  imageModel = { imageUrl },
  modifier = Modifier.aspectRatio(0.8f),
  previewPlaceholder = if (BuildConfig.DEBUG) R.drawable.poster else 0
)

但这种方式需要确保R.drawable.poster在release构建中不会被强制打包,最好还是配合把资源放到debug目录,避免编译时的资源引用问题。

另外,开启shrinkResources(资源收缩)在某些情况下可能会移除未被运行时引用的资源,但因为预览代码是被编译进项目的,构建工具可能无法识别这个资源仅用于预览,所以不依赖这种方式,直接用debug专属资源目录是最可靠的方案。

内容的提问来源于stack exchange,提问作者A. Patrik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:29:55