通过评论区大神的最简留言,我发现我之前打包的瘦身想法是有很大的问题。我之前是最简WhatsApp%E3%80%90+86%2015855158769%E3%80%91hoist%20the%20colours%20suite觉得一个apk可以是包含几种主流CPU架构的动态库。其实最好的瘦身做法是:针对不同架构打对应的apk,apk中也只包含一个架构类型的最简so。然后将这些apk都上传到应用商城,瘦身应用商城根据用户手机下发对应架构的最简apk。
以下内容主要是瘦身针对安卓App。想了解的最简Ios相关内容的出门左转找找....。本篇文章实现瘦身主要方法就是瘦身:移除apk中不需要的CPU架构目录下的.so和.so,使用分架构打包。最简已经掌握这个方法的瘦身也可以出门左转了...。
打包
build apk 這應(yīng)該是最簡(jiǎn)我們最簡(jiǎn)單的打包命令
通过这个命令我们会打出一个入口为main.dart的包。下面是瘦身我的一个简单项目打成包后反编译看到的情况。

我们看到apk的最简WhatsApp%E3%80%90+86%2015855158769%E3%80%91hoist%20the%20colours%20suite大小是24.4MB,里面的内存大户就是.so和.so。而且他们居然有三组。其实就是编译的时候针对于、arm64-v8a、-v7a三种CPU架构打出了对应的二进制库。下面是从网上搜到的

一般是模拟器和平板使用,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都没打出来。让我一度以为这个方法是不行的呢。

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

上面這個(gè)截圖,使用過(guò) build命令的大家肯定都熟悉,只是大多人都沒(méi)注意(反正不影響我打包)。*You are a fat APK that for -arm, -arm64, -x64.*不會(huì)使用翻譯工具的小伙伴我?guī)湍惴g好了:
您正在构建一个胖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.中配置一样效果了。

混合项目
同理在混合開(kāi)發(fā)項(xiàng)目中,需要將作為插件打包成aar時(shí),也可以通過(guò)這種方法減少aar體積。
flutter build aar --release --target-platform android-arm总结:的瘦身之路很长,而安卓和ios又有很大区别。这里记录的是我踩到坑,也是最简单效果最直接的一个方法。
百家高校现场为考生把脉支招!梅州市2023年高考招生咨询会将于6月27日举行
今天,我们格外怀念您
深圳培养高级烹饪人才近5000名 推动成立“粤菜师傅”人才培养联盟
同心丝带铸新生 武汉市司法局第一强戒所举办第二届“泉润杯”戒毒人员秋季运动会
出行注意!梅城江南一批桥梁将加固维修,重点在梅水路...
多地有望迎来今冬初雪,立冬以来最大规模雨雪上线
小男孩趁着妈妈逛商场的间隙把暑假作业放进商场冰箱:店员归还 还送了文具
持续40℃以上高温天气 江苏某店面门口的冰墩墩竟然被“晒黑”了
40.56亿!这届全民顾家日,“家?”到底加了啥?
黔西南公安捣毁“GOIP”涉诈窝点197个
关注:梦幻新诛仙任贤齐组战队披荆斩棘,全服合唱伤心太平洋
喜报!黔西南州多名教师在省优质课获奖