写点什么

为了跳槽强刷 1000 道 Android 真题,研发 4 面真题解析(Android 岗)

发布于: 刚刚

阿里巴巴

一面 1:插件化。启动 activity 的 hook 方式。taskAffity。2:okhttp 支持 HTTP2?http2 的功能有哪些?tcp 方面拥塞控制?tsl 的握手和具体的非对称加密算法。非对称名称 3:handler 的 post(Runnable)如何实现的。callback,runnable,msg 的执行优先级。阻塞是怎么实现的?为什么不会阻塞主线程?5:求二叉树中两个节点之间的最大距离。6:206 含义,未修改资源是哪个,302 含义,301 含义 7:多进程通信问题。binder 优势。aidl 生成的 java 类细节。多进程遇到哪些问题?8:动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM 的原理 9:Application 和 Activity 在 Context 的继承树上有何区别?二者使用上有何不同?10:任意一颗二叉树,求最大节点距离二面


1:设计一个日志系统。2:内存泄露的分类。怎么查看内存泄露的问题 3:touch 事件源码问题。4:组件化的问题。module 和 app 之间的区别。moduler 通信是如何实现的。5:native 奔溃的日志采集,怎么处理?6:注解实现一个提示功能:如果 int 的值大于了 3 需要提示。三面 1:介绍下 flutter 的启动流程 2:介绍下 flutter 与 weex 的区别 3:组件化介绍一下 4:webview 中与 js 通信的手段有哪些?5:介绍下 flutter_boost 的原理

小米

一面、二面 1.介绍一下 binder 和原理 2.measure layout draw 流程,滑动冲突 3.常用的多线程工具类。blockingqueue ,concurrenthashmap,信号量,countdownlatch,cyclicbarrier,exchanger 等,stringbuffer4.stringbuilder 和 stringbuffer 区别 5.lock 和 syncrognized 原理区别,适合什么场景。6.实现生产者,消费者 7.handler 原理,是如何实现延时的。8.一个 activity 启动另外一个 activity 的生命周期。


算法题:1 反转链表 2.归并排序 3.快速排序 4.feiboqiena 数列 5.二分查找 6.两个队列实现栈


  1. 两个栈实现队列 8.判断链表是否成环,找到成环的交点。

字节跳动面试

一面 1:插件化。启动 activity 的 hook 方式。taskAffity。2:okhttp 支持 HTTP2?http2 的功能有哪些?tcp 方面拥塞控制?tsl 的握手和具体的非对称加密算法。非对称名称 3:handler 的 post(Runnable)如何实现的。callback,runnable,msg 的执行优先级。阻塞是怎么实现的?为什么不会阻塞主线程?5:求二叉树中两个节点之间的最大距离。6:206 含义,未修改资源是哪个,302 含义,301 含义 7:多进程通信问题。binder 优势。aidl 生成的 java 类细节。多进程遇到哪些问题?8:动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM 的原理 9:Application 和 Activity 在 Context 的继承树上有何区别?二者使用上有何不同?10:任意一颗二叉树,求最大节点距离


二面 1:设计一个日志系统。2:内存泄露的分类。怎么查看内存泄露的问题 3:touch 事件源码问题。4:组件化的问题。module 和 app 之间的区别。moduler 通信是如何实现的。5:native 奔溃的日志采集,怎么处理?6:注解实现一个提示功能:如果 int 的值大于了 3 需要提示。


三面 1:介绍下 flutter 的启动流程 2:介绍下 flutter 与 weex 的区别 3:组件化介绍一下 4:webview 中与 js 通信的手段有哪些?5:介绍下 flutter_boost 的原理


四面 1:适配器和装饰模式各自特点和使用场景 2:视频编解码是怎么做的 3:三色球排序


一面为什么工作一年就想换工作?onTouchEvent/onTouchListenr.onTcouchEvent/onClickListenrhashmap 的原理?java 的 hashcode 和 equals 的区别 java 的 gc 了解多少?kt 的伴生对象是饿汉模式还是懒汉模式?handler.postDelayed 的原理 ANR 怎么产生?怎么捕捉?智力题:桌子上有 101 块饼***拿先手,他拿后手,你需要怎么赢 tcp 三次握手/四次挥手, 为什么要三次握手,四次挥手?内存泄漏是什么?怎么找?算法题:斐波拉契数列,递归的方式怎么优化?


二面手淘这种大型 app 是怎么迭代起来的?你对小程序的原理了解么?v8binding 怎么做?你项目的价值是什么?图片缓存怎么做?你要设计一个图片缓存框架怎么搞?lrucache 怎么实现?为什么是 o(1)的时间复杂度?voliate 关键字解释下?voliate 关键字不能实现什么?https 解释下常见的对称加密算法和非对称加密算法有哪些?让你设计一个打点系统怎么做?如果进程被杀死或者切换后台,数据如何保存丢失?你怎么设计埋点系统一个线程模型?快速排序?快速排序是稳定的么?如何实现一个快速排序的稳定性?minstack 怎么设计?kotlin 和 java 混用有哪些问题?设计一个数据结构,微博里面有人发了文章怎么实现?关注怎么实现?微博里面有人发了文章,关注的人如何获取最新的 10 条?如何获取关注的人的文章的最新 1000 条?设计一个高效的算法


三面你为什么选择换工作?你组里面的人都怎么样?你怎么解决项目中的难点?你有工作中遇到过哪些比较麻烦的地方?你平时怎么学习的啊?你除去学习之外都看什么书?


最后附上我搜集整理的各大厂面试真题解析


面试心得

1.准备要充分,知识面要尽量的广,同时深度也要够。2.面试安排上,如果不着急,尽量给自己留多时间,两天一家,及时做总结和补充。3.心态要放平,当做一次技术交流,面试要看一部分的运气,也要看一些眼缘,有的面试官一张嘴你就能感觉到你这次面试完了。想去的公司没有面试好,不要气馁,继续加油准备。4.简历投递方面,拉勾上投了很多经常不匹配,可能是我学历问题(自考本),有一些打击自信心,如果有同样感受的,不妨换 BOSS 或者其他平台。避免打击自信心。5.写简历一定要体现自己的优势,最好能体现类似于,用到了什么技术,解决了什么问题。简历上写到的一定要胸有成竹。6.类似于你的优势是什么,你觉得你项目中做的比较好的地方有哪些,你能给公司带来什么,这种问题心里要先想一些,免得临场发挥容易紧张说不好。7.我所经历的面试,一般技术面最少是两轮。如果一轮后让你走了,而你还自我感觉良好,那我觉得你有必要回顾一下面试内容,并一条一条找找该问题的相关内容,大部分问题就在于你没有答到点子上,可能是深度不够,也可能是扩展不够。继续加油。

实战系列

话不多说,Android 实战系列集合都已经系统分类好,由于文章篇幅问题没法过多展示




**本文已被[CODING 开源项目:《Android 学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](


)



收录**


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

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

因此也是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

用户头像

还未添加个人签名 2021.10.19 加入

还未添加个人简介

评论

发布
暂无评论
为了跳槽强刷1000道Android真题,研发4面真题解析(Android岗)