Package dalvik.system
Class VMRuntime
java.lang.Object
dalvik.system.VMRuntime
public final class VMRuntime extends Object
Provides an interface to VM-global, Dalvik-specific features.
An application cannot create its own Runtime instance, and must obtain
one from the getRuntime method.
-
Method Summary
Modifier and Type Method Description longaddressOf(Object array)Returns the address of array[0].StringbootClassPath()Returns the VM's boot class path.StringclassPath()Returns the VM's class path.voidclearGrowthLimit()Removes any growth limits, allowing the application to allocate up to the maximum heap size.voiddisableJitCompilation()Tells the VM to disable the JIT compiler.voidgcSoftReferences()Deprecated.longgetExternalBytesAllocated()Deprecated.longgetMinimumHeapSize()Deprecated.static VMRuntimegetRuntime()Returns the object that represents the VM instance's Dalvik-specific runtime environment.floatgetTargetHeapUtilization()Gets the current ideal heap utilization, represented as a number between zero and one.booleanisDebuggerActive()Returns true if either a Java debugger or native debugger is active.ObjectnewNonMovableArray(Class<?> componentType, int length)Returns an array allocated in an area of the Java heap where it will never be moved.voidpreloadDexCaches()Fill in dex caches with classes, fields, and methods that are already loaded.String[]properties()Returns a copy of the VM's command-line property settings.voidregisterNativeAllocation(int bytes)Registers a native allocation so that the heap knows about it and performs GC as required.voidregisterNativeFree(int bytes)Registers a native free by reducing the number of native bytes accounted for.voidrunFinalizationSync()Deprecated.longsetMinimumHeapSize(long size)Deprecated.floatsetTargetHeapUtilization(float newTarget)Sets the current ideal heap utilization, represented as a number between zero and one.voidsetTargetSdkVersion(int targetSdkVersion)Sets the target SDK version.voidstartJitCompilation()Tells the VM to enable the JIT compiler.booleantrackExternalAllocation(long size)Deprecated.voidtrackExternalFree(long size)Deprecated.StringvmVersion()Returns the VM's version.
-
Method Details
-
getRuntime
Returns the object that represents the VM instance's Dalvik-specific runtime environment.- Returns:
- the runtime object
-
properties
Returns a copy of the VM's command-line property settings. These are in the form "name=value" rather than "-Dname=value". -
bootClassPath
Returns the VM's boot class path. -
classPath
Returns the VM's class path. -
vmVersion
Returns the VM's version. -
getTargetHeapUtilization
public float getTargetHeapUtilization()Gets the current ideal heap utilization, represented as a number between zero and one. After a GC happens, the Dalvik heap may be resized so that (size of live objects) / (size of heap) is equal to this number.- Returns:
- the current ideal heap utilization
-
setTargetHeapUtilization
public float setTargetHeapUtilization(float newTarget)Sets the current ideal heap utilization, represented as a number between zero and one. After a GC happens, the Dalvik heap may be resized so that (size of live objects) / (size of heap) is equal to this number.This is only a hint to the garbage collector and may be ignored.
- Parameters:
newTarget- the new suggested ideal heap utilization. This value may be adjusted internally.- Returns:
- the previous ideal heap utilization
- Throws:
IllegalArgumentException- if newTarget is <= 0.0 or >= 1.0
-
setTargetSdkVersion
public void setTargetSdkVersion(int targetSdkVersion)Sets the target SDK version. Should only be called before the app starts to run, because it may change the VM's behavior in dangerous ways. Use 0 to mean "current" (since callers won't necessarily know the actual current SDK version, and the allocated version numbers start at 1). -
getMinimumHeapSize
Deprecated.This method exists for binary compatibility. It was part of a heap sizing API which was removed in Android 3.0 (Honeycomb). -
setMinimumHeapSize
Deprecated.This method exists for binary compatibility. It was part of a heap sizing API which was removed in Android 3.0 (Honeycomb). -
gcSoftReferences
Deprecated.This method exists for binary compatibility. It used to perform a garbage collection that cleared SoftReferences. -
runFinalizationSync
Deprecated.This method exists for binary compatibility. It is equivalent toSystem.runFinalization(). -
trackExternalAllocation
Deprecated.This method exists for binary compatibility. It was part of the external allocation API which was removed in Android 3.0 (Honeycomb). -
trackExternalFree
Deprecated.This method exists for binary compatibility. It was part of the external allocation API which was removed in Android 3.0 (Honeycomb). -
getExternalBytesAllocated
Deprecated.This method exists for binary compatibility. It was part of the external allocation API which was removed in Android 3.0 (Honeycomb). -
startJitCompilation
public void startJitCompilation()Tells the VM to enable the JIT compiler. If the VM does not have a JIT implementation, calling this method should have no effect. -
disableJitCompilation
public void disableJitCompilation()Tells the VM to disable the JIT compiler. If the VM does not have a JIT implementation, calling this method should have no effect. -
newNonMovableArray
Returns an array allocated in an area of the Java heap where it will never be moved. This is used to implement native allocations on the Java heap, such as DirectByteBuffers and Bitmaps. -
addressOf
Returns the address of array[0]. This differs from using JNI in that JNI might lie and give you the address of a copy of the array when in forcecopy mode. -
clearGrowthLimit
public void clearGrowthLimit()Removes any growth limits, allowing the application to allocate up to the maximum heap size. -
isDebuggerActive
public boolean isDebuggerActive()Returns true if either a Java debugger or native debugger is active. -
registerNativeAllocation
public void registerNativeAllocation(int bytes)Registers a native allocation so that the heap knows about it and performs GC as required. If the number of native allocated bytes exceeds the native allocation watermark, the function requests a concurrent GC. If the native bytes allocated exceeds a second higher watermark, it is determined that the application is registering native allocations at an unusually high rate and a GC is performed inside of the function to prevent memory usage from excessively increasing. -
registerNativeFree
public void registerNativeFree(int bytes)Registers a native free by reducing the number of native bytes accounted for. -
preloadDexCaches
public void preloadDexCaches()Fill in dex caches with classes, fields, and methods that are already loaded.
-