我们都知道 Android 的知识非常广,面试问的涉及也非常广泛,重点包括:Java 基础、Flutter,Framework源码、Kotlin、数据结构与算法、计算机网络、NDK音视频开发、微信小程序、一线互联网面试真题解析等等,涉及的知识点何其庞大,所以我们在复习的时候也往往无从下手。
今天小编给大家带来一套拿下了阿里、字节跳动这些一线大厂offer的学习文档,PDF内容非常全面,包括 :Handler、Activity相关、Fragment、service、布局优化、AsyncTask相关、Android 事件分发机制、 Binder、Android 高级必备 :AMS,WMS,PMS、Glide、 Android 组件化与插件化等和技术栈!
1、什么是 Activity?
2、请描述一下 Activity 生命周期
3、常 见 的 Activity 类 型 有 FragmentActivitiy , ListActivity,TabAcitivty 等。请描述一下 Activity 生命 周期
4、如何保存 Activity 的状态或者(Activiy 重启怎么保存数 据?)
5、 两个 Activity 之间跳转时必然会执行的是哪几个方 法?
6、 横竖屏切换时 Activity 的生命周期(★★★★)
7、 如何将一个 Activity 设置成窗口的样式
8、 如何退出 Activity?如何安全退出已调用多个 Activity 的 Application?(★★★★)
9、 Activity 的 四 种 启 动 模 式 , singletop 和 singletask 区别是什么?一般书签的使用模式是 singletop,那为什么不使用 singletask?
10、Android 中的 Context, Activity,Appliction 有 什么区别?(★★)
11、两个 Activity 之间传递数据,除了 intent,广播接 收者,content provider 还有啥?
1、如何对 Android 应用进行性能分析
2、什么情况下会导致内存泄露(★★)
3、如何避免 OOM 异常(★★★★)
4、Android 中如何捕获未捕获的异常(2020.5.5)(★★★)
5、 ANR 是什么?怎样避免和解决 ANR(★★★★★)
6、Android 线程间通信有哪几种方式(★★★)
7、Devik 进程,linux 进程,线程的区别(★)
8、描述一下 android 的系统架构?
9、android 应用对内存是如何限制的?我们应该如何合 理使用内存?(2020.01.24)(★★★★)
10、简述 android 应用程序结构是哪些?(2020.01.24) (★★★★)
一、 自我介绍(★★★★★)
二、 开发中都使用过哪些框架、平台(★★★★★)
三、 都使用过哪些自定义控件(★★★★)
四、 自定义控件:绘制圆环的实现过程(★★)
五、 自定义控件:摩天轮的实现过程(★★)
六、 自定义控件:可拖拽排序的 GridLayout 的实现 过程(★★)
七、 流式布局的实现过程(★★★★)
八、 项目的流程(★★★★★)
九、 项目中常见面试题(2020.5.5 更新)
十、 即时通讯是是怎么做的?(★★★★★)
1、Java 中引用类型都有哪些
2、什么是重载,什么是重写,有什么区别?
3、String、StringBuffer和StringBuilder的区别
4、关键字final和static是怎么使用的
5、TCP/IP协议簇分哪几层?TCP、IP、XMPP、HTTP、分别属于哪一层?
6、谈一谈java线程模型
7、java多线程同步锁
8、你所知道的设计模式有哪些
9、单例设计模式
10、适配器设计模式
1.android 事件分发机制,请详细说下整个流程
2.android view 绘制机制和加载过程,请详细说下整个流程
3.android 四大组件的加载过程,请详细介绍下
4.Activity的启动模式
5.A、B、C、D 分别是四种 Activity 的启动模式,那么 A->B->C->D->A->B->C->D 分别启动,最后的 activity 栈是 怎么样的
6.Activity 缓存方法
7.Service 的生命周期,两种启动方法,有什么区别
8.怎么保证 service 不被杀死
9.静态的 Broadcast 和动态的有什么区别
10.Intent 可以传递哪些数据类型