flutter 实战
# flutter 实战
[TOC]
# 一、打包发行
# 1.1 更改包名
全局替换applicationId
修改了build.gradle
后最好flutter clean
# 1.2 压缩打包
# 1.2.1so优化
参考教程:为何大厂APP如微信、支付宝、淘宝、手Q等只适配了armeabi-v7a/armeabi? (opens new window)
armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年12月以后的生产的大部分Android设备都使用它.
arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。(可向下兼容)
armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
x86: 平板、模拟器用得比较多。
x86_64: 64位的平板。
总的来说,就是一个Android设备可以支持多种ABI,设备主ABI和辅助ABI,以
arm64-v8a
为主ABI的设备,辅助ABI为armeabi-v7a
和armeabi
,以armeabi-v7a
为主ABI的设备,辅助ABI为armeabi
。
- flutter
flutter build apk --release --target-platform android-arm64
flutter run --release
1
2
3
2
3
Flutter打包Apk会包含三种CPU架构信息以适配不同架构的设备(x86_64,arm64-v8a,armeabi-v7a),目前大部分手机都是armeabi-v7a这个架构,所以我们可以分架构分别打包,包体减小较明显,但是需要舍弃小部分机型。
网上说微信QQ都只用 armeabi-v7a。
- Android:
去除/android/app/src/jniLibs/arm64-v7a
以外的文件夹。
- 判断CPU类型
adb shell getprop ro.product.cpu.abi
1