关于2020年平台架构待优化事项总结

1、安全、逆向工程:明文字符串加密、防止动态库注入、防止App被二次签名、增加反编译破解难度、现有二次打包方案优化。


2、UI线程卡顿监控工具的实现:基于Runloop和UI线程的FPS做到实时监控线程卡顿,并将当前卡顿线程的callstack(堆栈信息)获取,定位到产生卡顿的具体代码。实现逻辑:利用Runloop的CFRunLoopObserverRef监听kCFRunLoopBeforeSources和kCFRunLoopAfterWaiting状态,配合当前页面的FPS来设置阈值(需要考虑FPS抖动问题),监控线程是否卡顿,如果卡顿则获取堆栈信息,提示给开发人员。(可设置开关,只在Debug环境或Xcode调试过程中开启,可设置是否对测试人员开放)


3、App启动速度优化:
pre-main阶段优化方案:减少动态库的引用、清理或者合并项目中冗余的类、category。
main阶段优化方案:使用Time Profiler工具,分析main过程中比较耗时的方法和操作,进行具体优化。将一些不影响首页展示的服务放到其他线程中去处理,或者延时处理和懒加载。延时处理可以监听Runloop的状态,当进入kCFRunLoopBeforeWaiting(即将休眠状态)再去处理任务,最大限度的利用CPU等系统资源。


4、内存泄漏检测工具优化:目前平台的内存泄漏检测工具(FJRMLeaksFinder)已经在喜鹊快贷App中成功应用,在开发调试阶段解决了大部分关于ViewController的内存泄漏问题。后续需要优化,调研能否将基础的NSObject对象也进行检测,或者使用Instruments的Leaks工具定向检测。


5、耗电量分析优化调研:目前通过Xcode可以发现应用耗电量过高,但是,目前没有工具能够准确的定位耗电量过高产生的原因,目前业界关于耗电量这块的优化也没有较好的方案,需要团队持续分析调研。


6、防Crash处理,减少线上崩溃率:目前项目中有关于NSArray和NSDictionary等基础的防Crash处理,可以继续增加一些,比如,对"unrecognized selector sent to instance”Crash处理等。

发布了89 篇原创文章 · 获赞 92 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/u013602835/article/details/103923739