I:内存泄露常见问题
a.长生命周期对象持有短生命周期对象
1.单例类长期持有短期Activity,View等对象导致泄露
2.内部非静态类持有外部类引用,导致外部类泄露
3.注册的Listener类用完没有返注册导致泄露
4.Cursor,File流等未关闭
5.Thread,Handler等“延后”执行的方法,导致引用类延迟释放。(不一定会泄露)
II:ANR常见问题
a.主线程耗时操作
1.主线程执行“不那么耗时”方法积少成多
2.频繁调用系统同步方法导致等待。比如getSystemService导致在BinderProxy.transactNative发生ANR。
3.synchronized方法导致等待锁。
b.创建大量子线程或者不合适的线程池使用。