我需要了解Android设备的体系结构,使用时为什么会生成三种不同类型的APK:
flutter build apk --split-per-abi
。
并且当我使用
flutter build apk
我得到一个名为fat APK的大型APK文件,其中包含该应用程序的3个版本。
flutter build apk
为您带来了较大的apk,因为
flutter build apk
会生成一个胖APK,其中包含为所有目标ABI编译的代码。此类APK的大小要大于拆分后的相应APK,导致用户下载不适用于其设备架构的本机二进制文件。
--split-per-abi
产生两个APK文件:
(flutter build命令默认为--release。]
<app dir>/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
<app dir>/build/app/outputs/apk/release/app-arm64-v8a-release.apk
其中armeabi-v7a是32位设备,而arm64-v8a是64位设备。
了解更多https://flutter.dev/docs/deployment/android#build-an-apkhttps://flutter.dev/docs/deployment/android#build-an-app-bundlehttps://developer.android.com/studio/build/configure-apk-splits#configure-split
命令flutter build apk --split-per-abi
通常会生成两个APK文件。
arm64
或x86_64是具有64位处理器的设备的apk文件。x86
是32位处理器的apk文件。您都可以将它们都上传到PlayStore上,并根据用户的设备架构安装相应的apk。
使用flutter build apk
时获得的胖apk包含了以所有应用程序二进制接口或ABI为目标的必要编译代码。一旦用户下载了该繁琐的APK,则仅使用适用于该设备的代码。