电量消耗难以量化
1.电量优化
1.通过接收系统广播
接收系统电量广播,来获取电量信息。
2.Battery Historian
google推荐的电量检测工具,线下使用
功能强大,推荐使用。可视化展示指标;耗电比例,执行时间,次数
https://developer.android.com/topic/performance/power/setup-battery-historian?hl=zh-cn
3 电量辅助监控 WakeLock
2.瘦身
1.apk组成
代码 class.dex
资源 res asserts
SO: lib
2.apk分析
apktool 反编译工具
3.Analyze Apk 2.2之后
可以快速查看apk 组成。
https://nimbleddroid.com/ app性能分析网站
文件大小 dex方法数
android-classyshark 二进制检查工具
支持多种apk jar
代码混淆proguard
把代码转换成功能性代码,把代码元素改成无意义的名字
打乱代码格式
debug不要打开
插件 Android methods count 显示库的方法数量
移除无用代码
使用aop的形式检测对象的构造函数,精确查询类对象是否使用。
在这里插入代码片
so移除
adbfilter 设置支持的CPU架构
armeabi 根据CPU类型加载对应架构so
3 稳定性
crash 是稳定性的大问题
预防为主,监控为辅
crash指标
uv pv crash率
启动crash率
增量 存量crash率:
尽可能还原crash现场
堆栈 设备 OS版本 进程 线程名 logcat
前后台使用时长 APP版本 小版本 渠道
CPU架构 内存信息 线程数 资源包信息 行为日志
列表页卡顿优化
convertView 复用
耗时任务异步处理
布局优化 :异步 X2C
图片优化 过大尺寸
滑动时取消加载
textview 优化:
boringLayout 单行
staticLayout 多行: 异步创建 提高效率
DynamicLayout 可编辑
faceBook/ TextLayoutBuilder 库 https://github.com/facebook/TextLayoutBuilder
储存优化
避免IO 发生在主线程
hook
SP : 加载慢,初始化整个文件。MMKV 库 替换 https://github.com/Tencent/MMKV
webview
性能 适配
vassonic 三方框架
异常监控
白屏:所有像素一样 确认白屏