QQ音乐Android一面凉经

最近面试了不少公司, 近期告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是QQ音乐Android一面凉经。

面试问题(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都可

相关推荐
洞见不一样的自己2 小时前
android 常用方法
android
暗碳2 小时前
华为麦芒5(安卓6)termux记录 使用ddns-go,alist
android·linux
seven27293 小时前
Android MQTT关于断开连接disconnect报错原因
android·mqtt·disconnect报错
Maplee6 小时前
Compose 转场动画之 Transition
android·前端
weixin_482565537 小时前
Android IC读写器安卓小程序 3
android·小程序
hvinsion8 小时前
Python PDF批量加密工具
android·python·pdf
m0_748230449 小时前
【MySQL】数据库开发技术:内外连接与表的索引穿透深度解析
android·mysql·数据库开发
marui19829 小时前
hadoop sql 执行log
android·ide·android studio
liangmou212110 小时前
解释小部分分WPI函数(由贪吃蛇游戏拓展)
android·游戏·c#
你听得到1110 小时前
《Flutter性能优化全攻略:从首屏渲染到性能监测,附案例代码详解》
android·flutter