QQ音乐Android一面凉经

07-13 1247阅读

笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是QQ音乐Android一面凉经。

QQ音乐Android一面凉经

  • 面试岗位: QQ音乐Android开发工程师
  • 面试时长: 50min(提问40min + 反问10min)
  • 代码考核: 无

    面试问题(40min)

    • 自我介绍
      • 工作经历, 重点讲能突出自己优势的经历或项目
      • 换工作的原因
      • 聊项目A(RN页面打开速度优化)
        • 简单说一下RN的实现,和客户端的交互原理和流程。
        • RN页面启动耗时久?主要的原因是什么?
        • 网络请求前置,前置的请求参数是怎么获得?
        • 仅网络请求前置的话, 启动速度还是会比native慢。还有其他优化吗?
        • 进入页面前进行预热可能造成不必要的资源消耗, 有没有统计过多少人会进入这个RN页? 有些用户可能不会点。
        • 工程内用RN的页面多不多?
        • 公司内RN的基建是否参与建设
        • 聊项目B(业务组件化)
          • xx业务的组件化讲一下, 具体做了什么?
          • 从主工程里抽出来的子仓库如何保留git记录?
          • 说下组件化模块化的优点。常说的就是“代码清晰,业务隔离”。面试官认为这两点是比较虚幻的。怎么个清晰法,怎么个解耦法其实是不好量化的。实际对业务上的帮助或其他方面的优点说说你的理解。
          • 聊项目C
            • 展开讲讲
            • 聊聊你擅长的领域(内存、页面打开耗时、App安装、so、线程、内存、网络、UI卡顿、ANR、Web等挑一个自己擅长的或有研究的讲讲)
              • 内存
                • 内存线程监控怎么做?线上问题排查思路。内存监控工具有哪些?检查内存泄漏的原理, 如何设定内存阈值。
                • LeakCanary的原理。它是怎么做到检测内存泄漏。如何实现?
                • LeakCanary过一段会去检测内存中的对象, 这个时机是怎么定的?
                • 内存中常用的几种引用?四大引用。软引用和弱引用的区别说一下
                • 线程
                  • 在Activity/Fragment页面执行异步任务, 在任务执行前退出页面。那么这个过程中, 线程的执行过程以及内存的情况, 描述一下。比如内存泄漏, 这个线程会不会执行。会有什么样的问题。
                  • 这种情况在业务中很容易出现, 你们在工程中是怎么规避的?比如有些任务我们是使用handler, 有些任务要我们做一些后台的处理。这样的情况又该怎么样处理呢?
                  • 大多数开发者都会退出页面的时候去移除异步任务。但是每个地方都需要手写的话, 相对来说还是比较繁琐的。要是给你一个需求, 让你实现一个任务框架。要求不用手动地去移除, 但是退出页面的时候也不会去执行。你可以结合感知生命周期的组件去想想怎么实现这个东西。比如说我在用的时候我就知道什么时候该移除, 自动移除。我就只用管它怎么用就好了,我根本就不用考虑使用它会有什么问题。怎么实现?
                  • kotlin协程
                    • kotlin协程的原理大概说一下。它怎么做到写起来是同步的, 实际上是异步的。它是怎么做到的?
                    • 协程出现问题不好排查, 不像线程链路比较简单, 协程包装的层级比较多。针对协程问题排查, 你们有什么提效手段?
                    • 你们工程中kotlin的版本升级到多少?kotlin版本升级过程中遇到过什么问题, 怎么解决的?

                      反问问题(10min)

                      当前招聘的Android岗位之后会负责什么内容?

                      缺的业务比较多, 并不明确, 看候选人个人偏好和团队配置情况。目前有以下方向: 游戏化, RN相关、歌单等。

                      为什么没有问Java/Android基础、操作系统、计算机网络相关的, 也没有代码考核(算法题), 为什么只问项目经历?

                      1 基础是可以背的, 并不能体现出候选人的优势

                      2 其实我们面的方式也不一定能体现出一个人真实的能力, 有可能有些人就发挥不出来

                      3 我们这边还有一些面试官喜欢面算法, 不同的倾向吧

                      4 我这边更希望能体现出候选人擅长的地方

                      面试会有几轮? 每一轮面试实际考察的内容应该不一样吧?

                      至少4-5轮。

                      我们对社招同学, 看重经验会多一些。有经验就面经验。没有经验就面一些基础能力。能力是可以迁移的。即使你在一个地方深入做了很多东西, 换了一个地方, 它可能是没什么用的。很多业务其实是没法直接复用的。即使说是性能优化, 换了一个项目它有些东西可能就完全用不到了。但是你在做这个东西中的一些思考, 是可以迁移的。 “做这个东西怎么做, 怎么去思考做好”这个是可以迁移的。

                      招聘的岗位是需要一个什么职级的?

                      7、8、9都可

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]