/**@class android.os.ZygoteProcess
@extends java.lang.Object

 Maintains communication state with the zygote processes. This class is responsible
 for the sockets opened to the zygotes and for starting processes on behalf of the
 {@link android.os.Process} class.

 {@hide}
*/
var ZygoteProcess = {

/**
*/
getPrimarySocketAddress : function(  ) {},

/**Start a new process.

 <p>If processes are enabled, a new process is created and the
 static main() function of a <var>processClass</var> is executed there.
 The process will continue running after this function returns.

 <p>If processes are not enabled, a new thread in the caller's
 process is created and main() of <var>processclass</var> called there.

 <p>The niceName parameter, if not an empty string, is a custom name to
 give to the process instead of using processClass.  This allows you to
 make easily identifyable processes even if you are using the same base
 <var>processClass</var> to start them.

 When invokeWith is not null, the process will be started as a fresh app
 and not a zygote fork. Note that this is only allowed for uid 0 or when
 runtimeFlags contains DEBUG_ENABLE_DEBUGGER.
@param {String} processClass The class to use as the process's main entry
                     point.
@param {String} niceName A more readable name to use for the process.
@param {Number} uid The user-id under which the process will run.
@param {Number} gid The group-id under which the process will run.
@param {Object {int[]}} gids Additional group-ids associated with the process.
@param {Number} runtimeFlags Additional flags.
@param {Number} targetSdkVersion The target SDK version for the app.
@param {Number} seInfo null-ok SELinux information for the new process.
@param {String} abi non-null the ABI this app should be started with.
@param {String} instructionSet null-ok the instruction set to use.
@param {String} appDataDir null-ok the data directory of the app.
@param {String} invokeWith null-ok the command to invoke with.
@param {String} packageName null-ok the name of the package this process belongs to.
@param {String} zygoteArgs Additional arguments to supply to the zygote process.
@return {Object {android.os.Process.ProcessStartResult}} An object that describes the result of the attempt to start the process.
@throws RuntimeException on fatal start failure
*/
start : function(  ) {},

/**Closes the connections to the zygote, if they exist.
*/
close : function(  ) {},

/**Tries to establish a connection to the zygote that handles a given {@code abi}. Might block
 and retry if the zygote is unresponsive. This method is a no-op if a connection is
 already open.
*/
establishZygoteConnectionForAbi : function(  ) {},

/**Attempt to retrieve the PID of the zygote serving the given abi.
*/
getZygotePid : function(  ) {},

/**Push hidden API blacklisting exemptions into the zygote process(es).

 <p>The list of exemptions will take affect for all new processes forked from the zygote after
 this call.
@param {Object {java.util.List}} exemptions List of hidden API exemption prefixes. Any matching members are treated as
        whitelisted/public APIs (i.e. allowed, no logging of usage).
*/
setApiBlacklistExemptions : function(  ) {},

/**Set the precentage of detected hidden API accesses that are logged to the event log.

 <p>This rate will take affect for all new processes forked from the zygote after this call.
@param {Number} rate An integer between 0 and 0x10000 inclusive. 0 means no event logging.
*/
setHiddenApiAccessLogSampleRate : function(  ) {},

/**Set the precentage of detected hidden API accesses that are logged to the new event log.

 <p>This rate will take affect for all new processes forked from the zygote after this call.
@param {Number} rate An integer between 0 and 0x10000 inclusive. 0 means no event logging.
*/
setHiddenApiAccessStatslogSampleRate : function(  ) {},

/**Instructs the zygote to pre-load the application code for the given Application.
 Only the app zygote supports this function.
 TODO preloadPackageForAbi() can probably be removed and the callers an use this instead.
*/
preloadApp : function(  ) {},

/**Instructs the zygote to pre-load the classes and native libraries at the given paths
 for the specified abi. Not all zygotes support this function.
*/
preloadPackageForAbi : function(  ) {},

/**Instructs the zygote to preload the default set of classes and resources. Returns
 {@code true} if a preload was performed as a result of this call, and {@code false}
 otherwise. The latter usually means that the zygote eagerly preloaded at startup
 or due to a previous call to {@code preloadDefault}. Note that this call is synchronous.
*/
preloadDefault : function(  ) {},

/**Try connecting to the Zygote over and over again until we hit a time-out.
@param {String} zygoteSocketName The name of the socket to connect to.
*/
waitForConnectionToZygote : function(  ) {},

/**Try connecting to the Zygote over and over again until we hit a time-out.
@param {Object {LocalSocketAddress}} zygoteSocketAddress The name of the socket to connect to.
*/
waitForConnectionToZygote : function(  ) {},

/**Starts a new zygote process as a child of this zygote. This is used to create
 secondary zygotes that inherit data from the zygote that this object
 communicates with. This returns a new ZygoteProcess representing a connection
 to the newly created zygote. Throws an exception if the zygote cannot be started.
@param {String} processClass The class to use as the child zygote's main entry
                     point.
@param {String} niceName A more readable name to use for the process.
@param {Number} uid The user-id under which the child zygote will run.
@param {Number} gid The group-id under which the child zygote will run.
@param {Object {int[]}} gids Additional group-ids associated with the child zygote process.
@param {Number} runtimeFlags Additional flags.
@param {String} seInfo null-ok SELinux information for the child zygote process.
@param {String} abi non-null the ABI of the child zygote
@param {String} acceptedAbiList ABIs this child zygote will accept connections for; this
                        may be different from <code>abi</code> in case the children
                        spawned from this Zygote only communicate using ABI-safe methods.
@param {String} instructionSet null-ok the instruction set to use.
@param {Number} uidRangeStart The first UID in the range the child zygote may setuid()/setgid() to
@param {Number} uidRangeEnd The last UID in the range the child zygote may setuid()/setgid() to
*/
startChildZygote : function(  ) {},


};