Najczęstsze pytania dotyczące pakietu Android App Bundle

Informacje o pakietach Android App Bundle

Czym jest pakiet Android App Bundle (AAB)?

Wprowadzony w 2018 roku pakiet Android App Bundle (AAB) to format publikowania aplikacji na Androida, który jest obsługiwany przez Google Play i inne sklepy z aplikacjami oraz przez narzędzia do kompilacji, takie jak Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity i Unreal.

Czym różnią się pakiety AAB od plików APK?

Pakiety aplikacji służą tylko do publikowania i nie można ich instalować na urządzeniach z Androidem. Pakiet na Androida (APK) to instalacyjny, wykonywalny format aplikacji na Androida. Dystrybutor musi przetworzyć pakiety aplikacji na pliki APK, aby można było je zainstalować na urządzeniach.

Czy AAB to format zastrzeżony, którego można używać tylko w Google Play?

Nie, AAB nie jest formatem zastrzeżonym. Pakiet aplikacji jest oprogramowaniem open source, więc może być obsługiwany przez dowolny sklep z aplikacjami. Pakiety są obsługiwane przez Google Play i niektóre inne sklepy z aplikacjami.

Czy utworzenie pakietów AAB uniemożliwia mi publikowanie w innych sklepach z aplikacjami?

Nie. Nie uniemożliwiamy publikowania w innych sklepach z aplikacjami. Podczas tworzenia aplikacji możesz jednocześnie tworzyć pakiety AAB i APK w zależności od tego, jaki format publikacji jest wymagany w poszczególnych sklepach z aplikacjami.

Ile pracy wymaga użycie pakietu AAB?

W przypadku większości aplikacji utworzenie pliku AAB wymaga podobnego nakładu pracy jak utworzenie pliku APK, ponieważ wystarczy wybrać AAB zamiast APK w czasie kompilacji. W przypadku niektórych aplikacji może być konieczne wprowadzenie zmian, aby w pełni wykorzystać zalety pakietów AAB.

Czy jacyś deweloperzy korzystają już z pakietów AAB?

Tak. Ponad milion aplikacji i gier używa pakietów aplikacji do publikowania wersji produkcyjnych w Google Play, w tym większość popularnych aplikacji, co przekłada się na miliardy aktywnych instalacji. Jeśli do instalowania aplikacji używasz Google Play, wiele aplikacji na Twoim urządzeniu zostało opublikowanych jako pakiety aplikacji.

Czy pakiet AAB uniemożliwia użytkownikom instalowanie aplikacji z nieoficjalnych źródeł?

Nie. Pliki AAB nie uniemożliwiają użytkownikom instalowania plików APK z dowolnego źródła. Pakiet AAB to tylko format publikowania, więc nie zmienia on sposobu działania platformy Android.

Jeśli deweloper używa pakietów AAB do dostarczania zoptymalizowanych plików APK, czy użytkownicy, którzy udostępniają te pliki, mogą napotkać problemy?

Na Androidzie zawsze zdarzały się rzadkie przypadki, w których nie można było bezpośrednio przenieść plików APK z jednego urządzenia na drugie, niezależnie od tego, czy aplikacja była publikowana w postaci plików APK czy pakietów AAB. Jeśli pliki APK zostały zoptymalizowane pod kątem konkretnego urządzenia (np. pod kątem określonej architektury układu), przeniesienie ich bezpośrednio na inne urządzenie może spowodować problemy, jeśli urządzenie docelowe nie będzie zgodne z właściwościami urządzenia pierwotnego. W takich sytuacjach należy zainstalować plik APK lub zestaw plików APK odpowiednich dla urządzenia docelowego.

Czy mogę publikować w wielu sklepach z aplikacjami?

Tak, możesz publikować aplikacje w wielu sklepach z aplikacjami, niezależnie od tego, czy używasz pakietów AAB. Pliki AAB możesz publikować w Google Play i innych sklepach z aplikacjami, które je obsługują, jednocześnie publikując pliki APK w innych sklepach z aplikacjami lub witrynach, które nie obsługują plików AAB.

Czy wymaganie dotyczące pakietu AAB dotyczy aplikacji prywatnych opublikowanych w zarządzanym Sklepie Google Play?

Tak. Aplikacje prywatne opublikowane w zarządzanym Sklepie Google Play z poziomu Konsoli Play muszą być publikowane w formacie AAB.

Publikowanie plików APK jest nadal obsługiwane za pomocą elementu iframe zarządzanego Sklepu Play.

Informacje o podpisywaniu aplikacji przez Google Play

Czym jest podpisywanie aplikacji przez Google Play?

Aby można było zainstalować dowolny plik APK na Androidzie, musi on być podpisany kryptograficznie za pomocą klucza podpisywania aplikacji. Platforma Androida używa tego klucza, aby mieć pewność, że wszystkie aktualizacje aplikacji są zgodne z aplikacją zainstalowaną na urządzeniu. Dzięki temu po pierwszej instalacji każda aktualizacja aplikacji pochodzi od tego samego właściciela klucza. Pozwala to zmniejszyć ryzyko złośliwych aktualizacji aplikacji. Uruchomiona w 2017 r. usługa podpisywania aplikacji przez Google Play to usługa zarządzania kluczami w Google Play, która chroni klucze podpisywania aplikacji deweloperów w Google Play i nimi zarządza w przypadku aplikacji rozpowszechnianych w Google Play. Dodatkowo podpisywanie aplikacji przez Google Play podpisuje pliki APK, które Google Play generuje z przesłanych pakietów AAB. Podpisywanie aplikacji przez Google Play jest wymagane w przypadku nowych aplikacji, aby mogły one korzystać z pakietów AAB.

Dlaczego Google wprowadziło podpisywanie aplikacji przez Google Play?

Przez lata klucze podpisywania aplikacji były problemem dla deweloperów w Google Play. Utrata klucza uniemożliwi dostarczanie użytkownikom aktualizacji aplikacji, a jego przejęcie przez osoby niepowołane narazi użytkowników na ryzyko złośliwych aktualizacji. W dystrybucji oprogramowania często zdarza się, że kanały dystrybucji przechowują klucze do oprogramowania, które rozpowszechniają, i nimi zarządzają, ponieważ zmniejsza to ryzyko. Podpisywanie aplikacji przez Google Play zostało wprowadzone w 2017 r., aby wyeliminować ryzyko utraty kluczy dystrybucji w Google Play, umożliwić ochronę użytkowników Google Play w przypadku naruszenia bezpieczeństwa klucza oraz zapewnić deweloperom korzyści wynikające z inwestycji Google w bezpieczeństwo.

W jaki sposób Google zapewnia bezpieczeństwo podpisywania aplikacji przez Google Play?

Google chroni klucze deweloperów w tej samej bezpiecznej infrastrukturze o najwyższych standardach branżowych, której używa do ochrony własnych kluczy. Klucze są przechowywane w zaszyfrowanej postaci na zabezpieczonych, dedykowanych serwerach zarządzania kluczami z rygorystycznymi listami kontroli dostępu i odpornymi na manipulacje ścieżkami audytu obejmującymi wszystkie operacje. Działania i sprawdzone metody Google w zakresie bezpieczeństwa chmury są szczegółowo opisane online.

Czy mogę wybrać klucz podpisywania aplikacji, którego Google Play będzie używać w przypadku mojej aplikacji?

Tak. Podczas tworzenia nowej aplikacji możesz poprosić Google o wygenerowanie i przechowywanie klucza podpisywania aplikacji w Twoim imieniu lub wybrać własny klucz podpisywania aplikacji i przesłać jego kopię.

Chcę używać tego samego klucza podpisywania aplikacji w Google Play i innych sklepach z aplikacjami. Czy to nadal możliwe?

Jeśli po rozważeniu sposobu działania aktualizacji aplikacji zdecydujesz się używać tego samego klucza podpisywania w wielu sklepach z aplikacjami, nadal możesz to zrobić. Pamiętaj, że dzięki temu każdy sklep z aplikacjami będzie mógł przeprowadzać aktualizacje aplikacji w wielu sklepach. Masz 2 możliwości:

  • Możesz wygenerować klucz lokalnie i przesłać jego kopię do Google Play. Dzięki temu podczas tworzenia aplikacji na inne sklepy z aplikacjami możesz używać tego samego klucza, którego używa Google Play.
  • Możesz używać klucza wygenerowanego przez Google na potrzeby podpisywania aplikacji przez Google Play, a potem pobierać z Konsoli Play dystrybucyjne pliki APK podpisane tym kluczem i wykorzystywać je do rozpowszechniania w innych sklepach z aplikacjami lub witrynach.

Czy mogę używać usługi podpisywania aplikacji przez Google Play w przypadku aplikacji utworzonej przed sierpniem 2021 roku bez przekazywania kopii klucza podpisywania aplikacji?

Tak, usługa podpisywania aplikacji przez Google Play obsługuje opcję „aktualizacji klucza” w przypadku aplikacji utworzonych przed sierpniem 2021 roku. Dzięki temu aplikacja może zacząć korzystać z podpisywania aplikacji przez Google Play za pomocą nowego klucza podpisywania aplikacji. Aby jednak skorzystać z tej opcji, po uaktualnieniu musisz przesłać w każdej wersji 2 elementy: pakiet aplikacji i starszy plik APK podpisany starym kluczem podpisywania aplikacji. Play będzie używać Twoich pakietów AAB do generowania plików APK podpisanych uaktualnionym kluczem na potrzeby nowych instalacji i ich aktualizacji. Jednocześnie Play będzie używać starszych plików APK do aktualizacji aplikacji u użytkowników, którzy mają już zainstalowaną Twoją aplikację. Z czasem starsze instalacje zostaną przeniesione na uaktualniony klucz (np. gdy użytkownicy przejdą na nowe urządzenie mobilne).

Czy można używać tego samego klucza podpisywania aplikacji w przypadku aplikacji utworzonych przed sierpniem 2021 roku i po tym terminie?

Zwykle nie zalecamy używania tego samego klucza podpisywania aplikacji w wielu aplikacjach. Bezpieczniej jest używać unikalnego klucza w każdej aplikacji. Jeśli jednak musisz używać tego samego klucza podpisywania aplikacji w wielu aplikacjach, jest to możliwe. Możesz przesłać kopię dotychczasowego klucza podpisywania aplikacji podczas konfigurowania podpisywania aplikacji przez Google Play. Jeśli nie chcesz udostępniać obecnego klucza podpisywania aplikacji, możesz użyć opcji „aktualizacja klucza” w przypadku aplikacji opublikowanej przed sierpniem 2021 r., aby zacząć korzystać z podpisywania aplikacji przez Google Play. W ten sposób zarówno aplikacja sprzed sierpnia 2021 roku, jak i aplikacja po sierpniu 2021 roku mogą używać tego samego nowego klucza.

Czy mogę zmienić klucz podpisywania aplikacji używany przez usługę podpisywania aplikacji przez Google Play?

Tak, aplikacje mogą zmienić klucz, przesyłając w Konsoli Play prośbę o uaktualnienie klucza.

Jak mogę sprawdzić, czy Google Play nie wprowadził nieoczekiwanych zmian w moim kodzie?

W każdej chwili możesz pobrać i sprawdzić artefakty z Google Play oraz z sekcji Najnowsze wersje i pakiety w Konsoli Play. Dodatkowo interfejs Play Developer API wkrótce umożliwi weryfikację plików APK przed ich przesłaniem na ścieżkę wersji. Możesz też użyć opcjonalnej funkcji przejrzystości kodu w pakietach aplikacji. Dzięki przejrzystości kodu Ty i Twoi użytkownicy końcowi możecie pociągnąć sklep z aplikacjami, taki jak Google Play, do odpowiedzialności za dostarczany kod.

Jak działa przejrzystość kodu w pakietach aplikacji?

Przejrzystość kodu to opcjonalna funkcja, która umożliwia pociągnięcie do odpowiedzialności za dostarczany kod sklepu z aplikacjami rozpowszechniającego Twoją aplikację. Aby korzystać z przejrzystości kodu, podczas kompilacji aplikacji generujesz w niej plik przejrzystości kodu, który reprezentuje Twój kod (jest to plik zawierający hasze kodu aplikacji). Podpisujesz go własnym prywatnym kluczem przejrzystości kodu, który jest dostępny tylko dla Ciebie. Nigdy nie musisz podawać Google klucza przejrzystości kodu. Następnie możesz na urządzeniu sprawdzić zainstalowany plik APK i upewnić się, że podpisany przez Ciebie plik przejrzystości kodu nadal pasuje do kodu APK. Daje to pewność, że nawet jeśli plik APK został ponownie podpisany podczas dystrybucji, kod zweryfikowany przez przejrzystość kodu nie został zmodyfikowany. Jeśli wystąpi niezgodność, będzie to dowód na to, że kod został zmieniony podczas dystrybucji. Przejrzystość kodu nie zastępuje podpisów APK i nie jest częścią platformy Android.

Publikowanie dużych aplikacji i gier w Google Play

Jakie są limity rozmiaru aplikacji w Google Play w przypadku korzystania z pakietów AAB?

Maksymalny rozmiar skompresowanego pliku do pobrania w przypadku modułu podstawowego wygenerowanego z pliku AAB to 200 MB. Oznacza to, że Google Play najpierw wygeneruje moduł podstawowy, a potem wszelkie dodatkowe moduły funkcji lub pakiety zasobów z pakietu AAB. Następnie Google Play sprawdza, czy maksymalny łączny rozmiar skompresowanych plików do pobrania, które otrzymuje dowolne urządzenie, nie przekracza 4 GB.

Czy Google Play obsługuje pliki rozszerzające (OBB) w przypadku pakietów AAB?

Nie, Google Play nie obsługuje plików rozszerzających w przypadku pakietów AAB. Pliki rozszerzeń (OBB) to starsze rozwiązanie Google Play służące do publikowania dużych aplikacji i gier przy użyciu plików APK. Istnieją alternatywne rozwiązania Google i innych firm dla pakietów AAB większych niż 200 MB.

Jak opublikować w Google Play aplikację lub grę o rozmiarze większym niż 200 MB?

Duże aplikacje i gry korzystające z pakietów AAB mogą używać usług dostarczania w Google Play, takich jak Play Asset Delivery lub Play Feature Delivery, aby przekroczyć limit rozmiaru 200 MB, lub mogą korzystać z zewnętrznych sieci dostarczania treści.

Jakie korzyści daje Play Asset Delivery w porównaniu z plikami rozszerzającymi (OBB)?

W Google Play pakiety APK wymagały oddzielnych plików rozszerzeń (OBB), aby udostępniać użytkownikom dodatkowe zasoby. Pliki OBB nie są jednak podpisane i są przechowywane w pamięci zewnętrznej aplikacji, więc nie są zbyt bezpieczne. Dzięki funkcji Play Asset Delivery (PAD) gry większe niż 200 MB mogą zastąpić pliki OBB, publikując całą grę jako pojedynczy pakiet aplikacji w Sklepie Play. Oprócz usprawnienia procesu publikowania i zapewnienia elastycznych trybów dostarczania PAD oznacza, że aktualizacje wymagają mniej pamięci urządzenia. Dzięki temu możesz uzyskać wyższe współczynniki instalacji. Wreszcie, ponieważ ASTC jest teraz obsługiwany na około 80% urządzeń, funkcja kierowania na format kompresji tekstur PAD umożliwia udostępnianie ASTC na urządzeniach, które go obsługują. Możesz kierować reklamy na najszerszy zakres urządzeń, efektywnie wykorzystując dostępne zasoby sprzętowe i pamięć urządzenia.

Funkcje dostarczania w Google Play odblokowywane przez pliki AAB

Jakie nowe funkcje oferuje Google Play deweloperom korzystającym z pakietów AAB?

Sklepy z aplikacjami, takie jak Google Play, przetwarzają pakiety AAB na pakiety APK, które można zainstalować. Odpowiedzialność za pliki APK umożliwia oferowanie nowych funkcji i usług, które przynoszą korzyści deweloperom i użytkownikom. Play oferuje już takie usługi, które są powszechnie używane i cenione przez deweloperów. Dwa przykłady to Play Feature DeliveryPlay Asset Delivery.

Czym jest Play Feature Delivery?

Jedną z funkcji pakietów aplikacji jest możliwość podzielenia aplikacji na kilka modułów, zwanych „modułami funkcji”. Te moduły mogą być dynamicznie dostarczane użytkownikom i na urządzenia w różnych momentach (w przeciwieństwie do sytuacji z przeszłości, gdy wszystko musiało być dostarczane jako jeden plik w momencie instalacji). Funkcja Play Feature Delivery umożliwia dostosowywanie modułów funkcji, które są przesyłane na poszczególne urządzenia i w jakim momencie. Dostępne są tryby przesyłania podczas instalacji, warunkowego i na żądanie. Dzięki temu możesz zmniejszyć rozmiar aplikacji, co zwiększy liczbę instalacji, i dostosować ją do potrzeb użytkowników. Możesz na przykład przesyłać na żądanie rzadko używaną funkcję, taką jak obsługa klienta, użytkownikom, którzy jej potrzebują, zamiast podczas instalacji. Dzięki temu zmniejszysz rozmiar początkowej instalacji dla wszystkich użytkowników. Możesz też udostępniać pełną wersję aplikacji na urządzeniach z wyższej półki, a mniejszą wersję z opcjonalnymi funkcjami na żądanie na urządzeniach z niższej półki, które mają ograniczenia dotyczące danych i pamięci urządzenia.

Czym jest Play Asset Delivery?

Play Asset Delivery pozwala deweloperom gier zwiększać wygodę użytkowników i skracać czas oczekiwania, ponieważ dynamicznie dostarcza duże zasoby w optymalnym momencie. Gry korzystające z Play Asset Delivery mogą też używać kierowania na format kompresji tekstur, dzięki czemu użytkownicy otrzymują tylko zasoby odpowiednie dla ich urządzenia, bez marnowania miejsca ani przepustowości.

Czy te funkcje dostarczania w Google Play są dostępne w innych sklepach z aplikacjami?

Nie. Play Feature Delivery i Play Asset Delivery wymagają bezpośredniej interakcji aplikacji i gier ze Sklepem Google Play. Te usługi dodatkowe są przykładem tego, jak Google Play wyróżnia się jako sklep z aplikacjami i zapewnia dodatkową wartość i użyteczność deweloperom i użytkownikom Google Play. Inne sklepy z aplikacjami, które korzystają z pakietów aplikacji i plików APK, oferują deweloperom własne usługi.