【发布时间】:2017-08-02 15:40:04
【问题描述】:
我正在构建我的 Xamarin.Android 项目,并且我选择了 AOT 编译,它使我的 .apk 膨胀到 165mb。
为了减小 .apk 的大小,我正在研究目标架构,目前我的目标是:
armeabi、armeabi-v7、x86、arm64-v8a
但我不知道这些架构如何与现代设备相对应。
我已经阅读了Android CPU Architectures,上面写着:
Xamarin.Android 默认为 armeabi-v7a 用于发布版本。这 设置提供比 armeabi 更好的性能。如果你 面向 64 位 ARM 平台(例如 Nexus 9),请选择 arm64-v8a。如果要将应用程序部署到 x86 设备,请选择 x86。 如果目标 x86 设备使用 64 位 CPU 架构,请选择 x86_64。
因此我需要针对 armeabi 和 armeabi-v7 吗?
现代 Android 平板电脑和手机应该针对哪些架构?
【问题讨论】:
-
我取决于您...假设您排除 x86,那么您的应用程序将不会显示给拥有基于 Intel 的设备(ASUS、Acer、Hp、Lenovo、Dells 等)的用户。Android平板电脑使用英特尔凌动)。当前使用的 ABI 的设备编号细分是多少?谷歌不发布这个统计数据,他们只在他们的仪表板上发布 API 级别的统计数据。就我个人而言,我处理的大多数客户都会为每个 ABI 发布单独的 APK,因此每个 APK 对于 Xamarin 应用程序来说都是最小的。如果您手动进行,这会为您的构建/发布过程增加更多工作......
-
.... 排除
arm64-v8a和更新的 Nexus 将使用armeabi-v7a,但运行速度会慢一些,等等...为单个 App Id 发布单独的 APK:developer.android.com/google/play/publishing/multiple-apks.html -
@SushiHangover 我办公室里有 Nexus 9,所以我会尝试排除
arm64-v8a看看会发生什么。我目前正在使用VSTS和Google play extension 发布我的应用程序。我认为他们不允许您为不同的 ABI 上传多个 apk,这很烦人 -
我也刚刚意识到我的办公室里有一个联想标签。当
x86未选中时,这可能不起作用 -
是的,联想现在确实有一些基于 ARM 的平板电脑,但大多数都是基于 Atom 的......从长远来看,从单个 APK 中排除 ABI 将再次减少您的潜在用户群,您的选择基于应用程序及其目标市场,我拥有的唯一不发布所有 ABI 的真实客户是针对专用设备的客户(即集成条形码设备、销售点设备等......)
标签: android xamarin xamarin.android cpu-architecture