What is ViewModelStore and viewModelStoreOwner? : <p>I am very confused due to this new ViewModelProvider api(ViewModelProviders is deprecated)  </p>

<p>As with the new changes there are new Constructors also (Source code). </p>

<h3>#1</h3>

<pre><code>public ViewModelProvider(@NonNull ViewModelStoreOwner owner) {
        this(owner.getViewModelStore(), owner instanceof HasDefaultViewModelProviderFactory
                ? ((HasDefaultViewModelProviderFactory) owner).getDefaultViewModelProviderFactory()
                : NewInstanceFactory.getInstance());
    }
</code></pre>

<h3>#2</h3>

<pre><code>public ViewModelProvider(@NonNull ViewModelStoreOwner owner, @NonNull Factory factory) {
        this(owner.getViewModelStore(), factory);
    }
</code></pre>

<h3>#3</h3>

<pre><code> public ViewModelProvider(@NonNull ViewModelStore store, @NonNull Factory factory) {
        mFactory = factory;
        mViewModelStore = store;
    }
</code></pre>

<h3>Gradle Depenedency:</h3>

<pre><code>implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-rc02"
</code></pre>

<p>So These Constructor's require  <code>ViewModelStore</code> and <code>viewModelStoreOwner</code>.</p>

<h3>Doc:</h3>

<blockquote>
  <p>@param store   {@code ViewModelStore} where ViewModels will be stored.</p>
  
  <p>@param owner   a {@code ViewModelStoreOwner} whose {@link ViewModelStore} will be used to
                 retain {@code ViewModels}</p>
</blockquote>

<hr>

<p><strong>Can anyone define them and how to use them and what they really mean to us developer's?</strong></p>

<hr>

<p><strong>is ViewModelStoreOwner==activity/fragment?</strong></p>
