1

我是一名 Android 开发人员,在 GooglePlay 上发布了一些游戏。实际上,我有 2 个操作系统版本的 apk 文件(一个支持多点触控 2.0+,另一个不支持多点触控 1.5+)使用 GooglePlay 上现有的多点支持。

2 apk 具有适用于高清设备的高分辨率资产,但在一些旧手机中会导致内存问题加载和重新调整高清图像。

为了解决这个问题,我想用低分辨率资产(更多的兼容性,更好的内存分配)构建我的 apk,并只用高分辨率资产构建另一个 apk。

APK 1:游戏(低分辨率图形) APK 2:游戏的高分辨率资产

用户下载游戏,当游戏启动时,游戏会检查屏幕分辨率并询问用户是否要下载和安装高分辨率资产。

我不想使用多个 apk,因为它太难维护(4 个 apk)。我可以用什么解决方案来做到这一点?

类似于扩展包但在内部存储器中的东西(应用程序的结构)

谢谢。里卡德。

4

1 回答 1

0
  1. 限制工作超载的方法是拥有两个Android 库,一个带有小图形,一个带有高清,并让您的应用程序在编译时使用一个或另一个库。当然,您需要确保可绘制的名称、布局和 ID 完全相同。这会创建更多的 apk,但可以立即完成。请注意,您可以通过以编程方式检测操作系统版本将其限制为 2 个 APK:

    if (VERSION.SDK_INT < VERSION_CODES.ECLAIR) {
        // use single touch
    } else {
        // use multi touch
    }
    
  2. 您还可以使用从市场上下载的 HD 包的想法,其中包含您的可绘制对象。您可以使用以下代码从您的第二个应用程序访问资源:

    Resources res = context.getPackageManager().getResourcesForApplication("com.example.foo")
    

    然后,您需要确切知道正确的可绘制 id 以加载正确的 id 或仅使用反射。

  3. 另一种选择是存储所有可绘制文件的存档,将它们从您自己的服务器下载到应用程序沙箱中,然后从磁盘而不是资源中读取它们。

于 2012-06-06T07:52:13.317 回答