【问题标题】:What if all resources are placed in one resolution for android app bundle如果所有资源都放在一个分辨率中用于 android app bundle 会怎样
【发布时间】:2018-11-20 08:43:26
【问题描述】:

众所周知,Google 推出了使用 android-app-bundle 分发 android apk 的新功能,具有很多优势。

所以我的问题是,如果我将所有图像/资源放在像 drawable-xxxhdpi 这样的单个文件夹中,我的应用程序将如何运行。例如假设我有一个使用 5 张图像的应用程序。我没有为不同的分辨率采用不同的尺寸,而是将所有图像放在单个文件夹(drawable-xxxhdpi)中,假设让android根据设备分辨率处理它。

我们知道,android-app-bundle 会根据分辨率、语言等生成不同的不同 apk。

那么在这种情况下,我的应用会发生什么?如何为不同的分辨率生成 APK(Android 本身会重新缩放图像并生成捆绑包?)应用会发生什么情况,它会崩溃还是在较小分辨率的设备上正常工作?

我知道这是非编码问题,而是技术问题。我试图搜索这个但无法找到它的确切答案。

我也可以帮助别人。

【问题讨论】:

    标签: android android-app-bundle


    【解决方案1】:

    您的应用将像以前一样工作:Play 向给定的设备提供 Android 平台在为 APK 提供所有文件的情况下会加载的文件。

    换句话说,如果 mdpi 设备已经加载了资源 res/drawable-xxxhdpi/icon.png,那么 Play 将为该设备提供服务。

    --

    另外,与您的问题稍微无关,但请注意,仅在 xxxhdpi 中提供资源存在一些缺点(无论您发布的是 APK 还是 Android AppBundle):

    1. Android 平台必须在运行时在分辨率较低的设备上重新缩放这些图像,从而占用一些 CPU 时间并使您的应用稍微变慢。

    2. 您的应用比在低分辨率设备上的应用更大。如果您在 mdpi 中也提供了相同的资源,它显然会更小,这就是 Play 将为 mdpi 设备提供的服务,从而使您的应用在这些设备上更小。

    【讨论】:

    • 感谢您的快速回复。正如您所说的资源在运行时重新调整,当play为mdpi设备生成apk时,play将如何根据mdpi等不同的分辨率/资源设备生成apk?那么应用程序包将没有任何好处,因为更高分辨率的图像也包含在应用程序包中?
    • Play 今天不会创建新文件,因此它将向所有设备提供 xxxhdpi 资源(在我们的示例中)。如果您想避免重新缩放,则需要为每个 dpi 包含 PNG 资源,然后 Play 会将正确的资源提供给正确的设备。
    【解决方案2】:

    Resource not found 异常将在分辨率较低的设备中触发

    【讨论】:

      【解决方案3】:

      很好且很有帮助的问题,我认为您的应用程序可以在 xxxhdpi 设备上正常运行,但那些 mdpi 或 hdpi 设备将面临布局问题。我认为不会有除此之外的任何其他问题。

      【讨论】:

        猜你喜欢
        • 2020-04-15
        • 2020-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-17
        • 1970-01-01
        相关资源
        最近更新 更多