内存管理机制概述:

  • 分配机制:操作系统会为每一个进程分配一个合理的内存大小,从而保证每一个进程能够正常的运行,不至于内存不够使用,或者某个进程占用过多的内存。
  • 回收机制:在系统内存不足的时候,系统有一个合理再分配资源的一个机制,从而保证新的进程能够正常运行,回收的时候就要杀死那些正在占用内存的进程,而Android系统也有一套自己的回收机制。

Android内存管理机制:

  • 分配机制:Android在为每个进程分配内存的时候采用了弹性的分配方式,一开始不会为APP分配太多的内存,而是开始只是分配一个小额的量,而这个量是根据手机物理内存的量而动态调整的,随着APP不断的运行当发现内存不够用了则android会为其分配一个额外的内存大小,但是这个额外的内存大小不是随意分配的,是有大小限制的,而Android的最大限度就是让更多的进程存活的内存当中,这样的话当用户再一次启动该APP进程时不需要重新创建进程,这时只要恢复已有的进程就可以了,减少APP启动的时间提高了用户体验。
  • 回收机制:由于Android是尽可能的让进程都存活以提高用户体验,当内存不足的时候,则会按一定的规则去杀掉APP以释放内存,则会按进程的优先级进来回收。

内存管理机制的特点:

  • 更少的占用内存。
  • 在合适的时候,合理的释放系统资源,并非内存越少APP越好,因为内存抖动也会影响APP性能。
  • 在系统内存紧张的情况下,能释放掉大部分不重要的资源,来为Android系统提供可用的内存。
  • 能够很合理的在特殊生命周期中,保存或者还原重要数据,以至于系统能够正确的重新恢复该应用。

内存优化方法:

  • 当Service完成任务后,尽量停止它,可以采用IntentService。
  • 在UI不可见的时候,释放掉一些只有UI使用的资源。
  • 在系统内存紧张的时候,尽可能多的释放掉一些非重要资源。
  • 避免滥用BitMap导致的内存浪费。
  • 使用针对内存优化过的数据容器。
  • 避免使用依赖注入的框架。
  • 使用ZIP对齐的APK。IDE已经集成了
  • 使用多进程。

内存溢出 vs 内存泄漏:

内存溢出会出现OOM异常,而内存泄漏不一定会抛异常,但是它是造成OOM的主要原因。

转载于:https://www.cnblogs.com/webor2006/p/8988923.html

Android异常与性能优化相关面试问题-内存管理面试问题详解相关推荐

  1. Android异常与性能优化相关问题及解决办法

    目录 ANR异常问题及解决方式 OOM异常问题及解决方式 BitMap相关问题 UI卡顿问题 内存泄露问题及解决方式 内存管理 冷启动优化问题 其他优化介绍 ANR异常问题及解决方式 什么是ANR A ...

  2. 游戏性能优化技术干货分享——内存管理

    项目的性能优化主要围绕CPU.GPU和内存三大方面进行.接上期CPU优化专讲,我们本期和大家分享内存方面的优化心得. 无论是游戏还是VR应用,内存管理都是其研发阶段的重中之重. 然而,在我们测评过的大 ...

  3. JavaScript性能优化【上】-- 内存管理、垃圾回收

    JavaScript 内存管理 内存为什么需要管理 function fn () {arrList = []arrList[100000] = 'lg is a coder'}fn() // 内存泄露 ...

  4. C++性能优化(十一) —— 内存管理器性能分析

    一.PTMalloc2 1.PTMalloc2优点 (1)集成在glibc中,Linux主要发行版的通用实现. 2.PTMalloc2缺点 (1)后分配的内存先释放.由于ptmalloc2收缩内存是从 ...

  5. Android内存管理机制官方详解文档

    很早之前写过一篇<Android内存管理机制详解>点击量已7万+,现把Google官方文档整理输出一下,供各位参考. 一.内存管理概览 Android 运行时 (ART) 和 Dalvik ...

  6. Android性能优化常见问题,附架构师必备技术详解

    前言 可能有人会觉得,我技术牛逼就行了,为啥还要提高写文档的能力,有这功夫我还不如多看看源码分析?这是一些初级或者刚入门的工程师的普遍的困惑.这是因为大部分刚刚入行的朋友有一个很深的误区,就是他们以为 ...

  7. Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...

    源码分析相关面试题 Activity相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试题 与人事相关面试题现在三四月份,金三银四最好找工作时间, ...

  8. 2021新型面试题-血虐面试官斩获字节跳动Offer!Android 精选版面试题级答案(Android+Java+算法+性能优化+四大组件...)

    前言 双非本科,自认为技术水平不差,8月从美图实习离职回学校,各种倒霉的事不断,到现在11月,为了找个好的环境复习,9月又在学校附近租了房,基本是没有面试通知就学不进去,前面由于过于自信,也没拿个保底 ...

  9. Android 性能优化 之初识Java内存区域

    前言     不管是日常开发,还是面试,我们都会和内存打交道,因为内存是支持软件运行的基本硬件环境.了解Android 内存管理,就有必要了解Java GC机制,必须要理解JVM 内存区域,这里我们主 ...

最新文章

  1. 有无目标的人生差10倍!赶紧和娃把新年计划做起来
  2. Factorization Machine
  3. python第一个发行版本由c语言实现_【Python】讲真,你知道Python咋来的吗?
  4. 根据经纬度计算范围_地理计算专题(上)
  5. 用Java 编写菜单价格和的程序_使用JAVA 编写一个程序,显示5中商品价格,用户可以选择多种商品并在其后的文本框输入购买的数量。...
  6. Windows xp 定时关机命令
  7. eNSP中AC用Web方式登录
  8. 在MySQL中,一条查询语句是如何执行的
  9. 聊聊机器学习中的损失函数(hinge/soft/square/0-1)
  10. Android 5.0 屏幕录制/截屏
  11. 如何把 .mobi 格式的电子书转换成 PDF
  12. 西门子PLC,STEP7 v5.5安装以及仿真软件Plcsim v5.4 sp5安装
  13. 浅析汽车融资租赁业务模式
  14. 你未必知的拼音打字快打十招
  15. 诊断皮肤癌,人工智能比医生更出色
  16. 【从0到1搭建LoRa物联网】15、LoRa连接到The Things Network
  17. 配置多SessionFactory
  18. python爬虫模拟登录网页:登录wish
  19. idea如何给main函数中的args[] 字符串数组赋值
  20. java教务管理系统数据库设计_诚梦计算机毕业设计最新选题题目及程序

热门文章

  1. 洛谷 P1550 浇水
  2. Java实现单例模式
  3. 【BZOJ2625】[Neerc2009]Inspection 最小流
  4. HDU 2896 病毒侵袭 AC自动机
  5. Java其他API介绍
  6. Web前端开发css基础样式总结
  7. Mysql-linux下密码修改,忘记密码修改,超级管理用户修改
  8. Cracking The Coding Interview5.2
  9. Windows Phone7 -- ApplicationBar具体使用说明(设置显示迷你模式和背景半透明模式)...
  10. 发票管理及打印系统的部分代码