性能优化系列课
2021-11-25 23:35:50 30 举报
AI智能生成
动脑学院性能优化系列课
作者其他创作
大纲/内容
什么是ANR
Service 超时机制
Broadcast 超时机制
ContentProvider 超时机制
Input 超时机制
ANR原理
ANR 超时阈值
前台与后台服务的区别
前台与后台广播超时
前台与后台ANR
ANR 分析
WatchDog
FileObserver
ANR 线上监控
ANR
减少操作
推迟操作
合并操作
优化方案
Doze低电耗模式
Standby待机模式
白名单
WorkManager
系统电量方案
BatteryHistorian
Energy Profiler
电量分析工具
电量优化
HttpDNS
DNS优化
keep-alive
HTTP2
连接优化
protobuf
gzip
数据压缩优化
网络优化
Java Crash 监控
BreakPad
minidump_stackwalk
addr2line
Native Crash 监控
Crash 监控
APK 结构
Android Size Analyzer
移除未使用资源
启用资源缩减
使用Lint分析器
一键删除无用资源
移除未使用的备用资源
动态库打包配置
使用矢量图
包体积优化
SharedPreferences
MMKV
Preferences Datastore
Proto Datastore
Jetpack DataStore
轻量级存储优化
JVM虚拟机
为什么要分析应用的内存
会话
Retained Size
将堆转储另存为 HPROF 文件
捕获堆转储
强制执行垃圾回收
跟踪内存分配
内存性能分析器中的泄漏检测
内存性能分析器
Android Profiler
Histogram
内存快照对比
MAT(Memory Analyzer Tool)
内存分析
原因
危害
内存抖动
原因与危害
单例
静态变量
非静态内部类
未取消注册或回调
Timer和TimerTask
集合中的对象未清理
资源未关闭或释放
属性动画
WebView
常见内存泄漏场景
初始化
运行步骤
核心原理
检测对象类型
ReferenceQueue 与 WeakReference
手写实现 LeakCanary 核心流程
LeakCanary 内存泄漏检测
内存泄漏
单个应用可用的最大内存
导致OOM的常见原因
重新定义类
跟踪对象分配和垃圾回收过程
遵循对象的引用树,遍历堆中的所有对象
检查 Java 调用堆栈
暂停(和恢复)所有线程
JVMTI
加载或连接代理
API
ART TI
抖音内存监控框架(Kenzo)
Linux文件系统
Cache Page与Read/Write操作
内存映射原理
mmap 内存映射
内存溢出
Bitmap.compress()
质量压缩
inJustDecodeBounds
inSampleSize
尺寸压缩
libjpeg
无损压缩
图片优化
内存优化
应用启动流程
冷启动
热启动
温启动
启动状态
系统日志统计
adb命令统计
2-5-8原则
启动耗时统计
CPU Profile
通过应用插桩生成跟踪日志
异步加载布局
黑白屏问题
StrictMode
使用方式
源码解析
使用场景
IdleHandler
启动优化
刷新率
安装
使用
Systrace
Looper日志检测卡顿
BlockCanary 核心原理实现
VSYNC信号监听
Choreographer.FrameCallback
卡顿监控
卡顿优化
选择视图
隔离视图
隐藏布局边框和视图标签
将应用布局与参考图像叠加层进行比较
实时布局检查器
3D 可视化
Pixel Devices
自定义
色盲
字体大小
布局验证
Layout Inspector
merge 标签
ViewStub 延迟加载
层级优化
移除布局中不需要的背景
视图层次结构扁平化
减少透明度的使用
过度渲染
UI优化
性能优化系列课
0 条评论
回复 删除
下一页