Android内存管理

Android内存管理

APP默认分配内存大小

在Android里,程序内存被分为2部分:

  • native
  • dalvik

android程序内存(native+dalvik)一般限制在16M,或者24M,36M

gDvm.heapSizeStart = 2 * 1024 * 1024;   // heap初始化大小为2M
gDvm.heapSizeMax = 16 * 1024 * 1024;    // 最大的heap为16M

dalvik的堆栈内存

|Heap(堆)|Stack(栈)
---|---|---|
dalvik作用|dalvik大内存数据区|dalvik内存指令区
数据存储|对象实例数据 方法内部变量(复杂类型) 动态属性|基本数据类型 方法内部变量(简单数据变量) 静态属性 类方法 对象地址 常量

  • 堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分 配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。

  • 栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本 类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。

Android的GC如何回收内存

Android的一个应用程序的内存泄露对别的应用程序影响不大。为了能够使得Android应用程序安全且快速的运行,Android的每个应用程序都 会使用一个专有的Dalvik虚拟机实例来运行,它是由Zygote服务进程孵化出来的,也就是说每个应用程序都是在属于自己的进程中运行的。 Android为不同类型的进程分配了不同的内存使用上限,如果程序在运行过程中出现了内存泄漏的而造成应用进程使用的内存超过了这个上限,则会被系统视 为内存泄漏,从而被kill掉,这使得仅仅自己的进程被kill掉,而不会影响其他进程(如果是system_process等系统进程出问题的话,则会 引起系统重启)。

Android系统在运行多个进程时,如果系统资源不足,会强制结束一些进程。优先选择哪个进程来结束是有优先级的。

进程的优先级:

  • 1.Foreground process 前台进程
    用户可见,可以操作. 按钮可以点击(获取焦点) onResume方法被调用了.

  • 2.Visible process 可见进程 可视进程
    onpause方法被调用 但是activity任然界面可见.

  • 3.Service process 服务进程.
    系统会延长维护服务进程存活的周期,直到前台进程和可见进程内存不够用

  • 4.Background process 后台进程
    开启了activity后 最小化了.

  • 5.Empty process 空进程
    没有任何组件运行的进程 开启了activity之后,关闭了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一.操作系统相关基础知识 1.物理内存、虚拟内存、逻辑地址与交换空间 物理内存(RAM):加载到内存地址寄存器中的...
    Geeks_Liu阅读 13,034评论 6 31
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,072评论 25 709
  • Random Access Memory(RAM)在任何软件开发环境中都是非常重要的资源,但在物理内存通常很有限的...
    吾若成疯阅读 4,966评论 0 10
  • 2017.9.19今天继续学习的结构体的类型和运用,老师和我们讲了一部分结构体的使用方法,并且讲了一部分函数,函数...
    王春禹阅读 1,297评论 0 0
  • 先说一点冠冕堂皇的废话,好的目标是成功的一半。不止是春招,所有职业规划或是求职的流程都可以遵循这个套路:自我定位-...
    cherish薯条阅读 2,744评论 4 7

友情链接更多精彩内容