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

Ostrzeżenie: Aplikacja błyskawiczna w Google Play nie będzie już dostępna. Od grudnia 2025 r. nie będzie można publikować aplikacji błyskawicznych w Google Play, a wszystkie interfejsy Instant API usług Google Play przestaną działać. Użytkownicy nie będą już otrzymywać aplikacji błyskawicznych z Google Play za pomocą jakiegokolwiek mechanizmu.

Wprowadzamy tę zmianę kierując się opinią deweloperów i naszymi ciągłymi inwestycjami w ulepszanie ekosystemu od czasu wprowadzenia Aplikacji błyskawicznych w Google Play.

Deweloperów, którzy chcą nadal optymalizować wzrost liczby użytkowników, zachęcamy do kierowania użytkowników do standardowej aplikacji lub gry za pomocą precyzyjnych linków, które w razie potrzeby przekierują ich do określonych ścieżek lub funkcji.

Aplikację błyskawiczną w Google Play tworzysz, dołączając ją do pakietu Android App Bundle. Taki pakiet nazywa się pakietem aplikacji z obsługą wersji błyskawicznej. Z tego dokumentu dowiesz się, jak skonfigurować środowisko programistyczne dla pakietów aplikacji obsługujących aplikacje błyskawiczne, a także jak skonfigurować, skompilować, przetestować i opublikować pakiet aplikacji obsługujący aplikacje błyskawiczne.

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

Konfigurowanie środowiska programistycznego

Aby udostępnić aplikację błyskawiczną w pakiecie aplikacji, musisz mieć dostęp do pakietu SDK do tworzenia aplikacji błyskawicznych w Google Play. Pakiet SDK możesz zainstalować, korzystając z jednej z tych metod:

  • Zainstaluj Androida Studio w wersji 3.6 lub nowszej. Po otwarciu Androida Studio pobierz pakiet SDK do tworzenia aplikacji błyskawicznych w Google Play z karty SDK Tools w narzędziu SDK Manager.
  • Instalowanie z poziomu wiersza poleceń:

    cd path/to/android/sdk/tools/bin && \
      ./sdkmanager 'extras;google;instantapps'
    

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

Więcej informacji o wymaganych warunkach wykonania

Google Play Instant uruchamia pakiety aplikacji obsługujące aplikacje błyskawiczne w specjalnym rodzaju piaskownicy SELinux, co zwiększa bezpieczeństwo. Ta piaskownica dopuszcza podzbiór uprawnień, a także ograniczone typy interakcji z innymi aplikacjami. W kolejnych sekcjach znajdziesz bardziej szczegółowe informacje o charakterystyce tej piaskownicy.

Obsługiwane uprawnienia i operacje

Pakiety aplikacji z obsługą wersji błyskawicznej mogą używać tylko uprawnień z tej listy:

Obsługa często nieobsługiwanych uprawnień

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

  • ACCESS_WIFI_STATE: użyj ACCESS_NETWORK_STATE, które powinno zawierać informacje podobne do ACCESS_WIFI_STATE.
  • BILLING: to uprawnienie jest wycofane. Używaj 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 tego używaj pamięci wewnętrznej.
  • com.google.android.c2dm.permission.RECEIVEpermission.C2D_MESSAGE: usługa C2DM została wycofana. Migracja do Komunikacji w chmurze Firebase (FCM). FCM nie wymaga żadnych dodatkowych uprawnień.

Pakiety aplikacji z obsługą wersji błyskawicznej nie mogą też:

Dostęp do zainstalowanych aplikacji

Podczas tworzenia aplikacji błyskawicznej pamiętaj, że nie może ona wchodzić w interakcje z zainstalowanymi na urządzeniu aplikacjami, chyba że spełniony jest jeden z tych warunków:

  • Co najmniej 1 aktywność w zainstalowanej aplikacji ma ustawiony element android:visibleToInstantApps na wartość true – ten element jest dostępny w aplikacjach działających na Androidzie 8.0 (API na poziomie 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 pod kątem aplikacji błyskawicznych

Aby pakiet aplikacji obsługujący aplikacje błyskawiczne był zgodny z Google Play Instant, musisz starannie skonfigurować kilka jego aspektów. W kolejnych sekcjach opisujemy te kwestie.

Deklarowanie zależności projektu

Aby używać w aplikacji interfejsów Google Play Instant API, dodaj do pliku konfiguracyjnego build.gradle modułu aplikacji tę deklarację:

Groovy

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ć niższy niż kod wersji aplikacji instalowanej. Zakładamy, że użytkownicy przejdą z aplikacji błyskawicznej w Google Play do pobrania i zainstalowania aplikacji na urządzeniu. Platforma Androida traktuje tę zmianę jako aktualizację aplikacji.

Aby mieć pewność, że używasz schematu wersji, którego oczekują użytkownicy, zastosuj jedną z tych strategii:

  • Zresetuj kody wersji aplikacji błyskawicznej w Google Play do 1.
  • Zwiększ kod wersji instalacyjnego pliku APK o dużą liczbę, np. 1000, aby zapewnić wystarczającą ilość miejsca na zwiększenie numeru wersji aplikacji błyskawicznej.

Aplikację błyskawiczną i aplikację instalacyjną możesz tworzyć w 2 osobnych projektach Android Studio. Jeśli to zrobisz, aby opublikować aplikację w Google Play, musisz wykonać te czynności:

  1. Użyj tej samej nazwy pakietu w obu projektach Android Studio.
  2. W Konsoli Google Play prześlij obie wersje do tej samej aplikacji.
Nazwa wersji widoczna dla użytkownika nie podlega żadnym ograniczeniom.

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

Aktualizowanie docelowej wersji piaskownicy

Aby plik AndroidManifest.xml aplikacji błyskawicznej był kierowany na środowisko piaskownicy obsługiwane przez aplikacje błyskawiczne w Google Play, musi zostać zaktualizowany. Aby wprowadzić tę zmianę, dodaj atrybut android:targetSandboxVersion do elementu <manifest> w 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 aplikacje błyskawiczne

Możesz zadeklarować, że pakiet aplikacji obsługuje aplikacje błyskawiczne, korzystając z jednej z tych metod:

  • Jeśli masz pakiet aplikacji, który zawiera tylko moduł podstawowy, możesz włączyć w nim obsługę aplikacji błyskawicznej w ten sposób:

    1. Otwórz panel Project (Projekt), wybierając View > Tool Windows > Project (Widok > Okna narzędzi > Projekt) na pasku menu.
    2. Kliknij prawym przyciskiem myszy moduł podstawowy, zwykle o nazwie „app”, i wybierz Refactor > Enable Instant Apps Support (Refaktoryzuj > Włącz obsługę aplikacji błyskawicznych).
    3. W wyświetlonym oknie wybierz moduł podstawowy z menu.
    4. Kliknij OK.

    Android Studio dodaje do pliku manifestu modułu tę deklarację:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • Jeśli masz pakiet aplikacji zawierający wiele modułów, możesz utworzyć moduł funkcji z obsługą wersji błyskawicznej. Ten proces natychmiast włącza podstawowy moduł aplikacji, dzięki czemu możesz obsługiwać w niej wiele punktów wejścia.

Dodawanie obsługi logowania się

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

Obsługa środowiska wykonawczego

Aby pakiet obsługujący aplikacje błyskawiczne był zgodny z piaskownicą SELinux, w której działają aplikacje błyskawiczne, podczas jego tworzenia pamiętaj o tych kwestiach:

  • Nie udostępniaj wartości myUid(), która jest identyfikatorem UID przypisanym przez jądro do procesu aplikacji.
  • Jeśli Twoja aplikacja jest kierowana na Androida 8.1 (poziom interfejsu API 27) lub starszego, utwórz plik Network Security Config i ustaw wartość cleartextTrafficPermitted na false. Aplikacje błyskawiczne nie obsługują ruchu HTTP. W przypadku aplikacji kierowanych na Androida 9 lub nowszego ruch w postaci tekstu nieszyfrowanego jest domyślnie wyłączony.
  • Aplikacja błyskawiczna pozostaje pobrana na urządzeniu użytkownika do momentu wyczyszczenia pamięci podręcznej aplikacji błyskawicznej, co następuje w jednej z tych sytuacji:

    • Pamięć podręczna aplikacji błyskawicznej została oczyszczona, ponieważ na urządzeniu jest mało dostępnej pamięci.
    • Użytkownik ponownie uruchamia urządzenie.

    W takim przypadku użytkownik musi ponownie pobrać aplikację błyskawiczną, aby móc z niej korzystać.

  • Jeśli w systemie jest bardzo mało miejsca na dane, dane użytkownika związane z aplikacją błyskawiczną mogą zostać usunięte z pamięci wewnętrznej. Dlatego zalecamy okresowe synchronizowanie danych użytkownika z serwerem aplikacji, aby zachować postępy użytkownika.

Dodawanie logiki do przepływów pracy związanych z aplikacjami błyskawicznymi

Po skonfigurowaniu pakietu aplikacji tak, aby obsługiwał aplikacje błyskawiczne, dodaj logikę pokazaną w sekcjach poniżej.

Sprawdzanie, czy aplikacja działa w trybie błyskawicznym

Jeśli część logiki aplikacji zależy od tego, czy użytkownik korzysta z szybkiego podglądu, wywołaj metodę isInstantApp(). Jeśli obecnie uruchomiony proces jest aplikacją błyskawiczną, ta metoda zwraca wartość true.

Wyświetlanie prośby o instalację

Jeśli tworzysz wersję próbną aplikacji lub gry, Aplikacja błyskawiczna w Google Play umożliwia wyświetlanie w niej komunikatu, który zachęca użytkowników do zainstalowania pełnej wersji na urządzeniu. Aby wyświetlić ten komunikat, użyj metody InstantApps.showInstallPrompt(), jak pokazano 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 zainstalowanej aplikacji

Jeśli użytkownikowi spodoba się Twoja aplikacja błyskawiczna, może zdecydować się na zainstalowanie aplikacji. Aby zapewnić mu wygodę, ważne jest, aby dane użytkownika zostały przeniesione z aplikacji błyskawicznej do pełnej wersji.

Jeśli użytkownik korzysta z urządzenia z Androidem 8.0 (poziom interfejsu API 26) lub nowszym i Twoja aplikacja określa targetSandboxVersion2, dane użytkownika 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:

  • Użytkownicy urządzeń z Androidem 8.0 (poziom 26 interfejsu API) lub nowszym powinni korzystać z interfejsu Cookie API – przykładowa aplikacja
  • Jeśli użytkownicy mogą korzystać z Twojej aplikacji na urządzeniach z Androidem 7.1 (interfejs API na poziomie 25) lub starszym, dodaj obsługę interfejsu Storage API – przykładowa aplikacja

Tworzenie pakietu aplikacji

Aby utworzyć pakiet aplikacji z obsługą wersji błyskawicznych, możesz użyć Androida Studio lub interfejsu wiersza poleceń.

Android Studio

Aby utworzyć pakiet aplikacji, w Android Studio wybierz Build > Build Bundle(s) / APK(s) > Build Bundle(s) (Utwórz > Utwórz pakiety / pliki APK > Utwórz pakiety). Więcej informacji o tworzeniu projektu znajdziesz w artykule o tworzeniu projektu.

Interfejs wiersza poleceń

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

Obsługa architektur 64-bitowych

Aplikacje publikowane w Google Play muszą obsługiwać architektury 64-bitowe. Dodanie 64-bitowej wersji aplikacji zwiększa jej wydajność i przygotowuje ją do działania na urządzeniach 64-bitowych. Więcej informacji o obsłudze systemów 64-bitowych

Testowanie aplikacji błyskawicznej

Zanim opublikujesz pakiet aplikacji z włączoną obsługą wersji błyskawicznej, możesz przetestować aplikację błyskawiczną w jednym z tych miejsc, aby sprawdzić jej działanie:

Android Studio

Aby przetestować wersję błyskawiczną aplikacji 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 w opcjach instalacji, które pojawią się na karcie General (Ogólne) w oknie dialogowym Run/Debug Configurations (Konfiguracje uruchamiania/debugowania), zaznacz pole wyboru Deploy as an instant app (Wdróż jako aplikację błyskawiczną).
  3. Na pasku menu wybierz Run > Run (Uruchom > Uruchom) lub na pasku narzędzi kliknij Run (Uruchom) , a następnie wybierz urządzenie, na którym chcesz przetestować wersję błyskawiczną aplikacji. Aplikacja błyskawiczna wczytuje się na wybranym urządzeniu testowym.

Interfejs wiersza poleceń

Aby przetestować w wierszu poleceń na komputerze lokalnym wersję błyskawiczną aplikacji, wykonaj te czynności:

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

Ścieżka testu wewnętrznego

Aby przetestować wersję błyskawiczną aplikacji w Sklepie Play lub baner na stronie internetowej, opublikuj aplikację na ścieżce testu wewnętrznego w Konsoli Play.

Aby opublikować aplikację na ścieżce testu wewnętrznego, wykonaj te czynności:

  1. Prześlij pakiet aplikacji, wykonując czynności opisane w przewodniku po przesyłaniu pakietów aplikacji do Konsoli Play.
  2. Przygotuj przesłany pakiet do opublikowania 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ą:

    • przyciskiem Wypróbuj na stronie aplikacji w Sklepie Play;
    • przez link z banera w witrynie aplikacji.
są większe niż 15 MB.

Publikowanie pakietu aplikacji na ścieżce produkcyjnej

Aby opublikować pakiet aplikacji z obsługą wersji błyskawicznej, wykonaj te czynności:

  1. Jeśli jeszcze tego nie zrobiłeś(-aś), podpisz pakiet aplikacji kluczem wersjiprześlij go do Konsoli Play.
  2. W Konsoli Play otwórz Zarządzanie wersjami > Aplikacje błyskawiczne na Androida, a następnie przejdź do ścieżki wersji produkcyjnej aplikacji błyskawicznej.
  3. Kliknij Zaktualizuj z biblioteki, a potem wybierz przesłany pakiet aplikacji obsługujący wersję błyskawiczną.

Wybieranie miejsca publikowania aplikacji błyskawicznej

Możesz uruchomić wersję błyskawiczną aplikacji w wybranym podzbiorze krajów i regionów, w których użytkownicy mogą zainstalować Twoją aplikację. Ta funkcja jest przydatna, gdy chcesz promować wersję błyskawiczną aplikacji wśród użytkowników z określonych krajów i regionów.

Dodatkowe materiały

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

Film: tworzenie pakietu z aplikacją błyskawiczną
Z tej sesji z Android Dev Summit '18 dowiesz się, jak dodać wersję błyskawiczną do pakietu Android App Bundle.
Film: publikowanie mniejszych aplikacji za pomocą pakietu Android App Bundle
Dowiedz się, jak pakiety aplikacji pomagają szybciej tworzyć aplikacje i generować mniejsze pliki APK dla użytkowników.
Ćwiczenie w Codelabs: 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 jej kodu i zasobów.