【问题标题】:Is it possible to update only some part of an application on mobile platforms?是否可以只更新移动平台上的应用程序的一部分?
【发布时间】:2015-01-08 07:10:14
【问题描述】:

我正在开发一款目前可用于桌面、mac、Linux 的游戏。在这个游戏中有一个游戏更新器,它只下载游戏的更新部分。

我想在移动平台上创建类似的流程。我见过大小超过 1 GB 的游戏。要更新此类游戏或应用程序只需更改代码,用户必须再次完全下载整个游戏。这对我来说看起来很疯狂。

我想知道是否有任何设施或流程可以在我的游戏中克服这些问题。我在桌面上的游戏大小约为 1.75 GB。我将较轻的资源用于手机。所以它可以在 700 - 900 MB 左右。但这仍然会为小更新带来大量下载。

让我知道你的建议。您的想法可以适用于任何流行的移动操作系统,如 iOS、Android 或其他。我不具体。​​

我举个例子

启动应用或游戏时,它首先会下载所需的更新(来自我的服务器),然后再玩。完成更新后,它可以让用户玩游戏。我的意思是在同一个应用程序中可以有一个更新程序组件来执行更新并允许游戏模块运行。这只是一个可能的例子

【问题讨论】:

    标签: android ios windows-phone-8 mobile app-store


    【解决方案1】:

    是的,在 Android 上可以轻松完成,您只需以不同的方式组织事物...除非您的游戏真的很奇怪并且只有 700-900 MB 的代码:D

    http://developer.android.com/google/play/expansion-files.html

    只有您的代码在 APK 中。 您的资源不是,它们位于最大大小为 2GB 的扩展文件中。 用户下载一个非常小的APK,然后下载扩展文件。

    只是代码中的一个小改动?新的APK,还很小,没人会在意。 外部资产的变化?使用第二个扩展文件修补第一个。

    【讨论】:

    • 谢谢各位朋友。 iOS 和 Android 的答案似乎都是正确的。我不能接受两个答案。
    • 然后只为两个正确的答案投票,并为使 Stack Overflow 有用,为自己发布一个包含两个解决方案的答案并将其标记为已接受:)
    【解决方案2】:

    只是一个建议,我认为你可以将经常更改的代码写在Lua等脚本中,然后你只能下载和替换这些脚本。

    【讨论】:

      【解决方案3】:

      在 iOS 上可以做到。您可以在后台线程中运行应用程序期间下载资产,并将它们保存在设备上。

      代码示例:

      dispatch_queue_t downloader = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
      dispatch_async(downloader, ^(){
      
                NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
      
                NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];
                UIImage *image = [UIImage imageWithData:data];
      
                if ([image rangeOfString:@"png"].location != NSNotFound) {
                     [UIImagePNGRepresentation(image) writeToFile:[documentsDirectoryPath stringByAppendingPathComponent:imageName] options:NSAtomicWrite error:nil];
                }
      });
      

      【讨论】:

      • 谢谢各位朋友。 iOS 和 Android 的答案似乎都是正确的。我不能接受两个答案。
      • @KumarChikkanna,投票就足够了 :)
      • 需要 15 个声望。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      • 2013-03-20
      • 2020-07-16
      相关资源
      最近更新 更多