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

美团收银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, 会在我回答问题卡壳的时候, 稍稍引导一下。

相关文章:

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

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

触发器练习

在product表上创建三个触发器。每次激活触发器后&#xff0c;都会更新operate表。product表和 表的内容如下 Product表内容 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 产品编号 Int(10) 是 否 …...

Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志

章节内容 上节我们完成了如下的内容&#xff1a; Sqoop MySQL迁移到HiveSqoop Hive迁移数据到MySQL编写脚本进行数据导入导出测试 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 VM 虚拟机…...

Facebook社交平台的未来发展趋势分析

随着科技和社交需求的不断演变&#xff0c;Facebook作为全球最大的社交平台之一&#xff0c;其未来发展的趋势备受关注。从技术创新到社会影响&#xff0c;Facebook正在经历着前所未有的变化和挑战。本文将探讨Facebook未来发展的几个关键趋势&#xff0c;并分析其可能的影响和…...

构建Memcached帝国:分布式部署策略与实践指南

构建Memcached帝国&#xff1a;分布式部署策略与实践指南 Memcached作为一个高性能的分布式内存缓存系统&#xff0c;在面对大规模分布式部署时&#xff0c;需要考虑一系列的策略和最佳实践来确保系统的稳定性和效率。本文将深入探讨Memcached分布式部署的注意事项&#xff0c…...

Arcgis横向图例设置

想把这个图例改成横向的 点击图例的属性&#xff0c;找到样式...

26.7 Django单表操作

1. 模型管理器 1.1 Manager管理器 Django ORM中, 每个Django模型(Model)至少有一个管理器, 默认的管理器名称为objects. objects是一个非常重要的管理器(Manager)实例, 它提供了与数据库进行交互的接口.通过管理器, 可以执行数据库查询, 保存对象到数据库等操作.objects管理器…...

Android --- Kotlin学习之路:自己写一个SDK给别的APP用(暴漏一个接口,提供学生的身高数据)

今天又来肝kotlin了&#xff0c;主题是&#xff1a;用kt写一个SDK给其他人用&#xff0c;这个小技能在项目中会经常用到&#xff0c;应该有很多小伙伴还不会用&#xff0c;不会的请往下看—⬇ 在项目里面新建一个module 选择Android library&#xff0c;然后点击finish就行了 …...

租用海外服务器需要考虑哪些因素

当企业选择租用海外服务器时需要考虑到哪些因素呢&#xff1f; 对于海外服务器的租用我们需要考虑到机房的位置以及服务器的稳定性如何&#xff0c;所以企业可以选择离目标用户群体比较近一点的机房&#xff0c;以此来降低服务器的延迟度并且能够提高用户的访问速度。 对于机房…...

php将png转为jpg,可设置压缩率

/** * 将PNG文件转换为JPG文件 * param $pngFilePath string PNG文件路径 * param $jpgFilePath string JPG文件路径 * param $quality int JPG质量,0-100,值越低&#xff0c;压缩率越高 * return void * throws Exception */ function convertPngToJpg($pngFilePath, $jpgFile…...

华为HCIP Datacom H12-821 卷37

1.多选题 下面关于Network- Summary-LSA 描述正确的是 A、Network- Summary-LSA中的Metric被设置成从该ABR到达目的网段的开销值 B、Network- Sumary-LSA中的Net mask 被设置成目的网段的网络掩码 C、Network- Summary-LSA 是由ASBR产生的 D、Network- Summary-LSA 中的Li…...

某某会员小程序后端性能优化

背景 某某会员小程序后台提供开放平台能力&#xff0c;为三方油站提供会员积分、优惠劵等api。当用户在油站加油&#xff0c;油站收银会调用我们系统为用户发放积分、优惠劵等。用户反馈慢&#xff0c;三方调用发放积分接口性能极低&#xff0c;耗时30s&#xff1b; 接口情况…...

Docker:基础概念、架构与网络模式详解

1.Docker的基本概念 1.1.什么是docker Docker是一个用于开发,交付和运行应用程序的开放平台.docker使您能够将应用程序域基础框架分开,以便你可以快速开发交付软件.使用docker,你可以管理你的基础架构以管理应用程序相同的方式.通过利用docker用于交付,测试和部署代码的方法,你…...

全国大学生数据建模比赛c题——基于蔬菜类商品的自动定价与补货决策的研究分析

基于蔬菜类商品的自动定价与补货决策的研究分析 摘要 商超蔬菜不易保存&#xff0c;其质量会随着销售时间的增加而变差&#xff0c;影响商超收益&#xff0c;因此&#xff0c;基于各蔬菜品类的历史销售数据&#xff0c;制定合理的销售策略和补货决策对商超的营收十分关键。本文…...

【漏洞复现】飞企互联-FE企业运营管理平台 uploadAttachmentServlet—文件上传漏洞

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 企互联-FE企业运营管理平台是一个利用云计算、人工智能、大数据、物联网和移动互联网等现代技术构建的云…...

基于深度学习的语言生成

基于深度学习的语言生成&#xff08;NLG, Natural Language Generation&#xff09;是一种利用深度学习模型生成自然语言文本的技术。它在智能写作、自动摘要、对话系统、机器翻译等领域有广泛应用。以下是对这一领域的系统介绍&#xff1a; 1. 任务和目标 语言生成的主要任务…...

Kafka Rebalance详解

作者&#xff1a;耀灵 1.rebalance概览 rebalance中文含义为再平衡。它本质上是一组协议&#xff0c;规定了一个 consumer group 是如何达成一致来分配订阅 topic 的所有分区的。比方说Consumer Group A 有3个consumer 实例&#xff0c;它要消费一个拥有6个分区的topic&#…...

在 Markdown 编辑器中插入 空格 Space 和 空行 Enter

1. 空格 Space &#xA0;2.空行 Enter <br/>...

js逆向-webpack-python

网站&#xff08;base64&#xff09;&#xff1a;aHR0cHM6Ly93d3cuY29pbmdsYXNzLmNvbS96aA 案例响应解密爬取&#xff08;webpack&#xff09; 1、找到目标url 2、进行入口定位&#xff08;此案例使用 ‘decrypt(’ 关键字搜索 &#xff09; 3、找到位置进行分析 --t 为 dat…...

Python精神病算法和自我认知异类数学模型

&#x1f3af;要点 &#x1f3af;空间不确定性和动态相互作用自我认知异类模型 | &#x1f3af;精神病神经元算法推理 | &#x1f3af;集体信念催化个人行动力数学模型 | &#x1f3af;物种基因进化关系网络算法 | &#x1f3af;电路噪声低功耗容错解码算法 &#x1f4dc;和-…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

【QT控件】显示类控件

目录 一、Label 二、LCD Number 三、ProgressBar 四、Calendar Widget QT专栏&#xff1a;QT_uyeonashi的博客-CSDN博客 一、Label QLabel 可以用来显示文本和图片. 核心属性如下 代码示例: 显示不同格式的文本 1) 在界面上创建三个 QLabel 尺寸放大一些. objectName 分别…...

ABAP设计模式之---“Tell, Don’t Ask原则”

“Tell, Don’t Ask”是一种重要的面向对象编程设计原则&#xff0c;它强调的是对象之间如何有效地交流和协作。 1. 什么是 Tell, Don’t Ask 原则&#xff1f; 这个原则的核心思想是&#xff1a; “告诉一个对象该做什么&#xff0c;而不是询问一个对象的状态再对它作出决策。…...

学习 Hooks【Plan - June - Week 2】

一、React API React 提供了丰富的核心 API&#xff0c;用于创建组件、管理状态、处理副作用、优化性能等。本文档总结 React 常用的 API 方法和组件。 1. React 核心 API React.createElement(type, props, …children) 用于创建 React 元素&#xff0c;JSX 会被编译成该函数…...