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ą żadnego mechanizmu.

Wprowadzamy tę zmianę na podstawie opinii deweloperów i naszych ciągłych inwestycji w ulepszanie ekosystemu od czasu wprowadzenia aplikacji błyskawicznych w Google Play.

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

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

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ć za pomocą jednej z tych metod:

  • Zainstaluj Androida Studio w wersji 3.6 lub nowszej. Po otwarciu Android Studio pobierz pakiet SDK do tworzenia aplikacji na Androida Instant z karty Narzędzia SDKMenedżerze SDK.
  • Instalowanie z poziomu wiersza poleceń:

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

Jeśli chcesz przetestować reklamę natychmiastową 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ących aplikacje błyskawiczne w specjalnym rodzaju piaskownicy SELinux, co zwiększa bezpieczeństwo. Ta piaskownica zezwala na podzbiór uprawnień, a także na 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 występujących 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 zewnętrznej pamięci masowej. Zamiast tego używaj pamięci wewnętrznej.
  • com.google.android.c2dm.permission.RECEIVEpermission.C2D_MESSAGE: C2DM zostało wycofane. 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 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.
  • Szybki podgląd 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śl prawidłowe kody wersji

Kod wersji aplikacji błyskawicznej musi być mniejszy niż kod wersji aplikacji instalowanej. Zakładamy, że użytkownicy przejdą z wersji 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 Obsługa wersji aplikacji.

Aktualizowanie docelowej wersji piaskownicy

Plik AndroidManifest.xml aplikacji błyskawicznej musi zostać zaktualizowany, aby był kierowany na środowisko piaskownicy obsługiwane przez aplikacje błyskawiczne w Google Play. 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ć obsługę aplikacji błyskawicznej w ten sposób:

    1. Otwórz panel Project (Projekt), wybierając na pasku menu View > Tool Windows > Project (Widok > Okna narzędzi > Projekt).
    2. Kliknij prawym przyciskiem myszy moduł podstawowy, zwykle o nazwie „app”, i wybierz Refactor > Enable Instant Apps Support (Refaktoryzacja > 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ć wiele punktów wejścia w aplikacji.

Dodawanie obsługi logowania

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ę „natychmiastową”, zamiast tego użyj logowania za pomocą usług gier Google Play.

Obsługa środowiska wykonawczego

Aby pakiet z obsługą aplikacji błyskawicznych 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 przypisanym przez jądro identyfikatorem 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 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 formie zwykłego tekstu jest domyślnie wyłączony.
  • Aplikacja błyskawiczna pozostaje pobrana na urządzeniu użytkownika, dopóki nie zostanie wyczyszczona pamięć podręczna aplikacji błyskawicznej. Dzieje się to w jednej z tych sytuacji:

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

    W takim przypadku użytkownik musi ponownie pobrać reklamę natychmiastową, aby móc z niej korzystać.

  • Jeśli w systemie jest bardzo mało miejsca na dane, dane użytkownika związane z szybką reklamą 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 reklamami natychmiastowymi

Po skonfigurowaniu pakietu aplikacji tak, aby obsługiwał aplikacje błyskawiczne, dodaj logikę przedstawioną 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(). Ta metoda zwraca wartość true, jeśli aktualnie uruchomiony proces jest aplikacją natychmiastową.

Wyświetlanie prośby o instalację

Jeśli tworzysz wersję próbną aplikacji lub gry, Google Play Instant umożliwia wyświetlanie w wersji błyskawicznej prośby o zainstalowanie pełnej wersji na urządzeniu użytkownika. 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 zainstalowanego doświadczenia

Jeśli użytkownikowi spodoba się Twoja aplikacja natychmiastowa, może zdecydować się na zainstalowanie aplikacji. Aby zapewnić użytkownikom wygodę, ważne jest, aby dane użytkownika były przenoszone z aplikacji natychmiastowej do pełnej wersji aplikacji.

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 usługi 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 włączoną funkcją aplikacji natychmiastowych, 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 Tworzenie projektu.

Interfejs wiersza poleceń

Możesz też skompilować pakiet aplikacji 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 z 64-bitowym sprzętem. Więcej informacji o obsłudze systemów 64-bitowych

Testowanie aplikacji błyskawicznej

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

Android Studio

Aby przetestować natychmiastowe wrażenia związane z aplikacją 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 Ogólneoknie dialogowym Konfiguracje uruchamiania/debugowania, zaznacz pole wyboru Wdróż jako aplikację natychmiastową.
  3. Na pasku menu wybierz Uruchom > Uruchom lub na pasku narzędzi kliknij Uruchom , a następnie wybierz urządzenie, na którym chcesz przetestować aplikację w wersji natychmiastowej. Aplikacja błyskawiczna wczytuje się na wybranym urządzeniu testowym.

Interfejs wiersza poleceń

Aby przetestować w wierszu poleceń na komputerze lokalnym funkcję natychmiastową aplikacji, wykonaj te czynności:

  1. Jeśli na urządzeniu testowym masz zainstalowaną wersję aplikacji, odinstaluj ją.
  2. Wgraj i uruchom aplikację natychmiastową 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 w banerze 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 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 urządzeniu na konto testera wewnętrznego, a potem uruchom aplikację błyskawiczną w jeden z tych sposobów:

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

Opublikuj pakiet aplikacji na ścieżce produkcyjnej

Aby opublikować pakiet aplikacji z aplikacją natychmiastową, wykonaj te czynności:

  1. Jeśli jeszcze tego nie zrobiono, podpisz pakiet aplikacji kluczem wersjiprześlij go do Konsoli Play.
  2. W Konsoli Play otwórz Zarządzanie wersjami > Aplikacje na Androida działające bez instalacji, a następnie przejdź do ścieżki wersji produkcyjnej aplikacji działającej bez instalacji.
  3. Kliknij Zaktualizuj z biblioteki, a potem wybierz przesłany pakiet aplikacji obsługujący aplikacje błyskawiczne.

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: pakowanie aplikacji w aplikacji błyskawicznej
Dowiedz się, jak dodać wersję błyskawiczną do pakietu aplikacji na Androida, podczas tej sesji z Android Dev Summit 2018.
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.
Codelab: 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 organizuje pakiet aplikacji na podstawie kodu i zasobów aplikacji.