Przesyłany plik APK musi spełniać wymagania Google Play dotyczące docelowego poziomu interfejsu API.
Od 31 sierpnia 2024 r.:
- nowe aplikacje i aktualizacje aplikacji przesyłane do Google Play muszą być kierowane na Androida 14 (API na poziomie 34) lub nowszego (nie dotyczy to aplikacji na Wear OS i Androida TV, które muszą być kierowane na Androida 13 (API na poziomie 33) lub nowszego);
- Istniejące aplikacje muszą być kierowane na Androida 13 (API na poziomie 33) lub nowszego, aby były dostępne dla nowych użytkowników na urządzeniach z systemem operacyjnym Android w wersji wyższej niż docelowy poziom interfejsu API aplikacji. Aplikacje, które są kierowane na Androida 12 (API na poziomie 31) lub starszego (Androida 10 (poziom interfejsu API 29) lub starszego w przypadku Wear OS oraz Androida 11 (poziom interfejsu API 30) lub starszego w przypadku Androida TV), będą dostępne tylko na urządzeniach z Androidem z tym samym lub niższym poziomem interfejsu API.
Jeśli potrzebujesz więcej czasu na zaktualizowanie aplikacji, możesz poprosić o przedłużenie tego terminu do 1 listopada 2024 r. Formularze przedłużenia dla Twojej aplikacji będą dostępne w Konsoli Play jeszcze w tym roku.
Przykładowe wyjątki od tych wymagań:
- Aplikacje zawsze prywatne, które są dostępne tylko dla użytkowników w konkretnej organizacji i przeznaczone wyłącznie do dystrybucji wewnętrznej.
- Aplikacje kierowane na format systemu operacyjnego Android Automotive lub pakowane z plikami APK kierowanymi na ten format systemu.
Dlaczego warto kierować reklamy na użytkowników korzystających z nowych pakietów SDK?
Każda nowa wersja Androida wprowadza zmiany, które poprawiają bezpieczeństwo i wydajność, a także zwiększają wygodę użytkowników. Niektóre z tych zmian dotyczą tylko aplikacji, które wyraźnie deklarują obsługę w atrybutach targetSdkVersion
manifestu (nazywanego też docelowym poziomem interfejsu API).
Kierowanie aplikacji na aktualny poziom interfejsu API zapewnia użytkownikom korzyści wynikające z tych ulepszeń, ale jednocześnie pozwala uruchamiać ją w starszych wersjach Androida. Kierowanie aplikacji na najnowszy poziom interfejsu API pozwala jej korzystać z najnowszych funkcji platformy, aby zadowolić użytkowników. Ponadto od Androida 10 (poziom interfejsu API 29) użytkownicy widzą ostrzeżenie, gdy uruchamiają aplikację po raz pierwszy, jeśli jest ona kierowana na Androida 5.1 (poziom interfejsu API 22) lub starszego.
W tym dokumencie znajdziesz ważne informacje, które pomogą Ci zaktualizować docelowy poziom interfejsu API, aby spełniać wymagania Google Play. W zależności od tego, do której wersji chcesz przejść, postępuj zgodnie z instrukcjami podanymi w odpowiednich sekcjach.
Przejście z Androida 12 lub nowszego (poziom API 31) na nowszą wersję
Aby zaktualizować aplikację, aby kierować ją na nowszą wersję Androida, postępuj zgodnie z listą odpowiednich zmian zachowania:
Przejście z Androida 11 (poziom API 30) na Androida 12 (poziom API 31)
Bezpieczeństwo i uprawnienia
- Bluetooth: musisz zastąpić deklaracje uprawnień
BLUETOOTH
iBLUETOOTH_ADMIN
uprawnieniamiBLUETOOTH_SCAN
,BLUETOOTH_ADVERTISE
lubBLUETOOTH_CONNECT
. Nie musisz już wysyłać próśb o uprawnienia w czasie działaniaLOCATION
w przypadku operacji Bluetooth. - Lokalizacja: użytkownicy mogą poprosić aplikacje o pobieranie tylko przybliżonych informacji o lokalizacji. Za każdym razem, gdy przesyłasz prośbę o uprawnienia
ACCESS_FINE_LOCATION
, musisz poprosić o uprawnieniaACCESS_COARSE_LOCATION
.- Filtry intencji: jeśli aplikacja zawiera aktywności, usługi lub odbiorniki transmisji, które korzystają z filtrów intencji, musisz wyraźnie zadeklarować atrybut android:exported dla tych komponentów.
- Hibernacja: aplikacje mogą zostać umieszczone w stanie hibernacji, jeśli nie są używane przez pewien czas. W trybie hibernacji uprawnienia i pamięć podręczna aplikacji są resetowane, a Ty nie możesz uruchamiać zadań ani alertów. Możesz sprawdzić stan hibernacji aplikacji.
- Zmienność intencji oczekującej: musisz określić zmienność każdego obiektu PendingIntent, który tworzy Twoja aplikacja.
Wrażenia użytkownika
- Powiadomienia niestandardowe: powiadomienia z niestandardowymi widokami treści nie będą już używać pełnej powierzchni powiadomienia. Zamiast tego system zastosuje szablon standardowy. Dzięki temu szablonowi niestandardowe powiadomienia mają takie same elementy dekoracyjne jak inne powiadomienia we wszystkich stanach. Takie działanie jest prawie identyczne z działaniem
Notification.DecoratedCustomViewStyle
. - Zmiany w weryfikacji linków do aplikacji na Androida: jeśli korzystasz z weryfikacji linków do aplikacji na Androida, upewnij się, że filtry intencji obejmują kategorię BROWSABLE i obsługują schemat HTTPS.
Wydajność
Ograniczenia dotyczące uruchamiania usług na pierwszym planie: jeśli Twoja aplikacja jest kierowana na Androida 12 lub nowszą wersję, nie może uruchamiać usług na pierwszym planie, gdy działa w tle, z wyjątkiem kilku szczególnych przypadków. Jeśli aplikacja próbuje uruchomić usługę na pierwszym planie, gdy działa w tle, wystąpi wyjątek (z wyjątkiem kilku szczególnych przypadków).
Rozważ użycie WorkManagera do zaplanowania i rozpoczęcia przyspieszonego działania, gdy aplikacja działa w tle. Aby wykonać działania wymagające szybkiego działania na żądanie użytkownika, uruchom usługi na pierwszym planie w ramach alarmu precyzyjnego.
Ograniczenia trampoliny powiadomień: gdy użytkownicy klikają powiadomienia, niektóre aplikacje odpowiadają, uruchamiając komponent aplikacji, który uruchamia aktywność, którą użytkownik widzi i z którą wchodzi w interakcję. Ten komponent aplikacji nazywa się trampoliną powiadomień.
Aplikacje nie mogą uruchamiać działań z usług lub odbiorników transmisji, które są używane jako trampoliny powiadomień. Gdy użytkownik kliknie powiadomienie lub przycisk działania w powiadomieniu, Twoja aplikacja nie może wywołać funkcji
startActivity()
w ramach usługi lub odbiornika transmisji.
Zobacz pełny zestaw zmian, które mają wpływ na aplikacje kierowane na Androida 12 (poziom API 31).
Przejście z wersji starszej niż Android 11 (poziom API 30)
Wybierz wersję Androida, z której będziesz przeprowadzać migrację:
Przejście na Androida 5 (poziom API 21)
Aby sprawdzić, czy Twoja aplikacja uwzględnia zmiany wprowadzone w tych wersjach, zapoznaj się z odpowiednimi stronami Zmiany w zachowaniu:
Kontynuuj, wykonując instrukcje podane w następnej sekcji.
Migracja na Androida 6 (poziom interfejsu API 23)
W przypadku aplikacji kierowanych na Androida 6.0 lub nowszą wersję platformy należy wziąć pod uwagę te kwestie:
-
-
Zezwolenia na dostęp do zasobów niebezpiecznych są przyznawane tylko w czasie działania aplikacji. Twoje procesy w interfejsie użytkownika muszą umożliwiać przyznawanie tych uprawnień.
-
W miarę możliwości zadbaj o to, aby aplikacja była przygotowana na odrzucenie żądań przyznania uprawnień. Jeśli na przykład użytkownik odrzuci prośbę o dostęp do GPS-a urządzenia, upewnij się, że aplikacja ma inny sposób działania.
-
Pełną listę zmian wprowadzonych w Androidzie 6.0 (poziom interfejsu API 23) znajdziesz na stronie Zmiany w zachowaniu poświęconej tej wersji platformy.
Kontynuuj, wykonując instrukcje podane w następnej sekcji.
Migracja na Androida 7 (poziom interfejsu API 24)
W przypadku aplikacji kierowanych na Androida 7.0 lub nowszą wersję platformy obowiązują te zasady:
-
Uśpienie i tryb czuwania aplikacji
Projektowanie z uwzględnieniem zachowań opisanych w artykule Optymalizacja pod kątem funkcji Uśpienie i Czuwanie aplikacji, który obejmuje stopniowe zmiany wprowadzone w kilku wersjach platform.
Gdy urządzenie jest w trybie Uśpienie i Czuwanie aplikacji, system działa w ten sposób:
- Ogranicza dostęp do sieci
- odroczenie alarmów, synchronizacji i zadań;
- Ogranicza skanowanie GPS i Wi-Fi
- Ogranicza liczbę wiadomości o normalnym priorytecie wysyłanych przez Komunikację w chmurze Firebase.
-
Zmiany uprawnień
- System ogranicza dostęp do prywatnych katalogów aplikacji.
-
Wyświetlanie identyfikatora URI
file://
poza aplikacją powodujeFileUriExposedException
. Jeśli chcesz udostępniać pliki poza aplikacją, zaimplementuj:FileProvider
-
System zabrania łączenia z bibliotekami spoza NDK.
Pełną listę zmian wprowadzonych w Androidzie 7.0 (poziom interfejsu API 24) znajdziesz na stronie Zmiany w zachowaniu poświęconej tej wersji platformy.
Kontynuuj, wykonując instrukcje podane w następnej sekcji.
Migracja na Androida 8 (poziom 26 interfejsu API)
W przypadku aplikacji kierowanych na Androida 8.0 i nowsze obowiązują te zasady:
-
Ograniczenia wykonywania w tle
-
System ogranicza usługi w przypadku aplikacji, które nie są uruchomione na pierwszym planie.
-
startService()
zwraca teraz wyjątek, gdy aplikacja próbuje go wywołać, gdystartService()
jest zabroniona. -
Aby uruchomić usługi na pierwszym planie, aplikacja musi używać
startForeground()
istartForegroundService()
. - Uważnie zapoznaj się ze zmianami wprowadzonymi w interfejsie JobScheduler API, które zostały opisane na stronie Zmiany w zachowaniu Androida 8.0 (poziom interfejsu API 26).
- Firebase Cloud Messaging wymaga wersji 10.2.1 pakietu SDK Usług Google Play lub nowszej.
- W przypadku korzystania z Komunikacji w chmurze Firebase dostarczanie wiadomości podlega ograniczeniom wykonywania w tle. Jeśli po otrzymaniu wiadomości konieczne jest wykonanie pracy w tle, np. aby zsynchronizować dane w tle, aplikacja powinna zaplanować zadania za pomocą Dispatchera zadań Firebase lub usługi JobIntentService. Więcej informacji znajdziesz w dokumentacji Komunikacji w chmurze Firebase.
-
-
Komunikaty ogólne
-
Transmisje niejawne są ograniczone. Informacje o obsługiwaniu zdarzeń w tle znajdziesz w dokumentacji interfejsu API
JobScheduler
.
-
Transmisje niejawne są ograniczone. Informacje o obsługiwaniu zdarzeń w tle znajdziesz w dokumentacji interfejsu API
-
Limity dostępu do lokalizacji w tle
-
Aplikacje działające w tle mają ograniczony dostęp do danych o lokalizacji.
- Na urządzeniach z Usługami Google Play korzystaj z połączonego dostawcy lokalizacji, aby otrzymywać okresowe aktualizacje lokalizacji.
-
Aplikacje działające w tle mają ograniczony dostęp do danych o lokalizacji.
-
System ogranicza usługi w przypadku aplikacji, które nie są uruchomione na pierwszym planie.
-
Kanały powiadomień
- Właściwości przerwania powiadomień należy zdefiniować osobno dla każdego kanału.
- Aby powiadomienia się wyświetlały, musisz przypisać je do kanału.
-
Ta wersja platformy obsługuje
NotificationCompat.Builder
.
-
Prywatność
- ANDROID_ID jest ograniczony do klucza podpisywania aplikacji.
Wyczerpujący wykaz zmian wprowadzonych w Androidzie 8.0 (poziom interfejsu API 26) znajdziesz na stronie Zmiany w zachowaniu poświęconej tej wersji platformy.
Migracja z Androida 8 (poziom 26 interfejsu API) na Androida 9 (poziom 28 interfejsu API)
-
Zarządzanie zasilaniem
- Zasoby w trybie gotowości aplikacji wprowadzają nowe ograniczenia dotyczące działania w tle oparte na zaangażowaniu w aplikację, takie jak opóźnione zadania, alarmy i limity dotyczące wiadomości o wysokim priorytecie.
- Ulepszenia trybu oszczędzania baterii: zwiększenie ograniczeń dotyczących aplikacji w stanie gotowości
-
Uprawnienia usługi działającej na pierwszym planie
- Musisz poprosić o normalne uprawnienia
FOREGROUND_SERVICE
(nie o uprawnienia w czasie działania)
- Musisz poprosić o normalne uprawnienia
-
Zmiany dotyczące prywatności
- Ograniczony dostęp do czujników działających w tle
- Ograniczony dostęp do rejestru połączeń, który teraz znajduje się w grupie uprawnień
CALL_LOG
- Ograniczony dostęp do numerów telefonów, wymagający uprawnienia
READ_CALL_LOG
- Ograniczony dostęp do informacji o Wi-Fi
Pełną listę zmian wprowadzonych w Androidzie 9.0 (poziom interfejsu API 28) znajdziesz w sekcji Zmiany w zachowaniu.
Przejście z Androida 9 (poziom API 28) na Androida 10 (poziom API 29)
-
Powiadomienia z intencją pełnoekranową
-
Musisz poprosić o zwykłe uprawnienia
USE_FULL_SCREEN_INTENT
(a nie uprawnienia w czasie działania).
-
Musisz poprosić o zwykłe uprawnienia
-
Obsługa urządzeń składanych i urządzeń z dużym ekranem
-
Wiele działań może być jednocześnie w stanie „w toku”, ale tylko jedno z nich może być aktywne.
-
Ta zmiana wpływa na działanie usług
onResume()
ionPause()
. -
Nowa koncepcja cyklu życia „najbardziej aktywne wznowione”, którą można wykryć, subskrybując
onTopResumedActivityChanged()
.- Tylko jedna aktywność może być „najważniejsza”.
-
Ta zmiana wpływa na działanie usług
-
Gdy atrybut
resizeableActivity
ma wartośćfalse
, aplikacje mogą dodatkowo określać atrybutminAspectRatio
, który automatycznie ustawia format letterbox w przypadku węższego formatu obrazu.
-
Wiele działań może być jednocześnie w stanie „w toku”, ale tylko jedno z nich może być aktywne.
-
Zmiany dotyczące prywatności
-
Ograniczone miejsce na dane
- Dostęp do zewnętrznego miejsca na dane jest ograniczony tylko do katalogu konkretnej aplikacji i do określonych typów multimediów utworzonych przez tę aplikację.
-
Ograniczony dostęp do lokalizacji, gdy aplikacja działa w tle. Wymaga zgody
ACCESS_BACKGROUND_LOCATION
. - ograniczony dostęp do identyfikatorów, które nie można zresetować, takich jak numer IMEI i numer seryjny;
-
Ograniczony dostęp do informacji o aktywności fizycznej, takich jak liczba kroków użytkownika, wymagający uprawnienia
ACTIVITY_RECOGNITION
. -
Ograniczony dostęp do niektórych interfejsów API telefonii, Bluetooth i Wi-Fi, wymagający uprawnień
ACCESS_FINE_LOCATION
. -
Ograniczony dostęp do ustawień Wi-Fi
- Aplikacje nie mogą już bezpośrednio włączać ani wyłączać Wi-Fi. Muszą to robić za pomocą paneli ustawień.
-
Ograniczenia dotyczące inicjowania połączenia z siecią Wi-Fi, które wymagają użycia:
WifiNetworkSpecifier
lubWifiNetworkSuggestion
.
-
Ograniczone miejsce na dane
Przejście z Androida 10 (poziom API 29) na Androida 11 (poziom API 30)
-
Prywatność
- Wymóg korzystania z ograniczonego miejsca na dane : aplikacje powinny korzystać z modelu ograniczonego miejsca na dane, w którym pliki związane z aplikacją, multimedia i inne typy plików są zapisywane i dostęp do nich jest uzyskiwany za pomocą dedykowanych lokalizacji.
- Automatyczne resetowanie uprawnień: jeśli użytkownicy nie korzystali z aplikacji przez kilka miesięcy, system automatycznie zresetuje jej uprawnienia do dostępu do poufnych danych. Nie powinno to mieć wpływu na większość aplikacji. Jeśli Twoja aplikacja działa głównie w tle bez interakcji z użytkownikiem, możesz poprosić użytkowników o wyłączenie automatycznego resetowania.
- Dostęp do lokalizacji w tle: aplikacje muszą osobno prosić o dostęp do lokalizacji na pierwszym i w tle. Dostęp do lokalizacji w tle można przyznać tylko w ustawieniach aplikacji, a nie w oknach z prośbą o dostęp w czasie działania.
-
Widoczność pakietu: gdy aplikacja wysyła zapytanie o listę zainstalowanych aplikacji i usług na urządzeniu, zwracana lista jest filtrowana.
- Jeśli korzystasz z usług przekształcania tekstu w mowę lub rozpoznawania mowy, musisz dodać elementy zapytań dotyczących tych usług do pliku manifestu.
-
Bezpieczeństwo
- Skompresowane pliki „resource.arsc” nie są już obsługiwane
- Schemat podpisu plików APK w wersji 2 jest teraz wymagany. Ze względu na zgodność wsteczną deweloperzy powinni nadal podpisywać pliki APK przy użyciu schematu podpisu APK w wersji 1.
- Ograniczenie interfejsu innego niż SDK. Używanie interfejsów innych niż SDK nie jest zalecane w przypadku aplikacji kierowanych na poziom API 30, ponieważ niektóre z tych interfejsów są teraz blokowane. Pełną listę zablokowanych interfejsów innych niż SDK znajdziesz na stronie Interfejsy inne niż SDK, które są teraz blokowane w Androidzie 11.
Pełną listę zmian wprowadzonych w Androidzie 11 (poziom API 30) znajdziesz na stronie Zmiany w zachowaniu.
Kontynuuj aktualizację do wersji API 31, wykonując instrukcje podane w poprzedniej sekcji.
Modernizacja aplikacji
Podczas aktualizowania docelowego poziomu interfejsu API swoich aplikacji rozważ przyjęcie najnowszych funkcji platformy, aby unowocześnić aplikacje i zadowolić użytkowników.
- Aby w pełni korzystać z aparatu, rozważ użycie aplikacji CameraX, która jest w wersji beta.
- Korzystaj ze składników Jetpacka, aby stosować się do sprawdzonych metod, unikać pisania szablonowego kodu i upraszczać skomplikowane zadania, dzięki czemu możesz skupić się na kodzie, który jest dla Ciebie ważny.
- Używaj Kotlina, aby szybciej i z mniejszą ilością kodu pisać lepsze aplikacje.
- Przestrzegaj wymagań i sprawdzonych metod dotyczących prywatności.
- Dodaj do aplikacji obsługę ciemnego motywu.
- Dodaj do swoich aplikacji obsługę nawigacji za pomocą gestów.
- Przenieś aplikację z Google Cloud Messaging (GCM) do najnowszej wersji Komunikacji w chmurze Firebase.
- korzystać z zaawansowanych funkcji zarządzania oknami.
- Obsługa większych formatów obrazu (większych niż 16:9), aby korzystać z ostatnich osiągnięć w zakresie sprzętu. Upewnij się, że rozmiar aplikacji dostosowuje się do dostępnej przestrzeni na ekranie. Maksymalny współczynnik proporcji należy zadeklarować tylko w sytuacji awaryjnej. Więcej informacji o maksymalnych współczynnikach proporcji znajdziesz w artykule Oświadczenie o obsługiwaniu ekranów ograniczonych.
- Dodaj obsługę wielu okien, aby zwiększyć produktywność aplikacji, a także zarządzać wieloma wyświetlaczami.
- Jeśli wygodnej obsługi aplikacji w trybie z minimalizowanym interfejsem będzie to sprzyjać wygodzie użytkowników, dodaj obsługę obrazu w obrazie.
- Optymalizacja pod kątem urządzeń z wycięciem w ekranie.
- Nie zakładaj, że wysokość paska stanu jest stała. Zamiast tego używaj interfejsów
WindowInsets
iView.OnApplyWindowInsetsListener
. Więcej informacji znajdziesz w tym filmie z droidcon NYC 2017. - Nie zakładaj, że aplikacja ma cały ekran. Zamiast tego potwierdź jego lokalizację, używając kolumny
View.getLocationInWindow()
, a nieView.getLocationOnScreen()
. * Podczas obsługiMotionEvent
używaj wartościMotionEvent.getX()
iMotionEvent.getY()
, a nieMotionEvent.getRawX()
aniMotionEvent.getRawY()
.
Sprawdzanie i aktualizowanie pakietów SDK oraz bibliotek
Upewnij się, że pakiety SDK innych firm, na których Twoja aplikacja jest zależna, obsługują interfejs API 31. Niektórzy dostawcy pakietów SDK publikują go w pliku manifestu, a w przypadku innych konieczne będzie sprawdzenie dodatkowych informacji. Jeśli używasz pakietu SDK, który nie obsługuje interfejsu API 31, postaraj się jak najszybciej skontaktować z dostawcą pakietu SDK, aby rozwiązać ten problem.
Pamiętaj też, że targetSdkVersion
Twojej aplikacji lub gry może ograniczać dostęp do prywatnych bibliotek platformy Androida. Więcej informacji znajdziesz w artykule NDK Apps Linking to Platform Libraries.
Sprawdź też, czy w wersji biblioteki Android Support Library, której używasz, występują jakieś ograniczenia. Jak zawsze musisz zadbać o zgodność głównej wersji Biblioteki pomocy Androida z compileSdkVersion
Twojej aplikacji.
Zalecamy wybranie targetSdkVersion
mniejszej lub równej głównej wersji biblioteki pomocy. Zachęcamy do zaktualizowania biblioteki wsparcia do najnowszej zgodnej wersji, aby korzystać z najnowszych funkcji zgodności i poprawek błędów.
Testowanie aplikacji
Po zaktualizowaniu poziomu interfejsu API i odpowiednich funkcji aplikacji przetestuj kilka podstawowych przypadków użycia. Poniższe sugestie nie są wyczerpujące, ale mają na celu ułatwić Ci proces testowania. Zalecamy przetestowanie:
- Aplikacja kompiluje się do interfejsu API 29 bez błędów ani ostrzeżeń.
że Twoja aplikacja ma strategię na wypadek, gdy użytkownik odrzuci prośby o przyznanie uprawnień, i że prosi o te uprawnienia. Aby to zrobić:
- Otwórz ekran Informacje o aplikacji i wyłącz po kolei wszystkie uprawnienia.
- Otwórz aplikację i upewnij się, że nie ulega ona awariom.
- Przeprowadź testy podstawowych przypadków użycia i upewnij się, że wymagane uprawnienia są ponownie wyświetlane.
Obsługuje Doze z oczekiwanymi wynikami i bez błędów.
- Użyj adb, aby umieścić urządzenie testowe w trybie Doze, gdy aplikacja jest uruchomiona.
- Testowanie wszystkich przypadków użycia, które powodują wysyłanie wiadomości w Komunikacji w chmurze Firebase (FCM).
- Testuj przypadki użycia, które wykorzystują alarmy lub zadania.
- Usuń wszystkie zależności od usług działających w tle.
- Przełącz aplikację w tryb wstrzymania.
- Testowanie wszystkich przypadków użycia, które powodują wysyłanie wiadomości w Komunikacji w chmurze Firebase (FCM).
- Testowanie wszystkich przypadków użycia, które wykorzystują alarmy.
- Użyj adb, aby umieścić urządzenie testowe w trybie Doze, gdy aplikacja jest uruchomiona.
obsługuje nowe zdjęcia / filmy,
- Sprawdź, czy aplikacja obsługuje transmisje
ACTION_NEW_PICTURE
iACTION_NEW_VIDEO
(czyli przenosi je do zadań JobScheduler). - Upewnij się, że wszystkie krytyczne przypadki użycia, które zależą od tych zdarzeń, nadal działają.
- Sprawdź, czy aplikacja obsługuje transmisje
Obsługuje udostępnianie plików innym aplikacjom. - Testuj dowolne przypadki użycia, które obejmują udostępnianie danych plików innej aplikacji (nawet innej aplikacji tego samego dewelopera).
- Sprawdź, czy treści są widoczne w innej aplikacji i czy nie powodują jej awarii.
Dodatkowe informacje
Zaakceptuj e-maile w Konsoli Google Play, abyśmy mogli wysyłać Ci ważne informacje i ogłoszenia dotyczące Androida i Google Play, w tym miesięczny newsletter dla partnerów.