美文网首页
走过路过不要错过,面了六轮才拿到阿里Android研发岗的Off

走过路过不要错过,面了六轮才拿到阿里Android研发岗的Off

作者: bug音音 | 来源:发表于2020-12-17 16:01 被阅读0次
    image.png

    面试过程:

    1轮同级 + 1轮Android用人部门leader + 1轮Android 组leader + 1轮项目CTO + 1轮HR + 1轮HRBP

    1、项目经历

    • 负责的模块,在工作中有什么总结
    • 用到了什么技术,有什么收益
    • 难忘的问题,对自己提升最大的功能/项目

    2、handler源码部分:

    • handler 线程切换执行实现原理,
    • handler 延时执行实现原理,
    • messagequeue 数据结构,
    • handler.sendEmptyMessageDelayed() 和 * handler.postDelayed() 区别,
    • 如果让自己实现一个handler ,需要怎么实现,有哪些地方需要注意的

    3、view部分:

    • view绘制流程,
    • view, window, activity关系
    • view 过度绘制解析,掉帧原因分析,怎么监测,怎么解决
    • cpu和GPU 绘制UI 流程(这个我不会)
    • 自定义view实现过程, 自定义view 怎么安全的刷新
    • 常用动画的种类,属性动画的使用, 插值器和估值器的使用

    4、基础部分:

    线程:

    • 线程开启的方式
    • 线程池使用,关键参数的取值依据和使用
    • 线程同步的方案,常用的锁
    • synchronized 和 volatile 关键字, volatile 是怎么实现可见性的
    • Java 中有哪些原子性操作

    jvm:

    • jvm 堆/栈/方法区/本地方法栈/程序计数器 分别有什么作用, gc 垃圾回收流程
    • JVM / Dalivk / ART 了解多少,有什么区别

    反射:配合retrofit 问的
    类加载器:配合热修复问的
    activity 启动流程

    5、三方库:

    热修复框架:

    • Andfix
    • Qzone
    • Tinker 修复原理
    • 有没有看过源码
    • 机型适配和版本适配怎么做的
    • LinkCanary 内存泄露框架原理, 除了这种方式监控内存泄露,是否还有其他方式

    OKhttp:

    • socket连接池怎么复用的
    • 拦截器是怎么实现的
    • 用到了什么设计模式
    • 对OKhttp 还做了哪些优化

    RXJava:

    • 怎么实现线程切换的
    • map 和 flatmap 操作符的区别
    • rx背压问题,怎么解决的,使用RXJava中还遇到哪些问题,怎么解决的

    Glide:

    • 缓存怎么做的
    • 怎么和页面生命周期绑定(低版本是fragment,新版本 lifecycle?)

    6、其他部分:

    • map 接口继承关系
    • set接口继承关系
    • list 接口继承关系

    hashmap:

    • 原理
    • hash冲突
    • 扩容
    • java 1.8后的修改
    • 哪些map线程安全,怎么实现安全的
    • 怎么用一个数组实现一个栈结构,说说思路。
    • weex flutter有没有了解

    手写两个算法:

    一个巨大无序数组,查第一个不连续自然数的节点, 例如 1、2、3、5、6、7…. 第一个不连续自然数的节点是 4。 给定一个二进制数据位数, 输出所有2进制数所对应的所有自然数,要求时间复杂度最优: 例如 输入 1, 输出 0, 1, 输入2, 输出 0,1,2,3,4,5,6,7

    • app怎么保活
    • 怎么给所有的点击事件全局埋点,hock 系统的click事件
    • 用到了哪些设计模式,都运用在哪里,解决了什么问题。
    • 做过哪些性能优化,优化成果怎么样,是否有数据支撑,数据来源怎么取。

    一个送礼的场景, 礼物有权重属性,怎么根据权重进行对礼物进行处理,然后再排队纷发,每次取一个礼物,怎么设计数据结构: 用有序队列,权重最大的排在队列最前,每次取礼物只拿第一个就行。细节还有数据重排,队列维护,数据同步等

    面试前该怎么复习?

    脑图 + 书 + 视频

    什么意思呢?具体解释一下,首先你需要有一个全面的知识点脑图,然后遇到不懂的地方就看书,千万不要去看博客,毕竟博客门槛真的太低了,最后要配合一些高质量的视频,用来巩固知识和开拓视野。

    脑图已经给你整理好了,可以根据这个图自行进行查漏补缺和规划:

    image.png

    接下来就需要梳理知识,提升储备了!(Android高级面试进阶学习需要的电子书也已经给你整理好了)

    • 架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO

    • Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化

    • 360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化

    • 解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack

    • NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发

    • 微信小程序:小程序介绍+UI开发+API操作+微信对接

    • Hybrid 开发与Flutter:Html5项目实战+Flutter进阶

    知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

    然后再是通过源码来系统性地学习

    只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

    真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

    image

    刷大厂面试题备战,增加大厂通过率

    包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

    image

    视频呢?也给你整理了,够意思吧。

    视频包含:

    1、IPC机制相关面试题视频解析
    2、项目相关视频解析
    3、性能优化相关面试题视频解析
    4、JVM从入门到着迷
    5、源码相关试题视频解析
    6、BAT面试总结分析

    文末

    欢迎关注我的简书,分享Android干货,交流Android技术。
    对文章有何见解,或者有何技术问题,都可以在评论区一起留言讨论,我会虔诚为你解答。
    最后,如果你想知道更多Android的知识或需要其他资料我这里均免费分享,只需你多多支持我即可哦!

    ——可以直接点这里可以看到全部资料内容免费打包领取。

    相关文章

      网友评论

          本文标题:走过路过不要错过,面了六轮才拿到阿里Android研发岗的Off

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