美文网首页Android开发经验谈Android技术知识Android开发
Android饿了么技术面试(已确认P7职位):四大组件+性能优

Android饿了么技术面试(已确认P7职位):四大组件+性能优

作者: Android_until | 来源:发表于2020-09-07 17:05 被阅读0次

    个人近期面试情况

    今年二月以来,我的面试除了一个用友的,基本其他都被毙了,可以说是非常残酷的。其中有很多自己觉得还面的不错的岗位,比如百度、跟谁学、好未来等公司。说实话,打击比较大。

    情况基本上是从三月开始好起来的,这个时间点,可能疫情快过去了,国家也开启了接近40万亿的基础建设计划,在这个时间断,面试的几个代表性的公司,包括腾讯、饿了么、宝宝树、旷世科技等等,基本都成了。

    最终,就在三月9号,饿了么刚给我确认了p7的职位。也算自己到了另一个奋斗的阶段了。对自己的经历,做一个面试总结。

    之后一段时间我总结了一系列大厂面试中常问的面试技术点,深入解析以及答案,还有面试技巧和各路大佬们的面试经验分享,除了方便自己之后的复习之外,也希望为最近金九银十准备面试的各开发者去大厂保驾护航。

    面试内容模块包含:源码分析、Activity、Service、XMPP、性能优化、登录相关、开发相关、人事相关、Java面试、面试技巧、Android大佬们的经验之谈。

    以下主要分享面经和个人学习方法,会包括很多PDF文档,如面试题库(含答案+解析)、学习笔记、实战文档和脑图等等,有需要的朋友可在文末获取这份笔记+所有资料文档哦!

    饿了么面试题

    一面 - 基础面

    • 你们 Android 开发的时候,对于 UI 稿的 px 是如何适配的?
    • 两个值相等的 Integer 对象,== 比较,判断是否相等?
    • Activity A 跳转Activity B,Activity B再按back键回退,两个过程各自的生命周期
    • 子线程是否可以 context.startActivity() (如ApplicationContext), 会不会有什么问题?
    • Handler机制整体流程;Looper.loop()为什么不会阻塞主线程;IdHandler(闲时机制);postDelay()的具体实现;post()与sendMessage()区别;使用Handler需要注意什么问题,怎么解决的?
    • Native、H5、RN页面混合跳转时,页面清栈的桥如何实现的?
    • 怎么计算一个View在屏幕可见部分的百分比?
    • ClassLoader 的双亲委派机制
    • 简单介绍下 Https 的原理
    • 什么情况会导致内存泄漏,如何修复?
    • 下载一张很大的图,如何保证不 oom?
    • 有没有做过UI方面的优化,做过哪些?
    • WebView 与 JS 交互方式,shouldOverrideUrlLoading、onJsPrompt使用有啥区别
    • Flutter、Kotlin接触使用过没有
    • 其他项目相关问题
    • 算法 - 二叉树输出第 k 层节点元素

    二面 - 项目专项

    • Native、H5、RN页面混合跳转时,页面清栈的桥实现
    • 页面混编框架的设计与难点
    • RN 通用容器的设计
    • 用户行为监控方案设计
    • JS 错误治理方案
    • RN 页面对用户行为的监控与JS错误治理,在问题发现有什么收获、优化点

    三面 - 基础加深

    • 你们公司 Picasso 有使用过没,介绍下
    • Picasso 单引擎,在多 Bundle 的情况下怎么保证数据隔离的?
    • 省略若干项目相关问题...
    • RN 的页面追踪埋点如何实现的
    • 饿了么首页是否是 RN 页面,MTFlexBox 原理
    • synchronized 修饰 static 方法、普通方法、类、方法块区别
    • synchronized 底层实现原理
    • volatile 的作用和原理
    • 一个 int 变量用 volatile 修饰,多线程去操作 i++,是否线程安全?如何保证 i++ 线程安全?AtomicInteger 的底层实现原理?
    • 使用 AtomicInteger 可以使 i++ 线程安全
    • 说下对线程池的理解,以及创建线程池的几个关键参数
    • Handler 机制又问了一遍...
    • 介绍下 Binder 机制,与内存共享机制有什么区别?
    • Java 集合,介绍下ArrayList 和 HashMap 的使用场景,底层实现原理
    • ArrayList 与 LinkedList 的区别
    • 算法 - 两个有序的链表的合并
    • 算法 - 输入一个字符串(不含和.)、正则(字母、和.任意组合),判断字符串是否合法
    • 简单介绍下,项目中遇到的一些技术难点

    接下来是面试复习资源:

    目录

    Android面试题

    Android基础面试核心内容

    1. 写10个简单的linux命令
    2. 书写出android工程的目录结构
    3. 什么是ANR 如何避免它?
    4. 谈谈Android的优点和不足之处
    5. 一条最长的短信息约占多少byte?
    6. sim卡的EF文件有何作用?
    7. 如何判断是否有SD卡?
    8. dvm的进程和Linux的进程, 应用程序的进程是否为同一个概 念?
    9. Android程序与Java程序的区别?
    10. 启动应用后,改变系统语言,应用的语言会改变么?
    11. 请介绍下adb、ddms、aapt的作用
    12. ddms 和traceview的区别
    13. 补充知识:TraceView的使用
      .......

    Android面试精华题目总结

    1、详述Android系统架构,包括层与层之间调用、binder、jni、底层文件读写方法
    2、描述自己的一个项目,要求画出结构图,UML图,详细描述项目种的技术点,技术难点以 及解决方案
    3、一道算法
    4、谈谈自己项目管理的方法、对敏捷,即原型开发软件开发的理解
    5、请解释下在单线程模型中Message,Handler,MessageQueue,Looper之间的关系
    6、如果有个100M大的文件,需要上传至服务器中,而服务器form表单最大只能上传2M,可 以用什么方法
    7、内存溢出和内存泄漏有什么区别?何时会产生内存泄漏?内存优化有哪些方法?
    .........

    Android面试重点知识

    • Android启动流程
    • Imageloader
    • 图片占用内存
    • 四种引用类型
    • 三级缓存
    • 图片压缩
    • EventBus
    • 常用的网络请求框架
    • .......

    源码分析相关面试题

    Volley源码剖析

    注解框架内部实现原理

    okhttp内核剖析

    Android源码编译实现静默安装和静默偷拍

    Activity相关面试题

    onSaveInstanceState源码内核分析

    深刻剖析activity启动模式

    Activity Task和Process之间的关系

    为什么service里面startActivity抛异常

    App优雅退出

    onCreate源码分析

    Service相关面试题

    • IntentService源码分析
    • IntentService有什么好处呢?
    • Service是否在main thread中执行, service里面是否能执行耗时的操作?

    与XMPP相关面试题

    • 阐述一下对XMPP协议理解以及优缺点?
    • 简单阐述一下及时推送原理?

    与性能优化相关面试题

    • 内存泄漏和内存溢出区别
    • UI优化和线程池实现原理
    • 代码优化
    • Android应用UI性能分析
    • 内存泄漏监测
    • App应用启动分析与优化
    • 与IPC机制相关面试题

    与登录相关面试题

    • Oauth的实现原理
    • Token的实际意义
    • 微信扫码登录内部实现原理

    与开发相关面试题

    • 迭代开发的时候如何向前兼容新旧接口?
    • 手把手教你如何解决as jar包冲突
    • Context原理分析
    • 解决ViewPager.setCurrentItem中间很多页面切换方案
    • 解决字体适配
    • 软键盘顶出去解决方案
    • 机型适配之痛
    • ViewPager和Fragment使用过程中会遇到哪些问题

    与人事相关面试题

    • 人事面试宝典一之自我介绍
    • 人事面试宝典二之离职
    • Android客户端和服务端如何使用Token和Session

    Java面试题

    • 深拷贝浅拷贝
    • 数据库求差
    • Java高级软件工程师面试考纲
    • 66道经典的Java基础面试题集锦
    • 115个Java面试题及回答
    • J2SE基础面试核心内容

    面试技巧

    过多省略,省略......

    总结

    对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。

    除了以上整理的面试资源,还有以下资源分享:

    《960全网最全Android开发笔记》

    《507页Android开发相关源码解析》

    因为文件太多,全部展示会影响篇幅,暂时就先列举这些部分截图,大家可以点击这里自行领取(或者关注主页扫描加微信领取)。

    相关文章

      网友评论

        本文标题:Android饿了么技术面试(已确认P7职位):四大组件+性能优

        本文链接:https://www.haomeiwen.com/subject/jcjhektx.html