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

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

meituan

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

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

技术一面

面试问题(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, 会在我回答问题卡壳的时候, 稍稍引导一下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值