首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
App启动优化
神奇的宇宙
创建于2022-02-27
订阅专栏
App启动优化
暂无订阅
共8篇文章
创建于2022-02-27
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
App启动优化介绍
背景介绍 第一体验 八秒定律 启动分类 冷启动 耗时最多,衡量标准 热启动 最快 温启动 较快 相关任务 冷启动之前 启动APP、加载空白Window、创建进程 随后任务 创建Application、
启动时间的测量方式
adb命令 adb shell am start -W packagename/首屏Activity ThisTime:最后一个Activity启动耗时 TotalTime:所有Activity启动耗
启动优化工具选择
注意: 两种方式互相补充 正确认识工具及不同场景选择合适的工具 traceview 图形的形式展示执行时间、调用栈等 信息全面,包含所有线程 使用方式 Debug.startMethodTracing
优雅获取方法耗时
常规方式 手动在方法前后埋点 long time=System.currentTimeMillis(); long cost=System.currentTimeMillis()-time; 侵入性强
从Theme方向来优化加载时间
注意:这种做法可以达到"秒开"APP的效果,只是一种假象,不是真正提升App启动的速度。 在主题上使用windowBackground属性为SplashActivity提供一个简单的自定义Drawab
异步优化
核心思想:子线程分担主线程任务,并行减少时间 常规异步 示例: 痛点: 代码不优雅 场景不好处理(依赖关系) 维护成本高 启动器 核心思想:充分利用CPU多核,自动梳理任务顺序。 流程: 代码Task
更优秀的延迟初始化方案
常规方案 New Handler().postDelayed Feed展示后调用 常规初始化痛点 时机不便控制 导致Feed卡顿 更优方案 核心思想:对延迟任务进行分批初始化 利用IdleHandle
启动优化其它方案
优化总方针 异步、延迟、懒加载 技术、业务相结合 注意事项 wall time 与cpu time cpu time才是优化方向 按照systrace及cpu time 跑满cpu 监控的完善 线上监