Android 颤振大apk尺寸和不同ABI的释放

Android 颤振大apk尺寸和不同ABI的释放,android,flutter,arm,apk,abi,Android,Flutter,Arm,Apk,Abi,我正试图建立一个发布应用程序与低文件大小在颤振。昨天发布的apk大小约为16mb,但在我更新了颤振后,大小变为23mb 经过一些研究,我发现Flatter生成了包含所有ABI的应用程序包,在更新之后,新的API被添加到apk中 将应用程序添加到android studio apk analyzer后,我可以看到其中的不同ABI,如下所示: x86_64 7.1mb arm64-v8a 7mb armeabi-v7a 6.8mb 我可以使用flatterbu

我正试图建立一个发布应用程序与低文件大小在颤振。昨天发布的apk大小约为16mb,但在我更新了颤振后,大小变为23mb

经过一些研究,我发现Flatter生成了包含所有ABI的应用程序包,在更新之后,新的API被添加到apk中

将应用程序添加到android studio apk analyzer后,我可以看到其中的不同ABI,如下所示:

x86_64          7.1mb
arm64-v8a       7mb
armeabi-v7a     6.8mb
我可以使用
flatterbuildapk——按abi分割
为不同的abi生成apk。
现在的问题是,
arm64-v8a
系统能否运行
x86\u 64
apk?(或其他)。 或者这些ABI apk版本中的任何一个都可以在所有设备中运行吗

我不会在应用商店上发布我的应用,我只是把它放在我客户的网站上,他们的客户会从那里下载(或者通过电子邮件发送给他们…)。所以我需要一个适用于所有android设备的版本,而完整的捆绑版本太大了(23mb)

编辑:
我刚刚在
arm64-v8a
设备上测试了
x86_64
构建,但没有安装。但是,armeabi-v7a版本确实安装了。

我做了一些研究,并在不同的设备上尝试了发布版本,结果如下: 命令是:
flatterbuildapk——按abi分割

  • x86_64 apk版本不适用于任何其他设备。我找不到x86_64设备,但我认为它可以在x86_64设备上工作
  • arm64-v8a apk版本安装在arm64-v8a上,但不会安装在armeabi-v7a设备上。(armeabi-v7a比 arm64-v8a)
  • armeabi-v7a apk版本适用于armeabi-v7a和arm64-v8a设备。我没有找到x86_64设备,但我认为它可以在这个设备上工作 设备也是
摘要:较新版本的ABI可以运行较旧的apk版本。顺序是:armeabi-v7a,然后是arm64-v8a,然后是x86_64

例如,armeabi-v7a将在所有设备上安装和工作,如果您构建和安装了arm64-v8a apk,它将不会安装在armeabi-v7a设备上

还有其他不再使用的体系结构(mips、mips64、armeabi),默认情况下,颤振不会包含在构建中

X86和X86_64体系结构适用于数量非常有限的设备,但可能有助于在模拟器中进行调试

这是我研究和测试的结果。我决定只使用armeabi-v7a,因此apk大小将是8mb而不是23mb


如果其他人有这个问题/麻烦,我希望这能有所帮助:)。

在vscode或android studio的cli上编写此命令,以构建Flatter android项目的3版本:

flutter build apk --target-platform android-arm,android-arm64,android-x64


我也面临着类似的问题。您还可以共享最后用于生成发布apk的命令,该命令使apk文件的大小达到8mb。
flatter build apk--按abi拆分
这将为您提供3个apk。armeabi-v7a是一款适用于所有设备的产品。你所有的apk发布应用都有这么大的尺寸?您使用的是什么颤振版本?。当我使用1.17时,事情进展顺利,发布的apk大小也很小,但在将颤振版本升级到1.20后,出现了这个问题。@Umair是的,但我使用的是颤振1.12.13+5。颤振为1.20的APK有多大?(使用
——根据abi
命令拆分)