Soul App Android一二三面凉经(2024)

Soul App Android一二三面凉经(2024)

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

面试职位: Android开发

技术一面

  • 面试时长: 60min(提问30min + 代码考核20min + 反问10min)
  • 代码考核: 基于单链表实现LRUCache

面试问题(30min)

  • 是否在职?所在城市?
  • 自我介绍
  • 介绍了项目A(RN页面打开速度优化)
    • RN做了多久
    • 技术负责人带人吗
    • 作为技术PM, 对你有什么成长?有什么好处?什么坏处?
    • 过程中遇到问题、挑战?
  • 任职过程中, 最有成就感的项目?
  • 平时加班多不多
  • 面点Java/Android基础
    • 虚拟机三个部分?类加载、数据区(堆、栈)。
    • 网络库retrofit有什么做得好的地方。缓存机制。glide(缓存)。
  • 方法粒度的router框架
    • 注解处理用的是什么?
    • 注解处理器基本原理
  • 是否使用过AIGC的工具
  • 如果你来我们这边, 有什么想做的事情吗

代码考核(20min)

基于单链表实现LRUCache

class LRU(maxCap: Int) {
    fun get(key: Int): Int? {

    }

    fun put(key: Int, value: Int) {

    }
}
class ListNode {
    var `val`: Int = 0
    var next: ListNode? = null
}

leetcode原题: 146. LRU 缓存
当时我的解法, 已发布在leetcode的题解

面试反问(10min)

Android、iOS各20+人

社交、内容、增长、新的app、架构(基建)。每个组2、3、4个人。

按技术分, Android、iOS、前端。各自有业务线。比如社交Android组。

招聘岗位归属哪条业务线?

没明确。可以看自己兴趣爱好。每个业务线都说缺人, 但看HC。

面试官自己在团队中的定位

业务线的技术负责人

SoulApp的Android基建团队的规模

3个人。

做了哪些基建。监控、优化专项。

crash、启动、内存、电量、打包/发布流程、监控、日志slog。

技术二面

  • 面试时长: 45min(提问40min + 反问5min)
  • 代码考核: 无

面试问题(30min)

  • 自我介绍
  • 聊项目A(RN页面打开速度优化)
    • 造成RN性能低于Native的本质原因是什么?
    • 为什么这些原因会影响启动速度?
    • 这些事情可以提前做吗?
    • 可以不加载页面的View吗?可以只执行引擎初始化吗?
    • 怎么做到?可以分开?
    • 主要负责Native吗?对Bridge和引擎的开发有吗?
    • RN业务开发过多久?RN和Native开发比例?
  • 自己owner的项目有吗?
    • 作为技术onwer, 你认为最重要的是什么?
    • 项目风险如何把控?
    • 技术上做的最深的是什么?
  • 当前工作地点在哪?为什么看上海?安家了吗?
  • 当前工作节奏。工作节奏期望?
  • 过去面临最大压力的case
  • 有需求delay吗?
  • 平时如何充电?
  • 最近学习的一门新技术
  • 鸿蒙接触过吗?了解过鸿蒙的技术栈吗?做鸿蒙的同学有接触?
  • 代码质量, 处于团队的什么水位?
  • 对自身而言提升代码质量有什么抓手或行动?
  • 对于功能中存在的bug, 怎么提前发现、解决, 提升自己代码提测质量?
  • 在沟通合作这一块有遇到什么问题吗?
  • 再过去有自己提出的某个想法和项目推动落地的吗?
  • 聊点基础
    • Activity和Context的区别
    • Application或Service的子类可以启动Activity吗?
    • Android为什么要做这个限制?
    • 使用Context有什么注意的地方
    • 怎么避免Context内存泄漏
    • 多进程做过吗? 怎么创建多进程?
  • 聊点infra
    • Crash治理?
    • 性能优化, 启动优化?
    • ANR治理?
    • Jetpack MVVM or MVP?
  • Kotlin用的多。主Java or Kotlin?
  • Flutter用吗?
  • 自身有什么优势?
  • 参加过晋升吗?
  • 了解过Soul App吗?
  • 当前所在城市买房了?周围的岗位都在看吗?
  • 有其他offer吗?
  • 流程顺利的话, 什么时候能入职?

面试反问(5min)

又cue了一下面试流程

后面可能会有技术交叉面。没有的话, 就进入hr面了。

目前招聘的岗位, 期望掌握什么样的技能。专精在哪一块, 未来要负责的工作等?

对业务的理解。负责业务线开发, 业务还原度, 业务研发质量等。多个业务线都有可能, 看你整体情况。

这一面会有算法题吗?

没有。面试官反问是不是准备了算法题但没用上。笑~

HR面(三面)

  • 面试时长: 30min(提问30min)

面试问题(30min)

  • 前面技术面试, 聊完的整体感受如何?
  • 目前在职吗?这次出来看机会, 主要有哪些方面的考虑?
  • 到目前的时间节点为止, 拿到其他offer了吗?
  • 现在上海和杭州的机会都在看吗?
  • 未来5年职业规划
  • 你在现在的公司相当于是什么职级, 对标阿里?
  • 在现在的公司里有晋升吗?晋升几次?分别是什么时间?
  • 你目前承担的角色是单一的业务线, 去owner一些角色吗, 还是以执行, 开发的角色为主?
  • 最近聊了哪些机会, 感觉市场怎么样?
  • 上海对你来说是异地, 家里人可以接受吗?
  • 询问当前薪资/总包, 期望薪资或涨幅

反问问题(0min)

这一面个人表现不佳, 没有抓住机会反问一些soul这边薪资组成、福利相关的信息。HR应该是认为我的期望薪资过高, 因此再也没有联系我。

HR透露的一些信息:

  • 1 Soul这边想做infra没有坑位, 可以先做业务, 后期再转到infra。(这也可能是因为我二面表现不佳的说辞)
  • 2 当前市场杭州的头部企业机会少, 上海会多一些, 比如得物、小红书等
  • 3 HR认为30%不算一个正常涨幅。当前soul对算法岗位比较舍得砸钱, 其他岗位一般。

最后小结

  • SoulApp的Android面试一共3轮。2轮技术面+一轮HR面。如果一二面有争议会加面一轮技术面。技术面的面试时长在30~45min, 如果有代码考核会适当延长15~20min。
  • SoulApp的Android技术面以聊项目为主, 会穿插问一些基础知识, 以及一些性能优化的经验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/780487.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring的核心概念理解案列

IDEA开发的简单“登陆成功”小项目 IDEA项目结构: 每一部分代码和相应的解读: com.itTony文件下有dao(实体)层,service(服务)层,编写的2个类(HelloSpring和TestSpring&…

RK3588编译rkmpp,拉取海康威视网络摄像头264码流并运行yolo

硬件:EVB评估版 SOC:Rockchip RK3588 背景: 由于项目需要,需要拉取264码流,并通过将yolov5s.pt将模型转化为rknn模型,获取模型分析结果。取流可以通过软件解码或者硬件解码,硬件解码速度更快&…

yum install epel-release 遇到的问题

问题: 安装epel的时候,执行 yum install -y epel-release 报错“Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.…

【TB作品】51单片机 Proteus仿真 00002仿真-智能台灯色调倒计时光强

实验报告:基于51单片机的智能台灯控制系统 背景 本实验旨在设计一个基于51单片机的智能台灯控制系统,该系统可以通过按键进行手动控制,并能根据环境光强度自动调节台灯亮度。此外,系统还具备倒计时关灯功能。 器件连接 51单片…

四大常见的排序算法JAVA

1. 冒泡排序 相邻的元素两两比较,大的放右边,小的放左边 第一轮比较完毕之后,最大值就已经确定,第二轮可以少循环一次,后面以此类推 如果数组中有n个数据,总共我们只要执行n-1轮的代码就可以 package Bu…

ARMv8寄存器详解

文章目录 一、ARMv8寄存器介绍二、通用寄存器三、 PSTAE寄存器四、特殊寄存器五、系统寄存器 一、ARMv8寄存器介绍 本文我来给大家介绍一下ARMv8的寄存器部分,ARMv8中有34个寄存器,包括31个通用寄存器、一个栈指针寄存器SP(X31),一个程序计数器寄存器PC…

【图书推荐】《HTML5+CSS3 Web前端开发与实例教程(微课视频版)》

本书用来干什么 详解HTML5、CSS3、Flex布局、Grid布局、AI技巧,通过两个网站设计案例提升Web前端开发技能,为读者深入学习Web前端开发打下牢固的基础。 配套资源非常齐全,可以当Web前端基础课的教材。 内容简介 本书秉承“思政引领&#…

C生万物之文件操作

文章目录 一、为什么使用文件?二、什么是文件?1、程序文件2、数据文件3、文件名 三、文件的打开和关闭1、文件指针2、文件的打开和关闭 四、文件的顺序读写1. 8个重要的库函数1.1 单字符输入输出【fputc和fgetc】1.2 文本行输入输出【fputs和fgets】1.3 …

robotframework-appiumLibrary 应用 - 实现 app 自动化

1、安装appiumLibrary第三方库 运行pip命令:pip install robotframework-appiumlibrary 若已安装,需要更新版本可以用命令:pip install -U robotframework-appiumlibrary 2、安装app自动化环境。 参考我的另外一篇专门app自动化环境安装的…

elastic-job 定时任务 —— elasticjob 介绍与使用教程

文章目录 Elastic-Job 介绍相关依赖elastic-job 目录结构SimpleJob 简单作业编码下载并启动 ZooKeeper编写定时任务代码并启动 Elastic-Job 介绍 概述: Elastic-Job 是当当网开源的一个分布式调度解决方案,基于 Quartz 二次开发的,由两个相…

科普新能源充电桩

充电桩是新能源电动车的配套基础设施,为电动车提供充电服务,与我们的生活也是息息相关,本篇文章来科普一下充电桩基础知识。 充电桩的分类 按照供电方式分类 交流充电桩:特点是小电流、桩体较小、安装灵活;直流充电…

Linux shell编程学习笔记63:free命令 获取内存使用信息

0 前言 在系统安全检查中,内存使用情况也是一块可以关注的内容。Linux提供了多个获取内存信息的命令很多。今天我们先研究free命令。 1 free命令的功能、用法和选项说明 1.1 free命令的功能 free 命令可以显示系统内存的使用情况,包括物理内存、交换…

论文1:多模态人类活动识别综述

论文题目:A Review of Multimodal Human Activity Recognition with Special Emphasis on Classification, Applications, Challenges and Future Directions 文献偏旧-2021 1、 专业词汇: Human activity recognition (HAR)-人类活动识别 Wearable …

android中activity与fragment之间的各种跳转

我们以音乐播放、视频播放、用户注册与登录为例【Musicfragment(音乐列表页)、Videofragment(视频列表页)、MusicAvtivity(音乐详情页)、VideoFragment(视频详情页)、LoginActivity&…

时钟资源(参考ug472)

目录 时钟资源(参考ug472)7系列 FPGA 时钟连接差异时钟资源连接关系表时钟资源连接示意图不同时钟区域资源连接图Clock-Capable Inputs介绍布局规则 全局时钟 bufferBUFGCTRL介绍原语参数及端口INIT_OUTPRESELECT_I0/1I0/1CE0/1S0/1IGNORE0/1 真值表时序 BUFGBUFGCE&#xff0c…

日本服务器托管需要注意哪些问题

日本服务器托管是一项涉及多方面因素的重要决策,为了确保托管服务的稳定、高效与安全,企业或个人在托管过程中需要注意以下几个关键问题: 首先,数据中心的基础设施建设标准是决定托管稳定性的关键。这包括数据中心的建筑抗震、抗洪…

单片机关键任务优先级的实现学习

与总体产品联调时,需要各个单机系统严格按照总体要求,进行数据输出,时间的偏差将出现系统异常,控制失败等不稳定情况产生,甚至影响到产品安全。 因此必须确保某些关键任务的优先执行。单片机任务优先级一般有两种方式…

Java 基础知识之 switch 语句和 yield 关键字

传统 switch 语句 传统的 switch 语句我们已经写了一万遍了,以下是一个典型的 switch 语句: int dayOfWeek 3; switch (dayOfWeek) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case…

STM32-I2C

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. I2C通信1.1 I2C通信简介1.2 硬件电路1.3 I2C时序基本单元1.3.1 起始条件和终止条件1.3.2 发送一个字节1.3.3 接收一个字节1.3.4 发送应答和接收应答 1.4 I2C时序1.4.1 指定地址写1.4.2 当前地址读1.4.3 指定地址读…

Java应用系统设计与实现--学生信息管理系统(附解决方案源码)

一、实验目的及要求 1.1实验目的 掌握Java GUI编程技术,了解Swing框架的使用。 掌握MySQL数据库的基本操作,了解如何在Java中连接和操作数据库。 掌握用户权限管理的基本概念和实现方法。 提升综合运用所学知识设计和实现一个完整应用系统的能力…