在flutter开发中,想做好一款App,性能优化是必不可少的,今天用到了,在此做一些简单的笔记。
1.什么是Shader
Shader是GPU使用的小程序,用于定义图形渲染方式,比如颜色、阴影等。
2.Shader Compilation Jank是什么
Shader编译通常在GPU上完成,但如果在应用运行期间实时编译,会导致短暂的卡顿(jank)。FLutter默认在运行时编译某些着色器,因此可能会有明显的性能问题,尤其是在复杂动画或图形效果中。
3.如何避免Shader编译卡顿
思路很简单,既然运行时编译卡顿,那么我们要做的就是在运行前进行预编译,这样运行时就不需要花时间去编译,要用的时候直接拿来用就好了。
- 真机运行如下命令,执行完App后,将原本卡顿的页面或动画等相关的业务执行一遍
flutter run --profile --cache-sksl --purge-persistent-cache
- 在控制台中输入大写字母
M
,将触发的Shader记录保存到本地 - 打包时附带此json文件,输入安卓端打包命令
flutter build apk --target-platform android-arm64 --split-per-abi --obfuscate --split-debug-info=debug_info --bundle-sksl-path flutter_01.sksl.json
- iOS端最好分别生成此json文件,打包时带上另外生成的json文件即可
版权声明
版权所有 © 锦曜 。
本文为原创作品,未经授权,禁止转载、摘编或以任何形式使用。若需引用或转载,请联系本人获取授权,并注明原文链接及作者姓名。
使用许可:
非商业用途:个人可在非商业情况下分享文章链接,但不得修改或以其他形式复制内容。
商业用途:如需将文章用于商业用途,需事先获得书面许可。
免责说明:
本文章内容仅代表作者个人观点,不代表任何组织或机构立场。因文章内容产生的任何问题,作者不承担法律责任。
联系邮箱:1092575682@qq.com