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

美团收银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.sizeval l = strs[0].lengthfor(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.mzph.cn/diannao/45852.shtml

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

相关文章

pnpm 如何安装指定版本

要安装特定版本的pnpm&#xff0c;可以使用npm命令来全局安装特定版本的pnpm&#xff0c;例如&#xff1a; npm install -g pnpm2.0.0在上面的命令中&#xff0c;使用了2.0.0来指定安装2.0.0版本的pnpm。您可以将2.0.0替换为您需要安装的版本号。 如果您使用的是yarn&#xf…

【2-1:RPC设计】

RPC 1. 基础1.1 定义&特点1.2 具体实现框架1.3 应用场景2. RPC的关键技术点&一次调用rpc流程2.1 RPC流程流程两个网络模块如何连接的呢?其它特性RPC优势2.2 序列化技术序列化方式PRC如何选择序列化框架考虑因素2.3 应用层的通信协议-http2.3.1 基础概念大多数RPC大多自…

【C++ | 虚函数】虚函数详解 及 例子代码演示(包含虚函数使用、动态绑定、虚函数表、虚表指针)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

Matlab-Simulink模型保存为图片的方法

有好多种办法将模型保存为图片&#xff0c;这里直接说经常用的 而且贴到Word文档中清晰、操作简单。 simulink自带有截图功能&#xff0c;这两种方法都可以保存模型图片。选择后直接就复制到截切板上了。直接去文档中粘贴就完事了。 这两个格式效果不太一样&#xff0c;第一种清…

JS登录页源码 —— 可一键复制抱走

前期回顾 https://blog.csdn.net/m0_57904695/article/details/139838176?spm1001.2014.3001.5501https://blog.csdn.net/m0_57904695/article/details/139838176?spm1001.2014.3001.5501 登录页预览效果 <!DOCTYPE html> <html lang"en"><head…

使用Spring Boot实现分布式锁

使用Spring Boot实现分布式锁 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 什么是分布式锁&#xff1f; 分布式系统中&#xff0c;由于多个节点并行处理任务&#xff0c;为了保证数据的一致性…

[crypt]-异或-异性相吸

压缩包两个文件&#xff0c;一个key&#xff0c;一个密文。 打开密文是乱码&#xff0c;使用16进制查看&#xff0c;一串数字&#xff0c;和key转换为bytes逐位异或。得到flag 开始以为是键盘密码&#xff0c;qeasdf,左上角区域 #异性相吸 xor keyasadsasdasdasdasdasdasdas…

通信协议 | 一文玩转UART协议就够了

文章目录 协议基础1、UART简介2、UART特性3、UART协议帧3.1、起始位3.2、数据位3.3、奇偶校验位3.4、停止位 4、UART通信步骤 最详细的UART通讯协议分析Verilog代码实现UART接口模块驱动 协议基础 1、UART简介 UART&#xff08;Universal Asynchronous Receiver/Transmitter&…

制造业ERP源码 ERP系统源码 ERP小程序源码

制造业ERP源码 ERP系统源码 ERP小程序源码 资料&#xff1a; 委外工厂管理 客户列表 车间管理 供应商管理 账户管理 商品管理 仓库管理 职员管理 自取地址管理 司机管理 辅助资料 客户等级 供应商分类 客户分类 商品分类 支出类别管理 收入类别管…

Go语言入门之变量、常量、指针以及数据类型

Go语言入门之变量、常量、指针以及数据类型 1.变量的声明和定义 var 变量名 变量类型// 声明单变量 var age int // 定义int类型的年龄&#xff0c;初始值为0// 声明多变量 var a, b int 1, 2// 声明变量不写数据类型可以自动判断 var a, b 123, "hello"// 变…

uniapp使用多列布局显示图片,一行两列

完整代码&#xff1a; <script setup>const src "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg" </script><template><view class"content"><view class"img-list"><image :src"src…

使用YOLO5进行模型训练机器学习【教程篇】

准备工作 YOLOv5 是目前非常流行的目标检测模型,广泛应用于各种计算机视觉任务,可以检测到图片中的具体目标。 我们借助开源的模型训练框架,省去了自己写算法的步骤,有技术的伙伴可以深入了解并自己写算法训练。 电脑要求: GPU ,内存 >12G python > =3.8 windows o…

KnoBo:医书学习知识,辅助图像分析,解决分布外性能下降和可解释性问题

KnoBo&#xff1a;从医书中学习知识&#xff0c;辅助图像分析&#xff0c;解决分布外性能下降问题 提出背景KnoBo 流程图KnoBo 详解问题构成结构先验瓶颈预测器参数先验 解法拆解逻辑链对比 CLIP、Med-CLIPCLIPMed-CLIPKnoBo 训练细节预训练过程OpenCLIP的微调 构建医学语料库文…

Flutter RSA公钥转PEM

需添加依赖&#xff1a;pointycastle​​​​​​​ 参考链接&#xff1a;https://github.com/bcgit/pc-dart/issues/165 import dart:convert; import dart:typed_data;import package:pointycastle/pointycastle.dart; import package:pointycastle/src/platform_check/pl…

【并发编程】CPU IO 密集型

CPU-bound&#xff08;计算密集型&#xff09;和I/O-bound&#xff08;I/O密集型&#xff09;是描述程序性能瓶颈的两种常见类型。CPU-bound程序的性能主要受限于CPU的处理速度&#xff0c;它们需要执行大量的计算任务。而I/O-bound程序的性能则主要受限于I/O操作的速度&#x…

【经典面试题】是否形成有环链表

1.环形链表oj 2. oj解法 利用快慢指针&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; bool hasCycle(struct ListNode *head) {ListNode* slow head, *fast…

前端练习小项目——方向感应名片

前言&#xff1a;在学习完HTML和CSS之后&#xff0c;我们就可以开始做一些小项目了&#xff0c;本篇文章所讲的小项目为——方向感应名片 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 在开始学习之前&#xff0c;先让我们看一…

Java中的代理机制

代理的概述 代理&#xff1a;给目标对象提供一个代理对象&#xff0c;并且由代理对象控制着对目标对象的引用&#xff08;跟多态一样&#xff09; mybatis、spring都运用了代理机制 跳过创建类的过程&#xff0c;直接产生对象 简单来说&#xff0c;我们使用代理对象来代替对…

数据建设实践之大数据平台(四)安装mysql

安装mysql 卸载mysql [bigdatanode101 ~]$ sudo rpm -qa | grep mariadb | xargs sudo rpm -e --nodeps 上传安装包到/opt/software目录并解压 [bigdatanode101 software]$ tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C mysql_lib/ 到mysql_lib目录下顺序安装 …

【Python】日期和时间模块

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️Python】 文章目录 前言时间元组datetime 模块datetime类获取当前日期和时间 timedelta类日期和时间运算 strftime()方法格式化时间日期格式化符号 strptime()方法 Time 模块Time 模块内置函数Time 模…