前言
b.png因为现在的疫情原因,我有的老同学已经在家待业了一段时间,也是近段时间跟他联系一下,就跟我吐槽到现在的面试,因为疫情的原因光是在去往面试的路上都显得困难重重,我也是觉得不如现在我也正好投递一些简历,正好看看行情,我也是在这种机缘巧合下向B站投递出了第一份简历,可能是天意使然,最后竟收到了来自B站offer
一面
自我介绍
自我介绍这部分大家可以借鉴我前面发过的几篇攻略文章,每个人的经历虽然各不相同,但是一定最主要的是要组织好自己的语言,要将自己的个人信息,之前做过什么方面的技术,在学校的时候参加过什么级别的竞赛,这些都要介绍清楚
你在之前的项目中负责什么
这个问题是面试官必问的,而且会对其深挖,直到问到你答不出来为止,所以大家在面试之前一定要准备好,将相关技术的难点都摸透,哪怕在在项目中并没有实际用过也没关系
在之前项目中常用的第三方框架
● 屏幕适配
● RxBus 消息传递
● AgentWeb webView封装使用
● AndroidUtilCode 工具类
● 万能适配器Adapter
● Xpopu弹窗
什么是Android的模块化、组件化、插件化
● 模块化:一个程序按照其功能做拆分,分成相互独立的模块(例如:登陆,注册)。模块化的具体实施方法分为插件化和组件化
● 组件化:是将一个app分成多个模块,每个模块都是一个组件(module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件,但是最终发布的时候将这些组件合并成一个统一的apk,这就是组件化开发
● 插件化:插件化开发和组件化不同,插件化开发就是将整个app拆分成很多模块,每个模块都是一个apk(组件化的每个模块是一个lib),最终打包的时候将宿主apk和插件apk分开打包,插件apk通过动态下发到宿主apk,这就是插件化
用过什么设计模式
● 观察者模式
● 适配器模式
● 单例模式策略模式
● 责任链模式工厂模式
Android动画分为哪几类
● View Animation
● Drawable Animation
● Property Animation
属性动画的计算原理是什么
● Duration
● TimeInterpolation
● TypeEvaluator
● Animation sets
● Frame refreash delay
● Repeat Country and behavoir
android 创建线程的三种方式
● 匿名类实现Runnable接口的方式
● 继承Thread类方式
● 实现Runnable接口
内存泄漏、内存溢出具有什么特征
● 内存泄漏缺陷具有隐蔽性、积累性的特征,比其他内存非法访问错误更难检测
● 内存溢出就是内存不够,是指运行程序时要求的内存,超出了系统所能分配的范围,从而导致发生内存溢出
二面
自我介绍
在项目中的工作职责
● 拍照裁剪业务
● 单元测试库
● 性能监控
● 内存泄漏检测
谈谈Android开发的流程
● 明确需求
● 预算评估
● 原型设计
● UI设计
● 开发
● 测试调试
● 更新
Android中View框架的工作机制需要哪几个过程
● View树的测量(measure)Android View框架的measure机制
● View树的布局(layout) Android View框架的layout机制
● View树的绘制(draw)Android View框架的draw机制
单元测试的优点有什么
● 提高代码的正确性
● 发现设计问题
● 提升代码可读性
● 顺便微重构
● 启动速度,提升效率
● 多场景保存
崩溃率如何进行优化
● 接入bugly、友盟等三方监控工具,或自主研发崩溃上报工具
● 增强性能测试
● 增加monkey持续性测试
● 增加内存检测
HR面
在二面结束之后大概过了三天左右,HR方面发来信息告诉我可以进入下一轮面试了,说实话我是比较吃惊的,我以为至少还有第三面然后再进行HR面,HR面大概用了半个小时的时间,面试内容大致只问了我关于为何要从上一家公司离职,对进入到一个新环境中工作会不会有什么不适应,以后想往哪个方向发展,最后问了我当前的薪资和期望薪资是多少
总结
虽然现在Android 工程师之间的竞争已经已经越来越激励了,但是Android开发仍然是一个需求量较多的行业,对技术人才的需求从来没有终止,当然相对而言对我们的要求也是在日益增长,所以我们必须要成为一个优异的Android开发者,提升自己才能在以后的职业发展中得到更多更好的机遇
我利用休闲时间收集并整理了关于Android方面的进阶资料和学习笔记可以让大家更快的上手,还有更多Android 面试方面的真题可以供大家学习
面试真题.png
如果大家有需要或者有关于面试这一块还有不懂的问题
** 可以直接在评论区下方留言或者私信我**
网友评论