当前位置: 首页 > news >正文

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都可

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 磁盘就是一个超大的Byte数组,操作系统是如何管理的?
  • javascripr如何设计弹出输入框并在网页内输出输入内容
  • Golang语法规范和风格指南(一)——简单指南
  • 【折腾手机】一加6T刷机postmarketOS经历和体验
  • android iconfont带图标的图文并茂的一种实现
  • Node.js-path 模块
  • 智能与伦理:Kimi与学术道德的和谐共舞
  • 流批一体计算引擎-13-[Flink]RuntimeExecutionMode和水印策略Watermark Strategy
  • 直播预告|飞思实验室暑期公益培训7月10日正式开启,报名从速!
  • Vue的学习之数据与方法
  • githup开了代理push不上去
  • leetcode力扣_排序问题
  • Symfony框架:优雅构建PHP应用的强有力工具
  • FFmpeg视频处理工具安装使用
  • Docker学习笔记(二)镜像、容器、仓库相关命令操作
  • 03Go 类型总结
  • Docker: 容器互访的三种方式
  • ES6之路之模块详解
  • HashMap剖析之内部结构
  • IndexedDB
  • Js基础——数据类型之Null和Undefined
  • JWT究竟是什么呢?
  • quasar-framework cnodejs社区
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Redash本地开发环境搭建
  • storm drpc实例
  • Vim 折腾记
  • 阿里研究院入选中国企业智库系统影响力榜
  • 大主子表关联的性能优化方法
  • 离散点最小(凸)包围边界查找
  • 软件开发学习的5大技巧,你知道吗?
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 再谈express与koa的对比
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 如何在招聘中考核.NET架构师
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #QT 笔记一
  • (1) caustics\
  • (1)Hilt的基本概念和使用
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (1)常见O(n^2)排序算法解析
  • (笔记)M1使用hombrew安装qemu
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (转)h264中avc和flv数据的解析
  • (转)可以带来幸福的一本书
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • *1 计算机基础和操作系统基础及几大协议
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • @JSONField或@JsonProperty注解使用
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?