Obsługa architektury 64-bitowej

Aplikacje opublikowane w Google Play muszą obsługiwać architektury 64-bitowe. Dodawanie 64-bitowej wersji aplikacji poprawia wydajność i konfiguruje dla urządzeń z wersją 64-bitową, sprzęt.

Wykonaj te czynności, aby aplikacja 32-bitowa obsługiwała urządzenia 64-bitowe.

Ocena aplikacji

Jeśli aplikacja używa tylko kodu napisanego w języku programowania Java lub Kotlin, w tym wszystkich bibliotek i pakietów SDK, obsługuje urządzenia 64-bitowe. Jeśli aplikacja korzysta z kodu natywnego lub nie masz pewności, czy tak, oceń .

Szybkie sprawdzenie stanu

Otwórz Konsolę Play i przejrzyj dotychczasowe wersje, by sprawdzić, czy są dostępne są zgodne z przepisami.

Konsola Play wyświetla też ostrzeżenia dotyczące wersji roboczych, jeśli występują w nich problemy związane z wymogiem dotyczącym kodu 64-bitowego. Ilustracja poniżej to przykład.

Jeśli pojawi się alert, wykonaj te czynności, aby zapewnić zgodność aplikacji z urządzeniami 64-bitowymi.

Czy Twoja aplikacja używa kodu natywnego?

Aplikacja używa kodu natywnego, jeśli:

  • zawiera w aplikacji kod C/C++ (natywny);
  • linki do zewnętrznych bibliotek natywnych,
  • została utworzona przez zewnętrznego twórcę aplikacji, który używa bibliotek natywnych;

Czy Twoja aplikacja zawiera biblioteki 64-bitowe?

Sprawdź strukturę pliku APK. Po skompilowaniu plik APK jest pakowany z bibliotekami natywne, których potrzebuje aplikacja. Biblioteki natywne są przechowywane w różnych folderach na podstawie ABI. Nie musisz obsługiwać wszystkich architektur 64-bitowych, ale w przypadku każdej obsługiwanej architektury natywnej 32-bitowej musisz uwzględnić odpowiadającą architekturę 64-bitową.

W przypadku architektury ARM biblioteki 32-bitowe znajdują się w folderze armeabi-v7a. Odpowiednikiem 64-bitowym jest arm64-v8a.

W przypadku architektury x86 poszukaj wersji x86 dla wersji 32-bitowej i x86_64 dla wersji 64-bitowej.

Upewnij się, że w obu tych folderach masz biblioteki natywne. Podsumowując:

Platforma 32-bitowy folder bibliotek Folder bibliotek 64-bitowych
WŁĄCZ WYKRYWANIE lib/armeabi-v7a lib/arm64-v8a
x86 lib/x86 lib/x86_64

Pamiętaj, że w zależności od aplikacji może on być taki sam, ale nie taki sam w każdym z tych folderów. Celem jest zapewnienie prawidłowego działania aplikacji w środowisku tylko 64-bitowym.

Zwykle jest to plik APK lub pakiet przeznaczony zarówno do wersji 32-bitowej, jak i 64-bitowej. ma foldery dla obu interfejsów ABI, z których każdy zawiera odpowiedni zestaw biblioteki. Jeśli wersja 64-bitowa nie jest obsługiwana, zobaczysz folder z 32-bitowym interfejsem ABI ale nie w folderze 64-bitowym.

Wyszukaj biblioteki natywne za pomocą Analizatora plików APK

APK Analyzer to narzędzie, które pozwala oceniać różne aspekty utworzonego pliku APK. Za ich pomocą możesz znaleźć wszystkie biblioteki natywne i zapewnić obsługę wersji 64-bitowej. dostępne są biblioteki.

  1. Otwórz Android Studiootwórz dowolny projekt.
  2. Z menu wybierz Kompilacja > Analizuj pakiet APK...

    Uruchom Analizator plików APK

  3. Wybierz plik APK, który chcesz ocenić.

  4. Przejdź do folderu lib zawierającego plik „.so”. . Jeśli nie ma żadnych, oznacza to, że aplikacja obsługuje urządzenia 64-bitowe i nie musisz nic robić. Jeśli widzisz armeabi-v7a lub x86, masz biblioteki 32-bitowe.

  5. Sprawdź, czy w folderze arm64-v8a lub x86_64 znajdują się podobne pliki „.so”.

    Uruchom Analizator plików APK

  6. Jeśli nie masz żadnych bibliotek arm64-v8a ani x86_64, zaktualizuj i rozpocząć tworzenie tych artefaktów w pakiecie APK.

  7. Jeśli widzisz już, że obie biblioteki są pakowane, możesz przejść do testowania aplikacji na sprzęcie 64-bitowym.

Pliki APK są ustrukturyzowane jak pliki zip. Za pomocą wiersza poleceń lub innego narzędzia do wyodrębniania wyodrębnij plik APK. W zależności od narzędzia do wyodrębniania może być konieczne przemianowanie pliku na .zip.

Przejrzyj rozpakowane pliki, postępując zgodnie z powyższymi wskazówkami, aby określić jeśli aplikacja obsługuje urządzenia 64-bitowe. Z wiersza poleceń możesz uruchomić ten przykład polecenia:

:: Command Line
> zipinfo -1 YOUR_APK_FILE.apk | grep \.so$
lib/armeabi-v7a/libmain.so
lib/armeabi-v7a/libmono.so
lib/armeabi-v7a/libunity.so
lib/arm64-v8a/libmain.so
lib/arm64-v8a/libmono.so
lib/arm64-v8a/libunity.so

Zwróć uwagę na obecność tagów armeabi-v7a i arm64-v8a w tym przykładzie biblioteki, co oznacza, że aplikacja obsługuje architektury 64-bitowe.

Kompilowanie aplikacji z bibliotekami 64-bitowymi

W podanych niżej instrukcjach opisano, jak skompilować biblioteki 64-bitowe. Pamiętaj, że te kroki obejmują tylko kod budynków i biblioteki, które możesz utworzyć ze źródła.

Kompilowanie w Android Studio lub Gradle

Większość projektów w Android Studio korzysta z Gradle jako podstawowego systemu kompilacji, więc ten rozdział dotyczy obu tych przypadków. Aby włączyć kompilacje dla kodu natywnego, dodaj arm64-v8a lub x86_64 (w zależności od architektury, którą chcesz obsługiwać) do ustawienia ndk.abiFilters w pliku „build.gradle” aplikacji:

GroovyKotlin
// Your app's build.gradle
plugins {
  id 'com.android.app'
}

android {
   compileSdkVersion 27
   defaultConfig {
       appId "com.google.example.64bit"
       minSdkVersion 15
       targetSdkVersion 28
       versionCode 1
       versionName "1.0"
       ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
// ...
// Your app's build.gradle
plugins {
    id("com.android.app")
}

android {
    compileSdkVersion(27)
    defaultConfig {
        appId = "com.google.example.64bit"
        minSdkVersion(15)
        targetSdkVersion(28)
        versionCode = 1
        versionName = "1.0"
        ndk {
            abiFilters += listOf("armeabi-v7a","arm64-v8a","x86","x86_64")
        }
// ...

Kompilowanie za pomocą CMake

Jeśli aplikacja została utworzona przy użyciu CMake, możesz ją kompilować w wersji 64-bitowej za pomocą interfejsu ABI arm64-v8a do ciągu „-DANDROID_ABI” :

:: Command Line
> cmake -DANDROID_ABI=arm64-v8a … or
> cmake -DANDROID_ABI=x86_64 …

Tworzenie z użyciem narzędzia ndk-build

Jeśli aplikacja została utworzona za pomocą polecenia ndk-build, 64-bitowe interfejsy ABI przez zmodyfikowanie pliku „Application.mk” za pomocą zmienną APP_ABI:

APP_ABI := armeabi-v7a arm64-v8a x86 x86_64

Port 32-bitowy na kod 64-bitowy

Jeśli Twój kod działa już na komputerze lub w systemie iOS, nie musisz w Androidzie. Jeśli Twój kod jest kompilowany po raz pierwszy na system 64-bitowy, musisz rozwiązać główny problem, jakim jest to, że wskaźniki nie mieszczą się już w typach całkowitych 32-bitowych, takich jak int.

Zaktualizuj kod, który przechowuje wskaźniki w typach, takich jak int, unsigned lub uint32_t W systemach Unix wartość long odpowiada rozmiarowi wskaźnika, ale nie jest tak w systemie Windows. Zamiast tego użyj typów określających zamiary: uintptr_t lub intptr_t Aby zapisać różnicę między dwoma wskaźnikami, użyj funkcji ptrdiff_t typu.

Zawsze wybieraj konkretne typy liczb całkowitych o stałyej szerokości zdefiniowane w <stdint.h>, a nie typy o niestałej szerokości, takie jak int czy long, nawet w przypadku typów niewskaźnikowych.

Użyj tych flag kompilatora, aby wykrywać przypadki, w których kod nieprawidłowo konwertuje wskaźniki na liczby całkowite i odwrotnie:

-Werror=pointer-to-int-cast
-Werror=int-to-pointer-cast
-Werror=shorten-64-to-32

Klasy Java z polami int, które zawierają wskaźniki do obiektów C/C++, mają takie same . W źródle JNI wyszukaj jint i upewnij się, że przełączysz się na long po stronie Javy i jlong po stronie C++.

Deklaracje funkcji niejawnych są znacznie bardziej niebezpieczne w przypadku 64-bitowego kodu. W językach C/C++ założenie jest takie, że typ zwracany przez funkcję zadeklarowaną domyślnie (czyli funkcję, której kompilator nie widział w deklaracji) to int. Jeśli rzeczywisty typ zwracany przez funkcję to wskaźnik, to na systemie 32-bitowym działa to dobrze, ponieważ wskaźnik mieści się w typie int. Jednak na systemie 64-bitowym kompilator odrzuca górną połowę wskaźnika. Na przykład:

// This function returns a pointer:
// extern char* foo();

// If you don't include a header that declares it,
// when the compiler sees this:
char* result = foo();

// Instead of compiling that to:
result = foo();

// It compiles to something equivalent to:
result = foo() & 0xffffffff;

// Which will then cause a SIGSEGV if you try to dereference `result`.

Poniższa flaga kompilatora zmienia ostrzeżenia dotyczące niejawnej deklaracji funkcji w aby można było łatwiej znaleźć i naprawić ten problem:

-Werror=implicit-function-declaration

Jeśli masz wbudowany asembler, przepisz go lub użyj zwykłej implementacji C/C++.

Jeśli masz zakodowane na stałe rozmiary typów (np. 8 lub 16 bajtów), zastąp je odpowiednim wyrażeniem sizeof(T), np. sizeof(void*).

Jeśli chcesz warunkowo kompilować inny kod na architekturze 32-bitowej niż 64-bitowej, możesz użyć #if defined(__LP64__) w przypadku ogólnych różnic między 32-bitową a 64-bitową lub __arm__, __aarch64__ (arm64), __i386__ (x86) i __x86_64__ w przypadku konkretnych architektur obsługiwanych przez Androida.

Dostosuj ciągi formatu dla funkcji printf i scanf (w standardowy sposób) specyfikatory formatu nie pozwalają na określenie typów 64-bitowych w sposób, zarówno dla urządzeń 32-bitowych, jak i 64-bitowych. Makra PRI i SCN w <inttypes.h> rozwiąż ten problem, PRIxPTR i SCNxPTR do pisania i odczytywania wskaźników szesnastkowych; i PRId64 i SCNd64 za pisanie i do przenośnego odczytu wartości 64-bitowych.

Przy zmianie może być konieczne użycie funkcji 1ULL do uzyskania 64-bitowej stałej do zmiany zamiast używać dyrektywy 1, która ma tylko 32 bity.

Ograniczanie wzrostu rozmiaru za pomocą pakietu Android App Bundle

Dodanie do aplikacji obsługi architektury 64-bitowej może spowodować zwiększenie rozmiaru pliku APK. Zdecydowanie zalecamy skorzystanie z pakietu Android App Bundle, który pozwala zminimalizować wpływ uwzględniając 32- i 64-bitowy kod natywny w tym samym pliku APK.

Deweloperzy gier

Trzy najczęściej używane wyszukiwarki obsługują wersję 64-bitową:

  • Nierealistyczne od 2015 roku
  • Cocos2d od 2015 r.
  • Unity od 2018 roku

Programiści Unity

Uaktualnij do wersji, które obsługują tę funkcję

Unity zapewnia 64-bitową obsługę w wersjach 2018.2 oraz 16.04.2017.

Jeśli używasz wersji Unity, która nie obsługuje 64-bitów, określ wersję, do której chcesz przejść, i postępuj zgodnie z przewodnikiem Unity dotyczącym migracji środowiska, aby mieć pewność, że Twoja aplikacja zostanie zaktualizowana do wersji, która może tworzyć biblioteki 64-bitowe. Unity zaleca dostęp do najnowsze funkcje i aktualizacje przez uaktualnienie do najnowszej wersji kanału LTS. wersji edytora.

Oto tabela z informacjami o różnych wersjach Unity i zalecanych działaniach:

Wersja Unity Wersja obsługuje pliki 64-bitowe? Zalecane działania

2020.x

Upewnij się, że ustawienia kompilacji generują biblioteki 64-bitowe.

2019.x

✔️

Upewnij się, że ustawienia kompilacji generują biblioteki 64-bitowe.

2018.4 (LTS)

Sprawdzanie kompilacji ustawień i wygenerować 64-bitowe biblioteki.

2018,3

✔️

Upewnij się, że ustawienia kompilacji generują biblioteki 64-bitowe.

2018.2

Upewnij się, że ustawienia kompilacji generują biblioteki 64-bitowe.

2018.1

Ma eksperymentalną obsługę 64-bitową.

2017.4 (LTS)

Obsługiwane od wersji 2017.4.16. Upewnij się, że ustawienia kompilacji generują biblioteki 64-bitowe.

3.2017.

Uaktualnij do wersji obsługującej 64-bity.

2017.2

✖️

Uaktualnij do wersji obsługującej 64-bity.

2017.1

✖️

Uaktualnij do wersji obsługującej 64-bity.

<=5,6

✖️

Przejdź na wersję, która obsługuje 64-bitową wersję kodu.

Zmień ustawienia kompilacji, aby wygenerować biblioteki 64-bitowe

Jeśli używasz wersji Unity, która obsługuje 64-bitowe biblioteki Androida, może wygenerować 64-bitową wersję Twojej aplikacji, dostosowując ustawienia kompilacji. Użyj a backend IL2CPP będzie Twoim backendem do obsługi skryptów. Aby skonfigurować projekt Unity do kompilacji architektury 64-bitowej, wykonaj te czynności:

  1. Otwórz Ustawienia kompilacji i upewnij się, że kompilujesz aplikację na Androida przez Sprawdź, czy w sekcji Platforma obok pozycji Android znajduje się symbol Unity. 1. Jeśli symbol Unity nie znajduje się obok platformy Android, wybierz Android i kliknij Przełącz platformę.
  2. Kliknij Ustawienia odtwarzacza.

    Ustawienia gracza w Unity

  3. Kliknij Panel ustawień gracza > Ustawienia dla Androida > Inne ustawienia > Konfiguracja.

  4. Ustaw Backend skryptu na IL2CPP.

  5. Wybierz architekturę docelową > ARM64.

    ustawić architektury docelowe w Unity;

  6. Buduj jak zwykle.

Pamiętaj, że kompilowanie pod kątem ARM64 wymaga, aby wszystkie zasoby były tworzone specjalnie na tej platformie. Postępuj zgodnie z wytycznymi Unity dotyczącymi ograniczania liczby pakietów APK i zastanów się nad wykorzystaniem funkcję Android App Bundle, która pomoże ograniczyć ten wzrost rozmiarowego rozmiaru.

Zgodność z wieloma plikami APK i standardem 64-bitowym

Jeśli korzystasz z obsługi wielu plików APK w Google Play, pamiętaj, że zgodność z wymaganiami wersji 64-bitowej jest oceniana. na poziomie wydania. Wymagania dotyczące wersji 64-bitowej nie mają jednak zastosowania do plików APK ani pakiety aplikacji, które nie są rozpowszechniane na urządzenia z Androidem 9 Pie lub nowszym;

Jeśli jeden z plików APK jest oznaczony jako niezgodny z zasadami, ale jest to starsza wersja i nie można jej dostosować do wymagań, jedną z możliwości jest dodanie atrybutu maxSdkVersion="27" w elemencie uses-sdk w pliku manifestu tego pliku APK. Ten plik APK nie jest dostarczany na urządzenia z Androidem 9 Pie lub później i nie blokuje już zgodności.

Renderowanie i zgodność z 64-bitami

Jeśli aplikacja korzysta z języka RenderScript i została utworzona przy użyciu wcześniejszej wersji biblioteki W narzędziach na Androida mogą wystąpić problemy ze zgodnością aplikacji z technologią 64-bitową. Z kompilacją starszych niż 21.0.0, kompilator może wygenerować kod bitowy w pliku .bc. Te starsze pliki .bc nie są już obsługiwane w wersji 64-bitowej architektury, więc obecność tego pliku w pakiecie APK powoduje Google Cloud.

Aby rozwiązać ten problem, usuń z projektu wszystkie pliki .bc, zaktualizuj środowisko do wersji build-tools-21.0.0 lub nowszej i ustaw wartość renderscriptTargetApi w Android Studio na 21 lub nowszą, aby powiedzieć kompilatorowi, że nie ma emitować plików .bc. Następnie ponownie skompiluj aplikację, sprawdź, czy nie zawiera plików .bc, i prześlij ją do Konsoli Play.

Testowanie aplikacji na sprzęcie 64-bitowym

64-bitowa wersja aplikacji powinna oferować taki sam zestaw funkcji i jakości wersji 32-bitowej. Przetestuj aplikację, aby upewnić się, że użytkownicy korzystają z najnowszej wersji 64-bitowej. zapewnia wygodę korzystania z aplikacji na urządzeniach.

Urządzenia 64-bitowe

Jeśli to możliwe, zalecamy przetestowanie aplikacji w ściśle 64-bitowym środowisku, korzystając z jednego z tych rozwiązań:

Google Pixel z obrazem systemu tylko 64-bitowym

Aby ułatwić tworzenie i testowanie aplikacji, udostępniliśmy specjalne obrazy systemowe z ściśle 64-bitowym środowiskiem dla niektórych urządzeń Pixel. Tylko tagi 64-bitowe obrazy były pierwotnie przesyłane równolegle ze standardowymi obrazami systemu fabrycznego. wersji przedpremierowej na Androida 13 i 14, ale możesz ich nadal używać jako podczas testowania aplikacji pod kątem zgodności z architekturą 64-bitową.

Pobieranie obrazu w wersji 64-bitowej

Podobnie jak w przypadku obrazów systemu operacyjnego, do przy użyciu narzędzia Android Flash lub flashując ręcznie, jak opisano w kolejnych sekcjach.

flashowanie urządzenia, korzystając z narzędzia Android Flash Tool

Narzędzia do flashowania Androida umożliwiają bezpieczne flashowanie obrazu systemu na obsługiwanym urządzeniu Pixel. Narzędzie Android Flash Tool działa z każdą przeglądarką obsługujące WebUSB, np. Chrome lub Edge 79 lub nowszej.

Narzędzie Android Flash Tool prowadzi Cię krok po kroku przez proces flashowania urządzenia. Nie musisz instalować żadnych narzędzi, ale musisz odblokować urządzenie i w opcjach programisty włączyć debugowanie przez USB. Pełne instrukcje znajdziesz w dokumentacji narzędzia Android Flash Tool.

Podłącz urządzenie przez USB, a następnie, w zależności od typu obrazu systemu, chcesz flashować, otwórz narzędzie Android Flash Tool, korzystając z jednego z poniższych linków i postępuj zgodnie z instrukcjami na ekranie:

Ręczne flashowanie urządzenia

Możesz też pobrać najnowszy obraz systemu i ręcznie wgrać go na urządzenie. Aby pobrać obraz systemu na urządzenie testowe, zapoznaj się z tabelą poniżej. Ręczne flashowanie urządzenia przydaje się, gdy chcesz precyzyjnie kontrolować w środowisku testowym lub w przypadku częstej ponownej instalacji, np. przeprowadzanie automatycznych testów.

Po utworzeniu kopii zapasowej danych z urządzenia i pobraniu odpowiedniego obrazu systemu zainstalować obraz na urządzeniu.

W każdej chwili możesz przywrócić najnowszą publiczną wersję programu.

obrazy fabryczne tylko w wersji 64-bitowej dla Androida 14 (wersja beta 5.3);

Te obrazy zapewniają ściśle 64-bitowe środowisko do testowania zgodności aplikacji 64-bitowych. Te konfiguracje 64-bitowe są przeznaczone tylko dla programistów.

Urządzenie Link do pobierania Suma kontrolna SHA-256
Pixel 4a (5G) 7e6731fab811ae389f5ff882d5c5a2b8b942b8363b22bbcc038b39d7c539e60a
Pixel 5 c4da6a19086a02f2cd2fa7a4054e870916954b8e5a61e9a07ee942c537e4b45a
Pixel 6 98943384284cbc7323b8867d84c36151757f67ae7633012fb69cb5d6bec2b554
Pixel 6 Pro 67ec40be5bd05a40fa5dabc1ce6795aae75d1904193d52e2da00425ed7cb895b
obrazy fabryczne w wersji 64-bitowej dla Androida 13 (QPR3 Beta 3.2);

Te obrazy zapewniają rygorystyczne, 64-bitowe środowisko do testowania aplikacji 64-bitowych zgodność. Te konfiguracje 64-bitowe są przeznaczone tylko dla programistów.

Urządzenie Link do pobierania Suma kontrolna SHA-256
Pixel 4a (5G) b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a
Pixel 5 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a
Pixel 6 becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8
Pixel 6 Pro b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480
Powrót do wersji publicznej

Możesz użyć narzędzia do flashowania Androida, aby wgrać obraz fabryczny, lub pobrać obraz systemu z specyfikacją fabryczną ze strony Obrazy fabryczne dla urządzeń Nexus i Pixel, a następnie ręcznie wgrać go na urządzenie.

Emulator Androida

Od Androida 12 (poziom interfejsu API 31) obrazy systemowe emulatora Androida są 64-bitowe Utwórz urządzenie wirtualne Androida (AVD), używając obrazu systemu z Androidem 12 (poziom interfejsu API 31) lub nowszym, aby uzyskać ściśle 64-bitowe środowisko do testowania aplikacji.

Inne opcje urządzenia

Jeśli nie masz żadnego z tych urządzeń lub nie możesz korzystać z emulatora Androida, najlepszym rozwiązaniem będzie użycie urządzenia 64-bitowego, takiego jak Google Pixel lub inne najnowsze flagowe urządzenia innych producentów.

Instalowanie i testowanie aplikacji

Najłatwiejszym sposobem przetestowania pliku APK jest zainstalowanie aplikacji przy użyciu debugowania Androida Most (adb). W większości przypadków można podać --abi jako parametr, aby wskazać, które biblioteki należy zainstalować na urządzeniu. Spowoduje to zainstalowanie na urządzeniu aplikacji z tylko 64-bitowymi bibliotekami.

:: Command Line
# A successful install:
> adb install --abi armeabi-v7a YOUR_APK_FILE.apk
Success

# If your APK does not have the 64-bit libraries:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
adb: failed to install YOUR_APK_FILE.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

# If your device does not support 64-bit, an emulator, for example:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
ABI arm64-v8a not supported on this device

Po zainstalowaniu przetestuj aplikację w zwykły sposób upewnij się, że jakość jest taka sama jak wersji 32-bitowej.

Sprawdzanie, czy występują znane problemy ze zgodnością

Podczas testowania sprawdź, czy aplikacja nie ma niżej wymienionych problemów, które wpływają na aplikacje działające na urządzeniach 64-bitowych. Nawet jeśli aplikacja nie jest zależna od problemu, bezpośrednio biblioteki, biblioteki innych firm i pakiety SDK w zależnościach aplikacji. być może.

Komponent SoLoader

Jeśli używasz natywnego pakietu SDK wczytującego kod SoLoader, zaktualizuj go do wersji 0.10.4 lub nowszej. Jeśli aplikacja korzysta z pakietów SDK zależnych od SoLoader, pamiętaj też o zaktualizowaniu do najnowszej wersji wersji stabilnej lub stabilnych wersji pakietów SDK, których dotyczy problem.

W wersjach SoLoader w wersji 0.9.0 i starszych zakłada się, że biblioteki systemowe znajdują się w katalogu /vendor/lib:/system/lib. Tego błędu nie widać na urządzeniach takich jak Pixel. 7 dla określonych ścieżek, ale to założenie powoduje awarie tylko na urządzeniach, mają biblioteki systemowe w środowisku /vendor/lib64:/system/lib64.

Więcej informacji o rozwiązywaniu tego i innych problemów spowodowanych przez pakiet SoLoader znajdziesz w w Centrum pomocy Google Ads.

OpenSSL

Jeśli używasz biblioteki OpenSSL, zaktualizuj ją do wersji 1.1.1i lub nowszej. Jeśli aplikacja korzysta z pakietów SDK, które zapewniają komunikację przy użyciu protokołu HTTPS lub innych pakietów SDK, zależą od OpenSSL, pamiętaj też o zaktualizowaniu pakietu SDK do najnowszej wersji który korzysta z nowszej wersji OpenSSL. Jeśli nie, skontaktuj się z dostawcą pakietu SDK i dostępności informacji.

ARMv8.3 PAC umożliwia działanie wspomaganego sprzętowo mechanizmu integralności przepływu sterowania przez uwierzytelnianie wskaźników w czasie działania. Wcześniejsze wersje OpenSSL używa tych funkcji nieprawidłowo, co powoduje awarie w czasie działania z procesorami ARM 8.3a i nowszymi.

Więcej informacji o rozwiązywaniu tego i innych problemów spowodowanych przez OpenSSL znajdziesz w odpowiedniej odpowiedzi w Centrum pomocy Google.

wskaźnik BTI

ARM w wersji 8.5 lub nowszej używa instrukcji gałęzi BTI (BRN) w celu ochrony przed Ataki typu JOP. Starsze wersje zaciemnionego pakietu SDK, które odgałęziają się do losowych przesunięć bibliotek utworzonych za pomocą BTI, mogą powodować awarie aplikacji. Ponieważ instrukcje są zakodowane jako WSKAZÓWKI, tego błędu nie widać na urządzeniach które nie obsługują BTI.

Opublikuj

Gdy uznasz, że aplikacja jest gotowa, opublikuj ją w zwykły sposób. Jak zawsze, przejdź do postępuj zgodnie ze sprawdzonymi metodami wdrażania aplikacji. Zalecamy skorzystanie ścieżek testów zamkniętych do wdrożenia na ograniczonej liczbie użytkowników, aby zapewnić stałą jakość aplikacji.

Podobnie jak w przypadku wprowadzania istotnych aktualizacji, przed opublikowaniem aktualizacji dla większej liczby użytkowników sprawdź dokładnie działanie na urządzeniach z procesorami 64-bitowymi.

Pobierz Android 14 factory system image (64-bit-only)

Przed pobraniem musisz zaakceptować poniższe warunki.

Warunki korzystania z usługi

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Pobierz Android 14 factory system image (64-bit-only)

bramble_beta_64-upb5.230623.006-factory-7e6731fa.zip

Pobierz Android 14 factory system image (64-bit-only)

Przed pobraniem musisz zaakceptować poniższe warunki.

Warunki korzystania z usługi

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Pobierz Android 14 factory system image (64-bit-only)

redfin_beta_64-upb5.230623.006-factory-c4da6a19.zip

Pobierz Android 14 factory system image (64-bit-only)

Przed pobraniem musisz zaakceptować poniższe warunki.

Warunki korzystania z usługi

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Pobierz Android 14 factory system image (64-bit-only)

oriole_beta_64-upb5.230623.006-factory-98943384.zip

Pobierz Android 14 factory system image (64-bit-only)

Przed pobraniem musisz zaakceptować poniższe warunki.

Warunki korzystania z usługi

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Pobierz Android 14 factory system image (64-bit-only)

raven_beta_64-upb5.230623.006-factory-67ec40be.zip

Pobierz Android 13 factory system image (64-bit-only)

Przed pobraniem musisz zaakceptować poniższe warunki.

Warunki korzystania z usługi

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Pobierz Android 13 factory system image (64-bit-only)

bramble_64-t3b3.230413.009-factory-b4be4092.zip

Pobierz Android 13 factory system image (64-bit-only)

Przed pobraniem musisz zaakceptować poniższe warunki.

Warunki korzystania z usługi

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Pobierz Android 13 factory system image (64-bit-only)

redfin_64-t3b3.230413.009-factory-6e5e027a.zip

Pobierz Android 13 factory system image (64-bit-only)

Przed pobraniem musisz zaakceptować poniższe warunki.

Warunki korzystania z usługi

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Pobierz Android 13 factory system image (64-bit-only)

oriole_64-t3b3.230413.009-factory-becb9b81.zip

Pobierz Android 13 factory system image (64-bit-only)

Przed pobraniem musisz zaakceptować poniższe warunki.

Warunki korzystania z usługi

By clicking to accept, you hereby agree to the following:

All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.

Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).

WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Pobierz Android 13 factory system image (64-bit-only)

raven_64-t3b3.230413.009-factory-b0ef544e.zip