- 博客(4)
- 收藏
- 关注
原创 垃圾回收
垃圾回收 在对对象进行回收前需要对垃圾进行采集,不同的虚拟机实现可能使用不同的垃圾收集算法,不同的收集算法的实现也不尽相同。不同的算法各有各的优劣势。常用的收集算法有:标记-清除算法 算法分为标记和清除两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收被标记的对象。如上图所示。标记-清除算法不会进行对象的移动,直接回收不存活的对象,因此会造成内存碎片。 根据上图...
2018-03-08 08:36:09 219
原创 内存抖动与OOM检测
检测优化内存抖动 内存抖动的问题我们可以通过Alloctions Tracker来进行排查。在Android Studio中点击memory profiler中的红点录制一段时间的内存申请情况,再点击结束。内存抖动在Android Profile中表现为: 对于基于内存抖动,我们主要需要注意尽量避免在循环体或者频繁调用的函数内创建对象,应该把对象创建移到循环体外...
2018-03-08 09:15:28 688
原创 Android进程保活
进程的优先级与Low Memory Killer机制 Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,需要清除旧进程来回收内存。 为了确定保留或终止哪些进程,系统会对进程进行分类。 需要时,系统会首先消除重要性最低的进程,然后是清除重要性稍低一级的进程,依此类推,以回收系统资源。 系统出于体验和性能上的考虑,app在退到后台时系统并不会...
2018-03-07 14:53:35 176
原创 APP启动优化
APP启动流程 当用户在launcher上点击应用图标,系统需为app创建进程,app在进程中创建组件(即用户点击图标到显示第一个页面的过程) 启动时间 当Activity执行到onResume方法,再等待到View树构建完成,此时才算app完全启动 在log日志中 查看叫 Displayed 日志 过滤一定要是 NoFilters 命令行查看...
2018-03-07 08:48:09 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人