前言
对于程序员而言,无论是想加快个人技能成长速度,或是想要升职涨薪,都需要不断进阶,跳槽到规模与业务更大、并且有成熟的技术成长体系的公司当中去。而想要跳槽成功,面试可以说是决定性因素。
在之前的文章中已经给大家整理和分享过许多Android面试真题了,有Android基础、Java基础;也有综合版面试题;还有精简版的174题… 今天则是将Android 初、中、高级的内容分别整合了经典的面试题目,有需要的伙伴可以点个赞、收藏一下, 希望能够帮助各位进阶提升!
注:解析部分已整理成文档,各位可点击文末卡片自取!
初级面试题:
1、Activity启动模式有哪些,分别有什么不同?
2、Service启动模式有哪些,对应的生命周期?IntentService呢?
3、ContentProvider的作用,是否支持多线程和多进程
4、Broadcast的注册方式,对应的生命周期是什么,有序和无序那种可以中断广播?
5、AsyncTask的作用,如何使用(包括有哪些方法,能说出同步异步,能说出不同Android版本下的区别加分)
6、有哪些异步的方式?
7、Handler机制
8、Dialog的使用及其生命周期
9、Activity的生命周期,能否改?
10、Fragment的生命周期,能否改?
11、Activity和Fragment如何通信
12、View的绘制机制
13、View的事件传递机制
14、如何监听手势
15、ImageView设置图片显示有哪几种模式,有什么区别?
16、有哪些存储方式
17、SharedPreferences是否支持多进程、多线程
别看以上常问的是入门级的,但是有两三年开发经验能回答圆满的人不多。
中级面试题:
1、如何理解Activity的任务亲和性
2、如何让Service为单独的进程
3、IntentService的实现原理
4、LocalBroadcast的作用,实现原理,相对于Broadcast的优势在哪,劣势在哪
5、Handler的缺点,会不会造成内存泄漏,有则如何解决
6、Fragment与Activity的区别和联系
7、Fragment如何缓存布局
8、Fragment与ViewPager的搭配使用,有没有问题重叠问题,怎么解决
9、同时提供侧滑和上下滑动,如何解决事件传播问题
10、是否使用过Design包
11、嵌套滑动理解
12、behavior的原理
13、对设计模式有什么看法,经常使用的有哪些?
中级的稍微偏底层一些,这个主要考察平时是否关注而不是一味地怼业务需求。
高级工程师面试题:
1、Activity的启动过程
2、Service创建为单独进程会有哪些问题?
3、简述AIDL的构建过程
4、IPC机制有哪些?
5、android多进程通信方式,内部原理
6、App启动的入口在哪?
7、LRU缓存算法
8、Bitmap的有哪几种压缩算法,有啥区别?
9、图片在手机本地存储大小和在内存大小是否一致,为什么,Android默认像素一般占几个字节?
10、第三方框架的熟练程度,如:
- 1、若用过Volley网络框架,则询问其架构,如何使用,自带网络缓存判断过程,与Okhttp、retrofit、RxJava 等网络框架的区别,原理
- 2、若用过Glide图片框架,则询问其架构,如何使用与毕加索、retrofit等框架区别
- 3、若用过ORM框架,则询问目前常见几种框架区别、优缺点,如何改进
11、SharedPreference内部实现原理
12、模块化、插件话、组件化等分别有什么区别,对用有什么好处
13、说说MV * 模式,并画出做过项目的架构图
14、对跨平台方案有哪些了解,使用过哪些? 比如RN
15、对大前端有什么看法,了解多少?使用过什么?
16、对其他语言的了解,kotlin,python、php、c++等
17、兴趣爱好是什么?对未来有什么规划?
尾声
目前是一些经常会被问到的,当然只是列举了Android 开发方向的,Java的一些还没列举,比如异常、网络、多线程、JCF等等。
最后
虽说Android早已不像过去那般火爆,但各大厂对于中高级开发者仍旧是求贤若渴,想要获取更丰厚的薪资,打铁还得自身硬。对于框架、源码、原理、项目实操经验,都必须有足够的知识储备,才可以在面试中击败面试官。希望本文能对各位有所帮助, 共勉!!!
之后也会更新Android学习笔记汇总,主要包括:【 底层原理+项目实战+面试专题】
1、底层原理(Android进阶、架构设计、NDK、跨平台、底层源码…)
2、项目实战(一线互联网大厂真实项目实战训练)
3、面试专题(大厂内推+简历优化+面试技巧+Android筑基+分布式+开源框架+微服务架构+性能优化+JVM 等一线互联网企业面试题)