Dalvik虚拟机的内存管理

Android Dalvik虚拟机 对象创建内存分配流程 本篇文章介绍我们在日常开发使用Java时new对象的时,Dalvik在堆上的内存分配是如何分配的。内存又和gc相关,下篇文章会分析Dalvik的gc流程。 阅读详情

    Dalvik虚拟机的内存分为三种类型: Java Object Heap,    Bitmap Memory,   Native Heap.    下面,就这三种类型进行详细讲解:

      

    一.    Java Object Heap:

     Java Object Heap是用来分配Java对象的,代码中new出来的Java对象都在Java Object Heap中。 Java Object Heap最小值和最大值默认是2M和16M, 不过不同的手机可能设置不同的值。  在SDK中的ActivityManager, 使用getMemoryClass来获取本机的最大值。

    Java Object Heap的最大值也就是我们平时所说的Android应用程序进程能够使用的最大内存。这里必须要注意的是,Android应用程序进程能够使用的最大内存指的是能够用来分配Java Object的堆。


   二.    Bitmap Memory:

     BitmapMemory 也称为External Memroy ,是用来处理图像的。 在Android3.1之前,BitmapMemory是在Native Heap中进行分配, 但是这部分内存同样计入到了Java ObjectHeap中 。在3.1之后的版本中, BitmapMemory直接在Java Object Heap中进行分配,可以接收GC管理了。

  

     三.    Native Heap:

       在Android Native Code中使用malloc分配出来的内存,就是Native Heap.   这部分内存不受Java Object Heap限制,可以自由使用,但是会受到系统限制。


        在Android3.1以及更高的版本中,我们可以在AndroidManifest.xml的application标签中增加一个值等于“true”的android:largeHeap属性来通知Dalvik虚拟机应用程序需要使用较大的Java Object Heap。事实上,在内存受限的手机上,即使我们将一个应用程序的android:largeHeap属性设置为“true”,也是不能增加它可用的Java Object Heap的大小的,而即便是可以通过这个属性来增大Java Object Heap的大小,一般情况也不应该使用该属性。


     注: 参考文章 http://blog.youkuaiyun.com/luoshengyang/article/details/8852432

Dalvik虚拟机内存管理 立即下载

相关推荐

IPMI的SOL (Serial Over LAN) 和 UART

UART全名是Universal Asynchronous Receiver/Transmitter(通用異步接收/发送器),它是一个常用的異步串行传输协议。透过UART传输前,接收方须要先知道传输方的鲍率(Baud rate):单位时间内,讯号状态变化的次数。例如 115200 bps,表示每秒会传送115200个bits--> 因此读取率就是 1/115200=8.6微秒读取一次讯号。封包内的资料长度:通常是 8bits。

yeiris的博客 1万+

了解 jvm+dalvik+art(1)

简单了解一下 jvm delvik art 是个什么东西。

大毛的博客 161

Keil MDK安装NRF52832开发环境全攻略(附系统时间错误解决方案)

本文详细介绍了如何使用Keil MDK搭建NRF52832开发环境,包括基础软件安装、项目配置关键步骤以及常见问题解决方案。特别针对系统时间错误导致的编译失败问题提供了实用解决方法,帮助开发者快速上手NRF52832开发。

weixin_29168153的博客 505

Android Dalvik内存管理细节分析总结

是的, 在前两天的Google IO大会上推出的Android L上,ART已取代dalvik成为首选运行时环境,这似乎表示dalvik的时日已经不多了。但看了一半总不能半途而废,无论如何还是总结下吧。在阅读dalvik代码过程中参考了一些资料,在本文最后列出。这些资料从不同角度对dalvik内存相关做了分析,但有的片面或过于概括,本文主要对整体主要流程作下梳理,并对个人较感兴趣的细节进行探究。能力有限,仅供参考,如果发现错误,还烦请告知,多谢。一.初始化及内存布局我们知道android系统的启动是从app

temp7695的博客 1114

SIwave学习记录:电热耦合仿真

SIwave电热耦合仿真

m0_68174736的博客 2335

《QEMU/KVM源码分析与应用》读书笔记1 —— 第1章 QEMU与KVM概述

《QEMU/KVM源码分析与应用》学习笔记1 —— 第一章 QEMU与KVM概述

phmatthaus的专栏 1984

Android性能优化之内存优化

Android系统虚拟机的垃圾回收是通过虚拟机GC机制来实现的。GC会选择一些还存活的对象作为内存遍历的根节点GC Roots,通过对GC Roots的可达性来判断是否需要回收。内存泄漏就是在当前应用周期内不再使用的对象被GC Roots引用,导致不能回收,使实际可使用内存变小。例如,在onDraw方法里面不要执行对象的创建,一般来说,都应该在自定义View的构造器中创建对象。

2401_87255364的博客 2287

书旗app字符串加密分析

本文案例是对书旗app搜索接口的请求密文进行分析和逆向。

李玺 3156

Android Dalvik虚拟机 堆内存管理 增长&释放

本篇继续介绍安卓dalvik虚拟机系列,介绍Dalvik虚拟机的堆内存管理,即堆是如何增长和释放的。

baiiu 1229

对halcon形状匹配算法的一点分析

基于Intel VTune Profiler对halcon形状匹配算法的一点分析

manuoo的专栏 567

基于UC3842的反激电源的全面深入解析与MATLAB仿真

内置电流检测,可实现电流模式控制,提高系统的动态响应性。多种保护功能,如欠压锁定、过温保护、短路保护等,确保系统的安全可靠运行。宽工作电压范围,适应不同的电源设计需求。简单的外部元件配置,易于实现。UC3842的典型应用包括开关电源、DC-DC转换器和反激式电源等,其稳定性和可靠性在实际应用中得到了广泛验证。

qq_38334677的博客 1086

android 开发内存管理,Android点滴——Dalvik虚拟机中内存管理

看论文就要从论文中有所收获。现在看一篇关于安卓应用内部权限分离机制的论文,其中提到了dalvik虚拟机中的stackinspection,但对dalvik虚拟机并不是很熟悉,打算一步步补充学习下。今天先来学习一下内存管理之堆与栈——heap &stack。​其实堆栈在以前大二时学习数据结构就学了,但当时感觉掌握地并不好。​先来回顾下数据结构中的知识:堆,栈都是一种数据项按序排列的数据结构,...

weixin_36143290的博客 251

VTK GPU 加速渲染技术

/ 创建颜色工具// 创建立方体数据// 创建OpenGL映射器(注意使用vtkOpenGLPolyDataMapper而不是常规的vtkPolyDataMapper)// 启用VBO(顶点缓冲对象)// 声明几何体是静态的以获得最佳性能// 创建actor// 创建渲染器、渲染窗口和交互器renderWindow->SetWindowName("VTK自定义着色器示例");// 添加actor到渲染器。

深之JohnChen的专栏 1240

Android dalvik虚拟机内部机制详解(2)____内存管理原理

为了保证Android系统的正常运行和应用程序的稳定性,Dalvik虚拟机的内存管理机制在整个虚拟机系统中占用非常重要的位置。此文章会解决以下五个问题: 1.内存管理机制中涉及的关键数据结构 2.内存管理机制中涉及到的关键函数 3.内存分配的算法和流程 4.当前主要的垃圾回收算法 5.垃圾回收的流程 首先来看一下,内存管理机制在dalvik虚拟机中,与其他模块的协助关系,如下图: ...

Adversity reveals genius; fortune conceals it. 1406

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

对android虚拟机的理解,包括内存管理机制垃圾回收机制。dalvik和art区别

虚拟机很小,空间很小,谈谈移动设备的虚拟机的大小限制 16M , 谈谈加载图片的时候怎么处理大图片的, outmemoryException BitmapFactory.option  垃圾回收,没有引用的对象,在某个时刻会被系统gc掉 . Dalvik和标准Java虚拟机(JVM)首要差别 Dalvik 基于寄存器,而 JVM 基于栈。 基于寄存器的虚拟机对于编译后变大的程

JJMM2009的专栏 4879

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android中的Dalvik虚拟机的内存管理简单了解

Dalvik虚拟机的内存分为三种类型: Java Object Heap, Bitmap Memory, Native Heap. 下面,就这三种类型进行详细讲解:一. Java Object Heap: Java Object Heap是用来分配Java对象的,代码中new出来的Java对象都在Java Object Heap中。

左手木亽 920

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Dalvik虚拟机内存管理与垃圾回收相关

概述 这篇笔记摘抄自老罗的博客: http://blog.youkuaiyun.com/luoshengyang/article/details/41338251 http://blog.youkuaiyun.com/luoshengyang/article/details/41822747 Dalvik虚拟机内存分配的底层依赖是基于Doug Lea编写的dlmalloc内存分配器的,在Heap上完成。按照分配规...

ZionLife的博客 670

dalvik虚拟机与Java区别_Dalvik虚拟机和JVM的对比

Dalvik虚拟机与Java虚拟机有着很多相似的特性,都支持GC,JIT,JNI等等。其主要区别在于文件格式以及指令集不同,下面对两者的特性进行比较与讨论。Difference1:文件格式Dalvik的虚拟机类文件采用dex格式,而JVM的类文件是class格式。不同之处在于,我们熟悉的class字节码文件中只包含一个类,而dex文件中可以包含多个类。其好处在于多个类中重复的常数和字符串只会保存一...

weixin_42360778的博客 291

Dalvik虚拟机简要介绍和学习计划

我们知道,Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。除了指令集和类文件格式不同,Dalvik虚拟机与Java虚拟机共享有差不多的特性,例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等。本文对Dalvik虚拟机进行简要介绍,以及制定学习计划。

老罗的Android之旅 8万+

Dalvik虚拟机和ART虚拟机

Dalvik虚拟机与Java虚拟机共享有差不多的特性,例如,它们都是解释执行,并且支持即时编译(JIT)、垃圾收集(GC)、Java本地方法调用(JNI)和Java远程调试协议(JDWP)等,差别在于两者执行的指令集是不一样的,并且前者的指令集是基本寄存器的,而后者的指令集是基于堆栈的。Dalvik虚拟机起源于Apache Harmony项目,后者是由Apache软件基金会主导的,目标是实现一个独立的、兼容JDK 5的虚拟机,并根据Apache License v2发布。

博客 1061

虚拟机中内存管理

什么是Heap(堆) 在Dalvik虚拟机中,堆实际上就是一块匿名共享内存. 一个mspace(libc中的概念),可以通过libc提供的函数create_mspace_with_base创建一个mspace,然后再通过mspace_开头的函数管理该mspace。例如,我们可以通过mspace_malloc和mspace_bulk_free来在指定的mspace中分配和释放内存。 函数dvmAll...

gbmaotai的博客 1057

davlik虚拟机内存管理之一——内存分配

dalvik虚拟机是Google在Android平台上的Java虚拟机的实现,内存管理是dalvik虚拟机中的一个重要组件。 链接:http://www.miui.com/forum-viewthread-tid-74715-extra-%26page%3D1-page-1

JAVA之路 1779

Android 虚拟机学习总结Dalvik虚拟机介绍

1、Dalvik虚拟机与Java虚拟机的最显著区别是它们分别具有不同的类文件格式以及指令集。Dalvik虚拟机使用的是dex(Dalvik Executable)格式的类文件,而Java虚拟机使用的是class格式的类文件。一个dex文件可以包含若干个类,而一个class文件只包括一个类。由于一个dex文件可以包含若干个类,因此它就可以将各个类中重复的字符串和其它常数只保存一次,从而节省了空间

Coder_android 755
上一篇: Dalvik虚拟机的优化机制
下一篇: Dalvik虚拟机的垃圾收集机制
NewJerryj
博客等级 码龄19年 196粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值