可能需要的Android面试题
前言
里面有一些问题会比较深,相对一些小公司是不会问的这么深的,大厂有些会通过这些问题来考察,也可以作为自己的知识扩展了解其中问题。
- 简述Android系统启动流程
- Android系统中启动的第一个进程是哪个?
- Zygote进程做了些什么工作?
- Activity启动流程中,大部分都是用Binder通讯,为啥跟Zygote通信的时候要用socket呢?
- 反射可以修改final类型成员变量吗?
- 反射获取static静态变量
- 怎么提升反射效率
- 反射原理
- 在java有Serializable的前提下,Android为什么设计出了Parcelable?
- Serializable、Parcelable、Json等序列化方式我们该怎么选择?
- Parcelable一定比Serializable快吗?
- 为什么Java提供了Serializable的序列化方式,而不是直接使用json或者xml?
- WindowManager是什么?和WMS的关系?
- 怎么添加一个Window?
- Window就是指PhoneWindow吗?
- PhoneWindow什么时候被创建的?
- 要实现可以拖动的View该怎么做?
- Activity、PhoneWindow、DecorView、ViewRootImpl 的关系?
- Application中可以直接弹出Dialog吗?
- 关于事件分发,事件到底是先到DecorView还是先到Window的?
- 怎么理解Binder?
- 怎么理解ServiceManager
- 网络通信的过程,以及中间用了什么协议
- TCP连接过程,三次握手和四次挥手,为什么?
- 讲一下TCP协议和UDP协议的区别和场景
- socket和WebSocket
- Https的连接建立过程
- 请给我讲解一下数字签名,为什么真实可靠
- 证书链安全机制
- 建立过程耗时,那么怎么优化呢?
- 讲一下HTTP和HTTPS的区别
- 怎么实现分块传输,断点续传?
- Http传输图片有哪些方式
***************************************************
#Android##面试##Android面试##面试题#