Konfigurowanie dostarczania podczas instalacji

Moduły funkcji umożliwiają oddzielenie niektórych funkcji i zasobów od modułu podstawowego aplikacji oraz uwzględnienie ich w pakiecie aplikacji. Następnie możesz dostosować opcje dostarczania, aby kontrolować, kiedy i w jaki sposób urządzenia z Androidem 5.0 (poziom interfejsu API 21) lub nowszym mają pobierać funkcje Twojej aplikacji.

Pamiętaj, że ten typ modularyzacji wymaga więcej wysiłku i prawdopodobnie refaktoryzacji istniejącego kodu aplikacji, więc dobrze się zastanów, które funkcje aplikacji najbardziej skorzystałyby na udostępnieniu użytkownikom na żądanie.

Jeśli chcesz stopniowo modularyzować funkcje aplikacji w miarę upływu czasu bez zmiany działania aplikacji ani dostosowywania zaawansowanych opcji dostarczania, możesz to zrobić, tworząc moduły funkcji skonfigurowane pod kątem dostarczania w czasie instalacji. Oznacza to, że można podzielić funkcję jako moduł, ale nie można włączyć opcji zaawansowanych, aby była ona dostępna, gdy użytkownik zainstaluje aplikację.

Dodatkowo moduły funkcji skonfigurowane pod kątem dostarczania podczas instalacji mają opcję późniejszego odinstalowania, jeśli nie są już potrzebne. Aby to zrobić, należy je skonfigurować jako urządzenie, które można usunąć.

W tej sekcji dowiesz się, jak utworzyć moduł funkcji na potrzeby dostarczania podczas instalacji. Zanim zaczniesz, upewnij się, że korzystasz z Androida Studio w wersji 3.5 lub nowszej i wtyczki Androida do obsługi Gradle w wersji 3.5.0 lub nowszej.

Konfigurowanie nowego modułu na potrzeby dostarczania podczas instalacji

Najłatwiejszym sposobem utworzenia nowego modułu funkcji jest użycie Androida Studio w wersji 3.5 lub nowszej. Moduły funkcji są nieodłączną zależnością od podstawowego modułu aplikacji, więc możesz je dodawać tylko do istniejących projektów aplikacji.

Aby dodać moduł funkcji do projektu aplikacji za pomocą Android Studio, wykonaj te czynności:

  1. Otwórz projekt aplikacji w IDE, jeśli nie został jeszcze otwarty.
  2. Na pasku menu wybierz File > New > New Module (Plik > Nowy moduł > Nowy moduł).
  3. W oknie Create New Module (Utwórz nowy moduł) wybierz Dynamic Feature Module i kliknij Next (Dalej).
  4. W sekcji Skonfiguruj nowy moduł wykonaj te czynności:
    1. Wybierz z menu moduł aplikacji podstawowej dla projektu aplikacji.
    2. Wypełnij pole Nazwa modułu. IDE używa tej nazwy do identyfikowania modułu jako podprojektu Gradle w pliku ustawień Gradle. Gdy tworzysz pakiet aplikacji, Gradle używa ostatniego elementu nazwy podprojektu, aby wstrzyknąć atrybut <manifest split> w pliku manifestu modułu funkcji.
    3. Podaj nazwę pakietu modułu. Domyślnie Android Studio sugeruje nazwę pakietu, która łączy nazwę pakietu głównego modułu podstawowego z nazwą modułu określoną w poprzednim kroku.
    4. Wybierz Minimalny poziom interfejsu API, który ma obsługiwać moduł. Ta wartość powinna być zgodna z wartością modułu podstawowego.
  5. Kliknij Dalej.
  6. W sekcji Module Download Options (Opcje pobierania modułu) wykonaj te czynności:

    1. Określ Tytuł modułu za pomocą maksymalnie 50 znaków. Podstawowy moduł aplikacji musi zawierać tytuł modułu w postaci zasobu w postaci ciągu znaków, który możesz przetłumaczyć. Podczas tworzenia modułu za pomocą Android Studio IDE dodaje ciąg znaków do modułu podstawowego i wstrzykuje ten wpis w pliku manifestu modułu funkcji:

      <dist:module
          ...
          dist:title="@string/feature_title">
      </dist:module>
      
    2. W menu w sekcji Uwzględnienie czasu instalacji wybierz Uwzględnij moduł w momencie instalacji. Aby odzwierciedlić Twój wybór, Android Studio wstawia do pliku manifestu modułu:

      <dist:module ... >
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
      </dist:module>
      

      Aby dowiedzieć się, jak utworzyć moduł funkcji, który można pobrać po zainstalowaniu aplikacji, przeczytaj artykuł o konfigurowaniu dostarczania na żądanie.

    3. Zaznacz pole Łączenie, jeśli chcesz, aby ten moduł był dostępny na urządzeniach z Androidem 4.4 (poziom interfejsu API 20) lub starszym i zawarty w wielu plikach APK. Oznacza to, że możesz ją pominąć na urządzeniach, które nie obsługują pobierania i instalowania dzielonych pakietów APK. Android Studio wstawia w pliku manifestu modułu te informacje, aby odzwierciedlić Twój wybór:

      <dist:module ...>
          <dist:fusing dist:include="true | false" />
      </dist:module>
      
  7. Kliknij Zakończ.

Gdy Android Studio utworzy moduł, samodzielnie sprawdź jego zawartość w panelu Projekt (z paska menu wybierz Widok > Okna narzędzi > Projekt). Domyślny kod, zasoby i organizacja powinny być takie same jak w standardowym module aplikacji.

Możliwość odłączania modułu czasu instalacji

Warto utworzyć moduły funkcji dostawy podczas instalacji, które można później odinstalować, jeśli nie są już potrzebne. Aby np. zmniejszyć rozmiar zainstalowanej aplikacji, możesz podzielić treści wymagane do trenowania lub wprowadzenia, a potem po skonfigurowaniu użytkownika do korzystania z aplikacji odinstalować moduł za pomocą interfejsu Play Core API.

Domyślnie nie można usuwać modułów czasu instalacji. Aby oznaczyć moduł jako usunięty i odinstalować go, dodaj tag removable i ustaw jego wartość na true:

<dist:module ... >
  <dist:delivery>
      <dist:install-time>
          <dist:removable dist:value="true"/>
      </dist:install-time>
  </dist:delivery>
</dist:module>