热修复
流程
1,用dx命令对class打包
2,双亲委托机制,先看自己缓存有没有,在看上一层classLoader有没有,没有再自己loadclass
RSS,PSS,USS
主要uss 这个是自己独占的
rss 是全部的
pss 是共享库按比例分配的
okhttp
队列,同步队列,异步进行队列,异步准备队列
同步队列直接进入队列请求
判断是不是 总请求<=64,当前host链接<=5
是的话进入异步进行
否则异步准备
LinkedHashmap
//accessOrder 为true的情况,插入和访问都会放在尾部
public LinkedHashMap(int initialCapacity,
float loadFactor,
boolean accessOrder) {
}
public V get(Object key) {
Node<K,V> e;
if ((e = getNode(hash(key), key)) == null)
return null;
if (accessOrder)
afterNodeAccess(e);
return e.value;
}
为什么bindService会自动解绑
loadedapk里会记录
private final ArrayMap<Context, ArrayMap<ServiceConnection, LoadedApk.ServiceDispatcher>> mServices
= new ArrayMap<>();
为什么io不管会内存泄漏
因为有部分缓存不是在虚拟机里
其实我们写一个输入输出流
在finalize 方法里就进行close,不过这个太忙了
fragment 只销毁view,不销毁自己,类似FramentPageAdapter
mFragmentManager.beginTransaction().detach(fragment);
计算bitmap大小
1字节= 8比特
rgb888 各占1字节,总共3字节
bitmap
//bitmap 复用换成新的图片以后
bitmap.getAllocationByteCount();//总共大小
bitmap.getByteCount();//新的图片所占用的大小