名词
- UV(Unique Visitor)独立访客
- PV(Page View)访问量
- Hardcoder(待学习)
Native崩溃
这部分比较难,现在还不是很了解,没有自己的见解,后续补上
JAVA崩溃
为了减少崩溃率,而采用所有地方都封装一层try Catch达到减少崩溃率的目的,而不管异常表现的处理方式,是不可取的。至少应该将catch到的异常上传到服务器进行分析
分析过程
- 确定崩溃严重性(线上问题)(触发几率,是否是主流程)
- 分析崩溃日志
- 查看系统信息和内存信息查找共性(内存信息,手机总内存和App占用内存)
- 尝试复现
疑难问题:系统崩溃
这类问题崩溃堆栈可能完全没有我们自己的代码,很难直接定位问题
- 尝试规避,是否是因为调用不恰当的API导致的
- Hook 解决,找到 Hook 点,对源码执行步骤进行修改
第三方库崩溃
- 尝试规避,是否是因为调用不恰当的API导致的
- Hook 解决,找到 Hook 点,对源码执行步骤进行修改
- 使用 transfom api 修改字节码
- 下载源码重新打包
try catch 使用
- 使用 try catch 的时候要将 exception 调用 e.printStackTrace() 打印出堆栈,方便查看堆栈
- 如果 catch exception 后,要抛出新的异常要将原exception信息带上 Exception(cause)
崩溃处理
- 关闭当前界面
- 展示异常界面
- 上报崩溃平台