【发布时间】:2018-12-27 08:32:23
【问题描述】:
在我看来,目前我们的 Xamarin Android 应用 (PCL) 非常庞大,即使在发布模式下也是如此。我怀疑这是由于受支持的架构造成的。目前,我们已将它们全部选中。有谁知道我们是否必须选择所有这些?我们也根本没有使用 Android NDK。
【问题讨论】:
在我看来,目前我们的 Xamarin Android 应用 (PCL) 非常庞大,即使在发布模式下也是如此。我怀疑这是由于受支持的架构造成的。目前,我们已将它们全部选中。有谁知道我们是否必须选择所有这些?我们也根本没有使用 Android NDK。
【问题讨论】:
我将从here复制我的部分答案。
确保您至少检查了以下架构:armeabi-v7a 和 x86。您可以执行其他三个,但我们不这样做,因为我们在发布模式下使用 LLVM 编译,这与 64 位架构不兼容(不推荐使用的 armeabi 除外)。这样做的好处是,所有 64 位架构仍然可以使用 32 位构建,因此如果您检查这 3 个,它们仍然会被覆盖。
所以我只会检查这 3 个,除非您有特定的理由检查其他的。我们在仅使用这 3 个的设备上安装我们的应用程序时遇到了 0 个问题。
附带说明,打开 LLVM 编译和优化您的图标/图像将有助于最终的 APK 大小。
*编辑:自从写这篇文章后,我们只在某些设备(Android Nexus 9)上遇到了a bug,这会在启动应用程序时导致应用程序崩溃。解决方案是检查 arm64-v8a 架构。这可能会增加应用程序的大小,因此请权衡利弊,看看在包含架构后它对您的 APK 大小有多大影响,或者在必要时为每个架构拆分您的 APK。
【讨论】:
不,您不必选择所有这些。如果您想减小.apk 的大小,可以为每个ABI 创建一个.apk。 注意:鼓励的方法是开发和发布单个.apk。但这并不总是可行的,有时最好创建单独的。尽管此答案仅深入探讨了不同的 CPU 架构 (ABI),但您也可以针对屏幕尺寸、设备功能和 API 级别创建不同的.apk。
https://developer.xamarin.com/guides/android/advanced_topics/build-abi-specific-apks/
http://developer.android.com/google/play/publishing/multiple-apks.html
我建议使用 WinDirStat(https://windirstat.info/) 或 Disk Inventory X(http://www.derlien.com/) 之类的工具来调查您的 .apk 为何如此之大。您可能会发现您的.apk 很大的其他原因,例如资源(图像、原始文件)、程序集等。
【讨论】: