美文网首页Android开发Android技术知识Android开发
【金三银四】2022 Android面经实录

【金三银四】2022 Android面经实录

作者: i小灰 | 来源:发表于2022-04-11 14:09 被阅读0次

    复习点

    1、项目经历,业务,难点
    2、Java基础,JVM,集合原理
    3、Android基础,View体系,View绘制流程,事件分发,屏幕刷新,动画原理
    4、常见三方库原理
    5、Jetpack
    6、Android Framework
    7、算法
    8、Kotlin
    

    具体链接

    1 算法部分

    打遍天下二叉树

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Algorithm/打遍天下二叉树.md

    labuladong的fucking-algorithm

    https://github.com/labuladong/fucking-algorithm

    2 Java基础

    Java集合源码复习一遍

    ArrayList源码解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/集合/ArrayList源码解析.md

    LinkedList源码解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/集合/LinkedList源码解析.md

    CopyOnWriteArrayList源码解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/集合/CopyOnWriteArrayList源码解析.md

    HashMap源码解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/集合/HashMap源码解析.md

    ConcurrentHashMap源码解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/集合/ConcurrentHashMap源码解析.md

    TreeMap 和 LinkedHashMap

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/集合/TreeMap和LinkedHashMap.md

    HashSet 和 TreeSet

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/集合/HashSet和TreeSet.md

    Android中的Bundle,SparseArray和ArrayMap

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/集合/Android中的Bundle,SparseArray和ArrayMap.md

    从源码角度彻底搞懂String,StringBuffer,StringBuilder_20180420 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/

    从源码角度彻底搞懂String,StringBuffer,StringBuilder_20180420.md

    String

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/String.md

    泛型 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/泛型.md

    异常 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/异常.md

    反射 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/反射.md

    注解 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/注解.md

    反射性能开销原理及优化 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/基础/反射性能开销原理及优化.md

    《深入理解Java虚拟机》

    JVM内存数据区域 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/1.JVM内存数据区域.md

    HotSpot虚拟机对象 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/2.HotSpot虚拟机对象.md

    垃圾收集器与内存分配策略 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/3.垃圾收集器与内存分配策略.md

    Java字节码(class文件)解读 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/4.Java字节码(class文件)解读.md

    字节码指令简介 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/5.字节码指令简介.md

    虚拟机类加载机制 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/6.虚拟机类加载机制.md

    虚拟机字节码执行引擎 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/7.虚拟机字节码执行引擎.md

    前端编译与优化 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/8.前端编译与优化.md

    后端编译与优化 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/9.后端编译与优化.md

    Java内存模型与线程 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/10.Java内存模型与线程.md

    线程安全与锁优化 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Java/JVM/11.线程安全与锁优化.md

    拉钩教育-《Android 工程师进阶34讲》

    拉钩教育-《Java 并发编程 78 讲》

    3 Android

    死磕Android_View工作原理你需要知道的一切

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_View工作原理你需要知道的一切.md

    死磕Android_App_启动过程(含Activity启动过程)

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_App_启动过程(含Activity启动过程).md

    死磕Android_Service启动流程分析(一)

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_Service启动流程分析(一).md

    死磕Android_Service绑定流程分析(二)

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_Service绑定流程分析(二).md

    死磕Android_BroadcastReceiver_工作过程

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_BroadcastReceiver_工作过程.md

    Lifecycle_原理解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Lifecycle_原理解析.md

    ViewModel_使用及原理解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/ViewModel_使用及原理解析.md

    Jetpack全家桶 https://juejin.cn/post/7013640663824597005

    学习Android Jetpack? 实战和教程这里全都有!

    https://juejin.cn/post/6844903889574051848

    Lifecycle https://juejin.cn/post/6893870636733890574

    LiveData https://juejin.cn/post/6903143273737814029

    ViewModel https://juejin.cn/post/6915012483421831175

    MVVM https://juejin.cn/post/6921321173661777933

    DataBinding https://juejin.cn/post/6923859213403979789

    Handler机制你需要知道的一切

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Handler机制你需要知道的一切.md

    死磕Android_ContentProvider_启动

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/死磕Android_ContentProvider_启动.md

    LiveData_使用及原理解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/LiveData_使用及原理解析.md

    Window,Activity,View三者关系

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Window,Activity,View三者关系.md

    Handler同步屏障

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Handler同步屏障.md

    Choreographer原理及应用

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Choreographer原理及应用.md

    Handler相关知识点大全

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/系统源码解析/Handler相关知识点大全.md

    LeakCanary 原理探究

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/LeakCanary_原理探究.md

    OkHttp3 原理探究

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/OkHttp3_原理探究.md

    Retrofit 原理解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/Retrofit_原理解析.md

    Glide主流程源码解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/Glide主流程源码解析.md

    RxJava3原理解析

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/RxJava3原理解析.md

    Android-skin-support 换肤原理详解 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/三方库原理/Android-skin-support换肤原理详解.md

    屏幕适配

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/实战常见问题/屏幕适配.md

    插件化

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/实战常见问题/插件化.md

    热更新

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/实战常见问题/热更新.md

    Gradle系列(一) Groovy 基础

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列(一)Groovy基础.md

    Gradle系列(二) Gradle执行顺序和task

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列(二)_Gradle执行顺序和task.md

    Gradle系列(三) Gradle配置构建和渠道包

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列(三)_Gradle配置构建和渠道包.md

    Gradle系列(四) Gradle插件

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列(四)_Gradle插件.md

    Gradle系列 插件练习-动态移除权限

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/Gradle系列_插件练习-动态移除权限.md

    手把手教大家用Transform API和ASM实现一个防快速点击案例 https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/Gradle/手把手教大家用Transform_API和ASM实现一个防快速点击案例.md

    Android进程间通信: 深入浅出AIDL

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/多进程/AIDL详解.md

    Android进程间通信: Messenger详解

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/多进程/Messenger详解.md

    Android进程间通信: Binder详解

    https://github.com/xfhy/Android-Notes/blob/master/Blogs/Android/多进程/Binder详解.md

    硬核!Android 应用启动全流程深度剖析!(进程创建+消息机制+Activity组件管理+Application和Activity初始化+UI布局与绘制+RenderThread渲染+SurfaceFlinger合成)

    https://mp.weixin.qq.com/s/b6-leHKQZkuxkjll-1109A

    Choreographer原理及应用

    https://blog.csdn.net/xfhy_/article/details/115436765?spm=1001.2014.3001.5502

    终于懂了,屏幕刷新 https://juejin.cn/post/6863756420380196877

    View工作原理 https://juejin.cn/post/6854573212374663182

    编译基础 https://juejin.cn/post/6844904106545414157

    Android插件化原理(一)Activity插件化

    https://juejin.cn/post/6844903613865672718

    ClassLoader http://liuwangshu.cn/tags/ClassLoader/

    hencoder全部Kotlin部分 https://rengwuxian.com/tag/kotlin/

    hencoder全部自定义View部分

    https://rengwuxian.com/tag/custom-view/

    协程原理 https://juejin.cn/post/6862548590092140558

    flow https://juejin.cn/post/6914802148614242312

    反思|官方也无力回天?Android SharedPreferences的设计与实现 https://juejin.cn/post/6884505736836022280

    ActivityThread的理解

    https://blog.csdn.net/hzwailll/article/details/85339714

    了解AMS http://liuwangshu.cn/tags/ActivityManagerService/

    Android Gradle 自定义Task 详解

    https://blog.csdn.net/zhaoyanjun6/article/details/76408024

    编译打包流程 https://juejin.cn/post/6844904106545414157

    Android Gradle 看这一篇就够了

    https://juejin.cn/post/6844903446814916621#comment

    4. 技术面试真题

    公司1:

    包体积优化
    Handler原理
    如何退出app
    synchronized和lock
    鸿蒙了解过吗
    Flutter了解过吗,Compose呢
    跨进程通信,线程通信
    组件化是怎么做的
    做过的项目,主要负责什么
    担任的角色
    最难的是什么?怎么解决的
    开发流程是怎么样的?有做设计文档吗?
    职业规划,为什么做安卓?鸿蒙有了解吗?
    平时怎么学习的?最近学了什么?给工作带来了哪些好处?
    看过哪些技术书籍
    平时有什么爱好
    对你想要去的公司团队有什么要求?或者说你想去什么氛围的项目组?
    

    公司2:

    sleep和wait区别
    mvp
    组件化
    Livedata,ViewModel原理
    内存优化
    启动优化
    Leakcanary原理
    换肤原理
    怎么Hook AMS
    

    公司3:

    Volatile、synchronized、原子类的原理
    数据库优化是怎么做的
    性能优化
    Kotlin伴生对象和init
    斐波拉契序列
    反转链表
    

    公司4:

    Fragment生命周期
    屏幕刷新机制
    binder理解
    bindService校验: 权限,包名
    https的原理
    响应式编程
    热修复:class和资源
    invalidate 和 postInvalidate区别
    Handler原理,sendMessageDelayed是怎么实现的,为什么不卡主线程,底层是如何通知进程这边恢复阻塞的
    Java掌握到什么程度了,Kotlin呢?Android呢?
    响应式编程
    看过哪些书?推荐一本你觉得不错的书,为什么不错
    Android最近这2年值得关注的框架
    敏捷开发模式
    你给你自己的水平打分,计划怎么完善和精进自己的技术栈
    

    公司5:

    app启动过程+Activity启动过程,Activity启动过程中的LaunchMode的原理
    Handler
    java 方法重载问题,泛型相关
    卡顿优化,冷启动优化,线上监控方式
    慢函数线上监控
    

    公司6:

    3个线程如何依次执行
    设计一个图片加载库,Lrucache原理,LinkedHashMap实现
    lifecycle,ViewModel原理
    View事件分发
    

    公司7:

    gc roots
    JVM垃圾回收算法,Android虚拟机垃圾回收算法
    分代回收思想
    Java类加载机制
    线程池有几种,分别是什么特征,自定义线程池需要注意什么,核心线程数是多少
    HashMap原理(红黑树会退成链表吗?什么情况下?),ConcurrentHashMap原理,Hashtable原理
    StringBuilder和StringBuffer原理
    反射原理及其优缺点
    泛型拿来做什么的
    synchronized用法及原理,1.6做了哪些优化,Mark word
    常用的三方库原理,随便挑一个说
    换肤原理
    动画有哪几种,属性动画原理,vsync
    View绘制流程
    短时间内多次调用requestLayout,哪些View会重绘
    冷启动优化
    包体积优化
    插件化原理,startActivity
    MVC,MVP,MVVM
    requestLayout流程
    算法1:反转单词
    算法2:环形链表求环入口节点,不准用快慢指针,O(1)空间复杂度,O(n)时间复杂度,可修改链表节点的指针和数据。不能在链表节点中新增属性
    

    公司8:

    说一下项目的架构,哪一块是你主要负责的?说一下是怎么设计的
    Livedata原理
    Handler原理
    组件化传递大数据
    单例里面的数据线程安全
    内存优化,卡顿优化,冷启动优化
    怎么检测已发生了内存泄露的对象?不知道那个对象是谁
    协程和RxJava原理,区别
    

    公司9:

    View绘制流程
    事件分发流程,外部拦截法,内部拦截法
    Kotlin协程,协程原理,怎么开协程,怎么切线程
    ViewPager内部View高度不一致,怎么解决
    startActivity流程
    启动优化,包体积优化
    LiveData原理
    Gradle 马甲包
    换肤原理
    协程状态机
    let和also区别
    MVVM
    

    相关文章

      网友评论

        本文标题:【金三银四】2022 Android面经实录

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