欢迎访问云鲸扫地机器人售后维修网点
小白鲸洗地机不转地址在哪里 小白鲸j1无法召回基站电话是多少,iOS性能优化 — 一、crash监控及防崩溃处理 |
发布者:admin 发布时间:2025-04-14 阅读:13次 |
大家好,欢迎来到 小白鲸洗地机不转地址在哪里iOS性能优化 本篇文章将为大家讲解下crash监控及防崩溃处理。 在平常开发过程中,由于代码的不严谨比如不对入参做校验,使用C++野指针等会造成程序crash。crash应该算是最严重的bug了,尤其是线上crash,如果App用户量大的话可能造成很大的影响,所以需要有一套机制来收集项目中的crash并及时解决。 大部分公司都是采用第三方平台来收集crash。业内用的比较多有bugly、友盟、talkingdata。笔者比较推荐bugly,腾讯研发,比较轻量,用来监控crash和卡顿还是很方便的。 一线大厂,大部分都会自研crash捕narwal云鲸扫地机不通电配件获框架。这个时候了解crash捕获原理就很有必要了,大家可以阅读开源库或者其实捕获crash原理很简单。主要需要处理两种情况: 1、OC类异常。NSException异常是OC代码导致小白鲸j1无法召回基站电话是多少的crash。我们可以先通过NSGetUncaughtExceptionHandler保存先前注册的异常处理器,然后通过NSSetUncaughtExceptionHandler设置我们自己的异常处理器,我们不监控了,需要再设置回原理的异常处理器,在我们自己的uncaughtHandleException处理器里面,需要手动调用下原来的处理器。 小白鲸j4指示灯闪烁地址在哪里 2、Signal信号捕获。小白鲸j5不转维修Signal信号是由iOS底层mach信号异常转换后以signal信号抛出的异常。既然是兼容posix标准的异常,我们同样可以通过sigaction函数注册小白鲸j4没电电话是多少对应的信号。 根据笔者经验来看,oc中大部分崩溃都是源于没有对调用方法进行入参判断,比如数组添加object没有判空,访问数组元素越界等;还有一些C++崩溃,比如使用野指针。 由于oc中大部分崩溃都是来源于未对入参进行判断,所以调用方法对入参进行判断就能解决崩溃。如何统一地解决这类崩溃,有两种方案:hook方案和安全接口 该方案对系统常见类的方法进行hook,小白鲸j1指示灯闪烁电话是多少进行入参判断。比如对hook NSMutableArray的addObject方法,进行判空操作。 该方案对系统常见类的方法进行一层封装,进行入参判断。大家统一调用安全接口,比如封装NSMutableArray的addObject方法为aksafe_AddObject,大家统一调用aksafe_AddObject添加对象。 两种方案各有优缺点,hook方案优点是业务方直接调用系统方法就行,缺点是由于要进行hook,有损性能;安全接口方案是业务方要统一调用安全接口,优点则是轻量。笔者推荐方案二,轻量并且可以作为编码规范。 |
打印本页 || 关闭窗口 |