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ı artırır ve yalnızca 64 bit donanıma sahip cihazlara hazırlanmanızı sağlar.

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

Uygulamanızı değerlendirme

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

Hızlı durum kontrolü

Play Console'a gidip mevcut sürümlere göz atarak uyumlu olup olmadıklarını kontrol edin.

64 bit şartıyla ilgili sorunlar varsa Play Console, taslak sürümleriniz için geçerli olan uyarıları da gösterir. Aşağıdaki resimde bir örnek verilmiştir.

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

Uygulamanız yerel kod kullanıyor mu?

Uygulamanız aşağıdaki durumlarda yerel kod kullanır:

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

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

APK dosyanızın yapısını inceleyin. Oluşturulduğunda APK, uygulama için gereken tüm yerel kitaplıklarla birlikte paketlenir. Yerel kitaplıklar, ABI'ye göre çeşitli klasörlerde saklanır. Her 64 bit mimarisini desteklemeniz gerekmez ancak desteklediğiniz her yerel 32 bit mimarisi için ilgili 64 bit mimarisini eklemeniz gerekir.

ARM mimarisi için 32 bit kitaplıkları armeabi-v7a konumunda bulabilirsiniz. 64 bit kitaplıklar için de arm64-v8a konumuna bakabilirsiniz.

x86 mimarisi için 32 bit'te x86, 64 bit'te x86_64'ü bulun.

Bu klasörlerin her ikisinde de yerel kitaplıklarınız olduğundan emin olun. Özetle:

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 kümesi bulunmayabilir. Amaç, uygulamanızın yalnızca 64 bitlik bir ortamda doğru şekilde çalıştığından emin olmaktır.

Normalde hem 32 bit hem de 64 bit mimariler için oluşturulan bir APK veya pakette her ABI için klasörler bulunur. Bu klasörlerin her birinde, yerel kitaplıkların karşılık gelen bir grubu yer alır. 64 bit desteği yoksa 64 bit klasörü yerine 32 bit ABI klasörü görebilirsiniz.

APK Analizcisi'ni kullanarak yerel kitaplıkları bulma

APK Analizcisi, oluşturulmuş bir APK'nın çeşitli yönlerini değerlendirmenize olanak tanıyan bir araçtır. Bu aracı kullanarak yerel kitaplıkları bulun ve 64 bit kitaplıkların mevcut olduğundan emin olun.

  1. Android Studio'yu açın ve herhangi bir projeyi açın.
  2. Menüden Build > Analyze APK'yı (Derleme > APK'yı analiz et) seçin.

    APK analizcisini başlatma

  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 işlem yapmanız gerekmez. armeabi-v7a veya x86 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 olup olmadığını kontrol edin.

    APK analizcisini başlatma

  6. arm64-v8a veya x86_64 kitaplıklarınız yoksa bu yapıları APK'nızda oluşturmaya 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 bölümüne geçebilirsiniz.

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

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 uygulayarak çı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 armeabi-v7a ve arm64-v8a kitaplıklarının bulunduğuna dikkat edin. Bu, uygulamanın 64 bit mimarileri desteklediği anlamına gelir.

Uygulamanızı 64 bit kitaplıklarla oluşturma

Aşağıdaki talimatlarda 64 bit kitaplıkların nasıl oluşturulacağı açıklanmaktadır. Bu adımların yalnızca kaynak koddan oluşturabileceğiniz kod ve kitaplıkları kapsadığını unutmayın.

Android Studio veya Gradle ile derleme

Çoğu Android Studio projesi, temel derleme sistemi olarak Gradle'ı kullandığından 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 uygulamanızın "build.gradle" dosyasındaki ndk.abiFilters ayarına arm64-v8a ve/veya x86_64 ekleyin:

Groovy

// 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 kullanılarak oluşturulduysa 64 bit ABI'ler için derleme oluşturmak üzere arm64-v8a'yı "-DANDROID_ABI" parametresine iletebilirsiniz:

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

ndk-build ile derleme

Uygulamanız ndk-build ile oluşturulduysa APP_ABI değişkenini kullanarak 'Application.mk' dosyanızı değiştirerek 64 bit ABI'ler için derleme yapabilirsiniz:

APP_ABI := armeabi-v7a arm64-v8a x86 x86_64

32 bit kodu 64 bit'e taşıma

Kodunuz masaüstünde veya iOS'te zaten çalışıyorsa Android için herhangi bir ek işlem yapmanız gerekmez. Kodunuz ilk kez 64 bitlik bir sistem için oluşturuluyorsa çözmeniz gereken temel sorun, işaretçilerin artık int gibi 32 bitlik 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 bu durum Windows'da geçerli değildir. Bunun yerine, amacı ortaya koyan uintptr_t veya intptr_t türlerini kullanın. İki işaretçi arasındaki farkı depolamak için ptrdiff_t türünü kullanın.

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

Kodunuzun işaretçiler ve tam sayılar arasında yanlış dönüştürme 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 içeren int alanlarına sahip Java sınıflarında da aynı sorun yaşanır. JNI kaynağınızda jint ifadesini arayın ve Java tarafında long, C++ tarafında ise jlong ifadesine geçtiğinizden emin olun.

Örtülü işlev bildirimleri, 64 bit kod için çok daha tehlikelidir. C/C++ assume that the return type of an implicitly declared function (that is, a function that the compiler hasn't seen a declaration for) is int. İşlevinizin gerçek dönüş türü bir işaretçiyse bu, işaretçinizin bir int'e sığdığı 32 bitlik bir sistemde sorunsuz çalışır. Ancak 64 bitlik bir sistemde derleyici, işaretçinizin ü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 derleyici kullanıyorsanız bunu yeniden yazın veya düz C/C++ uygulaması kullanın.

Türlerin sabit kodlanmış boyutları varsa (örneğin, 8 veya 16 bayt) bunları sizeof(T) ifadesinin eşdeğeriyle (ör. sizeof(void*)) değiştirin.

32 bit için 64 bit'ten farklı kod derlemeniz gerekiyorsa genel 32/64 farklılıkları için #if defined(__LP64__), Android tarafından desteklenen belirli mimariler için ise __arm__, __aarch64__ (arm64), __i386__ (x86) ve __x86_64__ kullanabilirsiniz.

Geleneksel biçim belirleyiciler, 64 bit türleri hem 32 bit hem de 64 bit cihazlar için doğru olacak ş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ı bu sorunu çözer. PRIxPTR ve SCNxPTR, onaltılık işaretçileri yazmak ve okumak için, PRId64 ve SCNd64 ise 64 bit değerleri taşınabilir şekilde yazmak ve okumak için kullanılır.

Kaydırma yaparken, yalnızca 32 bit olan 1 yerine kaydırma için 64 bit sabit değer elde etmek üzere 1ULL kullanmanız gerekebilir.

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

Uygulamanıza 64 bit mimari desteği eklemek APK boyutunuzun büyümesine neden olabilir. Aynı APK'ya hem 32 bit hem de 64 bit yerel kod 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 bit'i destekler:

  • 2015'ten beri Unreal
  • 2015'ten beri Cocos2d
  • 2018'den beri Unity

Unity geliştiricileri

Uygun sürümlere yükseltme

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

64 bit'i desteklemeyen bir Unity sürümünü kullanıyorsanız yükseltmek istediğiniz sürümü belirleyin ve Unity'nin ortamınızı taşımak için sağladığı kılavuzları uygulayarak uygulamanızın 64 bit kitaplıklar oluşturabilen bir sürüme yükseltildiğinden emin olun. Unity, editörün en son LTS sürümüne yükselterek en yeni özelliklere ve güncellemelere erişmenizi önerir.

Aşağıdaki grafikte, çeşitli Unity sürümleri ve yapmanız gerekenler özetlenmiştir:

Unity sürümü Sürüm 64 bit'i destekliyor mu? Önerilen işlem

2020.x

✔️

Derleme ayarlarınızın 64 bit kitaplıklar oluşturduğundan emin olun.

2019.x

✔️

Derleme ayarlarınızın 64 bit kitaplıklar oluşturduğundan emin olun.

2018.4 (LTS)

✔️

Derleme ayarlarınızın 64 bit kitaplıklar oluşturduğundan emin olun.

2018.3

✔️

Derleme ayarlarınızın 64 bit kitaplıklar oluşturduğundan emin olun.

2018.2

✔️

Derleme ayarlarınızın 64 bit kitaplıklar oluşturduğundan emin olun.

2018.1

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 oluşturduğundan emin olun.

2017.3

✖️

64 bit'i destekleyen bir sürüme yükseltin.

2017.2

✖️

64 bit'i destekleyen bir sürüme yükseltin.

2017.1

✖️

64 bit'i destekleyen bir sürüme yükseltin.

<=5,6

✖️

64 bit'i destekleyen bir sürüme yükseltin.

Derleme ayarlarını 64 bit kitaplıklar çıkacak şekilde 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. Scripting Backend olarak IL2CPP arka ucunu kullanın. Unity projenizi 64 bit mimari oluşturacak şekilde ayarlamak için aşağıdakileri yapın:

  1. Build Settings'e (Derleme Ayarları) gidin ve Platform bölümünde Android'in yanında Unity simgesinin bulunduğunu doğrulayarak Android için derleme 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&#39;deki oynatıcı ayarları

  3. Player Settings Panel > Settings for Android > Other settings > Configuration'a (Oynatıcı Ayarları Paneli > Android Ayarları > Diğer ayarlar > Yapılandırma) gidin.

  4. Scripting Backend'i IL2CPP olarak ayarlayın.

  5. Hedef Mimarisi > ARM64 onay kutusunu işaretleyin.

    Unity&#39;de hedef mimarileri ayarlama

  6. Normal şekilde oluşturun.

ARM64 için derleme yaparken tüm öğelerinizin bu platforma özel olarak derlenmesi gerektiğini unutmayın. APK boyutunu küçültmek için Unity'nin yönergelerini uygulayın ve boyuttaki bu artışı azaltmak 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 şartına 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'ler ya da uygulama paketleri için geçerli değildir.

APK'larınızdan biri uygun değil olarak işaretlenmişse ancak bu APK daha eski bir sürümse ve uygun hale getirilmesi mümkün değilse bir strateji olarak bu APK'nın manifest dosyasındaki uses-sdk öğesine maxSdkVersion="27" özelliği ekleyebilirsiniz. Bu APK, Android 9 Pie veya sonraki sürümleri çalıştıran cihazlara teslim edilmez ve artık uygunluğu engellemez.

RenderScript ve 64 bit uyumluluğu

Uygulamanız RenderScript kullanıyorsa ve Android araçlarının eski bir sürümüyle oluşturulduysa uygulamada 64 bit uyumluluk sorunları görebilirsiniz. Derleyici, 21.0.0'dan önceki derleme araçlarıyla bitcode'u harici bir .bc dosyasına oluşturabilir. Bu eski .bc dosyaları artık 64 bit mimarilerde desteklenmediğinden dosyanın APK'nızda bulunması uygunluk sorununa neden oluyor.

Bu 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ı söylemek için Android Studio'da renderscriptTargetApi değerini 21 veya daha yüksek bir sürüme ayarlayın. Ardından, uygulamanızı yeniden oluşturun, .bc dosyalarını inceleyin ve Play Console'a yükleyin.

Uygulamanızı 64 bit donanımda test etme

Uygulamanızın 64 bit sürümü, 32 bit sürümüyle aynı kaliteyi ve özellik setini sunmalıdır. En yeni 64 bit cihazlardaki kullanıcıların uygulamanızda mükemmel bir deneyim yaşamasını sağlamak için uygulamanızı test edin.

Yalnızca 64 bit cihazlar

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

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

Uygulama geliştirme ve testini kolaylaştırmak için bazı Pixel cihazlarda yalnızca 64 bit ortamı içeren özel sistem görüntüleri sağladık. Yalnızca 64 bit destekli bu görüntüler, Android 13 ve 14 önizleme sürümleri için standart fabrika sistemi görüntüleriyle birlikte sağlanmıştı. Ancak uygulamanızın 64 bit uyumluluğunu test ederken bu görüntüleri kullanmaya devam edebilirsiniz.

Yalnızca 64 bitlik bir görüntü edinme

Fabrika sistemi görüntülerine benzer şekilde, aşağıdaki bölümlerde açıklandığı üzere Android Flash Aracı'nı kullanarak veya cihazınıza manuel olarak flash yükleyerek cihazınıza yalnızca 64 bitlik bir görüntü yükleyebilirsiniz.

Android Flash Tool'u kullanarak cihazınıza yazılım yükleme

Android Flash Tool, desteklenen Pixel cihazınıza güvenli bir şekilde sistem görüntüsü yüklemenize olanak tanır. Android Flash Tool, Chrome veya Edge 79+ gibi WebUSB'yi destekleyen tüm web tarayıcılarıyla çalışır.

Android Flash Tool, cihazınıza yazılım yükleme sürecinde size adım adım yol gösterir. Araçların yüklü olması gerekmez ancak cihazınızın kilidini açmanız ve Geliştirici seçenekleri'nde USB hata ayıklamayı etkinleştirmeniz gerekir. Talimatların tamamı için Android Flash Tool belgelerine 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 Tool'a gidin ve ekrandaki talimatları uygulayın:

Cihazınızı manuel olarak yükleme

En son sistem görüntüsünü indirip cihazınıza manuel olarak da yükleyebilirsiniz. Test cihazınızın sistem görüntüsünü indirmek için aşağıdaki tabloya bakın. Bir cihazı manuel olarak flaşlamak, test ortamı üzerinde hassas kontrol sağlamanız gerektiğinde veya otomatik test gerçekleştirirken olduğu gibi sık sık yeniden yüklemeniz gerektiğinde faydalı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 en son herkese açık derlemeye 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 ortam sağlar. Yalnızca 64 bitlik bu yapılandırmalar yalnızca geliştiriciler tarafından kullanılabilir.

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 (QPR3 Beta 3.2) 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 ortam sağlar. Yalnızca 64 bitlik bu yapılandırmalar yalnızca geliştiriciler tarafından kullanılabilir.

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 bir derlemeye dönme

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

Android Emulator

Android 12'den (API düzeyi 31) itibaren Android Emulator sistem görüntüleri yalnızca 64 bit olarak sunulur. Uygulama testi için yalnızca 64 bit'lik katı bir ortam elde etmek üzere Android 12 (API düzeyi 31) veya sonraki sürümlerin yüklü olduğu 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 Emulator'ı kullanamıyorsanız en iyi alternatifiniz, Google Pixel veya diğer cihaz üreticilerinin yeni amiral gemisi cihazları gibi 64 bit destekli bir cihaz kullanmaktır.

Uygulamanızı yükleme ve test etme

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

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

Bilinen uyumluluk sorunlarını kontrol etme

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

SoLoader

Yerel kod yükleyici SDK'sı SoLoader'ı kullanıyorsanız v0.10.4 veya daha yeni 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 de güncellediğinizden emin olun.

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

SoLoader'ın neden olduğu bu ve diğer sorunları düzeltme hakkında daha fazla bilgi için Google Yardım Merkezi'ndeki ilgili yanıtı inceleyin.

OpenSSL

OpenSSL kitaplığını kullanıyorsanız OpenSSL 1.1.1i veya sonraki bir sürüme güncelleyin. Uygulamanızda HTTPS kullanarak iletişim sağlayan SDK'lar veya OpenSSL'ye bağlı olan diğer SDK'lar kullanılıyorsa daha yeni bir OpenSSL sürümü kullanan SDK'nın en son sürümüne de güncellediğinizden emin olun. 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ü etkinleştirir. OpenSSL'nin önceki sürümleri bu özellikleri yanlış kullanarak ARMv8.3a ve sonraki sürümlere dayalı işlemcilerin bulunduğu tüm cihazlarda çalışma zamanı kilitlenmelerine neden oluyordu.

OpenSSL'nin neden olduğu bu ve diğer sorunları düzeltme hakkında daha fazla bilgi 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şı korunmaya yardımcı olmak için Branch Target Instructions (BTIs) kullanır. BTI ile oluşturulan kitaplıkların rastgele ofsetlerine ayrılan karartma SDK'larının önceki sürümleri, uygulamaların kilitlenmesine neden olabilir. Talimatlar HINT olarak kodlandığından bu hata, BTI'yı desteklemeyen cihazlarda gözlemlenemez.

Yayınla

Uygulamanızın hazır olduğunu düşündüğünüzde normal şekilde yayınlayın. Her zaman olduğu gibi, uygulamanızı dağıtırken en iyi uygulamaları kullanmaya devam edin. Uygulamanızın kalitesinin tutarlı olmasını sağlamak için sınırlı sayıda kullanıcıya dağıtım yaparken kapalı test kanallarından yararlanmanızı öneririz.

Büyük bir güncellemeyi kullanıma sunarken olduğu gibi, daha büyük 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 hüküm 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.
Android 14 factory system image (64-bit-only) indirin

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

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

İndirmeden önce aşağıdaki hüküm 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.
Android 14 factory system image (64-bit-only) indirin

redfin_beta_64-upb5.230623.006-factory-c4da6a19.zip

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

İndirmeden önce aşağıdaki hüküm 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.
Android 14 factory system image (64-bit-only) indirin

oriole_beta_64-upb5.230623.006-factory-98943384.zip

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

İndirmeden önce aşağıdaki hüküm 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.
Android 14 factory system image (64-bit-only) indirin

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

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

İndirmeden önce aşağıdaki hüküm 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.
Android 13 factory system image (64-bit-only) indirin

bramble_64-t3b3.230413.009-factory-b4be4092.zip

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

İndirmeden önce aşağıdaki hüküm 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.
Android 13 factory system image (64-bit-only) indirin

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

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

İndirmeden önce aşağıdaki hüküm 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.
Android 13 factory system image (64-bit-only) indirin

oriole_64-t3b3.230413.009-factory-becb9b81.zip

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

İndirmeden önce aşağıdaki hüküm 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.
Android 13 factory system image (64-bit-only) indirin

raven_64-t3b3.230413.009-factory-b0ef544e.zip