Informacje o pakietach Android App Bundle
Czym jest pakiet aplikacji na Androida (AAB)?
Pakiet Android App Bundle (AAB) to format publikowania na Androida, który został wprowadzony w 2018 roku i jest obsługiwany przez Google Play oraz inne sklepy z aplikacjami, a także narzędzia do kompilacji, takie jak Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity i Unreal.
Jaka jest różnica między AAB a APK?
Pakiety aplikacji służą tylko do publikowania i nie można ich instalować na urządzeniach z Androidem. Pakiet na Androida (APK) to instalowalny, wykonywalny format aplikacji na Androida. Dystrybutor musi przetworzyć pakiety aplikacji w pliki APK, aby można je było zainstalować na urządzeniach.
Czy format AAB jest formatem zastrzeżonym, którego można używać tylko w Google Play?
Nie, AAB nie jest własnością Google. Pakiet aplikacji jest oparty na otwartym kodzie źródłowym, więc może być obsługiwany przez dowolny sklep z aplikacjami. Pakiety są obsługiwane w Google Play i niektórych innych sklepach z aplikacjami.
Czy tworzenie aplikacji na Androida w wersji AAB uniemożliwia publikowanie w innych sklepach z aplikacjami?
Nie. Nie ma żadnych ograniczeń dotyczących publikowania w innych sklepach z aplikacjami. Podczas kompilowania aplikacji możesz jednocześnie tworzyć pliki AAB i APK, w zależności od tego, jaki format publikowania jest wymagany w danym sklepie z aplikacjami.
Ile pracy wymaga korzystanie z AAB?
W przypadku większości aplikacji tworzenie pakietu AAB wymaga tyle samo wysiłku co tworzenie pakietu APK, ponieważ polega ono po prostu na wybraniu pakietu AAB zamiast pakietu APK podczas kompilacji. W przypadku niektórych aplikacji może być konieczne wprowadzenie pewnych zmian, aby w pełni korzystać z zalet AAB.
Czy jakiś deweloper korzysta już z AAB?
Tak. Ponad milion aplikacji i gier korzysta z pakietów aplikacji, aby publikować wersje produkcyjne w Google Play. Dotyczy to większości popularnych aplikacji, które mają już miliardy aktywnych instalacji. Jeśli do instalowania aplikacji używasz Google Play, wiele z nich zostało opublikowanych jako pakiety aplikacji.
Czy AAB uniemożliwia użytkownikom instalowanie aplikacji z nieoficjalnych źródeł?
Nie, AAB nie uniemożliwiają użytkownikom instalowania plików APK z żadnego źródła. Ponieważ pakiet AAB to tylko format publikowania, nie zmienia sposobu działania platformy Android.
Czy jeśli deweloper używa pakietów AAB do dostarczania zoptymalizowanych plików APK, oznacza to, że użytkownicy, którzy udostępniają te pliki APK, mogą napotkać problemy?
W rzadkich przypadkach na Androidzie pliki APK nie mogły być przenoszone bezpośrednio z jednego urządzenia na drugie, niezależnie od tego, czy aplikacja została opublikowana w postaci pliku APK czy AAB. W szczególności, gdy pliki APK zostały zoptymalizowane pod kątem konkretnego urządzenia (np. pod kątem konkretnej architektury procesora), przeniesienie tych plików bezpośrednio na inne urządzenie może napotkać na problemy, jeśli urządzenie docelowe nie ma takich samych właściwości co oryginalne. W takich przypadkach należy zainstalować plik APK lub zestaw plików APK odpowiednich dla docelowego urządzenia.
Czy mogę opublikować aplikację w kilku sklepach?
Tak, możesz publikować aplikacje w kilku sklepach z aplikacjami, niezależnie od tego, czy korzystasz z AAB. Możesz publikować AAB w Google Play i innych sklepach z aplikacjami, które obsługują AAB, jednocześnie publikując pliki APK w innych sklepach z aplikacjami lub na stronach internetowych, które nie obsługują AAB.
Czy wymóg pakietu AAB ma zastosowanie do aplikacji prywatnych opublikowanych w zarządzanym Sklepie Google Play?
Nie. Prywatne aplikacje publikowane w zarządzanym Sklepie Google Play mogą być publikowane przy użyciu plików APK lub AAB. Podczas tworzenia nowej aplikacji prywatnej możesz wybrać Zmień klucz podpisywania aplikacji i wyłączyć podpisywanie aplikacji przez Google Play, jeśli chcesz opublikować prywatny plik APK podpisany przez siebie.
Podpisywanie aplikacji przez Google Play
Czym jest podpisywanie aplikacji przez Google Play?
Aby można było zainstalować plik APK na Androidzie, musi on być podpisany za pomocą klucza podpisywania aplikacji. Platforma Androida używa klucza, aby zapewnić zgodność aktualizacji aplikacji z zainstalowaną aplikacją na urządzeniu. Dzięki temu po początkowej instalacji każda aktualizacja aplikacji pochodzi od tego samego właściciela klucza. Pozwala to zmniejszyć ryzyko aktualizacji złośliwych aplikacji. Wprowadzone w 2017 roku podpisywanie aplikacji przez Google Play to usługa zarządzania kluczami w Google Play, która chroni klucze podpisywania aplikacji deweloperów i zarządza nimi w przypadku aplikacji rozpowszechnianych w Google Play. Dodatkowo usługa podpisywania aplikacji przez Google Play wykonuje operację podpisywania plików APK, które Google Play generuje na podstawie przesłanych pakietów AAB. Aby nowe aplikacje mogły korzystać z AAB, muszą być podpisane przez Google Play.
Dlaczego Google wprowadziło podpisywanie aplikacji przez Google Play?
Przez lata klucze podpisywania aplikacji stanowiły wyzwanie dla deweloperów w Google Play. Utrata klucza oznacza, że nie będzie można dostarczać aktualizacji aplikacji użytkownikom, a jego skompromitowanie naraża użytkowników na ryzyko złośliwych aktualizacji. W przypadku dystrybucji oprogramowania często zdarza się, że kanały dystrybucji przechowują klucze do rozpowszechnianego oprogramowania i nimi zarządzają, ponieważ zmniejsza to ryzyko. Podpisywanie aplikacji przez Google Play zostało wprowadzone w 2017 roku, aby wyeliminować ryzyko utraty kluczy dystrybucyjnych Google Play, umożliwić ochronę użytkowników Google Play w przypadku naruszenia bezpieczeństwa klucza oraz zapewnić deweloperom korzyści z ciągłych inwestycji Google w bezpieczeństwo.
W jaki sposób Google zapewnia bezpieczeństwo podpisywania aplikacji przez Google Play?
Google chroni klucze deweloperów w ramach tej samej bezpiecznej infrastruktury, której używa do ochrony własnych kluczy. Klucze są przechowywane w zaszyfrowanej postaci na chronionych serwerach zarządzania kluczami z ograniczonymi listami kontroli dostępu (ACL) i śladami kontrolnymi uniemożliwiającymi modyfikację, obejmującymi wszystkie operacje. Operacje i sprawdzone metody dotyczące bezpieczeństwa chmury Google są szczegółowo opisane online.
Czy mogę wybrać klucz podpisywania aplikacji, którego ma używać Google Play w przypadku mojej aplikacji?
Tak. Podczas tworzenia nowej aplikacji możesz wybrać, czy Google ma wygenerować i przechowywać klucz podpisywania aplikacji w Twoim imieniu, czy też chcesz użyć własnego klucza 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 zastanowieniu się nad działaniem aktualizacji aplikacji zdecydujesz się na użycie tego samego klucza podpisywania w kilku sklepach z aplikacjami, nadal będzie to możliwe. Pamiętaj, że pozwoli to każdemu sklepowi z aplikacjami na wprowadzanie aktualizacji Twojej aplikacji w różnych sklepach. Masz 2 możliwości:
- Możesz wygenerować klucz lokalnie i przesłać jego kopię do Google Play. Dzięki temu podczas kompilowania aplikacji na inne sklepy z aplikacjami możesz używać tego samego klucza, którego używa Google Play.
- Możesz użyć klucza wygenerowanego przez Google do podpisywania aplikacji przez Google Play, a potem pobrać z Konsoli Play dystrybucyjne pliki APK podpisane tym kluczem i rozpowszechniać je w innych sklepach z aplikacjami lub na stronach internetowych.
Czy mogę używać usługi podpisywania aplikacji przez Google Play w przypadku aplikacji utworzonej przed sierpniem 2021 roku bez podawania kopii klucza podpisywania aplikacji?
Tak. Usługa podpisywania aplikacji Google Play obsługuje opcję „uaktualnienia 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 klucza będziesz musiał(-a) przesyłać w każdej wersji 2 elementy: pakiet aplikacji i starszy plik APK podpisany starym kluczem podpisywania aplikacji. Google Play będzie używać pakietów AAB do generowania plików APK podpisanych uaktualnionym kluczem w przypadku nowych instalacji i ich aktualizacji. Jednocześnie Google Play będzie używać starszych plików APK do aktualizacji aplikacji u użytkowników, którzy mają już zainstalowaną 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 aplikacji utworzonych po sierpniu 2021 roku?
Zazwyczaj nie zalecamy używania tego samego klucza podpisywania aplikacji w wielu aplikacjach. Lepiej jest używać unikalnego klucza dla każdej aplikacji. Jeśli jednak musisz użyć tego samego klucza podpisywania aplikacji w wielu aplikacjach, jest to możliwe. Możesz też przesłać kopię dotychczasowego klucza podpisywania aplikacji podczas konfigurowania podpisywania aplikacji przez Google Play. Jeśli nie chcesz udostępniać dotychczasowego klucza podpisywania aplikacji, możesz użyć opcji „uaktualnienia klucza”, która wkrótce zostanie udostępniona, aby zacząć korzystać z podpisywania aplikacji przez Google Play w przypadku aplikacji opublikowanych przed sierpniem 2021 r. Dzięki temu zarówno aplikacja utworzona przed sierpniem 2021 roku, jak i aplikacja utworzona po sierpniu 2021 roku będą mogły 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, wysyłając prośbę o uaktualnienie klucza w Konsoli Play.
Jak sprawdzić, czy Google Play nie wprowadziło nieoczekiwanych zmian w moim kodzie?
W dowolnym momencie możesz pobrać i sprawdzać 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ż skorzystać z opcjonalnej funkcji przejrzystości kodu w pakietach aplikacji. Dzięki przejrzystości kodu Ty i użytkownicy możecie oczekiwać od sklepu z aplikacjami, takiego jak Google Play, aby odpowiadał za kod, który udostępnia.
Jak działa przejrzystość kodu w pakietach aplikacji?
Przejrzystość kodu to opcjonalna funkcja, która umożliwia żądanie od sklepu z aplikacjami rozpowszechniającego Twoją aplikację wyjaśnienia kodu, który dostarcza. Aby korzystać z przejrzystości kodu, w momencie kompilacji wygeneruj w aplikacji plik przejrzystości kodu, który reprezentuje Twój kod (jest to plik zawierający sumy kontrolne kodu aplikacji). Podpisujesz go za pomocą własnego klucza prywatnego, który jest dostępny tylko dla Ciebie. Nie musisz nigdy udostępniać Google klucza przejrzystości kodu. Następnie na urządzeniu możesz sprawdzić zainstalowany plik APK i sprawdzić, czy podpisany przez Ciebie plik z przezroczystym kodem nadal pasuje do kodu pliku APK. Dzięki temu masz pewność, że nawet jeśli plik APK został ponownie podpisany podczas dystrybucji, kod zweryfikowany przez przejrzystość kodu nie został zmodyfikowany. Jeśli nie ma zgodności, oznacza to, że kod został zmieniony podczas dystrybucji. Przejrzystość kodu nie zastępuje podpisów plikó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 aplikacji na Androida?
Maksymalny rozmiar skompresowanego pliku do pobrania w przypadku modułu podstawowego wygenerowanego na podstawie pakietu AAB to 200 MB. Oznacza to, że Google Play najpierw wygeneruje moduł podstawowy, a potem wszystkie dodatkowe moduły funkcji lub pakiety zasobów z Twojego pakietu AAB. Następnie Google Play sprawdza, czy łączny rozmiar skompresowanych plików pobieranych na poszczególne urządzenia 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 rozszerzające (OBB) to starsze rozwiązanie w Google Play do publikowania dużych aplikacji i gier za pomocą plików APK. W przypadku aplikacji z AAB o rozmiarze większym niż 200 MB dostępne są alternatywne rozwiązania Google i firm zewnętrznych.
Jak opublikować w Google Play aplikację lub grę większą niż 200 MB?
Duże aplikacje i gry korzystające z AAB mogą używać usług przesyłania w Google Play, takich jak Play Asset Delivery czy Play Feature Delivery, aby przekroczyć limit 200 MB, lub skorzystać z zewnętrznych sieci dostarczania treści.
Jakie zalety ma funkcja Play Asset Delivery w porównaniu z plikami rozszerzającymi (OBB)?
W Google Play pakiety APK wymagały osobnych plików rozszerzeń (OBB), aby udostępniać użytkownikom dodatkowe zasoby. Jednak ponieważ pliki OBB nie są podpisywane i są przechowywane w pamięci zewnętrznej aplikacji, 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 płynniejszego procesu publikowania i elastycznego trybu dostarczania PAD oznacza, że aktualizacje wymagają mniej miejsca na urządzeniu. W efekcie może zwiększać współczynniki instalacji. Na koniec warto wspomnieć, że format ASTC jest teraz obsługiwany na około 80% urządzeń, a funkcja kierowania na format kompresji tekstur w PAD pozwala przesyłać treści w formacie ASTC na urządzenia, które go obsługują. Możesz kierować reklamy na najszerszy zakres urządzeń, jednocześnie efektywnie wykorzystując dostępny sprzęt i miejsce na dane na urządzeniu.
Funkcje Google Play udostępniane przez AAB
Jakie nowe funkcje oferuje Google Play deweloperom korzystającym z AAB?
Sklepy z aplikacjami, takie jak Google Play, przetwarzają pakiety aplikacji na Androida w instalowalne pliki APK. Odpowiedzialność za pliki APK umożliwia oferowanie nowych funkcji i usług, które przynoszą korzyści deweloperom i użytkownikom. Google Play oferuje już takie usługi, które są powszechnie używane i cenione przez deweloperów. Przykładami są Play Feature Delivery i Play Asset Delivery.
Czym jest Play Feature Delivery?
Pakiety aplikacji umożliwiają dzielenie aplikacji na wiele modułów, zwanych „modułami funkcji”. Następnie moduły te mogą być dostarczane użytkownikom i urządzeniom w różnych momentach (w przeciwieństwie do przeszłości, gdy wszystko musiało być dostarczane jako jeden plik w momencie instalacji). Play Feature Delivery umożliwia dostosowywanie modułów funkcji do konkretnego urządzenia i określanie, kiedy mają być przesyłane. Do wyboru są 3 tryby przesyłania: w momencie instalacji, warunkowe i na żądanie. Pozwala to zmniejszyć rozmiar aplikacji, co przekłada się na większą liczbę instalacji i lepsze wrażenia użytkowników. Możesz na przykład udostępniać rzadko używaną funkcję, taką jak obsługa klienta, użytkownikom, którzy jej potrzebują, zamiast w momencie instalacji, co zmniejszy rozmiar początkowej instalacji dla wszystkich użytkowników. Możesz też udostępnić pełną wersję aplikacji na urządzeniach wysokiej klasy, a na urządzeniach podstawowej klasy, które mają ograniczenia dotyczące danych i pamięci, udostępnić wersję z opcjonalnymi funkcjami na żądanie.
Czym jest Play Asset Delivery?
Play Asset Delivery pozwala deweloperom gier zwiększyć wygodę użytkowników i skrócić czas oczekiwania, przesyłając duże zasoby dynamicznie w optymalnym momencie. Gry korzystające z usługi 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 i pasma.
Czy te funkcje dostarczania w Sklepie Play są dostępne w innych sklepach z aplikacjami?
Nie. Play Feature Delivery i Play Asset Delivery dotyczą aplikacji i gier, które bezpośrednio komunikują się ze Sklepem Google Play. Te opcjonalne usługi to przykłady tego, jak Google Play wyróżnia się na tle innych sklepów z aplikacjami i zapewnia dodatkową wartość i użyteczność dla deweloperów i użytkowników. Inne sklepy z aplikacjami, które korzystają z pakietów aplikacji i plików APK, oferują deweloperom własne usługi.