代码优化
包大小
压缩本地图片(压缩代码在线工具 ) 使用单架构so(android一般都支持,armeabi-v7,所以可以保证有这个架构就行) 在app/build.gradle
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.flutter_trip"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ ndk {
+ // abiFilters "armeabi-v7a","arm64-v8a","x86_64","x86" //只打包flutter所支持的架构,flutter没有armeabi架构的so,加x86的原因是为了能够兼容模拟器
+ abiFilters "armeabi-v7a" //release 时只打"armeabi-v7包
+ }
}
流畅性优化
按需创建页面(pageView可以将页面按需加载) 按需AutomaticKeepAliveClientMixin(是一把双刃剑,一方面能够缓存数据,减少页面的重新请求数据,另一方面也可能缓存的数据过多,影响速度) 耗时的计算放到独立的Isolate,一个独立的线程里面
内存优化
之图片:根据控件加载指定分辨率的图片,并不是越清晰的图片越好,越清晰的图片,其需要消耗的内存也需要越大 之列表优化:
分页加载, 使用List View.build()来复用子空间(只显示当前可见的listItem,只会把当前可见的放入到内存中,是按需加载的) 之防止内存泄漏,dispose需要销毁的listener(监听器)等