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ü eklediğinizde performans iyileştirmeleri sağlar ve yalnızca 64 bit donanımı olan cihazlara kurulum yapabilirsiniz.

Aşağıdaki adımlar, 32 bit uygulamanızın 64 bit cihazları desteklemesini sağlar.

Uygulamanızı değerlendirme

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

Hızlı durum kontrolü

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

Play Console, 64 bit koşuluyla ilgili herhangi bir sorun varsa 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 kodu kullanır:

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

Uygulamanızda 64 bit kitaplıklar var mı?

APK dosyanızın yapısını inceleyin. APK, derlendiğinde uygulamanın ihtiyaç duyduğu tüm yerel kitaplıklarla paketlenir. Yerel kitaplıklar, ABI'ya göre çeşitli klasörlerde depolanır. Her 64 bit mimariyi desteklemek zorunlu değildir ancak desteklediğiniz her yerel 32 bit mimari için karşılık gelen 64 bit mimarisini eklemeniz gerekir.

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

x86 mimarisinde 32 bit için x86 ve 64 bit için x86_64'ü bulun.

Her iki klasörde de yerel kitaplıklarınız olduğ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
x86 lib/x86 lib/x86_64

Uygulamanıza bağlı olarak her klasörde tam olarak aynı kitaplık grubu olabileceğini veya olmayabileceğini unutmayın. Hedef, uygulamanızın yalnızca 64 bit'i destekleyen bir ortamda doğru şekilde çalışmasını sağlamaktır.

Normal bir durumda, hem 32 bit hem de 64 bit mimariler için oluşturulan bir APK veya pakette hem ABI'ler için olan klasörler hem de her biri karşılık gelen bir yerel kitaplık grubu bulunur. 64 bit desteği yoksa 32 bit ABI klasörü görebilirsiniz, ancak 64 bit klasörü göremezsiniz.

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

APK Analizcisi, oluşturulmuş bir APK'nın çeşitli yönlerini değerlendirmenize olanak tanıyan bir araçtır. Yerel kitaplıkları bulmak ve 64 bit kitaplıkların mevcut olduğundan emin olmak için bu kitaplığı kullanın.

  1. Android Studio'yu açın ve herhangi bir projeyi açın.
  2. Menüden Derle > APK'yı Analiz Et... seçeneğini belirleyin.

    APK analiz ediciyi 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. Yoksa uygulamanız 64 bit cihazları destekliyor demektir ve başka bir işlem yapmanız gerekmez. armeabi-v7a veya x86'yı görüyorsanız 32 bit kitaplıklarınız var demektir.

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

    APK analiz ediciyi başlat

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

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

APK'ların sıkıştırmasını açarak yerel kitaplıkları arayın

APK dosyaları ZIP dosyaları gibi yapılandırılır. Komut satırını veya başka bir çıkarma aracını kullanarak APK dosyasını çıkarın. Ayıklama aracınıza bağlı olarak dosyayı .zip olarak yeniden adlandırmanız gerekebilir.

Uygulamanızın 64 bit cihazları destekleyip desteklemediğini belirlemek için yukarıdaki yönergeleri izleyerek ayıklanan 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ına dikkat edin.

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

Aşağıdaki talimatlarda 64 bit kitaplıkların nasıl oluşturulacağı özetlenmiştir. Bu adımların yalnızca kaynaktan oluşturabileceğiniz bina kodunu ve kitaplıkları 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 uygulamanızın "build.gradle" dosyasındaki ndk.abiFilter ayarına (desteklemek istediğiniz mimariye bağlı olarak) arm64-v8a ve/veya x86_64 ekleyin:

Eski

// 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 derleyin

Uygulamanız CMake kullanılarak oluşturulduysa arm64-v8a'yı "-DANDROID_ABI" parametresine ileterek 64 bit ABI'ler için derleme yapabilirsiniz:

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

Nndk-build ile geliştirin

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

APP_ABI := armeabi-v7a arm64-v8a x86 x86_64

Bağlantı noktası 32 bit koddan 64 bite

Kodunuz zaten masaüstünde veya iOS'te çalışıyorsa Android için ek işlem yapmanız gerekmez. Kodunuz ilk kez 64 bit bir sistem için derliyorsanız ele almanız gereken ana sorun, işaretçilerin artık int gibi 32 bit tam sayı türlerine uymaması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 bu, Windows'da doğru değildir. Bunun yerine, uintptr_t veya intptr_t amaçlı açıklama türlerini kullanın. İki işaretçi arasındaki farkı saklamak için ptrdiff_t türünü kullanın.

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

Kodunuzun işaretçiler ve tam sayılar arasında yanlış ş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çi içeren int alanları olan Java sınıflarında aynı sorun vardır. JNI kaynağınızda jint ifadesini arayın ve Java tarafında long, C++ tarafında da jlong sürümüne geçtiğinizden emin olun.

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

// 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 boyutlarınız 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 farklı kodlar derlemeniz gerekiyorsa genel 32/64 farklılıkları için #if defined(__LP64__) kodunu veya Android'in desteklediği belirli mimariler için __arm__, __aarch64__ (arm64), __i386__ (x86) ve __x86_64__ kodunu kullanabilirsiniz.

Geleneksel biçim belirteçler, 64 bit türlerini hem 32 bit hem de 64 bit cihazlar için doğru şekilde belirtmenize izin vermez. Bu nedenle, printf veya scanf benzeri işlevler için biçim dizelerini düzenleyin. <inttypes.h> içindeki PRI ve SCN makroları bu sorunu, onaltılık işaretçileri yazmak ve okumak için PRIxPTR ve SCNxPTR; 64 bit değerlerini taşınabilir olarak yazmak ve okumak için de PRId64 ile SCNd64 çözer.

Geçiş yaparken, sadece 32 bit olan 1 kullanmak yerine 64 bitlik bir kaydırma sabiti 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 dahil etmenin boyut 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 ortamınızı taşımak için Unity'nin sağladığı kılavuzları uygulayarak uygulamanızın 64 bit kitaplıklar oluşturabilen bir sürüme yükseltildiğinden emin olun. Unity, düzenleyicinin en son LTS sürümüne geçerek en yeni özelliklere ve güncellemelere erişebileceğinizi önerir.

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

Unity Sürümü Sürüm 64 biti destekliyor mu? Önerilen eylem planı

2020.x

Derleme ayarlarınızın 64 bit kitaplıklar çıkardığından emin olun.

2019.x

Derleme ayarlarınızın 64 bit kitaplıklar çıkardığından emin olun.

2018.4 (LTS)

Derleme ayarlarınızın 64 bit kitaplıklar çıkardığından emin olun.

3.2018

Derleme ayarlarınızın 64 bit kitaplıklar çıkardığından emin olun.

2018.2018

Derleme ayarlarınızın 64 bit kitaplıklar çıkardığından emin olun.

1.2018

Deneysel 64 bit desteğine sahiptir.

2017.4 (LTS)

16.4.2017 itibarıyla desteklenmektedir. Derleme ayarlarınızın 64 bit kitaplıklar çıkardığından emin olun.

3.2017

✖️

64 biti destekleyen bir sürüme geçin.

2017.2

✖️

64 biti destekleyen bir sürüme geçin.

1.2017

✖️

64 biti destekleyen bir sürüme geçin.

<=5,6

✖️

64 biti destekleyen bir sürüme geçin.

Derleme ayarlarını 64 bit kitaplık çıkışları olarak değiştirme

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 Ucu 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 bölümünde Unity simgesinin Android'in yanında olduğunu doğrulayarak Android için geliştirme yaptığınızdan emin olun. 1. Android platformunun yanında Unity simgesi yoksa Android'i seçip Platformu Değiştir'i tıklayın.
  2. Oynatıcı ayarları'nı tıklayın.

    Unity oyuncu ayarları

  3. Oynatıcı Ayarları Paneli > Android için 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 ayarlama

  6. Uygulamanızı normal şekilde geliştirin!

ARM64 için uygulama oluşturmanın, tüm öğelerinizin bu platform için özel olarak oluşturulmasını gerektirdiğini unutmayın. APK boyutunu küçültme konusunda Unity'nin 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 uyumluluğu

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 veya uygulama paketleri için geçerli değildir.

APK'larınızdan biri uyumlu değil olarak işaretlenmişse ancak önceki bir sürümse ve bunu uyumlu hale getirmek mümkün değilse stratejilerden biri, 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 sunulmamaktadır ve artık uyumluluğu engellememektedir.

RenderScript ve 64 bit uyumluluğu

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

Sorunu düzeltmek için projenizdeki tüm .bc dosyalarını kaldırın, ortamınızı build-tools-21.0.0 veya sonraki bir sürüme yükseltin ve derleyiciye .bc dosyalarını yayınlamamasını bildirmek için Android Studio'da renderscriptTargetApi değerini 21 veya sonraki bir sürüme ayarlayın. Sonra, uygulamanızı yeniden derleyin, .bc dosyayı 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ı kaliteyi ve özellik grubunu sunmalıdır. En yeni 64 bit cihazları kullananların uygulamanızda iyi 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ı yalnızca 64 bit'i sıkı bir ortamda test etmenizi öneririz:

Yalnızca 64 bit sistem görüntüsüne sahip Google Pixel

Uygulama geliştirme ve test işlemlerini kolaylaştırmak amacıyla bazı Pixel cihazlar için yalnızca 64 bit'i katı bir ortamı olan özel sistem görüntüleri sağladık. Yalnızca 64 bit olan bu görüntüler başlangıçta Android 13 ve 14 önizleme sürümleri için standart fabrika sistemi görüntüleriyle eş zamanlı olarak sağlanır. Ancak uygulamanızı 64 bit uyumluluğu açısından test ederken bunları kullanmaya devam edebilirsiniz.

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

Fabrika sistem görüntülerine benzer şekilde, yalnızca 64 bit'lik bir resmi, aşağıdaki bölümlerde açıklandığı gibi Android Flash Aracı'nı kullanarak veya cihazınızı manuel olarak güncelleyerek cihazınıza yükleyebilirsiniz.

Android Flash Aracı'nı kullanarak cihazınızı tarayın

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

Android Flash Aracı, cihazınızda hata ayıklama işleminde size adım adım yol gösterir. 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 yüklemek 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 talimatları uygulayın:

Cihazınıza manuel olarak güncelleme yapın

Ayrıca, en son sistem görüntüsünü indirip manuel olarak cihazınıza yükleyebilirsiniz. Test cihazınızın sistem görüntüsünü indirmek için aşağıdaki tabloya bakın. Test ortamı üzerinde hassas bir kontrole ihtiyacınız varsa veya otomatik test gerçekleştirirken olduğu gibi sık sık yeniden kurulum yapmanız gerekiyorsa bir cihazı manuel olarak yüklemek faydalıdır.

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

İstediğiniz zaman herkese açık en son derlemeye geri dönebilirsiniz.

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

Bu görüntüler, 64 bit uygulama uyumluluğunu test etmek için yalnızca 64 bit'lik katı bir ortam sağlar. Yalnızca 64 bit'i destekleyen bu yapılandırmalar sadece geliştiricilerin kullanımına yöneliktir.

Cihaz Bağlantıyı İndir 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 görüntüler, 64 bit uygulama uyumluluğunu test etmek için yalnızca 64 bit'lik katı bir ortam sağlar. Yalnızca 64 bit'i destekleyen bu yapılandırmalar sadece geliştiricilerin kullanımına yöneliktir.

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

Android Flash Aracı'nı fabrika görüntüsünü yüklemek için kullanabilir veya Nexus ve Pixel Cihazlar için Fabrika Görüntüleri sayfasından fabrika spesifikasyon sistem görüntüsünü alıp manuel olarak cihaza yükleyebilirsiniz.

Android Emülatör

Android 12'den (API düzeyi 31) itibaren Android Emulator sistem görüntüleri yalnızca 64 bit olacaktır. Uygulama testi için yalnızca 64 bit katı bir ortam elde etmek amacıyla Android 12 (API düzeyi 31) veya sonraki sürümlere 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 bir sonraki en iyi seçeneğiniz, Google Pixel veya diğer cihaz üreticilerinin son zamanlarda ürettiği diğer önemli cihazlar gibi 64 bit özellikli bir cihaz kullanmaktır.

Uygulamanızı yükleyip test edin

APK'nızı test etmenin en kolay yolu, uygulamayı Android DebugBridge (adb) kullanarak yüklemektir. Çoğu durumda, cihaza hangi kitaplıkların yükleneceğini belirtmek için parametre olarak --abi sağlayabilirsiniz. Bu işlem, uygulamayı cihaza 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

Uygulamanızı başarıyla yükledikten sonra, kalitenin 32 bit sürümüyle aynı olduğundan emin olmak için uygulamanızı her zamanki gibi test edin.

Bilinen uyumluluk sorunlarını kontrol etme

Test sırasında, uygulamanızı 64 bit cihazlarda çalışırken etkileyen aşağıdaki sorunların olup olmadığını kontrol edin. Uygulamanız etkilenen kitaplıklara doğrudan bağlı 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 dayalı SDK'lar kullanıyorsa etkilenen SDK'ların en son kararlı sürümüne güncellediğinizden emin olun.

SoLoader v0.9.0 ve önceki sürümler, /vendor/lib:/system/lib içinde sistem kitaplıklarının mevcut olduğunu varsayar. Bu hata, yolun bulunduğ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 ve SoLoader'ın neden olduğu diğer sorunları düzeltmek hakkında daha fazla bilgi edinmek için Google Yardım Merkezi'nde 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 dayalı başka SDK'lar kullanıyorsa SDK'nın daha yeni bir OpenSSL sürümü kullanan en son sürümüne güncelleme yapmayı da unutmayın. Böyle bir araç yoksa SDK sağlayıcıya ulaşın.

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

Bu ve OpenSSL'nin neden olduğu diğer sorunlar hakkında daha fazla bilgi edinmek için Google Yardım Merkezi'nde 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) kullanır. BTI ile oluşturulan kitaplıkların rastgele ofsetlerine ayrılan kod karartma SDK'larının önceki sürümleri, uygulamaların kilitlenmesine neden olabilir. Talimatlar HINT'ler 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ğıtmayla ilgili en iyi uygulamaları takip etmeye devam edin. Uygulamanızın kalitesinin tutarlı olduğundan emin olmak için uygulamanızı sınırlı sayıda kullanıcıya sunmak için 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