【问题标题】:How to compress an .APK file say by Winrar(.rar) and then convert it back to .APK?如何通过 Winrar(.rar) 压缩 .APK 文件,然后将其转换回 .APK?
【发布时间】:2018-10-11 05:25:21
【问题描述】:

众所周知,Xamarin Forms 应用程序的一个缺点是体积过大。尽管我经历了不同的场景来减小应用程序的大小,例如链接和使用 Proguard,但我的 Android APK 大小仍然很高(大约 30 MB)。问题是当我用 Winrar 压缩这个 apk 时,大小达到了大约 11 MB。我将此压缩的 .rar 文件重命名为 .apk 文件,但当我尝试安装此文件时,我收到消息:“解析包时出现问题”。

所以我的问题是,是否有任何机制可以利用诸如 winrar 之类的工具对 APK 文件进行压缩,以便可以将其安装在任何 Android 设备上?

【问题讨论】:

  • 例如,如果您打算在 google play 商店上发布它,请注意它具有由客户端设备上的 Play 应用程序处理的自动压缩机制。你也可以考虑勾选Generate on package per selected ABI这个选项。
  • 是的,我已经启用了该选项。尽管进一步减小应用程序大小的另一个选项是启用 Linking All 选项(SDK 和用户程序集)并配置 proguard 以使应用程序不会崩溃。但这需要耗时的分析。

标签: android xamarin xamarin.forms compression rar


【解决方案1】:

您将不得不将其解包,然后再次在设备上。你不能只是去重命名一个文件并期望它工作,二进制结构是完全不同的。

您将需要用户下载能够解压 .rar(或您决定的任何格式)的应用程序,并了解用户从那里提取 APK 文件,然后安装它。您确实需要考虑的是,用户需要具备一定的技术能力才能做到这一点,在某些情况下,甚至可能需要比平常更多的设备权限。据我所知,没有任何交付机制可以为您做到这一点。

如果您问我,30 MB 并不算多,而且通过这一切的麻烦不值得您剃掉几兆字节。如果您查看商店中的普通应用,它们很容易比这大。

【讨论】:

  • 我当然希望我们的普通用户能够以标准方式通过商店安装应用程序。嗯,我只是想知道一个APK是否可以被Winrar这样的第三方工具压缩这么多,也许同样的事情可以通过开发工具或Android OS本身来执行。无论如何,谢谢。
【解决方案2】:

不幸的是,这并不容易。 在打包过程中,您的应用存档将被散列。如果您对它进行 rar 或对存档进行任何其他篡改,则生成的应用存档的哈希值将与构建时使用的哈希值不同。由于安全原因,这将导致您的 apk 在安装时自行失效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2019-07-14
    • 2014-10-15
    • 2014-06-13
    相关资源
    最近更新 更多