转眼就到了10月份,距离也就剩下2个多月了,这一年中,我们又获得哪些成就,做出了哪些突破呢?
就Android这个行业来说,火热程度逐渐降低,Android就像一座围城,外面的人进不去,里面的人又想出来,加之这两年唱衰的声音增加,Android逐渐成为开发人员避退的存在。
当然,每个时代有每个时代的需求,但高级人才的人在其他领域也是高级人才,而不是因为选择了热门才会一帆风顺。如今Android不复热门,但是大厂高级人才依旧十分紧缺,所以只要有想法、肯付出,就能够成为企业甚至行业的中坚人才。
鉴于很多人估计正在求职或跳槽的路上,这里整理一份Android高级开发工程师面试集锦,对照这些问题进行复习,将会事半功倍。废话不多说,直接上干货!
点击文末卡片获取完整文档
题库目录
Activity
Broadcast Receiver
Service
ContentProvider
Intent
Listview
Fragment
Java基础
性能优化
屏幕适配+AIDL
AIDL
动画
事件处理
经验
真题整理
Activity
1、什么是 Activity?
2、请描述一下 Activity 生命周期
3、请描述一下Activity的四个状态
4、两个 Activity 之间传递数据,除了 intent,广播接收者,content provider 还有啥?
5、Android 中的 Context, Activity,Appliction 有什么区别?
6、Context 是什么?
7、如何保存 Activity 的状态?
8、横竖屏切换时 Activity 的生命周期
9、两个 Activity 之间跳转时必然会执行的是哪几个方法?
10、如何将一个 Activity 设置成窗口的样式
11、Activity 的四种启动模式,singletop 和 singletask 区别是什么?
12、Activity 的四种启动模式,一般书签的使用模式是 singletop,那为什么不使用 singletask?
13、如何退出 Activity ?如何安全退出已调用多个 Activity 的Application?
14、Activity-Window-View三者的关系
Broadcast Receiver
1.如何注册 BroadcastReceiver
2.Android 引入广播机制的用意
3.两种注册各有什么优缺点
4.广播的类型
5.BrocastReceiver 里能否进行耗时操作
6.描述一下广播 BroadcastReceiver 的理解
7.BrocastReceiver 的生命周期和注意事项
Service
1.Activity 怎么和 Service 绑定,怎么在 Activity 中启动自己对应的Service?
2.描述一下 Service 的生命周期
3.Activity、Intent、Service 是什么关系
4.Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?
5.Service 和 Activity 在同一个线程吗
6.Service 里面可以弹吐司么?
7.在 service 的生命周期方法 onstartConmand()可不可以执行网络操作?
8.什么是 Service 以及描述下它的生命周期。Service 有哪些启动方法,有什么区别,怎样停用 Service?
9.什么是 IntentService?有何优点?
ContentProvider
1.请介绍下 Android 的数据存储方式
2.如何使用ContentProvider进行批量操作?
3.说说 ContentProvider、ContentResolver、ContentObserver 之间的关系
4.介绍下 ContentProvider 是如何实现数据共享的
5.为什么要用 ContentProvider?它和 sql 的实现上有什么差别?
Intent
1.请描述一下 Intent 和 IntentFilter
2.Intent 传递数据时,可以传递哪些类型数据?
3.Serializable 和 Parcelable 的区别
4.隐式、显式Intent的区别
Listview
1.当 ListView 数据集改变后,如何更新 ListView
2.ListView 如何实现分页加载
3.如何刷新 ListView 中单个 item 的数据,不刷新整个 ListView 的数据?
4.上拉加载和下拉刷新怎么实现?
5.ListView 中如何优化图片?
6.Listview里有Button点不动?
7.ListView 如何提高其效率?
8.ListView 可以显示多种类型的条目吗?
9.ListView 如何定位到指定位置?
10.如何在 ScrollView 中如何嵌入 ListView?
11.ListView 中图片错位的问题是如何产生的?
12.你知道ListView的setEmptyView方法吗?
Fragment
1.如何切换 fragement(不重新实例化)
2.Fragment 的的优点
3.Fragment 如何实现类似 Activity 栈的压栈和出栈效果
4.Fragment 的 replace 和 add 方法的区别
5.Fragment与Activity之间是如何传值的
6.Fragment生命周期
7.ViewPager对Fragment生命周期的影响
Java基础
1.什么是重载,什么是重写,有什么区别?
2.String、StringBuffer 和 StringBuilder 的区别
3.知道的设计模式有哪些
4.TCP/IP 协议簇分哪几层?TCP、IP、XMPP、HTTP、分别属于哪一层?
5.知道的设计模式有哪些
6.继承和实现的区别
7.final,finally,finalize的区别
8.int和Integer的区别
9.Java中==,equal和hashCode的区别
性能优化
1.如何对 Android 应用进行性能分析
2.什么情况下会导致内存泄露
3.内存溢出的几点原因
4.针对 static 的解决方案
5.线程导致内存溢出及解决
6.举例几种OOM 异常情况
7.如何处理图片过大导致 OOM
8.Android 中如何捕获未捕获的异常
9.ANR 是什么?怎样避免和解决 ANR(重要)
10.多线程间通信和多进程之间通信有什么不同,分别怎么实现?
11.Devik 进程,linux 进程,线程的区别
12.Android 线程间通信有哪几种方式
13.如何合理使用内存?
屏幕适配+AIDL
1.基础概念
2.适配方式
AIDL
1.什么是 AIDL 以及如何使用
2.如何工作?能处理哪些类型的数据?
动画
1、Android 中的动画有哪几类
2、动画能组合在一起使用么?
3、插值器的种类有哪些?
4.如何自定义插值器
5.如何修改 Activity 进入和退出动画
事件处理
1、Handler 机制
2、onTouch 和 onTouchEvent 有什么区别
3、子线程中能不能 new handler?为什么?
4、子线程发消息到主线程进行更新 UI,除了 handler 和 AsyncTask,还有什么?
5、为什么系统不建议在子线程访问UI?
其他
1.开发中都使用过哪些框架、平台
2.三级缓存的原理:
3.清除缓存是怎么做的?
4.推送的好处:
5.为什么数据要以 json 形式传输?
6.项目流程
7.自定义view关键词
8.自定义view的实现思路
9.retrofit使用
10.组件化的优势
11.插件化的优势
12.打包原理
13.安装流程
14.如何防止反编译(提高反编译难度)
15.v1,v2签名结果
16.Android与服务器交互的方式中的对称加密和非对称加密是什么?
17.进程保活方案
18.Binder机制的优势
19.URI和URL的区别
20.TLS/SSL握手
点击文末卡片获取完整文档
————————————————————
最后,死背题目绝对不是有效的复习方式,一定要结合知识体系架构系统的复习,扩充和整理出一套自己的题库,在基础知识点掌握到85%左右时开始搜索近年的大厂面试真题,结合各个大厂对Android开发要求的偏向性有针对的进行复习。
现在互联网行业内卷严重,简历上一定要突出亮点,如果你不是特别出众也没关系,只要专业基本功扎实,项目描述清晰,也能够在众人脱颖而出逆风翻盘!!要牢记努力提升自己,才有机会去更大的平台。