当前位置: 首页 > news >正文

电商网站开发公司濮阳网红

电商网站开发公司,濮阳网红,企业营销网站的建设,外贸跨境电商平台背景 书接上回: Android flutter项目 启动优化实战(一)使用benchmark分析项目 已经分析出了问题: 1.缩短总时长(解决黑屏问题、懒启动、优化流程)、2.优化启动项(使用App Startup)、3.提升用…

背景

书接上回:





Android flutter项目 启动优化实战(一)使用benchmark分析项目

已经分析出了问题:

1.缩短总时长(解决黑屏问题、懒启动、优化流程)、2.优化启动项(使用App Startup)、3.提升用户体验

1.使用App Startup  

      App Startup库提供了一种在应用启动时初始化组件的简单而高效的方法。库开发者和应用开发者都可以使用应用启动来简化启动序列,并明确设置初始化顺序。

       通过应用启动,您可以定义共用单个 Content Provider 的组件初始化程序,而无需为需要初始化的每个组件定义单独的 Content Provider。这可以显著缩短应用启动时间。

引入

    implementation "androidx.startup:startup-runtime:1.1.1"

 

使用方法

通过提供 若干需要初始化的组件构成的Initializer 给App Startup 

以timber为例子🌰:

class TimberInitializer : Initializer<String> {//create() 方法,其中包含初始化组件并返回 T 实例的所有必要操作。override fun create(context: Context): String {Timber.plant(Timber.DebugTree())return "TimberInit"}
//dependencies() 方法,该方法返回初始化程序所依赖的其他 Initializer<T> 对象的列表。您可以使用此方法控制应用在启动时的顺序。override fun dependencies(): List<Class<out Initializer<*>>> {// No dependencies on other libraries.return emptyList()}
}

生成若干的Initializer

然后在清单配置:   

   其中 tools:node="remove"  代表取消初始化

     <application>   <providerandroid:name="androidx.startup.InitializationProvider"android:authorities="${applicationId}.androidx-startup"android:exported="false"tools:node="merge"><meta-dataandroid:name="com.app.test.init.FlutterBoostInitializer"android:value="androidx.startup" /><meta-dataandroid:name="com.app.test.init.XGPushInitializer"android:value="androidx.startup"tools:node="remove" /><!--根据隐私政策 延后初始化--><meta-dataandroid:name="com.app.test.init.InstaInitializer"android:value="androidx.startup"/></provider></application>

手动初始化

根据业务场景某些Initializer可以延后手动初始化

AppInitializer.getInstance(context).initializeComponent(ExampleLoggerInitializer::class.java)

效果检查

使上一章的方式使用benchmark分析项目检查结果

可以自己查看相关Initializer的相关效果 

可以清晰看到app startup在bindApplication的中 进行了相关初始化 

注意事项:

  • InitializationProvider 的 onCreate() 方法是在主线程被调用的,这对于某些初始化时间过长,需要运行在子线程的组件来说就不太适用了。

  • 跟声明顺序无关 若有依赖项目 需要放入dependencies方法里

  • 由于 Startup 内部会缓存 Initializer 的初始化结果值,所以重复调用 initializeComponent方法不会导致多次初始化,手动初始化该方法也可用于自动初始化时获取初始化结果值

2.优化基于flutterboost的flutter首页

问题描述

使用 flutter boost  和其它第三方组件 都进行初始化时  debug偶现 release几乎必现 启动黑屏

解决方案

当时的解决方法是

修改flutterboost源码中启动部分并加以500ms的延迟

新版解决方案

处理appBuilder

具体参考 flutter boost 启动白屏踩坑_flutter release

并顺手将flutter main方法进行了优化 在runApp()方法前面的 await LocalNotification.init();等方法懒加载

本阶段总结

start up点击进去能看到具体的详情 

优化前后对比

0.0v1.0v

如果仅max值从打开来看 优化了50%(毕竟如果第一次启动时间特别长 用户印象会很深)

总体效果还是不错的 

http://www.yayakq.cn/news/354738/

相关文章:

  • 南昌网站建设哪家就好数据分析师培训机构
  • 自己怎么在电脑上做网站网站图片等比缩小
  • 营销网站建设评估及分析网页设计与制作教程欧静敏
  • 网站广告设计大连云购物app下载安装到手机
  • 厦门高端网站建设定制有经验的手机网站建设
  • 网站设计培训网站布局模板
  • 网站的建设要多少钱网站做的比较好的公司
  • 苏州建材装修网站建设网站开发h5页面
  • 网站建设CEO义乌seo优化公司
  • 小城镇建设投稿网站在自己的网站上怎么做淘宝客
  • 泉州服装电商网站建设比较大气的企业网站
  • wdcp 无法访问此网站亚马逊电商网站
  • 昆明网站制作在线网站建设概
  • o2o网站建设技术湖北省建设局网站首页
  • 网站域名到期怎么续费php wordpress单本小说网站源码+采集
  • 素材搜集网站网站建设优劣势分析
  • 兰州快速seo整站优化招商页面 菜单 wordpress
  • 网站建设 三乐电子商务网站APP
  • 咖啡店网站模板邮箱注册网站
  • 揭阳网站制作收录网站源码
  • 哈尔滨学校网站建设关于室内设计的网站有哪些
  • 个人购物网站怎么备案跑步机 东莞网站建设
  • 做外贸一般去什么网站找客户如何做推广麦当劳的网站
  • c程序设计课程网站建设论文网站推广外链怎么做
  • 网站备案幕布照片自动点击器怎么用
  • 网站开发 入门教程网站管理与建设试题
  • 蓝色风格网站软文营销的概念
  • 硬件开发语言有哪些做网站推广用优化还是竞价
  • 企业网站建设流程赣州人才网暑假工
  • 西安长安区网站优化地址福建泉州网站建设公司哪家好