0.Activity 的四种启动模式、应用场景 ?
standard 标准模式: 每次启动一个 Activity 都会重新创建一个新的实例。
singleTop 栈顶复用模式: 如果新 Activity 已经位于任务栈的栈顶,那么此 Activity 不会被重新创建,同时会回调 onNewIntent方法,如果新 Activity 实例已经存在但不在栈顶,那么Activity 依然会被重新创建。
singleTask 栈内复用模式: 只要 Activity 在一个任务栈中存在,那么多次启动此 Activity 都不会重新创建实例,并回调onNewIntent 方法,此模式启动 Activity A,系统首先会寻找是否存在 A 想要的任务栈,如果不存在,就会重新创建一个任务栈,然后把创建好 A 的实例放到栈中。
singleInstance单实例模式: 这是一种加强的 singleTask 模式,具有此种模式的 Activity 只能单独地位于一个任务栈中,且此任务栈中只有唯一一个实例。
1.跨进程通信的几种方式
Intent,比如拨打电话
ContentProvider数据库存储数据
Broadcast广播通信
AIDL通信,通过接口共享数据
2.Activity的生命周期
自己背吧
3.Android 4种引用类型
1.强引用:常见的引用方式,无论如何,虚拟机宁愿抛出Outofmemory异常也不会回收的对象。
2.软引用:当内存不足时,会被虚拟机回收。
3.弱引用:当虚拟机执行回收gc时,被回收。
4.虚引用:任何时候都有可能被回收。
4.StringBuffer, StringBuilder的区别
StringBuffer:线程安全
StringBuilder:线程不安全
5.View的绘制原理
View为所有图形控件的基类,View的绘制由3个函数完成
measure,计算视图的大小
layout,提供视图要显示的位置
draw,绘制
6.TCP,UDP区别
TCP是经过3次握手,4次挥手完成一串数据的传送
UDP是无连接的,知道IP地址和端口号,向其发送数据即可,不管数据是否发送成功
7.Android性能优化
布局优化:减少布局层级,使用ViewStub提高显示速度,布局复用。
内存方面:防止内存泄露,使用一些第三方工具检测解决
安装包优化:删除无用资源,优化图片,代码混淆,避免重复库存在,插件化