/**@class java.lang.System @extends java.lang.Object Provides access to system-related information and resources including standard input and output. Enables clients to dynamically load native libraries. All methods of this class are accessed in a static way and the class itself can not be instantiated. @see Runtime */ var System = { /** Default input stream. */ in : "null", /** Default output stream. */ out : "null", /** Default error output stream. */ err : "null", /**Sets the standard input stream to the given user defined input stream. @param {Object {InputStream}} newIn the user defined input stream to set as the standard input stream. */ setIn : function( ) {}, /**Sets the standard output stream to the given user defined output stream. @param {Object {PrintStream}} newOut the user defined output stream to set as the standard output stream. */ setOut : function( ) {}, /**Sets the standard error output stream to the given user defined output stream. @param {Object {PrintStream}} newErr the user defined output stream to set as the standard error output stream. */ setErr : function( ) {}, /**Copies {@code length} elements from the array {@code src}, starting at offset {@code srcPos}, into the array {@code dst}, starting at offset {@code dstPos}. <p>The source and destination arrays can be the same array, in which case copying is performed as if the source elements are first copied into a temporary array and then into the destination array. @param {Object {Object}} src the source array to copy the content. @param {Number} srcPos the starting index of the content in {@code src}. @param {Object {Object}} dst the destination array to copy the data into. @param {Number} dstPos the starting index for the copied content in {@code dst}. @param {Number} length the number of elements to be copied. */ arraycopy : function( ) {}, /**The char[] specialized version of arraycopy(). @hide internal use only */ arraycopy : function( ) {}, /**The byte[] specialized version of arraycopy(). @hide internal use only */ arraycopy : function( ) {}, /**The short[] specialized version of arraycopy(). @hide internal use only */ arraycopy : function( ) {}, /**The int[] specialized version of arraycopy(). @hide internal use only */ arraycopy : function( ) {}, /**The long[] specialized version of arraycopy(). @hide internal use only */ arraycopy : function( ) {}, /**The float[] specialized version of arraycopy(). @hide internal use only */ arraycopy : function( ) {}, /**The double[] specialized version of arraycopy(). @hide internal use only */ arraycopy : function( ) {}, /**The boolean[] specialized version of arraycopy(). @hide internal use only */ arraycopy : function( ) {}, /**Returns the current time in milliseconds since January 1, 1970 00:00:00.0 UTC. <p>This method always returns UTC times, regardless of the system's time zone. This is often called "Unix time" or "epoch time". Use a {@link java.text.DateFormat} instance to format this time for display to a human. <p>This method shouldn't be used for measuring timeouts or other elapsed time measurements, as changing the system time can affect the results. Use {@link #nanoTime} for that. */ currentTimeMillis : function( ) {}, /**Returns the current timestamp of the most precise timer available on the local system, in nanoseconds. Equivalent to Linux's {@code CLOCK_MONOTONIC}. <p>This timestamp should only be used to measure a duration by comparing it against another timestamp on the same device. Values returned by this method do not have a defined correspondence to wall clock times; the zero value is typically whenever the device last booted. Use {@link #currentTimeMillis} if you want to know what time it is. */ nanoTime : function( ) {}, /**Causes the VM to stop running and the program to exit with the given exit status. If {@link #runFinalizersOnExit}(boolean) has been previously invoked with a {@code true} argument, then all objects will be properly garbage-collected and finalized first. */ exit : function( ) {}, /**Indicates to the VM that it would be a good time to run the garbage collector. Note that this is a hint only. There is no guarantee that the garbage collector will actually be run. */ gc : function( ) {}, /**Returns the value of the environment variable with the given name, or null if no such variable exists. */ getenv : function( ) {}, /**Returns an unmodifiable map of all environment variables to their values. */ getenv : function( ) {}, /**Returns the inherited channel from the creator of the current virtual machine. @return {Object {java.nio.channels.Channel}} the inherited {@link Channel} or {@code null} if none exists. @throws IOException if an I/O error occurred. @see SelectorProvider @see SelectorProvider#inheritedChannel() */ inheritedChannel : function( ) {}, /**Returns the system properties. Note that this is not a copy, so that changes made to the returned Properties object will be reflected in subsequent calls to getProperty and getProperties. @return {Object {java.util.Properties}} the system properties. */ getProperties : function( ) {}, /**Inits an unchangeable system property with the given value. This is called from native code when the environment needs to change under native bridge emulation. @hide also visible for tests. */ setUnchangeableSystemProperty : function( ) {}, /**Returns the value of a particular system property or {@code null} if no such property exists. <p>The following properties are always provided by the Dalvik VM:</p> <p><table BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <td><b>Name</b></td> <td><b>Meaning</b></td> <td><b>Example</b></td></tr> <tr><td>file.separator</td> <td>{@link java.io.File#separator}</td> <td>{@code /}</td></tr> <tr><td>java.class.path</td> <td>System class path</td> <td>{@code .}</td></tr> <tr><td>java.class.version</td> <td>(Not useful on Android)</td> <td>{@code 50.0}</td></tr> <tr><td>java.compiler</td> <td>(Not useful on Android)</td> <td>Empty</td></tr> <tr><td>java.ext.dirs</td> <td>(Not useful on Android)</td> <td>Empty</td></tr> <tr><td>java.home</td> <td>Location of the VM on the file system</td> <td>{@code /system}</td></tr> <tr><td>java.io.tmpdir</td> <td>See {@link java.io.File#createTempFile}</td> <td>{@code /sdcard}</td></tr> <tr><td>java.library.path</td> <td>Search path for JNI libraries</td> <td>{@code /vendor/lib:/system/lib}</td></tr> <tr><td>java.vendor</td> <td>Human-readable VM vendor</td> <td>{@code The Android Project}</td></tr> <tr><td>java.vendor.url</td> <td>URL for VM vendor's web site</td> <td>{@code http://www.android.com/}</td></tr> <tr><td>java.version</td> <td>(Not useful on Android)</td> <td>{@code 0}</td></tr> <tr><td>java.specification.version</td> <td>VM libraries version</td> <td>{@code 0.9}</td></tr> <tr><td>java.specification.vendor</td> <td>VM libraries vendor</td> <td>{@code The Android Project}</td></tr> <tr><td>java.specification.name</td> <td>VM libraries name</td> <td>{@code Dalvik Core Library}</td></tr> <tr><td>java.vm.version</td> <td>VM implementation version</td> <td>{@code 1.2.0}</td></tr> <tr><td>java.vm.vendor</td> <td>VM implementation vendor</td> <td>{@code The Android Project}</td></tr> <tr><td>java.vm.name</td> <td>VM implementation name</td> <td>{@code Dalvik}</td></tr> <tr><td>java.vm.specification.version</td> <td>VM specification version</td> <td>{@code 0.9}</td></tr> <tr><td>java.vm.specification.vendor</td> <td>VM specification vendor</td> <td>{@code The Android Project}</td></tr> <tr><td>java.vm.specification.name</td> <td>VM specification name</td> <td>{@code Dalvik Virtual Machine Specification}</td></tr> <tr><td>line.separator</td> <td>The system line separator</td> <td>{@code \n}</td></tr> <tr><td>os.arch</td> <td>OS architecture</td> <td>{@code armv7l}</td></tr> <tr><td>os.name</td> <td>OS (kernel) name</td> <td>{@code Linux}</td></tr> <tr><td>os.version</td> <td>OS (kernel) version</td> <td>{@code 2.6.32.9-g103d848}</td></tr> <tr><td>path.separator</td> <td>See {@link java.io.File#pathSeparator}</td> <td>{@code :}</td></tr> <tr><td>user.dir</td> <td>Base of non-absolute paths</td> <td>{@code /}</td></tr> <tr><td>user.home</td> <td>(Not useful on Android)</td> <td>Empty</td></tr> <tr><td>user.name</td> <td>(Not useful on Android)</td> <td>Empty</td></tr> </table> <p> All of the above properties except for {@code user.home} and {@code java.io.tmpdir} <b>cannot be modified</b>. Any attempt to change them will be a no-op. @param {String} propertyName the name of the system property to look up. @return {String} the value of the specified system property or {@code null} if the property doesn't exist. */ getProperty : function( ) {}, /**Returns the value of a particular system property. The {@code defaultValue} will be returned if no such property has been found. */ getProperty : function( ) {}, /**Sets the value of a particular system property. Most system properties are read only and cannot be cleared or modified. See {@link #getProperty} for a list of such properties. @return {String} the old value of the property or {@code null} if the property didn't exist. */ setProperty : function( ) {}, /**Removes a specific system property. Most system properties are read only and cannot be cleared or modified. See {@link #getProperty} for a list of such properties. @return {String} the property value or {@code null} if the property didn't exist. @throws NullPointerException if the argument is {@code null}. @throws IllegalArgumentException if the argument is empty. */ clearProperty : function( ) {}, /**Returns the {@link java.io.Console} associated with this VM, or null. Not all VMs will have an associated console. A console is typically only available for programs run from the command line. @since 1.6 */ console : function( ) {}, /**Returns null. Android does not use {@code SecurityManager}. This method is only provided for source compatibility. @return {Object {java.lang.SecurityManager}} null */ getSecurityManager : function( ) {}, /**Returns an integer hash code for the parameter. The hash code returned is the same one that would be returned by the method {@code java.lang.Object.hashCode()}, whether or not the object's class has overridden hashCode(). The hash code for {@code null} is {@code 0}. @param {Object {Object}} anObject the object to calculate the hash code. @return {Number} the hash code for the given object. @see java.lang.Object#hashCode */ identityHashCode : function( ) {}, /**Returns the system's line separator. On Android, this is {@code "\n"}. The value comes from the value of the {@code line.separator} system property. <p>On Android versions before Lollipop the {@code line.separator} system property can be modified but this method continues to return the original value. The system property cannot be modified on later versions of Android. @since 1.7 */ lineSeparator : function( ) {}, /**See {@link java.lang.Runtime#load}. */ load : function( ) {}, /**See {@link java.lang.Runtime#loadLibrary}. */ loadLibrary : function( ) {}, /** @hide internal use only */ logE : function( ) {}, /** @hide internal use only */ logE : function( ) {}, /** @hide internal use only */ logI : function( ) {}, /** @hide internal use only */ logI : function( ) {}, /** @hide internal use only */ logW : function( ) {}, /** @hide internal use only */ logW : function( ) {}, /**Provides a hint to the VM that it would be useful to attempt to perform any outstanding object finalization. */ runFinalization : function( ) {}, /**Ensures that, when the VM is about to exit, all objects are finalized. Note that all finalization which occurs when the system is exiting is performed after all running threads have been terminated. @param {Boolean} flag the flag determines if finalization on exit is enabled. @deprecated This method is unsafe. */ runFinalizersOnExit : function( ) {}, /**Attempts to set all system properties. Copies all properties from {@code p} and discards system properties that are read only and cannot be modified. See {@link #getProperty} for a list of such properties. */ setProperties : function( ) {}, /**Throws {@code SecurityException}. <p>Security managers do <i>not</i> provide a secure environment for executing untrusted code and are unsupported on Android. Untrusted code cannot be safely isolated within a single VM on Android, so this method <i>always</i> throws a {@code SecurityException}. @param {Object {SecurityManager}} sm a security manager @throws SecurityException always */ setSecurityManager : function( ) {}, /**Returns the platform specific file name format for the shared library named by the argument. On Android, this would turn {@code "MyLibrary"} into {@code "libMyLibrary.so"}. */ mapLibraryName : function( ) {}, };