Tworzenie pakietu aplikacji z obsługą wersji błyskawicznej

Tworzysz aplikację błyskawiczną w Google Play, dołączając ją do pakietu Android App Bundle. Taki pakiet jest nazywany pakietem aplikacji z obsługą wersji błyskawicznej. W tym dokumencie opisujemy, jak skonfigurować środowisko programistyczne na potrzeby pakietów aplikacji z obsługą wersji błyskawicznej oraz jak skonfigurować, skompilować, przetestować i opublikować pakiet aplikacji z obsługą wersji błyskawicznej.

Jeśli masz już projekt aplikacji błyskawicznej, który korzysta z wycofanej wtyczki (com.android.feature), dowiedz się, jak przenieść aplikację błyskawiczną, aby obsługiwała pakiety Android App Bundle.

Konfigurowanie środowiska programistycznego

Aby móc korzystać z aplikacji błyskawicznych w pakiecie aplikacji, potrzebujesz dostępu do pakietu SDK dla aplikacji błyskawicznych w Google Play. Możesz zainstalować pakiet SDK, korzystając z jednej z tych metod:

Jeśli chcesz przetestować aplikację błyskawiczną lokalnie, uzyskaj dostęp do urządzenia fizycznego lub wirtualnego.

Informacje o wymaganych warunkach wykonania

Aplikacja błyskawiczna w Google Play uruchamia pakiety aplikacji obsługujące wersję błyskawiczną w specjalnej piaskownicy SELinux, co zwiększa bezpieczeństwo. Piaskownica dopuszcza określony podzbiór uprawnień, a także ograniczony typ interakcji z innymi aplikacjami. W sekcjach poniżej szczegółowo opisujemy właściwości tej piaskownicy.

Obsługiwane uprawnienia i operacje

Pakiety aplikacji z obsługą wersji błyskawicznej mogą korzystać tylko z tych uprawnień:

Obsługa typowych nieobsługiwanych uprawnień

Poniżej znajdziesz listę typowych, nieobsługiwanych uprawnień, które musisz usunąć z aplikacji, wraz z zalecaną ścieżką migracji każdego z nich:

  • ACCESS_WIFI_STATE: użyj atrybutu ACCESS_NETWORK_STATE, który powinien zawierać informacje podobne do danych ACCESS_WIFI_STATE.
  • BILLING: to jest wycofane uprawnienie. Korzystaj z Biblioteki płatności w Google Play, która nie wymaga już uprawnienia com.android.vending.BILLING.
  • READ/WRITE_EXTERNAL_STORAGE: aplikacje błyskawiczne nie mają dostępu do pamięci zewnętrznej. Zamiast niej używaj pamięci wewnętrznej.
  • com.google.android.c2dm.permission.RECEIVE i permission.C2D_MESSAGE: C2DM został wycofany. Przejdź na Komunikację w chmurze Firebase (FCM). FCM nie wymaga do działania żadnych dodatkowych uprawnień.

Poza tym pakiety aplikacji z obsługą wersji błyskawicznej nie umożliwiają:

Dostęp do zainstalowanych aplikacji

Tworząc aplikację błyskawiczną, pamiętaj, że nie może ona wejść w interakcję z aplikacjami zainstalowanymi na urządzeniu, chyba że zostanie spełniony jeden z tych warunków:

  • Co najmniej 1 aktywność w zainstalowanej aplikacji ustawiła element android:visibleToInstantApps na trueten element jest dostępny dla aplikacji z Androidem 8.0 (poziom interfejsu API 26) lub nowszym.
  • Zainstalowana aplikacja zawiera filtr intencji, który obejmuje CATEGORY_BROWSABLE.
  • Aplikacja błyskawiczna wysyła intencję za pomocą działania ACTION_SEND, ACTION_SENDTO lub ACTION_SEND_MULTIPLE.

Konfigurowanie projektu na potrzeby aplikacji błyskawicznych

Aby pakiet aplikacji z tą funkcją był zgodny z aplikacją błyskawiczną w Google Play, musisz starannie skonfigurować kilka jego aspektów. Kwestie te opisano w sekcjach poniżej.

Deklarowanie zależności projektu

Aby używać w aplikacji interfejsów API aplikacji błyskawicznych Google Play, umieść tę deklarację w pliku konfiguracji build.gradle modułu aplikacji:

Odlotowy

implementation "com.google.android.gms:play-services-instantapps:17.0.0"

Kotlin

implementation("com.google.android.gms:play-services-instantapps:17.0.0")

Określanie prawidłowych kodów wersji

Kod wersji aplikacji błyskawicznej musi być krótszy niż kod wersji aplikacji z możliwością zainstalowania. Użytkownicy muszą przejść z aplikacji błyskawicznej w Google Play na pobranie i zainstalowanie aplikacji na urządzeniu. Platforma Androida traktuje tę zmianę jako aktualizację aplikacji.

Aby mieć pewność, że postępujesz zgodnie ze schematem obsługi wersji, którego oczekują użytkownicy, zastosuj jedną z tych strategii:

  • Uruchom ponownie kody wersji aplikacji błyskawicznej w Google Play (1).
  • Zwiększ kod wersji instalowanego pliku APK o dużą liczbę, np. 1000, by mieć pewność, że jest wystarczająco dużo miejsca na zwiększenie numeru wersji aplikacji błyskawicznej.

Aplikacje błyskawiczne i instalacyjne możesz tworzyć w 2 osobnych projektach Android Studio. W takim przypadku musisz jednak wykonać te czynności, aby opublikować aplikację w Google Play:

  1. Użyj tej samej nazwy pakietu w obu projektach Android Studio.
  2. W Konsoli Google Play prześlij oba warianty do tej samej aplikacji.

Więcej informacji o ustawianiu wersji aplikacji znajdziesz w artykule Tworzenie wersji aplikacji.

Zaktualizuj docelową wersję piaskownicy

Musisz zaktualizować plik AndroidManifest.xml aplikacji błyskawicznej, aby był kierowany na środowisko piaskownicy obsługiwane przez aplikację błyskawiczną w Google Play. Aby dokończyć aktualizację, dodaj atrybut android:targetSandboxVersion do elementu <manifest> aplikacji, jak pokazano w tym fragmencie kodu:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

Więcej informacji znajdziesz w dokumentacji atrybutu targetSandboxVersion.

Deklarowanie modułów aplikacji obsługujących wersje błyskawiczne

Aby zadeklarować, że Twój pakiet aplikacji obsługuje aplikacje błyskawiczne, użyj jednej z tych metod:

  • Jeśli masz już pakiet aplikacji, który zawiera tylko moduł podstawowy, możesz go błyskawicznie włączyć w ten sposób:

    1. Otwórz panel Projekt, wybierając z paska menu Widok > Okna narzędzi > Projekt.
    2. Kliknij prawym przyciskiem myszy moduł podstawowy (zwykle o nazwie „aplikacja”) i wybierz Refaktor > Włącz obsługę aplikacji błyskawicznych.
    3. W wyświetlonym oknie dialogowym wybierz z menu moduł podstawowy.
    4. Kliknij OK.

    Android Studio dodaje do pliku manifestu modułu następującą deklarację:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • Jeśli masz już pakiet aplikacji zawierający wiele modułów, możesz utworzyć moduł funkcji z obsługą wersji błyskawicznej. Ten proces włącza też natychmiastowy moduł podstawowy aplikacji, umożliwiając obsługę wielu takich punktów.

Dodaj obsługę logowania

Jeśli aplikacja błyskawiczna umożliwia użytkownikom logowanie się, pakiet aplikacji z obsługą aplikacji błyskawicznej musi obsługiwać Smart Lock na hasła na Androidzie. Jeśli tworzysz grę błyskawiczną, zaloguj się w usługach gier Google Play.

Zapewnia obsługę środowiska wykonawczego

Aby zapewnić zgodność z piaskownicą SELinux, w której działają aplikacje błyskawiczne, podczas tworzenia pakietu z obsługą wersji błyskawicznej pamiętaj o tych kwestiach:

  • Nie udostępniaj wartości myUid(), która jest przypisana do UID procesu aplikacji.
  • Jeśli Twoja aplikacja jest kierowana na Androida 8.1 (poziom interfejsu API 27) lub starszego, utwórz plik Network Security Config (Konfiguracja zabezpieczeń sieci) i ustaw w cleartextTrafficPermitted wartość false. Aplikacje błyskawiczne nie obsługują ruchu HTTP. W aplikacjach kierowanych na Androida 9 lub nowszego ruch nieszyfrowany jest domyślnie wyłączony.
  • Aplikacja błyskawiczna jest pobierana na urządzenie użytkownika, dopóki pamięć podręczna aplikacji błyskawicznej nie zostanie wyczyszczona, co ma miejsce w jednej z tych sytuacji:

    • Pamięć podręczna aplikacji błyskawicznej jest usuwana z pamięci, ponieważ na urządzeniu zaczyna brakować dostępnej pamięci.
    • użytkownik uruchomi ponownie urządzenie;

    W takiej sytuacji użytkownik musi jeszcze raz pobrać aplikację błyskawiczną, aby z niej korzystać.

  • Jeśli w systemie zaczyna brakować miejsca, możliwe, że dane użytkownika aplikacji błyskawicznej zostały usunięte z pamięci wewnętrznej. Dlatego zalecamy okresowe synchronizowanie danych użytkowników z serwerem aplikacji w celu zachowania postępów użytkowników.

Dodaj logikę na potrzeby przepływów pracy w środowisku błyskawicznym

Gdy skonfigurujesz pakiet aplikacji w taki sposób, aby obsługiwał aplikacje błyskawiczne, dodaj logikę opisaną w kolejnych sekcjach.

Sprawdź, czy w aplikacji działa aplikacja błyskawiczna

Jeśli logika działania aplikacji zależy od tego, czy użytkownik korzysta z aplikacji błyskawicznej, wywołaj metodę isInstantApp(). Ta metoda zwraca wartość true, jeśli aktualnie uruchomiony proces jest funkcją błyskawiczną.

Wyświetl prośbę o instalację

Jeśli tworzysz wersję próbną aplikacji lub gry, możesz użyć aplikacji błyskawicznej w Google Play, aby umożliwić Ci wyświetlenie komunikatu w aplikacji błyskawicznej, aby zachęcić użytkowników do zainstalowania na urządzeniu pełnej wersji. Aby wyświetlić ten prompt, użyj metody InstantApps.showInstallPrompt(), tak jak w tym fragmencie kodu:

Kotlin

class MyInstantExperienceActivity : AppCompatActivity {
    // ...
    private fun showInstallPrompt() {
        val postInstall = Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name)

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(this@MyInstantExperienceActivity,
                postInstall, request-code, /* referrer= */ null)
    }
}

Java

public class MyInstantExperienceActivity extends AppCompatActivity {
    // ...
    private void showInstallPrompt() {
        Intent postInstall = new Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name);

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(MyInstantExperienceActivity.this,
                postInstall, request-code, /* referrer= */ null);
    }
}

Przenoszenie danych do zainstalowanego środowiska

Jeśli spodoba Ci się aplikacja błyskawiczna, może ją zainstalować. W trosce o wygodę użytkownika ważne jest, aby jego dane były przenoszone z aplikacji błyskawicznej do pełnej wersji aplikacji.

Jeśli użytkownik korzysta z urządzenia z Androidem 8.0 (poziom interfejsu API 26) lub nowszym i aplikacja określa targetSandboxVersion o wartości 2, jego dane są automatycznie przenoszone do pełnej wersji aplikacji. W przeciwnym razie musisz przenieść dane ręcznie. Aby to zrobić, użyj jednego z tych interfejsów API:

  • W przypadku użytkowników, którzy korzystają z urządzeń z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, użyj Cookie API – przykładowej aplikacji.
  • Jeśli użytkownicy mogą korzystać z Twoich usług na urządzeniach z Androidem 7.1 (poziom interfejsu API 25) lub starszym, dodaj obsługę interfejsu Storage API – przykładowa aplikacja.

Tworzenie pakietu aplikacji

Pakiet aplikacji obsługujący aplikacje błyskawiczne możesz utworzyć w Android Studio lub za pomocą interfejsu wiersza poleceń.

Android Studio

W Android Studio możesz utworzyć pakiet aplikacji, wybierając Kompilacja > Pakiety kompilacji / Pliki APK > Pakiety kompilacji. Więcej informacji o tworzeniu projektu znajdziesz w artykule Tworzenie projektu.

Interfejs wiersza poleceń

Możesz też utworzyć pakiet aplikacji z poziomu wiersza poleceń za pomocą Gradle.

Obsługa architektury 64-bitowej

Aplikacje opublikowane w Google Play muszą obsługiwać architekturę 64-bitową. Dodanie 64-bitowej wersji aplikacji zwiększa wydajność i zapewnia konfigurację pod kątem urządzeń ze sprzętem 64-bitowym. Więcej informacji o obsłudze wersji 64-bitowej

Testowanie aplikacji błyskawicznej

Zanim opublikujesz pakiet obsługujący aplikacje błyskawiczne, możesz przetestować tę aplikację w jednej z tych lokalizacji, aby sprawdzić jej działanie:

Android Studio

Aby przetestować działanie aplikacji błyskawicznej na komputerze lokalnym za pomocą Android Studio, wykonaj te czynności:

  1. Jeśli na urządzeniu testowym masz zainstalowaną wersję aplikacji, odinstaluj ją.
  2. W Android Studio na karcie Ogólne w oknie konfiguracji/debugowania zaznacz pole wyboru Wdróż jako aplikację błyskawiczną.
  3. Kliknij Uruchom > Uruchom na pasku menu lub Uruchom na pasku narzędzi, a potem wybierz urządzenie, na którym chcesz przetestować błyskawiczne działanie aplikacji. Aplikacja błyskawiczna wczytuje się na wybranym urządzeniu testowym.

Interfejs wiersza poleceń

Aby przetestować działanie aplikacji błyskawicznej na komputerze lokalnym za pomocą wiersza poleceń:

  1. Jeśli na urządzeniu testowym masz zainstalowaną wersję aplikacji, odinstaluj ją.
  2. Zainstaluj aplikację błyskawiczną z innego urządzenia i uruchom ją na urządzeniu testowym, wpisując to polecenie:
ia run output-from-build-command

Ścieżka testu wewnętrznego

Aby przetestować działanie aplikacji błyskawicznej ze Sklepu Play lub banera w witrynie, opublikuj aplikację na ścieżce testu wewnętrznego w Konsoli Play.

Aby opublikować aplikację na ścieżce testu wewnętrznego:

  1. Prześlij pakiet aplikacji, wykonując czynności opisane w przewodniku Przesyłanie pakietu aplikacji do Konsoli Play.
  2. Przygotuj przesłany pakiet do wersji na ścieżce testu wewnętrznego. Więcej informacji znajdziesz w artykule pomocy na temat przygotowywania i wdrażania wersji.
  3. Zaloguj się na konto testera wewnętrznego na urządzeniu, a potem uruchom aplikację błyskawiczną na jednej z tych platform:

    • Przycisk Wypróbuj na stronie aplikacji w Sklepie Play.
    • Link z baneru w witrynie aplikacji.

Publikowanie pakietu aplikacji na ścieżce produkcyjnej

Aby opublikować pakiet aplikacji obsługujący aplikacje błyskawiczne, wykonaj te czynności:

  1. Podpisz pakiet aplikacji kluczem wersji i prześlij pakiet aplikacji do Konsoli Play.
  2. W Konsoli Play otwórz Zarządzanie wersjami > Aplikacje błyskawiczne na Androida, a potem przejdź do ścieżki produkcji aplikacji błyskawicznej.
  3. Kliknij Aktualizuj z biblioteki i wybierz przesłany pakiet aplikacji obsługujący aplikacje błyskawiczne.

Wybierz, gdzie chcesz opublikować aplikację błyskawiczną

Możesz udostępnić aplikację błyskawiczną w niektórych krajach i regionach, w których użytkownicy mogą ją zainstalować. Ta funkcja jest przydatna, gdy chcesz promować błyskawiczną aplikację użytkownikom z określonego kraju i regionu.

Dodatkowe materiały

Więcej informacji o tworzeniu aplikacji błyskawicznych i pakietów Android App Bundle znajdziesz w tych materiałach:

Wideo: grupowanie aplikacji w ramach wyszukiwania dynamicznego
Podczas tej sesji na Android Dev Summit 2018 dowiesz się, jak dodać aplikację błyskawiczną do pakietu Android App Bundle.
Wideo: publikowanie mniejszych aplikacji za pomocą pakietu Android App Bundle
Dowiedz się, jak pakiety aplikacji pomagają szybciej tworzyć aplikacje i tworzyć mniejsze pliki APK dla użytkowników.
Ćwiczenie z programowania: Twój pierwszy pakiet Android App Bundle
Szczegółowy przewodnik tworzenia pakietu Android App Bundle i dodawania do niego funkcji.
Format pakietu Android App Bundle
Dowiedz się więcej o tym, jak program wiersza poleceń bundletool porządkuje pakiet aplikacji na podstawie kodu i zasobów aplikacji.