Konfigurowanie dostarczania podczas instalacji

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

Pamiętaj, że ten typ modularyzacji wymaga więcej wysiłku i być może refaktoryzacji istniejącego kodu aplikacji, dlatego dokładnie zastanów się, które funkcje aplikacji najbardziej skorzystają na tym, że będą dostępne dla użytkowników na żądanie.

Jeśli chcesz stopniowo modularyzować funkcje aplikacji bez zmiany jej działania lub 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żesz przekształcić funkcję w moduł funkcji, ale nie włączać opcji zaawansowanych, dzięki czemu funkcja będzie dostępna, gdy użytkownik zainstaluje aplikację.

Dodatkowo moduły funkcji skonfigurowane do dostarczania w czasie instalacji można później odinstalować, jeśli nie są już potrzebne. W tym celu muszą być skonfigurowane jako wymienne.

W tej sekcji opisano, jak utworzyć moduł funkcji do dostarczania w czasie instalacji. Zanim zaczniesz, upewnij się, że używasz Android Studio w wersji 3.5 lub nowszej oraz wtyczki Androida do obsługi Gradle w wersji 3.5.0 lub nowszej.

Konfigurowanie nowego modułu do dostarczania w czasie instalacji

Najłatwiejszym sposobem utworzenia nowego modułu funkcji jest użycie Android Studio 3.5 lub nowszej wersji. Moduły funkcji są zależne od podstawowego modułu aplikacji, dlatego można 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. Jeśli nie zostało to jeszcze zrobione, otwórz projekt aplikacji w IDE.
  2. Na pasku menu kliknij File > New > New Module (Plik > Nowy > Nowy moduł).
  3. W oknie Create New Module (Utwórz nowy moduł) wybierz Dynamic Feature Module (Dynamiczny moduł funkcji) i kliknij Next (Dalej).
  4. W sekcji Skonfiguruj nowy moduł wykonaj te czynności:
    1. W menu wybierz Podstawowy moduł aplikacji dla projektu aplikacji.
    2. Podaj nazwę modułu. IDE używa tej nazwy do identyfikacji 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> do 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 i nazwę modułu określoną w poprzednim kroku.
    4. Wybierz minimalny poziom interfejsu API, który ma być obsługiwany przez moduł. Ta wartość powinna być zgodna z wartością modułu podstawowego.
  5. Kliknij Dalej.
  6. W sekcji Opcje pobierania modułu wykonaj te czynności:

    1. Wpisz tytuł modułu (maksymalnie 50 znaków). Moduł podstawowy aplikacji musi zawierać tytuł modułu jako zasób tekstowy, który można przetłumaczyć. Gdy tworzysz moduł za pomocą Android Studio, IDE dodaje zasób tekstowy do modułu podstawowego i wstrzykuje ten wpis do pliku manifestu modułu funkcji:

      <dist:module
          ...
          dist:title="@string/feature_title">
      </dist:module>
      

      Uwaga: jeśli włączysz zmniejszanie zasobów, np. w przypadku kompilacji do publikacji, narzędzie do zmniejszania może usunąć zasób tekstowy tytułu modułu, jeśli nie odwołuje się do niego kod w module podstawowym. Aby mieć pewność, że zasób tekstowy pozostanie w wynikach kompilacji, umieść go w pliku zachowywania zasobów niestandardowych.

    2. W menu w sekcji Uwzględnianie podczas instalacji wybierz Uwzględnij moduł podczas instalacji. Android Studio wstrzykuje do pliku manifestu modułu te informacje, aby odzwierciedlić Twój wybór:

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

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

    3. Zaznacz pole obok opcji Scalanie, jeśli chcesz, aby ten moduł był dostępny na urządzeniach z Androidem 4.4 (API na poziomie 20) lub starszym i był uwzględniany w wielu pakietach APK. Oznacza to, że możesz go 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 zakończy tworzenie modułu, sprawdź jego zawartość w panelu Projekt (na pasku menu wybierz Widok > Narzędzia > Projekt). Domyślny kod, zasoby i organizacja powinny być podobne do tych w standardowym module aplikacji.

Umożliwianie usunięcia modułu instalowanego podczas instalacji

Warto utworzyć moduły funkcji do dostarczania w czasie instalacji, które można później odinstalować, jeśli nie są już potrzebne. Na przykład aby zmniejszyć rozmiar zainstalowanej aplikacji, możesz podzielić na moduły treści wymagane do szkolenia lub wprowadzenia, a następnie odinstalować moduł funkcji za pomocą interfejsu podstawowej biblioteki Play API, gdy użytkownik będzie już gotowy do korzystania z aplikacji.

Modułów instalowanych podczas instalacji nie można domyślnie usunąć. Aby oznaczyć moduł jako możliwy do usunięcia i zezwolić na jego odinstalowanie, 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>