setCoreApi
Set the CoreApi. Idempotent + thread-safe: a second call from a parallel prewarm IO thread races with the main-thread get/lazy-init below; the synchronized monitor + check-then-set guarantees only one CoreApi is adopted (whichever thread wins). The losing instance has its lifecycle().onDestroy() invoked so its SQLite handle, scheduled executors, OkHttp cache and JNI references are released — silently leaking it would orphan a fully-constructed SDK instance for the lifetime of the process.
Parameters
coreApi
the CoreApi to install (may be ignored + destroyed if one already exists)