android - 从 Android Studio 中的 apk 中排除模块

标签 android android-studio gradle

我将 Zoom SDK 集成到我的应用程序中。 Zoom Sdk 在构建后向发布 apk 添加了 ~80Mb。但是我的应用程序有很多口味,其中只有一两个真正使用缩放。所有其他应用程序都在不使用缩放功能的情况下发布。

我想以某些方式从我的最终 apk 中排除所有缩放代码,以节省小尺寸的 apk。怎么做?如果您建议我在 apk 组装过程中排除缩放模块的解决方案,那就太好了。

更新:

缩放不直接包含在应用程序中,它通过其他核心模块传递: app<--core<--zoom

我无法读取核心模块内的应用程序风格。我希望有一个可以实现 core 的解决方案在构建 apk 期间,依赖于包含或排除缩放模块的参数类型。有点:

implementation project(":core", withZoom = true)

或者
def coreModule = project(":core")
coreModule.setParam("zoom", true)
implementation coreModule

最佳答案

您可以为特定风格定义依赖关系。在此处查看此 SO-post:
How to define different dependencies for different product flavors

因此,您可以仅为需要它们的两种口味添加缩放依赖项。

另一种方法是使用带有on-demand delivery 的android 动态功能模块交付。 .
这允许您仅在您的应用程序请求时才下载模块。由于您的缩放模块的大小将大于 10 MB,因此用户会看到一个系统对话框,询问是否可以下载该功能。这对于用户体验来说并不是很好,但它是一种为其他风格减小应用程序大小的方法。

在此处查看如何使用动态功能模块:https://developer.android.com/guide/app-bundle/dynamic-delivery

关于android - 从 Android Studio 中的 apk 中排除模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61867668/

相关文章:

android - 将布局对齐到工具栏android中的最左端

android - Google 地理编码服务不可用(地址坐标)

android - Android Studio 3.0无法查看布局

sqlite - Android Studio 搜索现有的 sqlite 数据库

android - 编译gradle库项目失败

gradle - LibGDX Gradle:Gradle弄错了我的根项目目录吗?

android - 设置为 setZOrderOnTop(true) 的 SurfaceView 上方的 DrawerLayout

android - GridView 右侧的未知空间

android - 在 Android Studio 1.4.1 中设置 Android 工具栏背景和文本颜色

java - 将 shadow 插件生成的 shadow jar 重命名为原始工件名称