64 bit mimarileri destekleme

Google Play'de yayınlanan uygulamaların 64 bit mimarileri desteklemesi gerekir. Uygulamanızın 64 bit sürümünü eklemek performans iyileştirmeleri sağlar ve yalnızca 64 bit donanıma sahip cihazlar için kurulum yapmanıza olanak tanır.

Aşağıdaki adımları uygulayarak 32 bit uygulamanızın, 64 bit cihazları desteklediğinden emin olabilirsiniz.

Uygulamanızı değerlendirme

Uygulamanız tüm kitaplıklar veya SDK'lar dahil olmak üzere yalnızca Java programlama dilinde veya Kotlin'de yazılmış kod kullanıyorsa 64 bit cihazları destekliyor demektir. Uygulamanız yerel kod kullanıyorsa veya yerel kod kullanıp kullanmadığından emin değilseniz uygulamanızı değerlendirin.

Hızlı durum kontrolü

Play Console'a giderek uyumlu olup olmadıklarını görmek için mevcut sürümlere göz atın.

Play Console, 64 bit şartıyla ilgili herhangi bir sorun olduğunda taslak sürümleriniz için geçerli olan uyarılar da gösterir. Aşağıdaki resim bir örnektir.

Bir uyarı görünürse uygulamanızı 64 bit cihazlarla uyumlu hale getirmek için aşağıdaki adımlara bakın.

Uygulamanız yerel kod kullanıyor mu?

Uygulamanız, aşağıdaki durumlarda yerel koddan yararlanır:

  • Uygulamanızda herhangi bir C/C++ (yerel) kodu kullanır.
  • Üçüncü taraf yerel kitaplıklarla bağlantılar.
  • Yerel kitaplıklar kullanan bir üçüncü taraf uygulama oluşturucu tarafından oluşturulur.

Uygulamanız 64 bit kitaplıklar içeriyor mu?

APK dosyanızın yapısını inceleyin. APK, derlendiğinde uygulamanın ihtiyaç duyduğu yerel kitaplıklarla birlikte paketlenir. Yerel kitaplıklar, ABI'ya dayalı olarak çeşitli klasörlerde depolanır. Her 64 bit mimariyi desteklemeniz gerekmez ancak desteklediğiniz her yerel 32 bit mimari için karşılık gelen 64 bit mimariyi eklemeniz gerekir.

ARM mimarisi için 32 bit kitaplıklar armeabi-v7a konumunda bulunur. 64 bitlik eşdeğeri arm64-v8a'dır.

x86 mimarisi için 32 bit için x86, 64 bit için x86_64 konumuna bakın.

Bu klasörlerin her ikisinde de yerel kitaplıklar bulunduğundan emin olun. Özetlemek gerekirse:

Platform 32 bit kitaplıklar klasörü 64 bit kitaplıklar klasörü
ALARMI ETKİNLEŞTİR lib/armeabi-v7a lib/arm64-v8a
86 kat lib/x86 lib/x86_64

Uygulamanıza bağlı olarak her klasörde tam olarak aynı kitaplık grubunun olup olmayacağını unutmayın. Amaç, uygulamanızın yalnızca 64 bit ortamda doğru şekilde çalışmasını sağlamaktır.

Tipik bir durumda, hem 32 bit hem de 64 bit mimariler için oluşturulan bir APK veya pakette, her biri karşılık gelen bir yerel kitaplık kümesine sahip olan klasörler bulunur. 64 bit desteklenmiyorsa 32 bit ABI klasörü görebilirsiniz ancak 64 bit klasörü göremezsiniz.

APK Analiz Aracı'nı kullanarak yerel kitaplıkları arama

APK Analiz Aracı, oluşturulan bir APK'yı çeşitli yönlerden değerlendirmenize olanak tanıyan bir araçtır. Yerel kitaplıkları bulmak için bunu kullanın ve 64 bit kitaplıkların mevcut olduğundan emin olun.

  1. Android Studio'yu ve herhangi bir projeyi açın.
  2. Menüden Oluştur > APK'yı analiz et... seçeneğini belirleyin.

    APK analiz aracını başlat

  3. Değerlendirmek istediğiniz APK'yı seçin.

  4. Varsa ".so" dosyalarını barındıran lib klasörüne bakın. Bunların hiçbiri yoksa uygulamanız 64 bit cihazları desteklediğinden başka bir işlem yapmanız gerekmez. armeabi-v7a veya x86 öğelerini görüyorsanız 32 bit kitaplıklarınız vardır.

  5. arm64-v8a veya x86_64 klasöründe benzer ".so" dosyalarınızın olup olmadığını kontrol edin.

    APK analiz aracını başlat

  6. arm64-v8a veya x86_64 kitaplığınız yoksa bu yapıları oluşturup APK'nızda paketlemeye başlamak için derleme sürecinizi güncelleyin.

  7. Her iki kitaplığın da paketlendiğini görürseniz uygulamanızı 64 bit donanımda test etme adımına atlayabilirsiniz.

APK'ları açarak yerel kitaplıkları bulun

APK dosyaları, zip dosyaları gibi yapılandırılır. Komut satırı veya başka bir çıkarma aracıyla APK dosyasını çıkarın. Ayıklama aracınıza bağlı olarak, dosyanın adını .zip olarak değiştirmeniz gerekebilir.

Uygulamanızın 64 bit cihazları destekleyip desteklemediğini belirlemek için yukarıdaki yönergeleri izleyerek çıkarılan dosyalara göz atın. Komut satırından aşağıdaki komut örneğini çalıştırabilirsiniz:

:: 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

Bu örnekte, uygulamanın 64 bit mimarileri desteklediği anlamına gelen armeabi-v7a ve arm64-v8a kitaplıklarının varlığına dikkat edin.

Uygulamanızı 64 bit kitaplıklarla geliştirme

Aşağıdaki talimatlarda 64 bit kitaplıkların nasıl oluşturulacağı özetlenmektedir. Bu adımların yalnızca kaynaktan oluşturabileceğiniz kod ve kitaplık oluşturmayı kapsadığını unutmayın.

Android Studio veya Gradle ile geliştirme

Çoğu Android Studio projesi, temel derleme sistemi olarak Gradle'ı kullanır. Bu nedenle bu bölüm her iki durum için de geçerlidir. Yerel kodunuz için derlemeleri etkinleştirmek üzere, desteklemek istediğiniz mimarilere bağlı olarak arm64-v8a ve/veya x86_64'ü uygulamanızın "build.gradle" dosyasındaki ndk.abiFilter ayarına ekleyin:

Modern

// 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'
// ...

Kotlin

// 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")
        }
// ...

CMake ile Derleme

Uygulamanız CMake ile derlenmişse arm64-v8a kodunu "-DANDROID_ABI" parametresine ileterek 64 bit ABI'ler oluşturabilirsiniz:

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

ndk-build ile derleyin

Uygulamanız ndk-build ile oluşturulmuşsa "Application.mk" dosyanızı APP_ABI değişkeniyle değiştirerek 64 bit ABI'ler oluşturabilirsiniz:

APP_ABI := armeabi-v7a arm64-v8a x86 x86_64

Bağlantı noktası 32 bit kodu ile 64 bit

Kodunuz zaten masaüstünde veya iOS'ta çalışıyorsa Android için ek işlem yapmanız gerekmez. Kodunuz ilk kez 64 bitlik bir sistem için derleniyorsa çözmeniz gereken asıl sorun işaretçilerin artık int gibi 32 bit tam sayı türlerine sığmamasıdır.

İşaretçileri int, unsigned veya uint32_t gibi türlerde depolayan kodu güncelleyin. Unix sistemlerinde, long işaretçi boyutuyla eşleşir ancak Windows'da bu doğru değildir. Bunun yerine, özel açıklama türlerini uintptr_t veya intptr_t kullanın. İki işaretçi arasındaki farkı kaydetmek için ptrdiff_t türünü kullanın.

İşaretçi olmayanlar için bile int veya long gibi sabit genişlikli olmayan türler yerine her zaman <stdint.h> öğesinde tanımlanan belirli, sabit genişlikli tam sayı türlerini tercih etmelisiniz.

Kodunuzun işaretçiler ve tam sayılar arasında hatalı şekilde dönüşüm yaptığı durumları yakalamak için aşağıdaki derleyici işaretlerini kullanın:

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

C/C++ nesnelerine işaretçiler barındıran int alanlarına sahip Java sınıflarında da aynı sorun yaşanır. JNI kaynağınızda jint için arama yapın ve Java tarafında long, C++ tarafında jlong uygulamasına geçtiğinizden emin olun.

Örtülü işlev bildirimleri 64 bit kodlar için çok daha tehlikelidir. C/C++, örtülü olarak bildirilen bir işlevin (yani derleyicinin bildirim görmediği işlevin) dönüş türünün int olduğunu varsayar. İşlevinizin gerçek döndürme türü işaretçiyse bu özellik, işaretçinizin int'e sığdığı 32 bit sistemlerde sorunsuz çalışır. Ancak 64 bit sistemlerde derleyici işaretçinin üst yarısını bırakır. Örneğin:

// 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`.

Aşağıdaki derleyici işareti, bu sorunu daha kolay bulup düzeltebilmeniz için örtülü işlev bildirimi uyarılarını hatalara dönüştürür:

-Werror=implicit-function-declaration

Satır içi derleyiciniz varsa yeniden yazın veya düz bir C/C++ uygulaması kullanın.

Sabit kodlu türleriniz varsa (örneğin, 8 veya 16 bayt) bunları sizeof(void*) gibi eşdeğer sizeof(T) ifadesiyle değiştirin.

32 bit için 64 bitten koşullu olarak farklı kod derlemeniz gerekiyorsa genel 32/64 farklılıkları için #if defined(__LP64__) veya Android'in desteklediği belirli mimariler için __arm__, __aarch64__ (arm64), __i386__ (x86) ve __x86_64__ kodunu kullanabilirsiniz.

Geleneksel biçim belirleyiciler, 64 bit türlerini hem 32 bit hem de 64 bit cihazlar için doğru şekilde belirtmenize izin vermediğinden, printf veya scanf benzeri işlevler için biçim dizelerini ayarlayın. <inttypes.h> içindeki PRI ve SCN makroları, onaltılık işaretçileri yazmak ve okumak için PRIxPTR ve SCNxPTR, 64 bit değerleri taşınabilir olarak yazmak ve okumak için ise PRId64 ve SCNd64 bu sorunu çözer.

Geçiş yaparken, yalnızca 32 bit olan 1 kullanmak yerine 64 bit sabit değeri elde etmek için 1ULL kullanmanız gerekebilir.

Android App Bundle ile boyut artışlarını azaltma

Uygulamanıza 64 bit mimari desteği eklemek APK'nızın boyutunu büyütmeye neden olabilir. Aynı APK'ya hem 32 hem de 64 bit yerel kodu eklemenin boyut üzerindeki etkisini en aza indirmek için Android App Bundle özelliğinden yararlanmanızı önemle tavsiye ederiz.

Oyun geliştiriciler

En çok kullanılan üç motor 64 biti destekler:

  • 2015'ten beri gerçek dışı
  • 2015'ten beri Cocos2d
  • 2018'den beri Unity

Unity geliştiricileri

Uygun sürümlere geçin

Unity, 2018.2 ve 2017.4.16 sürümlerinde 64 bit desteği sunar.

64 biti desteklemeyen bir Unity sürümü kullanıyorsanız yükseltme yapmak istediğiniz sürümü belirleyin ve uygulamanızın 64 bit kitaplık oluşturabilen bir sürüme yükseltildiğinden emin olmak için Unity'nin ortamınızı taşımak için sağladığı kılavuzları takip edin. Unity, düzenleyicinin en son LTS sürümüne geçerek en yeni özelliklere ve güncellemelere erişebilmenizi önerir.

Aşağıda çeşitli Unity sürümlerini ve yapmanız gerekenleri özetleyen bir grafik verilmiştir:

Unity Sürümü Sürüm 64 bit'i destekliyor mu? Önerilen eylem

2020

✔️

Derleme ayarlarınızın 64 bit kitaplıklar ürettiğinden emin olun.

2019

✔️

Derleme ayarlarınızın 64 bit kitaplıklar ürettiğinden emin olun.

2018.4 (LTS)

✔️

Derleme ayarlarınızın 64 bit kitaplıklar ürettiğinden emin olun.

2018.3

✔️

Derleme ayarlarınızın 64 bit kitaplıklar ürettiğinden emin olun.

2018.2

✔️

Derleme ayarlarınızın 64 bit kitaplıklar ürettiğinden emin olun.

1.2018

Deneysel 64 bit desteği vardır.

2017.4 (LTS)

✔️

16.04.2017 itibarıyla desteklenir. Derleme ayarlarınızın 64 bit kitaplıklar ürettiğinden emin olun.

3.2017

✖️

64 bit'i destekleyen bir sürüme geçin.

2017.2

✖️

64 bit'i destekleyen bir sürüme geçin.

1.2017

✖️

64 bit'i destekleyen bir sürüme geçin.

<=5,6

✖️

64 bit'i destekleyen bir sürüme geçin.

64 bit kitaplıkların çıkışını almak için derleme ayarlarını değiştir

64 bit Android kitaplıklarını destekleyen bir Unity sürümü kullanıyorsanız derleme ayarlarınızı düzenleyerek uygulamanızın 64 bit sürümünü oluşturabilirsiniz. Komut Dosyası Arka Ucunuz olarak IL2CPP arka ucunu kullanın. Unity projenizi 64 bit mimari oluşturacak şekilde ayarlamak için aşağıdakileri yapın:

  1. Derleme Ayarları'na gidin ve Platform altında Unity sembolünün Android'in yanında olduğunu doğrulayarak Android için uygulama oluşturduğunuzdan emin olun. 1. Android platformunun yanında Unity simgesi yoksa Android'i seçin ve Platformu Değiştir'i tıklayın.
  2. Oynatıcı ayarları'nı tıklayın.

    Unity&#39;de oyuncu ayarları

  3. Oynatıcı Ayarları Paneli > Android Ayarları > Diğer ayarlar > Yapılandırma'ya gidin

  4. Komut Dosyası Arka Ucu'nu IL2CPP olarak ayarlayın.

  5. Hedef Mimari > ARM64 onay kutusunu seçin.

    Unity&#39;de hedef mimariler belirleme

  6. Her zamanki gibi geliştirin!

ARM64 için derleme yaparken, tüm öğelerinizin söz konusu platform için özel olarak derlenmiş olması gerektiğini unutmayın. Unity'nin APK boyutunu küçültmeyle ilgili kılavuzunu uygulayın ve boyuttaki bu artışı azaltmaya yardımcı olması için Android App Bundle özelliğinden yararlanmayı düşünün.

Çoklu APK ve 64 bit uyumluluk

Uygulamanızı yayınlamak için Google Play'in birden fazla APK desteğini kullanıyorsanız 64 bit gereksinimine uygunluğun sürüm düzeyinde değerlendirildiğini unutmayın. Ancak 64 bit gereksinimi, Android 9 Pie veya sonraki sürümleri çalıştıran cihazlara dağıtılmayan APK'lar ya da uygulama paketleri için geçerli değildir.

APK'larınızdan biri "uyumlu değil" olarak işaretlenmesine rağmen daha eski bir sürümse ve bunu uyumlu hale getirmek mümkün değilse stratejilerden biri, söz konusu APK'nın manifest dosyasındaki uses-sdk öğesine bir maxSdkVersion="27" özelliği eklemektir. Bu APK, Android 9 Pie veya sonraki sürümleri çalıştıran cihazlara yayınlanmıyor ve artık uyumluluğu engellememektedir.

RenderScript ve 64 bit uyumluluğu

Uygulamanız RenderScript'i kullanıyorsa ve Android araçlarının daha eski bir sürümüyle oluşturulmuşsa uygulamanın 64 bit uyumluluk sorunlarıyla karşılaşabilirsiniz. 21.0.0 sürümünden önceki derleme araçlarında derleyici, harici bir .bc dosyasında bit kodu oluşturabilir. Bu eski .bc dosyaları artık 64 bit mimarilerde desteklenmediğinden, dosyanın APK'nızda bulunması uyumluluk sorununa neden olur.

Sorunu düzeltmek için derleyiciye .bc dosyalarını yayınlamaması gerektiğini belirtmek için projenizdeki tüm.bc dosyalarını kaldırın, ortamınızı build-tools-21.0.0 veya daha yeni bir sürüme yükseltin ve Android Studio'da renderscriptTargetApi değerini 21+ olarak ayarlayın. Ardından uygulamanızı yeniden oluşturun, .bc dosyalarını inceleyin ve Play Console'a yükleyin.

Uygulamanızı 64 bit donanım üzerinde test etme

Uygulamanızın 64 bit sürümü, 32 bit sürümüyle aynı kalite ve özellik grubunu sunmalıdır. En yeni 64 bit cihazları kullananların uygulamanızda harika bir deneyim yaşadığından emin olmak için uygulamanızı test edin.

Yalnızca 64 bit özellikli cihazlar

Mümkün olduğunda, aşağıdaki seçeneklerden birini kullanarak uygulamanızı 64 bit katı bir ortamda test etmenizi öneririz:

Yalnızca 64 bit sistem resmine sahip Google Pixel

Uygulama geliştirme ve test işlemlerini kolaylaştırmak amacıyla bazı Pixel cihazlar için, yalnızca 64 bit'e kadar hakim olan katı bir ortama sahip özel sistem görüntüleri sağladık. Yalnızca 64 bit olan bu görüntüler, orijinal olarak Android 13 ve 14 önizleme sürümleri için standart fabrika sistemi görüntüleriyle eş zamanlı olarak sağlandı ancak uygulamanızı 64 bit uyumluluğu için test ederken kullanmaya devam edebilirsiniz.

Yalnızca 64 bit görüntü alma

Fabrika sistemi görüntülerine benzer şekilde, 64 bitlik bir görüntüyü cihazınıza yüklemek için Android Flash Aracı'nı kullanabilir veya aşağıdaki bölümlerde açıklandığı şekilde cihazınızı manuel olarak yenileyebilirsiniz.

Android Flash Aracı'nı kullanarak cihazınızda Flash'ı kullanma

Android Flash Aracı, bir sistem resmini desteklenen Pixel cihazınıza güvenli bir şekilde yüklemenizi sağlar. Android Flash Tool, Chrome veya Edge 79+ gibi WebUSB'yi destekleyen tüm Web tarayıcılarında çalışır.

Android Flash Aracı, cihazınızı yanıp sönme işleminde size adım adım yol gösterir. Herhangi bir araç yüklemenize gerek yoktur, ancak cihazınızın kilidini açmanız ve Geliştirici seçeneklerinde USB Hata Ayıklaması'nı etkinleştirmeniz gerekir. Talimatların tamamı için Android Flash Aracı dokümanlarına bakın.

Cihazınızı USB üzerinden bağlayın, ardından, yanıp söndürmek istediğiniz sistem görüntüsünün türüne bağlı olarak, aşağıdaki bağlantılardan birini kullanarak Android Flash Aracı'na gidin ve ekrandaki yönergeleri izleyin:

Cihazınızda manuel olarak Flash'a geçme

Ayrıca en son sistem görüntüsünü indirip cihazınıza manuel olarak yükleyebilirsiniz. Test cihazınızın sistem görüntüsünü indirmek için aşağıdaki tabloya bakın. Bir cihazın manuel olarak yanıp sönmesi, test ortamı üzerinde hassas bir kontrole ihtiyacınız varsa veya otomatik testler gibi sık sık yeniden yükleme yapmanız gerekiyorsa yararlıdır.

Cihaz verilerinizi yedekleyip eşleşen sistem görüntüsünü indirdikten sonra görüntüyü cihazınıza yükleyebilirsiniz.

Dilediğiniz zaman herkese açık en son derlemeye geri dönmeyi seçebilirsiniz.

Android 14 (Beta 5.3) için yalnızca 64 bit fabrika görüntüleri

Bu resimler, 64 bit uygulama uyumluluğunu test etmek için 64 bitlik katı bir ortam sağlar. Bu 64 bit yapılandırmalar sadece geliştirici kullanımı içindir.

Cihaz İndirme Bağlantısı SHA-256 Sağlaması
Pixel 4a (5G) 7e6731fab811ae389f5ff882d5c5a2b8b942b8363b22bbcc038b39d7c539e60a
Pixel 5 c4da6a19086a02f2cd2fa7a4054e870916954b8e5a61e9a07ee942c537e4b45a
Pixel 6 98943384284cbc7323b8867d84c36151757f67ae7633012fb69cb5d6bec2b554
Pixel 6 Pro 67ec40be5bd05a40fa5dabc1ce6795aae75d1904193d52e2da00425ed7cb895b
Android 13 için yalnızca 64 bit fabrika görüntüleri (QPR3 Beta 3.2)

Bu resimler, 64 bit uygulama uyumluluğunu test etmek için 64 bitlik katı bir ortam sağlar. Bu 64 bit yapılandırmalar sadece geliştirici kullanımı içindir.

Cihaz İndirme Bağlantısı SHA-256 Sağlaması
Pixel 4a (5G) b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a
Pixel 5 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a
Pixel 6 becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8
Pixel 6 Pro b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480
Herkese açık derlemeye dön

Fabrika imajını yeniden yüklemek için Android Flash Aracı'nı kullanabilir veya Nexus ve Pixel Cihazlar için Fabrika Ayarları Resimleri sayfasından fabrika spesifikasyonlarına ait bir sistem görüntüsü edinebilir ve ardından cihaza manuel olarak yükleyebilirsiniz.

Android Emülatör

Android 12'den (API düzeyi 31) başlayarak Android Emülatör sistem görüntüleri yalnızca 64 bit olur. Uygulama testi için katı bir yalnızca 64 bit ortam elde etmek amacıyla Android 12 (API düzeyi 31) veya sonraki bir sürüme sahip bir sistem görüntüsü kullanarak Android Sanal Cihazı (AVD) oluşturun.

Diğer cihaz seçenekleri

Bu cihazlardan birine sahip değilseniz veya Android Emülatör'ü kullanamıyorsanız, sonraki en iyi seçeneğiniz 64 bit özellikli bir cihaz (Google Pixel veya diğer cihaz üreticilerinin yeni amiral gemisi cihazları gibi) kullanmaktır.

Uygulamanızı yükleyip test etme

APK'nızı test etmenin en kolay yolu Android Debug Bridge'i (adb) kullanarak uygulamayı yüklemektir. Çoğu durumda, cihaza hangi kitaplıkların yükleneceğini belirtmek için --abi parametresini sağlayabilirsiniz. Bu işlem, uygulamayı cihazdaki yalnızca 64 bit kitaplıklarla yükler.

:: 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

Başarılı bir şekilde yükledikten sonra, kalitenin 32 bit sürümüyle aynı olduğundan emin olmak için uygulamanızı normalde yaptığınız gibi test edin.

Bilinen uyumluluk sorunlarını kontrol edin

Test sırasında, 64 bit cihazlarda çalışan uygulamaları etkileyen aşağıdaki sorunların olup olmadığını kontrol edin. Uygulamanız doğrudan etkilenen kitaplıklara bağımlı olmasa bile, uygulamanızın bağımlılarındaki üçüncü taraf kitaplıklar ve SDK'lar olabilir.

SOLoader

SoLoader yerel kod yükleyici SDK'sını kullanıyorsanız v0.10.4 veya sonraki bir sürüme güncelleyin. Uygulamanız SoLoader'a bağlı SDK'lar kullanıyorsa etkilenen SDK'ların en son kararlı sürümüne güncellediğinizden de emin olun.

SoLoader v0.9.0 ve önceki sürümleri, /vendor/lib:/system/lib ürününde sistem kitaplıklarının bulunduğunu varsayar. Bu hata, yolun mevcut olduğu Pixel 7 gibi cihazlarda gözlemlenemez ancak bu varsayım, yalnızca /vendor/lib64:/system/lib64 içinde sistem kitaplıkları olan cihazlarda kilitlenmelere neden olur.

Bu sorunu ve SoLoader'ın neden olduğu diğer sorunları gidermeyle ilgili daha fazla bilgi edinmek için Google Yardım Merkezi'ndeki ilgili yanıta bakın.

OpenSSL

OpenSSL kitaplığını kullanıyorsanız OpenSSL 1.1.1i veya sonraki bir sürüme güncelleyin. Uygulamanız HTTPS kullanarak iletişim sağlayan SDK'lar veya OpenSSL'ye bağlı başka SDK'lar kullanıyorsa SDK'nın daha yeni bir OpenSSL sürümünü kullanan en son sürümüne güncelleme yaptığınızdan emin olun. Mevcut değilse SDK sağlayıcıyla iletişime geçin.

ARMv8.3 PAC, çalışma zamanında işaretçilerin kimliğini doğrulayarak donanım destekli kontrol akışı bütünlüğünü sağlar. OpenSSL'nin önceki sürümleri bu özellikleri yanlış kullanarak, ARMv8.3a ve üzerini temel alan işlemcilere sahip tüm cihazlarda çalışma zamanı kilitlenmelerine neden oluyordu.

Bu sorunu ve OpenSSL'nin neden olduğu diğer sorunları giderme hakkında daha fazla bilgi edinmek için Google Yardım Merkezi'ndeki ilgili yanıta bakın.

BTI

ARMv8.5 ve sonraki sürümler, JOP saldırılarına karşı koruma sağlamak için Dal Hedef Talimatları'nı (BTI'lar) kullanır. Kod karartmanın erken sürümleri, BTI ile oluşturulan kitaplıkların rastgele ofsetlerine dalarak uygulamaların çökmesine neden olabilir. Talimatlar HINTs olarak kodlandığından bu hata BTI'yı desteklemeyen cihazlarda gözlemlenemez.

Yayınla

Uygulamanızın hazır olduğunu hissettiğinizde normal şekilde yayınlayın. Her zaman olduğu gibi, uygulamanızı dağıtmak için en iyi uygulamaları takip etmeye devam edin. Uygulamanızın kalitesinin tutarlı olmasını sağlamak için sınırlı sayıda kullanıcıya sunmak üzere kapalı test kanallarından yararlanmanızı öneririz.

Büyük bir güncellemeyi kullanıma sunarken olduğu gibi, daha geniş bir kitleye yayınlamadan önce 64 bit özellikli cihazlarda kapsamlı bir test yaptığınızdan emin olun.

İndir Android 14 factory system image (64-bit-only)

İndirmeden önce aşağıdaki şartlar ve koşulları kabul etmeniz gerekir.

Hükümler ve Koşullar

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.
İndirin: Android 14 factory system image (64-bit-only)

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

İndir Android 14 factory system image (64-bit-only)

İndirmeden önce aşağıdaki şartlar ve koşulları kabul etmeniz gerekir.

Hükümler ve Koşullar

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.
İndirin: Android 14 factory system image (64-bit-only)

redfin_beta_64-upb5.230623.006-factory-c4da6a19.zip

İndir Android 14 factory system image (64-bit-only)

İndirmeden önce aşağıdaki şartlar ve koşulları kabul etmeniz gerekir.

Hükümler ve Koşullar

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.
İndirin: Android 14 factory system image (64-bit-only)

oriole_beta_64-upb5.230623.006-factory-98943384.zip

İndir Android 14 factory system image (64-bit-only)

İndirmeden önce aşağıdaki şartlar ve koşulları kabul etmeniz gerekir.

Hükümler ve Koşullar

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.
İndirin: Android 14 factory system image (64-bit-only)

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

İndir Android 13 factory system image (64-bit-only)

İndirmeden önce aşağıdaki şartlar ve koşulları kabul etmeniz gerekir.

Hükümler ve Koşullar

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.
İndirin: Android 13 factory system image (64-bit-only)

bramble_64-t3b3.230413.009-factory-b4be4092.zip

İndir Android 13 factory system image (64-bit-only)

İndirmeden önce aşağıdaki şartlar ve koşulları kabul etmeniz gerekir.

Hükümler ve Koşullar

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.
İndirin: Android 13 factory system image (64-bit-only)

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

İndir Android 13 factory system image (64-bit-only)

İndirmeden önce aşağıdaki şartlar ve koşulları kabul etmeniz gerekir.

Hükümler ve Koşullar

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.
İndirin: Android 13 factory system image (64-bit-only)

oriole_64-t3b3.230413.009-factory-becb9b81.zip

İndir Android 13 factory system image (64-bit-only)

İndirmeden önce aşağıdaki şartlar ve koşulları kabul etmeniz gerekir.

Hükümler ve Koşullar

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.
İndirin: Android 13 factory system image (64-bit-only)

raven_64-t3b3.230413.009-factory-b0ef544e.zip