`

dalvik.vm 属性与android:largeHeap

 
阅读更多
dalvik.vm.heapstartsize=8m
相当于虚拟机的 -Xms配置,该项用来设置堆内存的初始大小。
dalvik.vm.heapgrowthlimit=192m
相当于虚拟机的 -XX:HeapGrowthLimit配置,该项用来设置一个标准的应用的最大堆内存大小。
一个标准的应用就是没有使用android:largeHeap的应用。
dalvik.vm.heapsize=512m
相当于虚拟机的 -Xmx配置,该项设置了使用android:largeHeap的应用的最大堆内存大小。
dalvik.vm.heaptargetutilization=0.75
相当于虚拟机的 -XX:HeapTargetUtilization,该项用来设置当前理想的堆内存利用率。其取值位于0与
1之间。当GC进行完垃圾回收之后,Dalvik的堆内存会进行相应的调整,
通常结果是当前存活的对象的大小与堆内存大小做除法,得到的值为这个选项的设置,即这里的0.75

dalvik.vm.heapminfree=4m与 dalvik.vm.heapmaxfree=8m
dalvik.vm.heapminfree对应的是-XX:HeapMinFree配置,用来设置单次堆内存调整的最小值。
dalvik.vm.heapmaxfree 对应的是-XX:HeapMaxFree配置,用来设置单次堆内存调整的最大值。
通常情况下,还需要结合上面的 -XX:HeapTargetUtilization的值,才能确定内存调整时,
需要调整的大小。

http://androidxref.com/8.0.0_r4/xref/frameworks/base/core/java/android/app/ActivityThread.java
        if ((data.appInfo.flags&ApplicationInfo.FLAG_LARGE_HEAP) != 0) {
            dalvik.system.VMRuntime.getRuntime().clearGrowthLimit();
        } else {
            // Small heap, clamp to the current growth limit and let the heap release
            // pages after the growth limit to the non growth limit capacity. b/18387825
            dalvik.system.VMRuntime.getRuntime().clampGrowthLimit();
        }

ApplicationInfo.FLAG_LARGE_HEAP就是对应android:largeHeap=true,进行了clearGrowthLimit

http://androidxref.com/8.0.0_r4/xref/frameworks/base/services/java/com/android/server/SystemServer.java
// Mmmmmm... more memory!
            VMRuntime.getRuntime().clearGrowthLimit();

            // The system server has to run all of the time, so it needs to be
            // as efficient as possible with its memory usage.
            VMRuntime.getRuntime().setTargetHeapUtilization(0.8f);


分享到:
评论

相关推荐

    安卓 Build.prop 参数详解

    * `dalvik.vm.startheapsize`:本参数控制 Dalvik 虚拟机在启动一个应用程序之后为其分配的初始堆栈大小,可填写的值为 2m~48m。例如:`dalvik.vm.startheapsize=8m`,就表示应用程序启动后为其分配的初始堆栈大小为...

    安卓build.prop教程

    其具体意义与 dalvik.vm.dexopt-flags 的 v=n 一模一样。但可以与 dalvik.vm.dexopt-flags 配合使用。 Dalvik 虚拟机相关的参数属性在 build.prop 文件中扮演着非常重要的角色,对整个安卓系统的流畅性产生了非常...

    Dalvik虚拟机内存管理

    这个值可以通过命令行参数`-Xmx`或配置项`dalvik.vm.heapsize`来指定。例如,在一些定制版系统中,如MIUI,这个值可能会被设置为64MB,而默认情况下,该值通常是32MB。 ##### 3. 堆内存位图 为了更有效地管理堆...

    Dalvik VM Instruction Formats

    达尔文虚拟机(Dalvik Virtual Machine,简称Dalvik VM)是为Android平台设计的一种虚拟机,它运行的是.dex(Dalvik Executable)格式的字节码文件,这种格式的字节码被设计为高度优化的、适合于移动设备执行的代码...

    Android Caused by: java.lang.ClassNotFoundException解决办法

    08-13 18:29:22.924: E/AndroidRuntime(1875): Caused by: Java.lang.ClassNotFoundException:XXXXX in loader dalvik.system.PathClassLoader[/data/app/XXXX.apk] 我想大家经常因为疏忽出现...

    Dalvik_VM_Internals.rar_Dalvik pdf_android_dalvik vm_dalvik vm i

    Dalvik VM与ART(Android RunTime)是Android系统中的两个重要虚拟机。从Android 5.0(Lollipop)开始,Android逐渐转向ART,它引入了预编译(Ahead-Of-Time, AOT)技术,将应用在安装时就编译为机器码,进一步提升...

    android-dalvik.rar

    《深入解析Android虚拟机Dalvik》 Android操作系统的核心之一就是其独特的虚拟机——Dalvik。这个名字源于美国科罗拉多州的一个小镇,寓意着在移动设备有限的资源下,为应用提供高效运行环境的愿景。本篇文章将深入...

    Android应用程序的性能优化分析与研究.pdf

    例如,在Android 2.3升级到Android 4.0后,dalvik.vm.heapsize默认保持在42MB。开发者可以通过adb shell getprop | grep heap命令行来查看设备的堆内存设置。如果第三方应用设置了"android:largeHeap=true",但实际...

    android-support-multidex1.0.1下载

    在Android开发中,由于Dalvik虚拟机和早期的ART运行时环境对单个Dex文件的方法数限制,每个应用最多只能包含65536(64K)个方法引用,这被称为Dex的65K方法限制。当应用程序变得足够大,包含了大量的第三方库,很...

    ANDROID应用开发试题.pdf

    2.定义 LinearLayout 水平方向布局时至少设置的三个属性:android:layout_width、android:layout_height 和 android:orientation。 3.为了使 android 适应不同分辨率机型,布局时,可以使用相对布局或使用不同的...

    memory monitor

    - **dalvik.vm.heapmaxfreebytes** 和 **dalvik.vm.heapminfreebytes**:分别表示最大和最小空闲内存块。 6. **处理内存问题**: - **避免全局变量和静态引用**:这些可能导致对象长时间存活,不易被垃圾回收。 ...

    Google Andorid Dalvik JavaVM Kernel Code MIPS Version

    标签 "Google Android Dalvik JavaVM MIPS" 进一步强调了这是关于 Google Android 的 Dalvik 虚拟机与 MIPS 架构相关的技术内容。 压缩包子文件的文件名称列表: 1. InterpC-portstd.c:这是一个 C 语言编写的文件...

    Android虚拟机Dalvik完整源码

    Android虚拟机Dalvik完整源码,宝贵资源,欢迎下载! This directory contains the Dalvik virtual machine and core class library, as well as related tools, libraries, and tests. A note about the licenses...

    Bytecode for the Dalvik VM

    8. **Android Studio与Dalvik VM**: - Android Studio是Android开发的官方集成开发环境,它内置了Dalvik VM的相关工具,如Android SDK,用于构建、调试和分析应用。 9. **ART与Dalvik的对比**: - ART在Android ...

    Android12系统资源目录分析树状图pdf(使用xmind思维导图软件绘画,导出pdf文件,此是压缩包文件,需解压)

    cts:Android兼容性测试套件标准.pdf dalvik:dalvik 虚拟机.pdf developers:开发者参考文档目录.pdf development:Android开发基础设施.pdf device:设备相关配置.pdf external:Android中使用的外部开源 frameworks:...

    Android_Dalvik_VM_Internals_Google__

    5. **多进程支持**:与其他Java虚拟机不同,Dalvik VM 为每个Android应用都运行在一个独立的进程中,这增加了安全性,因为各个应用之间的数据和资源是隔离的。但这也意味着每个应用都需要自己的Dalvik VM实例,增加...

    “Dalvik VM的字节码”,“Dalvik VM指令格式”

    Dalvik字节码是一种专门为Android设计的中间代码,与Java虚拟机(JVM)中的Java字节码类似,但有所不同。它优化了内存使用,更适合移动设备的硬件限制。DEX文件包含了类、方法和字段信息,以及这些元素的字节码序列...

    Android应用开发试题.doc

    2. Android虚拟机(VM):Android使用的是Dalvik虚拟机,不同于Java的JVM,它专为移动设备优化,运行.dex格式的字节码。 3. Android VM运行文件后缀名:Dalvik虚拟机中运行的是.dex格式的文件,这是经过编译后的...

    NbInjection:通过替换系统本机网桥支持来注入合子过程的PoC

    这是一个替换系统属性“ ro.dalvik.vm.native.bridge”以注入合子进程的示例。 我已经在我的Google Pixel 3(Android 10,Magisk 20.4)上对其进行了测试,它似乎运行良好; 但是它可能不兼容所有设备,如果要使用...

    深入理解Android之dalvik.pdf

    ### 深入理解Android之Dalvik虚拟机 #### 一、引言与研究动机 在探讨Dalvik虚拟机之前,我们首先明确这次研究的主要动因。最初的研究初衷源自对Xposed这一强大软件的好奇。Xposed作为一种在Android平台上运行的...

Global site tag (gtag.js) - Google Analytics