Android应用常见Crash与对策(Kotlin)

Crash原因

  • NullPointerException:Kotlin语法上控制空指针
  • IndexOutOfBoundsException:Kotlin默认不可变集合类型自动规避多线程修改问题
  • 系统级Crash治理:通过第三方云端自动化监控,锁定特定设备崩溃点,通过反射、动态代理等方式硬改逻辑
  • OOM
    • 内存泄漏:使用 LeakCanary 检测,避免Activity泄漏,避免Static持有
    • 大对象:使用图像库、LRU缓存库,只加载ImageView相同尺寸的图像
  • AOP代理:Grande1.5原生Transform API支持AOP,将产生异常抛出的代码改写为安全的代理方法
  • 依赖库版本兼容问题:与子项目引用不同版本的代码库时,通过第三方插件检查依赖库冲突、缺失等不兼容问题
  • 业务模块间页面跳转:通过独立路由类专门负责页面间跳转、Exception捕获,实现模块解耦
  • 服务端API脏数据:在网络层逻辑中处理脏数据的适配工作,只给UI层发送校验成功的数据
  • 代码逻辑缺陷:使用 Lint、SonarLint(本地)、SonarQube(云端)检查

Robust 美团热修复库

你可能感兴趣的:(Android应用常见Crash与对策(Kotlin))