title: What is ViewModelStore and viewModelStoreOwner?
body: <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>