Dodaj obsługę natychmiastowego dostępu

Procedura konfigurowania aplikacji pod kątem aplikacji błyskawicznej w Google Play, zgodnie z opisem w sekcji Tworzenie pierwszej aplikacji błyskawicznej, odnosi się również do gier. W tym przewodniku omawiamy niektóre kroki konfiguracji charakterystyczne dla gier.

Gry możesz tworzyć na potrzeby aplikacji błyskawicznych w Google Play, korzystając z Unity (z wtyczką Google Play Instant Unity lub bez niej), Cocos2D, Androida Studio oraz z własnego silnika.

W tym przewodniku zakładamy, że wiesz już, jakiego rodzaju wrażenia chcesz oferować. Jeśli chcesz poznać pomysły i sprawdzone metody tworzenia wysokiej jakości gier, przeczytaj sprawdzone metody dotyczące wygody korzystania z gier w aplikacji błyskawicznej w Google Play.

Dodatkowo przed opublikowaniem gry, którą można uruchomić w aplikacji błyskawicznej w Google Play, zapoznaj się z listą kontrolną wymagań technicznych.

Działanie, które obejmuje ten filtr intencji, staje się punktem wejścia do aplikacji błyskawicznej w Google Play:

<activity android:name=".GameActivity">
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

Ta aktywność jest uruchamiana, gdy użytkownik kliknie przycisk Wypróbuj w Sklepie Play lub przycisk Zagraj od razu w aplikacji Gry Google Play. Aktywność możesz też uruchamiać bezpośrednio za pomocą interfejsu API precyzyjnych linków.

Określanie prawidłowych kodów wersji

Kod wersji aplikacji błyskawicznej w grze musi być krótszy niż kod wersji gry z możliwością zainstalowania. Taka wersja aplikacji umożliwia użytkownikom przejście z aplikacji błyskawicznej w Google Play do pobrania i zainstalowania gry na urządzeniu. Platforma Androida traktuje to przejście za aktualizację aplikacji.

Aby zachować zgodność z zalecanym schematem obsługi wersji, zastosuj jedną z tych strategii:

  • Uruchom ponownie kody wersji aplikacji błyskawicznej w Google Play (1).
  • Zwiększ liczbę kodów wersji aplikacji z możliwością zainstalowania, np. 1000, aby mieć wystarczającą ilość miejsca na zwiększenie numeru wersji aplikacji błyskawicznej.

Grę błyskawiczną i grę instalowaną możesz tworzyć w 2 osobnych projektach Android Studio. W takim przypadku musisz jednak wykonać te czynności, aby opublikować grę 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 gry znajdziesz w artykule Tworzenie wersji aplikacji.

Zapewnia obsługę środowiska wykonawczego

Podobnie jak inne aplikacje, gry błyskawiczne w Google Play działają w ograniczonej piaskownicy na urządzeniu. Aby zapewnić obsługę tego środowiska wykonawczego, wykonaj czynności opisane w poniższych sekcjach.

Zrezygnuj z ruchu w postaci tekstu nieszyfrowanego

Gry w aplikacji błyskawicznej w Google Play nie obsługują ruchu HTTP. Jeśli gra jest kierowana na Androida 9 (poziom interfejsu API 28) lub nowszego, Android domyślnie wyłączy w niej obsługę tekstu nieszyfrowanego.

Jeśli jednak gra jest kierowana na Androida 8.1 (poziom interfejsu API 27) lub starszego, musisz utworzyć plik konfiguracji zabezpieczeń sieci. W tym pliku ustaw cleartextTrafficPermitted na false, jak w tym fragmencie kodu:

res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

Zaktualizuj docelową wersję piaskownicy

Zaktualizuj plik AndroidManifest.xml gry 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> gry, 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.

Nie polegaj na obecności pamięci podręcznej ani danych aplikacji

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 gry, by zachować ich postępy.

Zmniejszanie rozmiaru aplikacji

W przeciwieństwie do innych typów aplikacji gry w aplikacjach błyskawicznych w Google Play mają limit rozmiaru pobierania wynoszący 15 MB. Aby utworzyć grę o takim rozmiarze, trzeba przeanalizować logikę gry. W tej sekcji opisujemy narzędzia i metody, które pomagają zoptymalizować rozmiar gry.

Narzędzia

Oto lista narzędzi, które mogą pomóc w określeniu, co wpływa na rozmiar gry:

  • Analizator plików APK: zapewnia całościowy wgląd w zawartość skompilowanego pliku APK. Korzystając z tego widoku, możesz określić liczbę bajtów, z których każdy element wpływa na ogólny rozmiar. Za jego pomocą możesz szybko sprawdzić rozmiar zasobów, zasobów, funkcji logicznych i bibliotek natywnych, z których korzysta Twoja gra.
  • Bloaty McBloatface: pokazuje profil rozmiaru plików binarnych.
  • Inspektor GPU w Androidzie: zobacz, jak zmniejsza się rozmiar tekstury bez konieczności ponownego kompilowania gry.

Techniki

Oto lista technik, za pomocą których możesz zmniejszyć rozmiar gry:

  • Wyodrębnij część logiki gry i umieść ją w co najmniej jednym module funkcji. Nie wliczają się one do limitu rozmiaru.
  • Zmniejsz rozdzielczość tekstur w grze.
  • Rozważ użycie formatu WebP, zwłaszcza jeśli używasz w GPU nieskompresowanych tekstur. Format WebP tworzy obrazy o tej samej jakości, co obrazy JPEG, ale są mniejsze o 15–30%. Choć dekompresja obrazów WebP trwa dłużej, ten czas jest znacznie krótszy niż czas pobierania tekstur gry. Firma Google zintegrowała też ten format z silnikiem gier typu open source.
  • Kompresuj lub ponownie wykorzystuj dźwięki i muzykę.
  • Aby zmniejszyć rozmiar pliku binarnego, użyj różnych flag kompilacji:
    • -fvisibility=hidden – najważniejszy, W polu cmake możesz go określić w taki sposób:
      $ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
      
    • -Oz – ważna także przy zmniejszaniu rozmiaru. Jeśli kompilujesz za pomocą polecenia gcc, użyj -Os.
    • -flto – czasami zmniejsza rozmiar pliku.
    • Flagi łączące – używaj --gc-sections w połączeniu z flagami kompilatora, np. -ffunction-sections i -fdata-sections.
  • Użyj ProGuard, aby zmniejszyć kod i zasoby.
  • Użyj narzędzia Gradle w wersji 4.4 lub nowszej, aby generować mniejsze pliki DEX.
  • Wdróż dostarczanie zasobów w chmurze.

Dzielenie dużej gry na kilka pakietów APK

Optymalizacja działania aplikacji błyskawicznej w Google Play tak, aby zmieściła się w pojedynczym pliku APK o rozmiarze 15 MB, może być kłopotliwa nawet po zastosowaniu zaleceń dotyczących zmniejszenia rozmiaru pliku APK. Aby rozwiązać ten problem, możesz podzielić grę na kilka pakietów APK. Gracze zaczynają od pobrania podstawowego, podstawowego pliku APK. W trakcie rozgrywki pozostałe podzielone pakiety APK są udostępniane w tle.

Na przykład podstawowy plik APK może zawierać podstawowy silnik gry i zasoby wymagane do wyświetlenia ekranu wczytywania. Po uruchomieniu podstawowego pakietu APK wyświetla się ekran wczytywania i od razu wysyła żądanie dodatkowego podzielonego pliku APK zawierającego dane gry i poziomu. Gdy taki dzielony pakiet APK będzie dostępny, może wczytać swoje zasoby do silnika gry i udostępnić graczowi treści, których potrzebują, aby rozpocząć grę.

Wdrażanie sprawdzonych metod zapewniania wygody użytkowania

Gdy skonfigurujesz grę w taki sposób, aby obsługiwała aplikacje błyskawiczne, dodaj do niej zasady omówione w kolejnych sekcjach, aby zadbać o wygodę użytkowników.

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

Sprawdź, czy gra działa w wersji błyskawicznej

Jeśli działanie logiki gry 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ą.

Dzięki temu możesz określić, czy aplikacja musi działać w ograniczonym środowisku wykonawczym, czy może korzystać z funkcji platformy.

Wyświetl prośbę o instalację

Jeśli masz wersję próbną aplikacji błyskawicznej w Google Play, gra powinna w pewnym momencie poprosić użytkownika o zainstalowanie na urządzeniu pełnej wersji. Aby to zrobić, użyj metody showInstallPrompt() w interfejsach API Google na Androida.

Więcej informacji o tym, jak i kiedy należy prosić odtwarzacza o instalację, znajdziesz w artykule ze sprawdzonymi metodami dotyczącymi UX w przypadku gier w aplikacji błyskawicznej w Google Play.

Przenoszenie danych do zainstalowanego środowiska

Jeśli użytkownikowi spodoba się okres próbny, może zainstalować pełną wersję Twojej gry. W trosce o wygodę użytkowników ważne jest przeniesienie postępów użytkownika z aplikacji błyskawicznej do pełnej wersji gry.

Jeśli Twoja gra określa targetSandboxVersion o wartości 2, postępy użytkownika są automatycznie przenoszone do pełnej wersji gry. W przeciwnym razie musisz ręcznie przenieść dane o postępach gracza. Aby to zrobić, użyj interfejsu Cookie API – przykładowa aplikacja.

Dodatkowe materiały

Więcej informacji o aplikacjach błyskawicznych w Google Play znajdziesz w tych dodatkowych materiałach:

Ćwiczenie z programowania: tworzenie pierwszej aplikacji błyskawicznej
Dodaj obsługę aplikacji błyskawicznej w Google Play w istniejącej aplikacji.
Ćwiczenie z programowania: tworzenie aplikacji błyskawicznej z wieloma funkcjami
Modyfikacja aplikacji z wieloma funkcjami.