写点什么

2021 年 9 月美团 Android 面试总结

用户头像
Android架构
关注
发布于: 5 小时前

standard,singleTop,singleTask,singleInstance。


可以参考:https://developer.android.com/guide/components/tasks-and-back-stack.html


2.1 什么时候会用到 singleTask?


在 MainActivity 的时候用到


3 Handler 机制?


MessageQueue,Looper 等。


3.1 一个线程是否只有一个 Looper?


3.2 如何保证一个线程只有一个 Looper?


4 多线程的方式有哪些?


  • new Thread()

  • AsyncTask

  • Handler

  • IntentService

  • ThreadPoolExecutor


5 ANR 异常发生


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


条件


  • 1)5s 内没有响应用户输入事件

  • 2)10s 内广播接收器没有处理完毕

  • 3)20s 内服务没有处理完毕


5.1 如何分析 ANR


log+trace.txt


6 自定义 View 和 ViewGroup


说一下自己定义的组件就行


7 事件处理


分发,拦截,处理。只是 View 没有拦截处理


8 GC 算法


标记清除,标记整理,复制,分代收集


参考:http://www.jianshu.com/p/7c708a66ff42


把上面文章弄懂了,就能刷过 GC


9 四大引用


强,软,弱,虚,并说明下合适 GC


10 动画


View 动画,属性动画,帧动画。再说下 View 和属性动画区别。


11 Dalvik 和 Art 区别?(Just In Time 和 Ahead Of Time)


就这样第一面基本结束。一共问了 11 个问题,其中美团的手写算法在业界算是比较出名,很多小伙伴可能卡在手写算法上。然后就是一些 Android 和 Java 的细节性东西,这些基础内容只要有 1 年经验的都基本能说出个一二三。


大概过了 10 分钟,接下来是


第二面




1 OkHttp 原理?


2 Retrofit 原理?为何用代理?代理的作用是什么?


3 ButterKnife 原理?用到反射吗?为什么?


4 ANR 异常如何查找并分析?


5 JVM 内存模型?性能调优?


6 垃圾搜集算法有哪些?G1 算法?


7 Http 和 Https 的区别?


  • Https 是 ssl 加密传输,Http 是明文传输

  • Https 是使用端口 443,而 Http 使用 80

  • HttpsSSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议要比 Http 协议安全

  • Https 协议需要到 CA 申请证书


8 加密算法有哪些?对称加密和非对称加密的区别?


  • MD5,SHA1,Base64,RSA,AES,DES

  • 对称:使用相同密钥,需要在网络传输,安全性不高。

  • 非对称:使用一对密钥,公钥和私钥,私钥不在网络传输,因此安全性高。


9 TCP 的三次握手?两次行不行?为什么?TCP 攻击知道吗?如何进行攻击?


10 内存优化如何做?


11 看过那些源码?


12 会对代码进行 review 吗?何时 review?怎么 review?


13 项目中遇到的让你棘手的问题?多久解决,怎么解决?(考的是你发现问题和解决问题的能力)


14 如何学习?何时学习?怎么学习?学习渠道?(考的是学习能力)


就这样,第二面结束了。可以看出,第二面的难度会比第一面大一点,但是还好,基本都是常用的内容,深度会偏向原理性质。这就说明在平时的编码过程中,需要多多思考,多看源码实现方式,而不要一味着去写代码。程序员会写代码,但不要做一个只会写代码的程序员。我们的思维方式是不可替代的。


大概过了 10 分钟,开始进行第三面面试:


第三面




1 前几次面试感觉如何?


2 你现在的 APP 日活是多少?


3 你现在如何处理崩溃日志?


4 你觉得小团队好还是大团队好?(这个问题不能直接回答好和不好,不然掉坑里了)


5 你的优点和缺点说下?


6 你的发展方向说下?是先讲究宽度还是讲究深度,为什么?


7 为什么离职?


8 其他小问题,如哪里人啊?现在工资怎样?要求如何,何时到岗啊?有什么问题要问我的吗?


就这样,第三面结束了。可以看出,第三面面试官不会考察你的知识细节,而是问一些形而上的知识。他是从整体方向上去把握面试者,往往最后一个面试官对你起到决定性作用。当然,能见到最后一面面试官,说明你前两面都已经过了。


总结


==


这次面试感觉还不错,美团的开发同学待人方面很随和。很喜欢这种氛围。结果不重要,重要的是过程。只要你有实力,就别担心。如果不好好学习,就算背了面试题,又能如何?一样会在面试中 PASS。所以说,平时写代码的时候需要多多思考,不一定用到才去 Google,对于一些新的技术,要不断追求同时别忘记了基础很重要,基础,基础,基础,重要的事说 3 遍。


在接下来的学习和工作中,需要学习继续探索以下问题。

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
2021 年 9 月美团 Android 面试总结