内存泄露的根本原因:长生命周期的对象持有短生命周期的对象。短周期对象就无法及时释放。情况如下:静态集合类引起内存泄露,各种数据链接没有关闭,内部类,单例 避免 OOM 异常: 程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到,即使做了GC操作以后 android为每个app设置了一个内存上限。 减少内存对象的占用,内存对象的重复利用 ANR 也就是在规定的时间内,没有响应。处理:避免在UI线程,BroadcastReceiver 还有service主线程中,处理复杂的逻辑和计算 layout_gravity和gravity的区别: layout_gravity:设置控件本身相对于父控件