initialize

fun initialize(application: Application, config: DevConsoleConfig = DevConsoleConfig.default()): InitResult

Prepares the SDK's capture engine, storage, and state/flag registries so network, WebSocket, push, and timeline recording are ready to receive events. This does not open a network port or start the browser dashboard -- that only happens on an explicit startBrowser / startBrowserAsync call.

Calling this more than once is only sometimes a no-op, not unconditionally safe -- the exact outcome is one of InitResult's variants, and callers that ignore the return value can miss a real conflict:

  • An equivalent config to the one already active returns InitResult.ExistingRuntime without changing anything.

  • A debuggable build has already auto-initialized with a provisional DevConsoleConfig.default before your own code runs (via its own ContentProvider); your first explicit call with a real config replaces that provisional one and returns InitResult.Initialized. This is the one case a second call is expected to change anything.

  • Two genuinely different explicit configs -- your own call after another explicit call already installed a different config -- do not merge or replace each other; this returns InitResult.Conflict and the previously active config keeps running.

Synchronous and expected to be called from the main thread (typically Application.onCreate or an activity's onCreate); it does not perform blocking I/O itself. On a protected build variant (release, wired to devconsole-noop) this is a no-op that always returns InitResult.Disabled -- every other DevConsole call becomes a no-op too, safely, rather than throwing.

Return

an InitResult describing what happened -- see its KDoc for what each variant means and whether it's safe to proceed.

Parameters

application

required for storage paths, manifest metadata, and lifecycle observation; the SDK never holds an Activity reference.

config

state providers, feature flags, redaction policy, editing capabilities, and the browser/composer/storage settings for this run. Defaults to DevConsoleConfig.default.