写点什么

Android 性能优化之启动优化实战篇!分享面经

发布于: 38 分钟前


1.泛型有什么优点?


2.动态代理有什么作用?


3.拉圾回收的 GCRoot 是什么?


4.Handler 机制了解吗?一个线程有几个 Looper?为什么?


5.你了解协程吗?协程有什么作用?可以完全取代 rxjava 吗?


6.你们用的什么消息通信机制


7.你的项目有什么难点?介绍一下?


8.算法题,二叉树最长结点集合

猿辅导 2 面

1.你们项目中的难点是什么?


2.编译期注解处理的是字节码还是 java 文件


3.你在项目中有用到什么设计模式吗?


4.ARouter 的原理是怎样的?


5.插件化的原理是怎样的?


6.算法题,K 个一组反转链表


7.广播与 RxBus 的区别,全局广播与局部广播区别

猿辅导 3 面

1.你们项目中有什么难点?


2.@JavaScriptInterface 为什么不通过多个方法来实现?


3.为什么不利用同步方法来做 jsBridge 交互?同步可以做异步,异步不能做同步


4.网络封装怎么实现?


5.算法题,不同面值的几个硬币,怎么求满足条件的最小值



斗鱼


1.说说 HashMap 的原理


2.说说 Java 的内存分区


3.讲讲你对垃圾回收机制的了解,老年代有什么算法?


4.说说你对 volatile 字段有什么用途?


5.说说事件分发机制,怎么写一个不能滑动的 ViewPager


6.说说你对类加载机制的了解?DexClassLoader 与 PathClassLoader 的区别


7.说说插件化的原理,资源的插件化 id 重复如何解决?


8.mvp 与 mvvm 模式的区别是什么?


9.JetPack 组件用过哪些?lifeCycle 的原理是什么?如果在 onStart 里面订阅,会回调 onCreate 吗?


10.单例模式有什么缺点?


11.说说 App 的启动过程,在 ActivityThread 的 main 方法里面做了什么事,什么时候启动第一个 Activity?


12.说说你对 Handler 机制的了解,同步消息,异步消息等


13.说说你对屏幕刷新机制的了解,双重缓冲,三重缓冲,黄油模型


14.onCreate,onResume,onStart 里面,什么地方可以获得宽高


15.为什么 view.post 可以获得宽高,有看过 view.post 的源码吗?


16.attachToWindow 什么时候调用?


17.DataBinding 的原理了解吗?

滴滴一面


1.JVM 类加载机制了解吗,类什么时候会被加载?类加载的过程具体生命周期是怎样的?


2.Handler 内存泄漏的 GCRoot 是什么?


3.动画里面用到了什么设计模式?


4.OkHttp 里面用到了什么设计模式?


5.OkHttp 连接池是怎么实现的?里面怎么处理 SSL?


6.泛型为什么要擦除?kotlin 的泛型了解吗?泛型的 pecs 原则


7.同步屏障


8.性能优化做过什么工作?


9.RecyclerView 的缓存结构是怎样的?缓存的是什么?cachedView 会执行 onBindView 吗?


10.RecyclerView 嵌套 RecyclerView,NestScrollView 嵌套 ScrollView 滑动冲突


11.ViewGroup 在 Action_Move 时 onIntercept 返回 true,事件怎么传递


12.Launcher 启动图标,有几个进程?


13.JMM 可见性,原子性,有序性,synchronized 可以保证什么?


14.源码中有哪里用到了 AtomicInt


15.AQS 了解吗?


16.Activity 内 LinearLayout 红色 wrap_content,包含 View 绿色 wrap_content,求界面颜色


17.ViewModel 的使用中有什么坑?


18.有用 DSL,anko 写过布局吗?


19.HashMap 查找的时间复杂度是多少?


20.阿里编程规范不建议使用线程池,为什么?


21.四种线程池原理?


22.了解哪些算法?


23.IdleHandler 用过吗?

滴滴二面

1.如何封装一个字符串转数字的工具类


2.如何求当前 Activity View 的深度


3.多进程怎么实现?如果启动一个多进程 APP,会有几个进程运行?


4.反射可以反射 final 修饰的字段吗?


5.Activity 与 AppCompactActivity 区别,Activity 会打包到包里面去吗?


6.如何让两个线程循环交替打印


7.怎么中止一个线程,Thread.Interupt 一定有效吗?


8.动画连续调用的原理是什么?


9.做过一些 SDK 的操作吗?


10.协程可以在 Java 项目中使用吗?


11.SharedPreference 原理?读取 xml 是在哪个线程?


12.了解 APK 打包的过程吗?


13.class 文件的组成?常量池里面有什么内容?


14.自动装箱发生在什么时候?编译期还是运行期


15.bugly 日志收集的原理是什么?


16.启动优化做过什么工作?如果首页就要用到的初始化?


17.DataBinding 原理

滴滴三面

1.插件化的原理是什么?有没有什么非运行时插件化的解决方案?


2.ARouter 的原理是怎样的?注解处理器是处理 java 还是字节码


3.java 和字节码有什么区别?


4.kotlin 空安全的原理是什么?


5.性能优化做过什么工作?有用过什么工具?有没有精确测量的工具?


6.kotlinc 与 javac 编译字节码有什么区别?


7.你在团队中是怎样一个角色?


8.你有没有做什么推进项目的工作


9.说说热修复的原理?

【附】相关架构及资料


资料领取

点击这里免费获取Android IOC架构设计等资料

领取获取往期 Android 高级架构资料、源码、笔记、视频。高级 UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter 全方面的 Android 进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

用户头像

VX公众号:编程进阶路 2020.11.28 加入

还未添加个人简介

评论

发布
暂无评论
Android性能优化之启动优化实战篇!分享面经