Flutter apk最简单的瘦身方法

蓝莓外汇市场官网2025-07-06 19:10:32 

通过观点区大神的回复,我发现我之前打包的想法是有很大的难题。我之前是觉得一个apk可以是涵盖几种主流CPU架构的动态库。其实最好的做法是:针对不同架构打对应的apk,apk中也只涵盖一个架构类别的so。然后将这些apk都提交到软件商城 ,蓝莓外汇平台开户软件商城根据读者移动设备下发对应架构的apk 。

以下素材主要是针对安卓App。想了解的Ios有关素材的出门左转找找....。本篇素材实现瘦身主要方法就是 :移除apk中不需要的CPU架构目录下的.so和.so ,利用分架构打包 。已经掌握这个方法的也可以出门左转了... 。

Flutter apk最简单的瘦身方法

打包

build apk 这应该是我们最简单的打包命令

通过这个命令我们会打出一个通道为main.dart的包。下面是我的一个简单项目打成包后反编译看到的现状 。

我们看到apk的蓝莓外汇平台官网大小是24.4MB,里面的内存大户就是.so和.so。而且他们居然有三组 。其实就是编译的时候针对于 、arm64-v8a、-v7a三种CPU架构打出了对应的IC外汇开户二进制库。下面是从网上搜到的

一般是模拟器和平板利用 ,arm64-v8a就是arm 64位,现在新移动设备应该都是了,不过好像L之后才拥护64位吧,具体可以自行查询资料(我就不误导了)。至于虽然不是现在主流CPU架构  ,但是高平台的都会对其进行兼容,所以引发主流的App如果只想发一个平台的上线 ,用它就行 。所以我们发软件市场时完全可以把和arm64-v8a目录下的so资料给去掉( Play 好像要求得有arm64-v8a)。

但是我们在开发时又要让他能在模拟器上跑起来,所以我们可以配置个和debug的不同生态 。

优化计划配置的build.

这个方法虽然能达到效果但是不精选,除非你确实想一个apk中涵盖几种架构的so 。

(资料的位置:项目->->app->build.)

buildTypes {        release {           ...            ndk{                //之前看QQ微信等大佬都只用"armeabi"abiFilters "armeabi-v7a"}        }        debug {	        ...            ndk {                //这里配置开发调试时的,根据个人需要增下降,x86提议加上不然部分模拟器回报错abiFilters  "armeabi-v7a","arm64-v8a", "x86"}        }    }

修改完上面素材后,在落实 build apk 命令 ,我们可以看到整个项目从24MB左右变成了10MB  ,lib目录下和arm64-v8a资料夹被移除。

注意:这里-v7a不能写成  。 我在第一次的时候就是配置的 ,结论打出来的包只有3MB,反编译发现里面压根就一个so都没打出来 。让我一度以为这个方法是BBMarkets外汇平台不行的呢。

shell命令

这个方法我是怎么知道的呢 ?其实一直在提醒你:

上面这个截图 ,利用过 build命令的大家肯定都熟悉 ,只是大多人都没注意(反正不作用我打包)。*You are a fat APK that for -arm, -arm64, -x64.*不会利用翻译软件的小伙伴我帮你翻译好了:

您目前构建一个胖APK,其中涵盖适用于-arm ,-arm64和-x64的二进制资料 。如果您要将软件程序安排到Play商店 ,提议利用软件程序捆绑包或拆分APK以减小APK的大小。

下面就介绍了根据ABI拆分的方法(不管app  ,只看apk):

flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi

我落实上面的命令后打的包:

我们看到根据---指定的的架构平台分别生成相应的apk ,而每个apk都是大约10MB上下 。我们可以把这些都提交到软件市场 ,然后软件市场会根据获取apk的移动设备架构下发合适的apk 。( Play是这样,国内的嘛...)。

我们也可以指定只打-v7a的 :

flutter build apk --release  --target-platform android-arm

这个打出来就跟我在build.中配置一样效果了 。

混合项目

同理在混合开发项目中,需要将作为插件打包成aar时 ,也可以通过这种方法下降aar体积 。

flutter build aar --release  --target-platform android-arm

总结 :的瘦身之路很长,而安卓和ios又有很大区别 。这里记录的是我踩到坑 ,也是最简单效果最直接的一个方法 。