2017-08-02 110 views
0

我正在构建我的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平板电脑和手机定位哪些构架?

+0

我取决于你...说你排除86,那么你的应用程序将不会显示为有基于英特尔芯片的设备(华硕,宏碁,惠普,联想,戴尔等用户。Android平板电脑使用Intel Atoms)。目前正在使用的ABI的设备编号分类是什么? Google不会发布此统计信息,他们只会在其仪表板上发布API级统计信息。我个人处理的大多数客户都会为每个ABI发布不同的APK,因此每个APK对于Xamarin应用程序来说都是最小的。如果你正在手动完成这项工作,这会为你的构建/发布过程增加更多的工作.... – SushiHangover

+0

....排除'arm64-v8a'和更新的Nexus将使用'armeabi-v7a',但运行速度会慢一点等。 ..为单个App ID发布单独的APK:https://developer.android.com/google/play/publishing/multiple-apks.html – SushiHangover

+0

@SushiHangover我在办公室里有一个Nexus 9,所以我会尝试排除'arm64 -v8a'看看会发生什么。我目前使用'VSTS'和[Google play extension](https://marketplace.visualstudio.com/items?itemName=ms-vsclient.google-play)发布我的应用。我不认为他们允许你为不同的ABI上传多个apk,这很烦人 – user1

回答

2

armeabi适用于较旧的设备,因为大多数较新的设备都运行armeabi-v7。其次,64位设备可以回退到其他ABI。如果你担心的大小,那么你最好的选择是创建多个APK:

https://developer.xamarin.com/guides/android/application_fundamentals/cpu_architectures/#Targeting_Multiple_Platforms

虽然谷歌建议单个APK,这并非总是如此:

虽然我们鼓励您开发并发布支持尽可能多设备配置的单个APK,但这样做有时是不可能的。为了帮助您尽可能多地发布应用,Google Play允许您在同一应用列表下发布多个APK。 Google Play会根据您在每个APK的清单文件中声明的配置支持,将每个APK提供给相应的设备。

https://developer.android.com/google/play/publishing/multiple-apks.html

+1

我从[quora](https://www.quora.com/Are)找到了[Android-x86 devices](http://www.android-x86.org/hardware-list)列表 - 任何现代的Android手机 - 不支持-armeabi-v7a)链接似乎表明'armeabi-v7'是在2012年推出的,所以'armeabi'必须适用于2012年之前的设备。我为其他人添加了这些链接。如我错了请纠正我。我结束了'armeabi-v7'和'arm64-v8a',即使如此,我仍然是99mb,因此需要调查您发布的链接 – user1

相关问题