Android饿了么技术面试(已确认P7职位):四大组件+性能优化+XMPP+登录+Java+面试技巧等,面试建议

面试内容模块包含:源码分析、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协议理解以及优缺点?
  • 简单阐述一下及时推送原理?

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

文末

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

最后想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

进阶学习视频

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

d扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

[外链图片转存中…(img-iyDCGBIh-1712448303481)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值