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 Details

    • getRuntime

      public static VMRuntime getRuntime()
      Returns the object that represents the VM instance's Dalvik-specific runtime environment.
      Returns:
      the runtime object
    • properties

      public String[] properties()
      Returns a copy of the VM's command-line property settings. These are in the form "name=value" rather than "-Dname=value".
    • bootClassPath

      public String bootClassPath()
      Returns the VM's boot class path.
    • classPath

      public String classPath()
      Returns the VM's class path.
    • vmVersion

      public String 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 public long 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 public long setMinimumHeapSize​(long size)
      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 public void gcSoftReferences()
      Deprecated.
      This method exists for binary compatibility. It used to perform a garbage collection that cleared SoftReferences.
    • runFinalizationSync

      @Deprecated public void runFinalizationSync()
      Deprecated.
      This method exists for binary compatibility. It is equivalent to System.runFinalization().
    • trackExternalAllocation

      @Deprecated public boolean trackExternalAllocation​(long size)
      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 public void trackExternalFree​(long size)
      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 public long 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

      public Object newNonMovableArray​(Class<?> componentType, int length)
      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

      public long addressOf​(Object array)
      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.