面试经历

面了一些上海二线互联网公司,例如爱奇艺,京东,喜马拉雅,得物,B站,某安,美团等等,记录了部分面试真题。大部分可以自行搜到答案,有疑问的可以留言交流~

爱奇艺一面

1.handler里面的native pollonce 为什么不会anr
2.对称加密和非对称加密的区别
3.布局嵌套过深会导致什么问题
4.java为什么跨平台?c是跨平台吗
5.app打包过程
6.协程挂起和线程阻塞的区别
7.so文件加载流程
8.AIDL怎么实现
9.字节码是什么

爱奇艺二面
和一面间隔时间太久了,放弃

货拉拉一面

1.简述https的握手流程,私钥加密谁都可以破解,那么有什么意义
2.oom能否try catch
3.公钥和私钥的区别
4.客户端怎么安全保存私钥
5.怎么加载一张超大图
6.采集app启动时间原理
7.exception分类。oom属于哪种分类
8.弱网 无网优化

货拉拉二面

1.说下项目中怎么运用MVVM
2.viewModel的源码实现
3.设计一个图片加载框架(包含内存缓存和本地缓存),参考Glide回答就行了
4.简述hashMap put方法的流程,一些细节追问:什么时候链表转树?为啥要转成树?什么时候树再次转回链表
5.英语口语如何(我面的是国际化业务)

货拉拉HR面
办理了居住证积分吗?balabala

京东一面

1.简述LinkedHashMap源码实现
2.说下Handler流程
3.handler用于线程间通信,怎么保证线程安全
4.界面有个Button,手指放上去慢慢移到Button外的区域,描述事件分发的流程
5.说下View的绘制流程,包括渲染和绘制
6.算法 两个单链表合并成有序链表,说下思路
7.组件化的实现,WMRouter调用其他模块的对应方法怎么实现的

京东二面
完全忘了

京东三面
问项目细节,你主要负责的模块,怎么设计

算法 N宫格,从左上角A出发只能向右或者向下走,求所有不同路径的条数总和。手写伪代码(用递归就可以)

京东四面

1.平时的上下班时间点
2.有没有使用过咱们的app,有什么建议
3.前面的3次技术面有什么感受
4.职业规划

京东HR面
平时的上下班时间点 balabala

某安一面

1.多线程同步有哪些方式
2.sycnized和lock区别,分别用于什么场景
3.线程池原理
4.线程池拒绝策略怎么自定义
5.怎么实现线程加入线程池的优先级
6.volatile底层原理?是否线程安全
7.死锁怎么发生?怎么防止死锁
8.介绍下apm,怎么捕获crash和native crash?腾讯matrix怎么统计app启动时间,页面加载时间
9.gc回收算法有哪些?分别用于什么场景
10.jvm有哪些区域?栈的作用
11.算法 三数之和

某安二面

1.问项目 httpdns相关:为什么要httpdns?怎么处理握手问题,ip直连能否避免dns挟持?
2.问项目 首页弹窗优先级
3.做过哪些内存优化
4.怎么全局捕获app所有异常,并且保证app不崩溃,不卡死
5.如何获取app的所有线程信息
6.怎么查找anr
7.安卓有哪些进程间通信?为什么使用binder?mmap发生在哪个阶段?怎么找到目标进程
8.leakcanary怎么检测内存泄露的
9.算法 两个栈实现一个队列

某安三面

1.gradle生命周期,怎么自定义插件
2.统计编译耗时插件,运行在哪个阶段?
3.描述从编译到apk的过程,以及gradle有哪些task参与其中
4.如何实现字节码插桩
5.子线程更新ui会报什么异常?从哪里抛出来的
6.子线程怎么更新textview不会crash
7.activity window view显示出来,全流程源码解析,精确到类和核心方法
8.数据库用的什么库,熟悉sql语句吗
9.mmkv为什么比sp高效,存储的数据结构是什么样
10.mmap为什么比io高效,说下实现原理
11.sp存在哪些问题?
12.hashmap put流程源码解析,链表和树转换时机?扰动函数的作用?为什么hashcode & n-1?扩容时机?
13.gc roots有哪些
14.activity有个内部类handler,描述下引用关系链路,并说明为何gcroots能访问到activity
15.加载xml和动态创建view哪个高效?为什么加载xml效率低
16.如何减少布局嵌套?jetpack compose的原理
17.recycleview缓存实现?开发中怎么优化
18.算法 给定一个字符串,输出所有不同字符组合

B站一面

1.一句话描述协程
2.协程只在主线程使用,怎么实现挂起和切回的
3.协程的轻量级怎么体现的
4.ViewModel源码实现,它在Activity重启后为什么恢复数据?数据保存在哪里?5.和onsaveinstancestate有啥区别
6.LifeCycle源码实现
7.LiveData源码实现,先后setValue两次,都能收到吗?
8.简述View的刷新机制,屏幕刷新信号从哪里发出来的?
9.硬件加速是否了解
10.SurfaceView的工作原理是否有了解
11.组件化相关,WMRouer为什么可以这么方便实现组件之间通信,背后原理

喜马拉雅一面

1.有了解过直播吗?有哪些常见协议
2.说下自定义View的一般流程
3.多个线程异步执行任务,主线程需要等待它们都完成再继续,有哪些实现方式
4.说下handler的流程,异步消息是什么?Android中哪些场景会发送异步消息?5.我们在代码中可以手动发异步消息吗
6.弹幕怎么实现?比如直播中的流星雨特效,跑车这种怎么实现出来
7.说下你开发中做过的一个动画
8.了解过SurfaceView的原理吗
9.有没有接触过Socket编程,简单说下代码实现
10.加载一张超大图怎么实现
11.补间动画和属性动画各自的原理
12.内存优化有哪些手段
13.开放性题目 开发中怎么提升整个app的稳定性

喜马拉雅二面

1.动态代理是怎么实现的
2.你熟悉哪些设计模式
3.画一下动态代理的类图
4.说下插件化原理
5.说下热修复的基本原理?比如QQ空间的方案和Tinker
6.算法 判断两个单链表是否相交及找到第一个交点

喜马拉雅HR面

对公司感觉怎么样,之前有了解过吗
是否愿意承担一些管理角色

得物一面

  • 狂问Kotlin相关,比如委托的实现原理,协程原理,kotlin的好处,kotlin编译流程,常用的kotlin技巧
  • app的打包流程
  • View的渲染绘制流程

得物二面

1.inflate加载view过程
2.简述okhttp源码,请求怎么管理,它的线程池怎么实现
3.apt原理
4.viewmodel为什么可以恢复数据
5.livedata可以保存多个数据吗
6.aac架构有什么优势
7.mmkv了解吗
8.算法 单链表找到倒数第K个元素
9.算法 单链表找到中间的元素(2个题都用快慢指针就可以了)
10.组件化怎么做的?WMRouter编译期间做了什么

得物HR面
没问什么特别的

经验tips

  1. 必考题一定要掌握!
    【必问】Handler的工作流程,源码要记牢,细节要理解透,比如怎么唤醒主线程的,while为啥不会阻塞主线程
    【必问】View的绘制流程,包括渲染和View本身的绘制3部曲
    【必问】MVVM的含义,ViewModel+LivaData+LifeCycle的源码实现
    【必问】自定义View的一般实现流程
    【必问】内存泄漏怎么排查,OOM怎么排查
    【必问】你做过哪些性能优化
    【必问】Retrofit的实现,动态代理
    【必问】组件化相关,WmRouter的原理
    【高频】ANR怎么排查,有哪些原因
    【高频】APP打包流程
    【高频】kotlin常见知识点的原理,如协程,委托,扩展函数,编译流程
    【高频】Android有哪些跨进程通信,AIDL的代码实现
    【高频】怎么加载一张超大图
    【高频】OkHttp的线程池实现,Java线程池原理,拒绝策略怎么自定义

2.算法准备
有时间就刷剑指offer66道题目,没时间就掌握一般的套路,回答一些常见题目基本够了。

3.关于性能优化
你做过哪些性能优化?这个点也是经常被问到,我的建议 不要随意把别人博客的性能优化当成自己做过的,很多都是纯KPI项目,他们可能自己都没去实践。面试官一听就知道你在瞎说,挑一些相对靠谱的结合自己项目说下,然后拓展一下还未实现但是准备去做的。

写在最后

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。所以,出去面试时先看看自己复习到了哪个阶段就好。

下面开始进入正文,以下是我进阶学习所积累的历年爱奇艺,京东,喜马拉雅,得物,B站,某安,美团等公司2021年度的高频面试题,希望对你有帮助。

第一章 Android 高频面试之必考Java基础

1,面向对象和面向过程的区别 2,面向对象的特征有哪些 3,解释下Java的编译与解释并存的现象 4,简单介绍下JVM的内存模型 5,简单介绍下Java的类加载器 6,谈一下Java的垃圾回收,以及常用的垃圾回收算法。 7,成员变量和局部变量的区别 8,Java 中的方法重写(Overriding)和方法重载(Overload)的含义 9,简单介绍下传递和引用传递 10,为什么重写 equals 时必须重写 hashCode 方法


11,接口和抽象类的区别和相同点是什么 12,简述下HashMap 13, CurrentHashMap 14,介绍下什么是乐观锁、悲观锁 15,谈谈对Java线程的理解 16, Synchronized、volatile、Lock并发 17,锁 18,谈谈你对Java 反射的理解 19, 注解 20,单例

第二章 Android 面试之必问Android基础

1,Activity:生命周期、启动模式、启动流程

2,Fragment:生命周期、与Activity传递数据 3, Service:启动方式、生命周期、Service不被杀死 4, BroadcastReceiver 5, ContentProvider


6,Android View知识点:测量流程、事件分发、MotionEvent、Draw 绘制流程等等 7,Android进程:进程生命周期、多进程、多进程通信方式 8,序列化 9,Window 10,消息机制:Handler 机制、工作原理 11, RecyclerView优化:卡顿场景、其他优化策略

第三章 Android 面试之必问高级知识点

1,编译模式:AOT优点、垃圾回收 2,类加载器:类加载器分类、双亲委托模式、Android的类加载器 3,Android Hook 4,代码混淆:Proguard、混淆规则、混淆模版 5,NDK:JNI基础、NDK开发基本流程、CMake 构建 NDK 6,动态加载:插件化、热修复

第四章 Android 面试之必问性能优化

1,启动优化:冷启动/热启动和温启动的优化、代码方面的优化 2,UI渲染优化:CPU/GPU、过度绘制、解决自定义View的OverDraw、Hierarchy Viewer 3,内存优化:内存管理、内存泄漏、大图内存优化、线上监控 4,网络优化 5,耗电优化:优化方向、耗电监控、如何监控耗电 6,安装包优化:常用的优化策略、资源压缩、资源动态加载

第五章 Android 面试之开源库分析

1,HTTP与缓存理论:HTTP缓存策略、强制缓存、对比缓存 2,OKHttp:OKHttp请求流程、OKHttpClient、同步请求、异步请求、CacheInterceptor网络请求缓存处理 3,Retrofit 4,Glide 6,EventBus

第六章 算法面试题汇总

6.1 排 6.2 二叉树 6.3 链表 6.4 栈 / 队列 6.5 二分搜索 6.6 哈希表 6.7 堆 / 优先队列 6.8 二叉搜索树 6.9 数组 / 双指针 6.10 贪心 6.11 字符串处理 6.12 动态规划 6.13 矩阵 6.14 二进制 / 位运算 6.15 其他:两个大文件中找出共同记录、ip地址与int类型的转换、整数反转、LRU缓存策略

需要完整版《Android2023年度的高频面试真题》的朋友可以微信扫描下方CSDN官方二维码免费领取

【建议珍藏】2023年最新Android大厂面经分析,最终入职得物相关推荐

  1. 2021年最新Android面试点梳理,成功入职腾讯

    背景 本人双非渣本 今年由于疫情,上半年一直在家里.2月份本来无忧无虑,呆在家里不给国家添乱的时候,发现身边的同学找到了大厂的offer.心里开始有点慌张.本来想在3月份如果能回到学校,就开始考研之路 ...

  2. 学历不够技术来凑!面试BATJ最终入职京东,整理出2020船新版本最新面试真题全部开源分享!

    背景 大专学历,参加了阿里/腾讯/京东面试, 最终入职京东.学历不够真的不是问题,最怕学历不够技术还不行! 后端面试主要及经常问到技术点: 数据结构,多线程,jvm,优化,消息框架,分布式,缓存等以及 ...

  3. 2021年最新Android大厂面试题来袭!吊打面试官系列!

    面试经验 自己大大小小投了也有20多家公司,不过经历简历筛选以及笔试淘汰,最终就经历了7家公司的面试.下面我就把自己面试中问到的问题贴出来供大家参考,一些具体项目相关的就不贴了. 阿里巴巴 阿里是3月 ...

  4. 2018年6月份Android上海找工作经历,入职3个月的Android程序员面临转正

    在来上海面试,首先我做了一些准备,包括复习常见的面试题,了解一些大概率出现的问题吧,这些内容我都做了总结,最后我会发上链接,供需要的朋友了解,答案是我自己总结加参考别人的,有问题请自行解决.其次需要准 ...

  5. 学习指南!2020最新Android大厂面试真题大全,架构师必备技能

    2021新的一年,开启新的征程,回顾2020,真是太"南"了. 从年初各大厂裁员,竟然成为一件理所应当的事情,到四月份 GitHub 上"996.ICU" 引起 ...

  6. 万字攻略,详解腾讯面试(一,最新Android大厂高频面试题

    随后,郭靖收到一条短信,大概内容就是何时何地参加GM面试.GM就是General Manager,翻译过来就是总经理. 郭靖的心情,由紧张激动,变成了一点点落寞,原来面试还没有结束.所以,郭靖还得再跑 ...

  7. 2022年最新Android大厂面试题来袭,被面试官问的Android-Framework难倒了

    前言 在博主认为,对于Android面试以及进阶的最佳学习方法莫过于刷题+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷 ...

  8. 最新BAT大厂面试者整理的Android面试题目模板,成功入职字节跳动

    前言 **一年中第一段跳槽高潮就要来了,**看到同事一个个离职,又有一部分同事已经找到满意的工作,于是自己也盲目的开始面试起来(期间也没有准备充分),日夜奔走,简历投了很多家公司,然后就是一连串的面试 ...

  9. Android简单笔记本解析,成功入职头条月薪35K

    public class NoteSearch extends ListActivity implements SearchView.OnQueryTextListener { private sta ...

最新文章

  1. win10服务器权限修改时间,win10系统修改时间显示没权限的解决方案
  2. IT职场:程序员如何增加收入?
  3. 动态添加方法 并且动态的执行 有类方法 对象方法
  4. Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程
  5. torch.view()
  6. SilverLight学习笔记--WCF服务
  7. java lang保_java.lang.Object的受保护方法如何保护子类?
  8. 浮小麦升浮之气的本质
  9. ORA-01843:无效的月份
  10. spring用的很开心的标签(随时增加)
  11. ❤️Bean的自动装配(详细)
  12. python新手入门代码-介绍十个Python小案例,新手入门就在这里
  13. 【信息系统项目管理师】第3章-项目立项管理 知识点详细整理
  14. mockito验证参数_Mockito验证
  15. java get请求参数乱码_java web项目get,post请求参数中文乱码解决
  16. Requests爬取chinadaily海量新闻数据
  17. 基于51单片机——60秒倒计时时钟
  18. 网站备案信息真实性核验单
  19. MOOC中国大学自动评分js脚本
  20. SQLZOOL练习题答案和解析 第1关 SELECT name

热门文章

  1. PATA1142 Maximal Clique(测试点2、3)
  2. error: .repo/manifests/: contains uncommitted changes 解决办法
  3. 4.2-知识图谱在电商领域中的应用实践
  4. win10网络重置后无法上网
  5. 肝内胆管结石有哪些严重危害?
  6. Zabbix自动发现规则
  7. cocos2d-x学习笔记(持续更新)
  8. Android网络:开发浏览器(五)——功能完善之保存图片实现
  9. mysql 用户名 长度_一个 MySQL 用户名长度的坑
  10. 原生javascript实现拖拽改变table表格行高(html)