react-native init appname
一个空包,然后运行
react-native run-android
测试react native 0.67默认打包
结果打包出来的debug 包大小为:40.626KB(40.6M)
使用WinRAR 打开apk包,确定RN 默认 ndk 包括 "armeabi-v7a", "x86", "arm64-v8a", "x86_64"。
我们开始打包release APK包:
cd android 然后 gradlew assembleRelease。
结果打包出来的release包大小为:27.971KB(27.9M)
确认 ndk 包括 "armeabi-v7a", "x86", "arm64-v8a", "x86_64"。
测试开启 Hermes JavaScript引擎打包
下一步,我们再开启 Hermes JavaScript引擎,看看apk 包大小是多少。
打开文件:android\app\build.gradle
把enableHermes: false 改为enableHermes: true
然后react-native run-android 打包debug包
结果打包出来的debug 包大小为:35.985KB(35.9M)
确认 ndk 包括 "armeabi-v7a", "x86", "arm64-v8a", "x86_64"。
我们再继续打包release包
结果打包出来的release 包大小为:21.598KB(21.5M)
确认 ndk 包括 "armeabi-v7a", "x86", "arm64-v8a", "x86_64"。
至此,react-native 0.67打包的最小空包为21.5M,但是通常我们手机只需要ndk 包括 "armeabi-v7a", "x86"就可以运行,所以我们减少ndk继续打包测试最小的apk size。
测试NDK只有"armeabi-v7a", "x86"两个时候打包大小
在文件android\app\build.gradle中添加 配置:
ndk {
abiFilters "armeabi-v7a", "x86"
}
结果打包出来的debug 包大小为:19.627KB(19.6M)
继续打包release包:
结果打包出来的release包大小为:12.353KB(12.3M)
最后我们再来对bundle进行压缩后打包测试
结果release包大小:10.888KB(10.8M)
至此,react native 0.67版本打包 测试完毕:react-native 打包最小为10.8M
后来我又按照上面的方式继续测试react native v0.64.3版本打包,最小包为9.594KB(9.5M)
后来又测试了react native v0.62..3 最小包为 7.767KB(7.7M)