在 Flutter 中优化加载速度(启动速度 + 页面/资源加载速度)通常从 启动阶段、包体积、资源加载、渲染性能、网络与状态管理 几个方向入手。下面按实用性给你一个系统清单。
flutter run --release
Debug 模式有 JIT 和大量断言,启动会明显慢。
main() 中的初始化工作❌ 避免:
void main() async {
await initAllSDK();
await loadBigFile();
runApp(MyApp());
}
✅ 改为:
FutureBuilder 或 initStateWidgetsFlutterBinding.ensureInitialized() 最小化只在需要时调用(如用到 shared_preferences、sqlite)。
flutter build apk --release --shrink
flutter build apk --split-per-abi
flutter pub deps
推荐:
flutter_native_splash
比 Flutter 内 Splash 更快(本地层绘制)。
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: loadData(),
builder: (_, snap) {
if (!snap.hasData) return Loading();
return Content();
},
);
}
}
ListView.builder✅ 使用合适分辨率:
images/2.0x/
images/3.0x/
✅ 使用 cached_network_image
CachedNetworkImage(
imageUrl: url,
placeholder: (_, __) => CircularProgressIndicator(),
)
✅ 压缩图片(WebP)
const WidgetProvider.selectConsumer 精准监听const Text('Hello');
ListView.builder❌ 不用 Column + List
✅ 用懒加载列表
Opacity 和 Clip 滥用Opacity 会触发离屏渲染Visibility 就用await Future.wait([fetchA(), fetchB()]);
hiveshared_preferencessqfliteListView.builder(
itemBuilder: (_, i) => items[i],
)
Isolate 处理重计算flutter_rust_bridge(极端性能场景)flutter analyze
flutter pub outdated
flutter build apk --analyze-size
DevTools:
Flutter 加载慢,通常不是 Flutter 慢,而是:初始化太多、包太大、首屏太重、图片太重。
如果你愿意,可以告诉我:
我可以给你针对性优化方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。