iOS面试经历汇总

  1. 启动时间的优化?

    • 注意最好不要在applicationFinshLaunch方法里面加入耗时操作,这样会影响APP热启动时时间
  2. app瘦身?

  • APPCode LSUnusedResource
  • 减少资源
  1. 性能优化方面?
  • 使用runloop来监控主线程卡顿
  • 将CADisplayLink加入到主runloop中,来监控屏幕的刷新频率,来监控UI刷新是否顺畅。
  1. 如何用runloop监听卡顿?
  • 添加RunLoop的监听,并将其加入到 主RunLoop中,用来监控主线程的状态
  • 用一个子线程,每隔一段时间去监控主线程的进去睡眠之前和被唤醒之后的两个状态。
  • 连续停留在这两个状态时间过久就认为主线程卡顿
  1. 用哪些方式监控程序奔溃?
    友盟 ,对于一些难以判断崩溃的地方,使用DSYMTool可以准确定点到具体位置。

  2. 你说的用dSYMTool工具能够将崩溃原因精确到某行代码,那你知道它的原理吗?

  • DSYM文件用于保存应用出错的函数内存地址
  • 保存每个版本DSYM文件
  • 在dSYMTool加入DSYM文件,以及对应的奔溃地址,就能够快熟定位错误
  1. 在应用中你有哪些地方使用Runtime?(省略)
  1. 使用什么来打包上架,对于测试包的分发使用什么平台,命令还记得吗?
    fastlane 蒲公英
    分发到蒲公英:使用蒲公英的快速上传工具

  2. 作为高级开发工程师,你利用了那些手段来提升开发效率和开发质量?

  • 封装了一个快速创建一些UI的工具类,封装成工具类
  • 对CoreBluetooth进行了二次封装
  • 使用injectionIII对UI界面快速调试
  • 使用了一些便捷的工具AppCode DYSMTools
  • 使用AppCode做一些代码的注释,标记,以及整理方面。

10.现在想要离职的原因?
现在业务趋于稳定,就是事情变少了,进入一个日常维护阶段,就感觉没什么挑战性了。

11.平时用的是svn,有用过git吗?

12.你说你不断学习技术,不断优化应用,完善代码, 你都学习了哪些新技术?

  • flutter
  • 目前在学习OpenGL
  • 也在对OBJC相关底层源码进行解读

13.你们公司产品的日活
我看了一下友盟,小鸡助手日活平均有千差不多吧,因为我们这个工具类的App,我们主要还是买手柄赚钱。

14 你有哪些想问我的?

  • 目前的iOS开发团队
  • 刚才问的技术点又不懂的,可以为我解答一下吗
  • 这个岗位是具体会负责哪些内容呢?

15.SDWebImage从url到显示到页面上的一个过程?

16.SDWebImage的缓存策略,缓存机制?

17.如何保证微博首页的流畅度?

你可能感兴趣的:(iOS面试经历汇总)