面经!B站Android面试小记

4093次阅读  |  发布于2年以前

看着我同学最近也在到处投简历,我想着我也投一下看看行情,于是在2022-02-28号,我向B站投出了第一封简历,说实话当初只是想练练手,没想到最后接了B站的offer,也是造化弄人了

一面

技术面,45min左右,基本围绕你简历上写的亮点和你的工作经历展开

1、自我介绍
2、你在项目中负责什么
3、用过什么设计模式,或在Android中常常会碰见的设计模式

单例模式,策略模式,责任链模式(问了一下使用场景),工厂模式等

Android中的观察者模式,适配器模式等

4、有没有做过什么比较有难度的模块

camera2,自定义照片裁剪View

5、你对自定义View有什么了解

回答了一些Path绘制以及触摸事件的处理

6、Android动画

属性动画,ObjectAnimator

7、多线程并发(锁、信号量、syncnorized),syncnorized对象和class有什么区别

ConcurrentHashMap线程安全的原理 1.8之前用的分段式锁,1.8之后用的synchronized,至于具体的细节没有答上来,因为确实也没看过这边源码

8、jni,如何定位jni崩溃

这个我当时回答的是打log,因为项目中用到jni的地方确实不多,当然jni也是可以断点调试的

9、你所开发的应用有多进程吗?进程间是怎么通信的

这个我当时只回答了mmap,稍微聊了一下mmap原理和binder性能对比,后来复盘想起来项目中用到的Broadcast和aidl binder通信都没有回答

10、Webview和native怎么交互的

onUrlLoading拦截Schema

注册js方法(addJavascriptInterface)

11、Android编译打包过程

aapt -> class -> dex -> 签名

12、插桩

ASM插桩,字节码操作

13、性能监控

因为我之前做过一个性能监控库,cpu和mem使用TOP命令解析,Anr通过给MainLooper设置Printer

14、LeakCanary原理

WeakReference + ReferenceQueue,加了一些改进点:new一个弱引用的Object,等这个Object确认被回收后再确认Activity是否正常被回收

15、Jetpack Compose

稍微谈了一下看法,是否在项目中用过

16、算法题:最长公共前缀

LeetCode 14题,easy难度:leetcode-cn.com/problems/lo…

二面

一面结束后5min左右,B站HR就给我打电话过来约了二面 二面也是技术面,20min左右,因为是晚上8点面的,估计人家急着想下班(笑)

1、自我介绍
2、工作职责
3、单元测试的库是怎么做的

基于Mockito和Robolectric:

4、开发模式(流程规范):

开发规范参考了阿里的Java规范和Android规范,选取了一些比较重要的条例和一些自己长时间开发的经验做成了一篇文档

5、崩溃率的优化,做了哪些事情

感觉这里没答好,有点答非所问的意思,我就说了说目前处理bug的一个流程,没有谈到怎么解决一个bug

6、数据打点是怎么做的

我们用的是神策第三方服务

7、内存泄漏工具是怎么做的

这部分同一面LeakCanary原理

8、看你之前做过一个MQTT协议的客户端,是出于个人兴趣吗

是的,当时是想要做一个IM应用

9、在项目中有遇到需要3D渲染展示的内容吗

目前没有

10、两个Activity跳转时方法执行的顺序

一个Activity创建是:onCreate -> onStart -> onResume(之后便在屏幕上显示了) 假设从A Activity跳转到B Activity:A.onPause -> B.onCreate -> B.onStart -> B.onResume -> A.onStop从B返回到A:B.onPause -> A.onRestart -> A.onResume -> B.onStop -> B.onDestory

11、两个Activity传递数据可以通过什么方式
12、什么时候使用Service

后台任务,比如说后台播放音乐等,这里提了一下IntentService是开了一个子线程的

13、Service怎么启动,怎么停止

startService <---> stopService

bindService <---> unbindService

14、包体积优化

清理资源(字体、图片、代码等)

HR面

二面结束后过了2-3天,HR发微信过来恭喜我进入下一轮面试,我问她接下来是还有三面和HR面吗,她回答我说后面就直接是HR面了,说实话我还是挺惊讶的 HR面15min左右,大概就问了一下,为什么要从上家公司离职,我们是一个新部门,处于项目初期,有什么看法之类的,然后问了一下目前的薪资和期望薪资,over~

总结

说实话感觉这次面试太简单了,有点白瞎了我准备了那么多,还做了查漏补缺 ㄟ( ▔, ▔ )ㄏ ,最后祝大家都能找到心仪的工作 (๑•̀ㅂ•́)و✧

Copyright© 2013-2019

京ICP备2023019179号-2