我会问的一些Android面试题
页面
-
Activity的生命周期以及一些场景下对应执行什么方法
简介:
1. onCreate #Activity被创建时调用 2. onStart #Activity能被用户看见,但是没有获得焦点 3. onResume #Activity获得焦点,此时Activity成为前台Activity 4. onPause #Activity失去焦点,但是依然可见 5. onStop #Activity不可见,此时Activity称为后台Activity 6. onDestory #Activity被销毁 7. #(onRestart:Activity重新启动)
详情 -> 深入理解Activity的生命周期
主要理解下面这张图:
-
Activity的启动模式以及应用场景
4种启动模式简介:
-
standard 默认模式
-
singleTop 栈顶复用模式
-
singleTask 栈内复用模式
-
singleInstance 全局唯一模式
详情 -> 彻底弄懂Activity四大启动模式
-
-
Fragment相关
-
Fragment加载到Activity的两种方式
-
FragmentPagerAdapter和FragmentStatePagerAdapter有什么区别呢?
FragmentStatePagerAdapter在切换的时候会回收fragment 而FragmentPagerAdapter在切换时会将fragment与viewPager分离,并保存fragment的ui信息,相比之下FragmentStatePagerAdapter更节省内存。
-
Fragment的生命周期
-
Fragment与Activity通信
-
Fragment懒加载实现 (+)
-
-
Service相关
-
Service启动方式
startService() bindService()
-
Service的生命周期
-
IntentService 和 Service区别
-> IntentService 示例与详解 -
Service和Thread区别 (+) -> service和thread的区别
-> Android Service最全面的解析
-
-
View理解
-
View绘制流程
-
View事件分发机制
-> Android事件分发机制完全解析,带你从源码的角度彻底理解
-
异步消息处理机制
-
Looper、Handler、Message三者关系
-> Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
性能优化 Android性能优化的方方面面
-
java相关优化
- 强引用,软引用,弱引用,虚引用
- 内存泄露
-
冷启动白屏优化
-
布局优化
- include 重用布局
- merge 减少视图层级
- ViewStub 延迟加载
- 减少View的使用
-
内存优化
- bitmap
- 三级缓存 : 网络,内存,文件
- 缓存算法 简介
- bitmap
-
安装包瘦身
-
ANR
屏幕适配方法
网络相关
-
网络框架
-
json和xml
-
Http和Https
-
TCP和UDP协议
-
Get和Post请求
加分项
-
版本控制工具
-
MVC,MVP,MVVM
-
DateBinding
-
Kotlin
-
RxJava
-
开源框架了解源码