2022面试经-Android工程师-阅文集团

岗位JD 15-30K·15薪

工作职责:

1、根据业务需求,基于安卓平台进行APP架构设计、开发及维护;

2、负责指导、培训初级工程师,和相关技术分享。

任职资格:

1、计算机相关专业,本科以上学历,5年及以上Android开发工作经验;

2、了解Android开发平台、Framework和底层设计原理;

3、对Android的UI、组件、性能优化、内存优化等有深入实践;

4、良好的开发基础,理解常见设计模式,在实际工作中有很好的实践;

5、具备较强的责任感和主动性,良好的沟通能力和团队协作精神。

面试方式

牛客视频面试

PS:牛客面试平台支持在线画思维导图等,可以准备好相关的文档,结合架构图,便于面试官了解

面试时间构成

60分钟左右 = 项目经验相关30分钟 + Android基础20分钟 + 提问5-10分钟

PS:专业知识比较基础,没有在线做算法题目,面试官人很nice

个人项目经验

1. 架构思想

DDD,TDD,Clean架构,分层架构

2. 项目复杂度

Android基础面试题目

插件化相关

1. 插件化的实现方式,ClassLoader原理

解答:核心双亲委托模式

参考:Android插件化学习之路(二)之ClassLoader完全解析

2. 如何加载插件里的资源文件,如:assert目录的文件

解答:

参考:Android 插件化开发(三):资源插件化
Android插件化学习之加载插件资源

3. 如果调用插件里的Activity

参考:滴滴插件化框架VirtualAPK原理解析(一)之插件Activity管理

Activity基础

1. 切换横竖屏,activity生命周期,会调用那些方法,数据如何保存

解答:个人理解,可以从Android如何设计回答,要让应用层可以在修改屏幕参数时(还包括修改显示大小,字体大小,暗色模式等),如果恢复界面,如:通过AndroidManifest.xml配置,告知系统Activity是否需要重建,及重新new一个Activity,重新new,则代表会重新走正常打开一个Activity的流程(onCreate ->onStart->onResume),
如果重建,则会旧的Activity会回调onSaveInstanceState,新的Activity则会回调onRestoreInstanceState,
如不重建,则依旧还是同一个Activity,只是会回调onConfigurationChanged,告知业务屏幕参数变化了。

针对数据的保存,也可以使用ViewModel,屏幕参数变化了,ViewModel还有统一对象的,可以作为数据的缓存地带。

参考:Activity 横竖屏切换

触摸事件分发

1. 触摸事件的分发流程

解答:基础技术,这里就不过多赘述

参考:Android事件分发机制,

2. 触发事件如何拦截,如ViewGroup如何拦截事件传递给子View

参考:Android进阶——Android事件分发机制之dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent

其他

1. 如果全局定义控件主题,OPPO如果统一页面风格

解答:主题(theme)配置style,或控件指定style

2. 多线程如何共享内存

解答:全局变量?

面试官:如果确保线程安全?

解答:线程安全的数据结构,加锁,读写锁?

面试官:还有吗?

解答:写入到文件里?(其他没明白,真正要考察什么内容,如果是进程间通信还有点难度)

面试后感:

1. 没问性能相关的,内存优化,功耗;没有问三方SDK的源码分析;

2. 可以多主动一下,引导面试自己擅长的领域;

3. 整体面试难度一般。

你可能感兴趣的:(2022面试经-Android工程师-阅文集团)