`
80demon
  • 浏览: 77835 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android内存管理基本介绍

 
阅读更多

 Android内存管理基本介绍

  Android 内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分 Bug 外,它提供了用于支持 Android 平台的设备驱动,其核心驱动主要包括:

  Android Binder,基于OpenBinder框架的一个驱动,用于提供Android平台的进程间通讯(IPC,inter-process communication)。 源代码位于drivers/staging/Android/binder.c

  Android 电源管理(PM) ,一个基于标准Linux电源管理系统的轻量级的Android 电源管理驱动,针对嵌入式设备做了很多优化。源代码位于kernel/power/earlysuspend.c kernel/power/consoleearlysuspend.c kernel/power/fbearlysuspend.c kernel/power/wakelock.c kernel/power/userwakelock.c

  低内存管理器(Low Memory Killer) ,相对于Linux标准 OOM(Out Of Memory)机制更加灵活,它可以根据需要杀死进程来释放需要的内存。 源代码位于drivers/staging/Android/lowmemorykiller.c

  匿名共享内存(ashmem) ,为进程间提供大块共享内存,同时为内核提供回收和管理这个内存的机制。 源代码位于mm/ashmem.c

  Android PMEM(Physical) ,PMEM 用于向用户空间提供连续的物理内存区域,DSP和某些设备只能工作在连续的物理内存上。 源代码位于drivers/misc/pmem.c

  Android Logger ,一个轻量级的日志设备,用于抓取Android 系统的各种日志。 源代码位于drivers/staging/Android/logger.c

  Android Alarm ,提供了一个定时器用于把设备从睡眠状态唤醒,同时它也提供了一个即使在设备睡眠时也会运行的时钟基准, 源代码位于drivers/rtc/alarm.c

  USB Gadget 驱动 ,一个基于标准Linux USB gadget 驱动框架的设备驱动,Android的USB驱动是基于gaeget框架的, 源代码位于drivers/usb/gadget/

  Android Ram Console ,为了提供调试功能,Android允许将调试日志信息写入一个被称为RAM Console的设备里,它是一个基于RAM的Buffer。 源代码位于drivers/staging/Android/ram_console.c。

  每个Android应用都运行在一个单独的进程在它自己的Dalvik的实例,负责所有的Android运行时的内存和进程管理的责任,停止和死亡过程的必要的管理资源。

  Dalvik 和Android运行时间在一个Linux内核,处理低层次的硬件交互,包括驱动程序和内存管理,其API提供下层的服务,功能,和硬件的访问。

  Dalvik虚拟机是基于寄存器的虚拟机的优化,以确保设备可以有效地运行多个实例。 它依赖于Linux内核线程和低级的内存管理。

分享到:
评论

相关推荐

    Android 内存溢出问题

    本篇文章将深入探讨Android内存管理的两个核心概念:堆(Heap)和栈(Stack),以及如何理解和解决Android内存溢出问题。 1. 堆与栈 堆和栈是Java虚拟机(JVM)中的两种主要内存区域,它们各自具有特定的用途和...

    Android内存管理

    Android内存管理是Android应用开发中的核心概念之一,它关乎到应用程序的性能、稳定性和用户体验。本文将深入探讨Android系统的内存管理机制,包括内存分配、内存回收、内存优化以及避免内存泄漏等方面。 首先,...

    Unity调用Android查看内存信息2

    高FPS是保证游戏流畅性的关键,而内存管理则直接影响了游戏的稳定性和资源效率。监控和控制内存占用有助于预防因内存泄漏导致的游戏卡顿或崩溃。通过Unity与Android的交互,开发者可以实时获取性能指标,及时调整...

    使用Android Studio检测内存泄露(LeakCanary)

    除了上述工具,开发者还应掌握一些基本的内存管理原则,例如: 1. 避免静态变量长时间持有Activity或其他Context相关的对象,因为这可能导致Context泄露。 2. 使用WeakReference或SoftReference来弱化对象之间的...

    Android代码-安卓内存清理 改进版

    安卓手机内存清理 开源版,包括内存加速,垃圾清理,自启管理,软件管理等。 说明 >现修复android5.0以上不能查看进程的问题,暂时不能支持7.0的查看进程的功能,欢迎各位提出相应的意见或建议,如不能配置好环境,...

    [置顶] Android 之 内存管理

    ### Android内存管理详解 #### 一、引言 在Android应用程序开发中,内存管理是非常重要的一个环节。由于Android系统的资源限制以及对应用性能的要求,合理有效地管理内存不仅可以提高应用的性能,还可以避免出现...

    android低内存管理策略

    #### 一、Android内存管理概览 Android操作系统以其高度定制化和优化的特性,尤其在资源有限的移动设备上表现出色。其内存管理机制是确保系统流畅运行的关键之一。不同于传统的Linux OOM(Out Of Memory)杀手机制...

    Android MAT 内存分析 工具

    **五、MAT与Android内存优化** MAT在Android开发中的应用主要是查找和修复内存泄漏,优化对象生命周期管理,减少内存占用,提升应用性能。开发者应定期进行内存分析,特别是在处理大量数据或长时间运行的应用中。 ...

    Android内核驱动——内存管理

    ### Android内核驱动——内存管理 #### 一、LowMemoryKiller概述 在Android系统中,内存管理是一项至关重要的任务,特别是在资源有限的移动设备上。为了确保系统的稳定性和响应速度,Android内核引入了一种名为`...

    android手机开发基本知识介绍

    了解内存管理和线程同步对提升应用性能至关重要。使用工具如Profile GPU Rendering、Memory Profiler等进行性能分析,并遵循最佳实践来减少CPU使用、优化内存占用和提高帧率。 10. **组件间通信**: 使用Intent...

    android 内存分析工具

    以下是对Android内存分析工具的详细阐述: 1. **内存分析的重要性** - **性能优化**:通过内存分析,可以发现不必要的内存占用,减少内存浪费,提升应用运行速度。 - **防止内存泄漏**:内存泄漏可能导致应用耗尽...

    android模拟内存分配

    在Android系统中,内存管理是优化应用程序性能和稳定性的重要环节。操作系统作业,特别是模拟内存分配与分区回收,是理解整个系统运行机制的关键。本文将深入探讨Android中的内存分配策略及其在实际操作中的应用。 ...

    Android App定位和规避内存泄露方法研究

    首先,了解内存泄露的基本概念和Android内存管理模型是很有必要的。Android应用的内存主要分为几种类型:Virtual Set Size (VSS),表示虚拟耗用内存;Resident Set Size (RSS),表示实际使用的物理内存;...

    个人编写Android进程管理器源代码,可完美运行

    这些进程是操作系统资源分配的基本单位,包括内存、CPU时间等。Android会根据进程的优先级和当前系统资源状况来决定哪些进程应该被保留,哪些需要被杀死。 二、Android进程级别 Android定义了五种进程级别: 1. **...

    清理释放Android 安卓手机内存空间方法教程

    #### 一、了解Android内存管理机制 首先,我们需要了解Android系统的内存管理机制。Android系统会自动管理应用进程,当系统内存紧张时,会自动终止后台不活跃的应用进程,释放其占用的内存资源。但这种自动管理有时...

    android 内存摘抄

    ### Android内存管理与系统资源获取方法 #### 一、通过读取特定文件获取系统资源信息 在Android系统中,为了方便开发者对系统状态进行监控,提供了多个特殊文件,通过读取这些文件,可以获取到系统的内存、CPU等...

    Android内存泄漏详解专栏

    ### Android内存泄漏详解 ...通过理解内存泄漏的概念、了解Java内存管理机制以及掌握一些常用的内存泄漏检测工具和方法,开发者可以有效地预防和解决内存泄漏问题,提高应用的整体稳定性和用户体验。

Global site tag (gtag.js) - Google Analytics