美团收银Android一面凉经(2024)

news2024/9/22 7:12:30

美团收银Android一面凉经(2024)

meituan

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

应聘岗位: 美团餐饮PaaS平台Android开发工程师

技术一面

  • 面试时长: 65min(提问45min + 代码考核10min + 反问10min)
  • 代码考核: 14. 最长公共前缀

面试问题(45min)

  • 自我介绍
    • 当前团队规模
    • 是否离职
    • 看上去你参与大前端的东西也做得比较多。原生开发和RN开发的占比是多少?
    • Native开发和Java和kotlin的占比。
  • 项目A(RN页面打开速度优化)
  • 播放优化
  • Android基础
    • 自定义View
      • 自定义View有几种构造方法。
      • AttributeSet是做什么用的
      • 什么时候传值?什么时候两个参数的构造方法会被调用?
      • 第一个参数Context, 我们在定义View里拿到context会做什么?
      • Activity和Application作为自定义View的Context有什么区别?会有什么问题?
      • Application和Activity作为View的Context, View的存活长度。
      • Manifest里给Application和Activity设置不同的theme会怎么样?
  • 方法粒度路由框架
    • 如何注册
    • 为什么要做方法粒度? 是有需求吗?
    • 组件化的调用是以反射的形式, 不感知版本的变更。路由修改, 怎么规避?
    • 组件化之后, 不知道哪些是我们的依赖方, 怎么去感知有哪些业务使用了我们这个组件的路由?
  • ReactNative相关
    • 封装Native组件给RN使用, 一般要开发哪几个类?
    • 原生组件(接收属性ReactProps; 事件需要回调给JS; 在JS直接调用Native)
    • RN写的多吗? TS和JS那个用得比较多?
    • 你当前公司也是JS用得多吗?
    • RN的类组件生命周期
    • 启动页优化, 加载速度的优化, 组件交互或者重复渲染的优化有吗?
    • Component和PureComponent的区别
  • Kotlin+Jetpack
    • Activity获取ViewModel实例如何获取?
    • 为什么不直接new一个ViewModel?
    • ViewModel的生命周期是比Android长的对吧?ViewModel对象存在了哪里?
  • kotlin协程的原理
  • 用过Flow吗

代码考核(10min)

14. 最长公共前缀

// 虽然我这里用了kotlin, 但实际美团的线上代码考核平台没有kotlin语言, 但可以用Java。
class Solution {
    fun longestCommonPrefix(strs: Array<String>): String {
        val n = strs.size
        val l = strs[0].length
        for(i in 0 until l) {
            val ch = strs[0][i]
            for(j in 0 until n) {
                if(strs[j].length <= i || strs[j][i] != ch) {
                    return strs[0].substring(0,i)
                }
            }
        }
        return strs[0]
    }
}

反问环节(10min)

应聘的岗位是负责什么业务的可以介绍一下吗?

产品线内容:

  • 美团收银机(安卓Pad、Window笔记本, 跨Windows和Android)
  • 点餐助手/海底捞iPad点餐(跨Android、iOS)
  • 老板经营店铺发布活动使用"美团管家"App(跨Android、iOS)
  • 内部人员使用的小App

我们组: 美团收银。给这个产品线做基建。

组内分成三个方向:

  • 1 UI组件(RN偏多), 90%+(TS or JS)+10%(性能要求高的场景需要桥接Native的组件)。
  • 2 RN容器提供桥能力。壳能力、鉴权;业务桥;场景化,个性化的业务桥。(Kotlin KMP, 逻辑层的跨平台, 非UI层的跨平台)
  • 3 框架方向。RN用的比较多, 未来希望统一H5、小程序、鸿蒙。目标是保持RN的写法, 一套代码在不同容器里跑起来。

compose也已经在工程里使用了吗?

没用。本质是Flutter的机制, 没有动态化的能力。还是RN比较多。

这个岗位是说这几条线可以选?还是确定某条线?

可以选。看能力图谱。

看我适合哪一条。

第二个方向: 桥能力那块。
第三个方向: 框架能力。需要更底层, c/c++的经验。

鸿蒙目前也在驻场帮我们(美团)做兼容。他们声称未来也会兼容RN的写法。但他们只能兼容RN的原子组件, 我们桥接的一些高性能的Native组件,
他们没办法帮我兼容。目前现在也在考虑这一部分是怎么去弄。

对岗位职级的要求?

框架需要7-8。工作年限稍高。
另外两个稍低。

岗位HC出现这么多, 是因为什么?

人员流动不大, 上半年有同学活水, 大多数同学都是纯native开发, 没做过RN。
之前做主做业务, 近2年转型开始做一些基础建设。然后把业务全都交出去了。
美团餐饮的总部在成都。一部分业务交给成都(偏店内经营), 一部分交给上海(偏营销)。他们业务闭环了, 我们这边纯为他们提供基建。

会需要到成都、上海出差去开会吗?

1 线上开会居多。
2 大客户切店需要出差。

你在团队里的角色?

所属UI组件方向的小组。不是x1节点, 仅仅是初面面试官。

几轮面试?

3轮技术(至少)+1技术面(能力竞争+HC不足)+HR面

总结

  • 美团收银的整体面试问题比较密集, 有对项目内容的技术细节拷打, 也有对基础知识的考察。
  • 美团有不少业务是跑在RN上的, 面试中也有不少针对RN的问题。包括对RN原理的理解、为RN提供自定义View的流程、提供各种桥能力等。
  • 面试官人很nice, 会在我回答问题卡壳的时候, 稍稍引导一下。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我的第128天创作纪念日

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;初阶数据结构笔记专栏&#xff1a; 初阶数据结构笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章…

从LeetCode215看排序算法

目录 LeetCode215 数组的第K个最大元素 ① 第一反应&#xff1a;java的内置排序Arrays.sort() ② 冒泡排序 ③归并排序&#xff08;先分解再合并&#xff09; ④快速排序&#xff08;边分解边排序&#xff09; ⑤堆排序 LeetCode215 数组的第K个最大元素 给定整数数组 nums…

谈谈软件交互设计

谈谈软件交互设计 交互设计的由来 交互设计(Interaction Design)这一概念,最初是由IDEO创始人之一Bill.Moggridge(莫格里奇)1984年在一次会议上提出。他设计了世界上第一台笔记本电脑Compass,并写作出版了在交互设计领域影响深远的《Designing Interactions》一书,被称…

【分库】分库的核心原则

目录 分库的核心原则 前言 分区透明性与一致性保证 弹性伸缩性与容错性设计 数据安全与访问控制机制 分库的核心原则 前言 在设计和实施分库策略时&#xff0c;遵循一系列核心原则是至关重要的&#xff0c;以确保系统不仅能够在当前规模下高效运行&#xff0c;还能够随着…

Aop切面编程(2)--代理模式

1、代理模式的理解&#xff1a;不修改A对象的代码的基础上&#xff0c;对A代码块进行拓展。通过创建ProxyA代理对象&#xff0c;拓展A对象并调用A对象的核心功能&#xff1b; 即&#xff1a;不修改对象的源码基础上&#xff0c;创建代理对象&#xff0c;进行功能的附加和增强&…

【边缘计算网关教程】4.西门子PPI协议对接

前景回顾&#xff1a;【边缘计算网关教程】3.创建第二个流程-CSDN博客 目录 1. 硬件连接 2. PLC串口参数 2.1. 打开STEP7软件 2.2. 查看通信参数 3. 网关设置 3.1. PLC连接设置 3.2. 数据点位设置 3.3. 测试 西门子 PPI 协议 适配PLC&#xff1a;S7-200 西门子S7-200 PLC…

Python爬虫之路(2):爬天气情况

hello hello~ &#xff0c;这里是绝命Coding——老白~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff1a;绝命Coding-CSDN博客 &a…

Stable Diffusion 深度探索:从入门到精通的全方位教程

在人工智能艺术创作的浪潮中&#xff0c;Stable Diffusion 作为一股不可忽视的力量&#xff0c;正以其独特的魅力吸引着无数创作者和科技爱好者的目光。本文旨在为大家提供一份详尽的 Stable Diffusion 教程&#xff0c;从基础概念到高级应用&#xff0c;带领你一步步走进这个充…

k8s record 20240710 监控

不是adaptor 是opetator 案例 监控有了&#xff0c;日志搜集呢&#xff1f; 一、kubelet 的小弟 kubelet — 负责维护容器的生命周期&#xff0c;节点和集群其他部分通信 cAdvisor 集成在 Kubernetes 的 kubelet 中&#xff0c;能够自动发现和监控集群中所有的容器。dockers…

基于SpringBoot+Vue的数码论坛系统(带1w+文档)

基于SpringBootVue的数码论坛系统(带1w文档) 基于SpringBootVue的数码论坛系统(带1w文档) 数码论坛系统能够通过互联网得到广泛的、全面的宣传&#xff0c;让尽可能多的用户了解和熟知数码论坛系统的便捷高效&#xff0c;不仅为用户提供了服务&#xff0c;而且也推广了自己&…

SpringBoot整合JWT示例教程

1. JWT简介 JSON Web Token (JWT) 是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方式&#xff0c;用于在各方之间作为 JSON 对象安全地传输信息。由于这些信息是经过数字签名的&#xff0c;因此可以被验证和信任。JWT 通常用于身份验…

深度学习论文: YOLOv5, YOLOv8 and YOLOv10: The Go-To Detectors for Real-time Vision

深度学习论文: YOLOv5, YOLOv8 and YOLOv10: The Go-To Detectors for Real-time Vision YOLOv5, YOLOv8 and YOLOv10: The Go-To Detectors for Real-time Vision PDF:https://arxiv.org/pdf/2407.02988v1 PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks 1 概…

51单片机-第三节-LCD1602调试工具,矩阵键盘

一、LCD调试工具函数&#xff1a; 使用&#xff1a; 所有函数&#xff0c;前两个参数&#xff0c;均为指定显示位置。 四个参数的&#xff0c;第四个参数&#xff0c;为保留位数&#xff0c;少的保留后面&#xff08;123,2 -> 23&#xff09;&#xff0c;多的前面补零。 …

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《天气数据驱动下基于深度主动学习的新型电力系统供需失衡风险快速评估方法 》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Apache-Flink未授权访问高危漏洞修复

漏洞等级 高危漏洞!!! 一、漏洞描述 攻击者没有获取到登录权限或未授权的情况下,或者不需要输入密码,即可通过直接输入网站控制台主页面地址,或者不允许查看的链接便可进行访问,同时进行操作。 二、修复建议 根据业务/系统具体情况,结合如下建议做出具体选择: 配…

产品经理-研发流程-敏捷开发-迭代-需求评审及产品规划(15)

敏捷开发是以用户的需求进化为核心&#xff0c;采用迭代、循序渐进的方法进行软件开发。 通俗来说&#xff0c;敏捷开发是一个软件开发流程&#xff0c;是一个采用了迭代方法的开发流程 简单来说&#xff0c;迭代就是把一个大产品拆分出一些最小的实现单位。完成不同的迭代就最…

交易平台Zero Hash现已支持SUI交易

Zero Hash是一家领先的加密货币和稳定币基础设施平台&#xff0c;为包括Stripe、Shift4和Franklin Templeton在内的公司提供支持&#xff0c;现在也支持对SUI的访问。此举使Zero Hash的客户及其终端用户能够使用SUI。 提供API和SDK以及专注于无缝连接法币、加密货币和稳定币的…

Python | Leetcode Python题解之第231题2的幂

题目&#xff1a; 题解&#xff1a; class Solution:BIG 2**30def isPowerOfTwo(self, n: int) -> bool:return n > 0 and Solution.BIG % n 0

【Redis】哨兵(sentinel)

文章目录 一、哨兵是什么&#xff1f;二、 哨兵sentinel文件参数三、 模仿主机redis宕机四、哨兵运行流程和选举原理SDOWN主观下线ODOWN客观下线 五、 使用建议 以下是本篇文章正文内容 一、哨兵是什么&#xff1f; 哨兵巡查监控后台master主机是否故障&#xff0c;如果故障了…

PostgreSQL 如何应对因大量并发删除操作导致的性能问题?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 如何应对因大量并发删除操作导致的性能问题一、优化索引二、批量删除三、分区表四、调整参…