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 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ız, tüm kitaplıklar veya SDK'lar dahil olmak üzere yalnızca Java programlama dilinde ya da Kotlin'de yazılmış kod kullanıyorsa 64 bit cihazları destekler. Uygulamanız doğal kod kullanıyorsa veya kullanıyor olduğundan emin değilseniz uygulamanızı değerlendirin.
Hızlı durum kontrolü
Play Console'a gidip mevcut sürümlerin politikaya uygun olup olmadığını kontrol edin.
Play Console, 64 bit şartıyla ilgili herhangi bir sorun varsa taslak sürümleriniz için geçerli uyarılar da gösterir. Aşağıdaki resim örnektir.
Bir uyarı gösterilirse uygulamanızı 64 bit cihazlarla uyumlu hale getirmek için aşağıdaki adımları uygulayın.
Uygulamanız yerel kod kullanıyor mu?
Uygulamanız aşağıdaki durumlarda yerel kod kullanır:
- Uygulamanızda C/C++ (yerel) kodu kullanıyorsa
- Üçüncü taraf yerel kitaplık bağlantıları.
- Yerel kitaplıklar kullanan bir üçüncü taraf uygulama geliştirici tarafından oluşturulur.
Uygulamanız 64 bit kitaplıklar içeriyor mu?
APK dosyanızın yapısını inceleyin. APK, derlenirken uygulamanın ihtiyaç duyduğu tüm yerel kitaplıklarla paketlenir. Yerel kitaplıklar, ABI'ye göre çeşitli klasörlerde depolanır. Her 64 bit mimarisini desteklemeniz gerekmez ancak desteklediğiniz her yerel 32 bit mimarisi için 64 bit mimarisi de 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 sürümde x86, 64 bit sürümde ise x86_64 seçeneğini bulun.
Bu klasörlerin her ikisinde de yerel kitaplıklarınızın 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
|
x86 | lib/x86
|
lib/x86_64
|
Uygulamanıza bağlı olarak her klasörde tam olarak aynı kitaplık grubu bulunabilir veya bulunmayabilir. Amaç, uygulamanızın yalnızca 64 bitlik bir ortamda doğru şekilde çalıştığından emin olmaktır.
Genellikle, 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 grubuna sahip olan her iki ABI için de klasörler bulunur. 64 bit desteği yoksa 64 bit klasörü yerine 32 bit ABI klasörü görebilirsiniz.
APK Analizcisi'ni kullanarak yerel kitaplıkları arama
APK Analizcisi, derlenmiş 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 bulunduğundan emin olmak için bu aracı kullanın.
- Android Studio'yu açın ve bir proje açın.
Menüden Derle > APK'yı Analiz Et'i seçin…
Değerlendirmek istediğiniz APK'yı seçin.
Varsa ".so" dosyalarını barındıran lib klasörüne bakın. Hiçbir hata yoksa uygulamanız 64 bit cihazları destekliyor demektir ve başka bir işlem yapmanız gerekmez. armeabi-v7a veya x86 görüyorsanız 32 bit kitaplığınız var demektir.
arm64-v8a veya x86_64 klasöründe benzer ".so" dosyalarınız olup olmadığını kontrol edin.
arm64-v8a veya x86_64 kitaplığınız yoksa bu yapıları APK'nızda derleyip paketlemeye başlamak için derleme işleminizi güncelleyin.
Her iki kitaplığın da paketlendiğini görüyorsanız uygulamanızı 64 bit donanımda test etmeye geçebilirsiniz.
APK'ları açarak yerel kitaplıkları arayın
APK dosyaları, zip dosyaları gibi yapılandırılmıştır. Komut satırını veya başka bir ayıklama 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 talimatları uygulayarak 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 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 kaynaktan derleyebileceğ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'i kullandığından bu bölüm her iki durum için de geçerlidir. Yerel kodunuz için derlemeleri etkinleştirmek istiyorsanız desteklemek istediğiniz mimarilere bağlı olarak arm64-v8a ve/veya x86_64'ü uygulamanızın build.gradle dosyasında ndk.abiFilters ayarına 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 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 …
ndk-build ile derleme
Uygulamanız ndk-build ile derlenmişse 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 çalışıyorsa Android için herhangi bir ek işlem yapmanız gerekmez. Kodunuz 64 bit sistem için ilk kez derleniyorsa ele almanız gereken en önemli 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 bu Windows'ta geçerli değildir. Bunun yerine, amacı açıklayan 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 int
veya long
gibi sabit genişlikli olmayan türler yerine her zaman <stdint.h>
içinde tanımlanan belirli sabit genişlikli tam sayı türlerini tercih etmeniz gerekir.
Kodunuzun işaretçiler ile tam sayılar arasında yanlış dönüşüm yaptığı durumları yakalamak için aşağıdaki derleyici işaretçilerini kullanın:
-Werror=pointer-to-int-cast
-Werror=int-to-pointer-cast
-Werror=shorten-64-to-32
C/C++ nesnelerinin işaretçilerini tutan int
alanlarına sahip Java sınıflarında da aynı sorun vardır. JNI kaynağınızda jint
öğesini arayın ve Java tarafında long
, C++ tarafında ise jlong
değerine geçtiğinizden emin olun.
Örtülü işlev bildirimleri, 64 bit kod için çok daha tehlikelidir. C/C++, örtülü olarak tanımlanmış bir işlevin (yani derleyicinin bir tanımını görmediği bir işlevin) döndürme türünün int
olduğunu varsayar. İşlevinizin gerçek döndürme türü bir işaretçiyse bu, işaretçinizin int değerine sığdığı 32 bitlik bir sistemde sorunsuz çalışır. Ancak 64 bitlik bir sistemde derleyici, işaretçinizin üst yarısını atar. Ö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şaretçisi, bu sorunu daha kolay bulup düzeltmeniz için örtülü işlev beyanı uyarılarını hataya 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 kodlanmış tür boyutlarınız varsa (ör. 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ı koşullu olarak derlemeniz gerekiyorsa genel 32/64 farklılıkları için #if defined(__LP64__)
'ü veya Android tarafından desteklenen belirli mimariler için __arm__
, __aarch64__
(arm64), __i386__
(x86) ve __x86_64__
'i kullanabilirsiniz.
Geleneksel biçim belirteçleri, 64 bit türleri hem 32 bit hem de 64 bit cihazlar için doğru olacak şekilde belirtmenize izin vermez. Bu nedenle, 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 bitlik değerleri taşınabilir şekilde yazmak ve okumak için kullanılır.
Kaydırma işleminde, yalnızca 32 bit olan 1
yerine kaydırılacak 64 bitlik bir sabit almak için 1ULL
kullanmanız gerekebilir.
Android App Bundle ile boyut artışlarını azaltma
Uygulamanıza 64 bit mimari desteği eklemek APK boyutunuzun artmasına 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.
Unity'nin 64 bit'i desteklemeyen bir 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ık oluşturabilen bir sürüme yükseltilmesini sağlayın. Unity, en yeni özelliklere ve güncellemelere erişmek için düzenleyicinin en son LTS sürümüne yükseltmenizi ö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 işlem |
---|---|---|
2020.x |
✔️ |
Derleme ayarlarınızın 64 bit kitaplık oluşturmasını sağlayın. |
2019.x |
✔️ |
Derleme ayarlarınızın 64 bit kitaplık oluşturmasını sağlayın. |
2018.4 (LTS) |
✔️ |
Derleme ayarlarınızın 64 bit kitaplık oluşturmasını sağlayın. |
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.4.2017 itibarıyla desteklenmektedir. Derleme ayarlarınızın 64 bit kitaplıklar oluşturduğundan emin olun. |
Mart 2017 |
✖️ |
64 bit'i destekleyen bir sürüme geçin. |
2017.2 |
✖️ |
64 bit'i destekleyen bir sürüme geçin. |
2017.1 |
✖️ |
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 oluşturmak için derleme ayarlarını değiştirme
Unity'nin 64 bit Android kitaplıklarını destekleyen bir sürümünü 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 mimaride derleyecek şekilde ayarlamak için aşağıdakileri yapın:
- Derleme Ayarları'na gidin ve Platform bölümünde Android'in yanında Unity sembolünün bulunduğundan emin olarak Android için derlediğinizden emin olun. 1. Android platformunun yanında Unity simgesi yoksa Android'i seçin ve Platformu Değiştir'i tıklayın.
Oynatıcı ayarları'nı tıklayın.
Oynatıcı Ayarları Paneli > Android için Ayarlar > Diğer ayarlar > Yapılandırma'ya gidin.
Skript Arka Ucu'nu IL2CPP olarak ayarlayın.
Hedef mimari > ARM64 onay kutusunu işaretleyin.
Normal şekilde uygulamanızı oluşturun.
ARM64 için derleme işleminin, tüm öğelerinizin bu platform için özel olarak derlenmesini gerektirdiğini unutmayın. APK boyutunu küçültmeyle ilgili Unity'nin kılavuzlarını uygulayın ve boyuttaki bu artışı azaltmak için Android App Bundle özelliğinden yararlanı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 şartı, 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şaretlenmişse ancak daha eski bir sürümse ve uyumlu hale getirilmesi mümkün değilse bir strateji, söz konusu APK'nın manifest dosyasında uses-sdk
öğesine maxSdkVersion="27"
özelliği eklemektir. Bu APK, Android 9 Pie veya sonraki sürümleri çalıştıran cihazlara dağıtılmaz ve artık uyumluluğu engellemez.
RenderScript ve 64 bit uyumluluğu
Uygulamanız RenderScript kullanıyorsa ve Android araçlarının önceki bir sürümüyle derlendiyse uygulamayla ilgili 64 bit uyumluluk sorunları görebilirsiniz. 21.0.0'dan önceki derleme araçlarıyla derleme yapıldığında derleyici, harici bir .bc
dosyasında bit kodu oluşturabilir. Bu eski .bc
dosyaları artık 64 bit mimariler için desteklenmiyor. Bu nedenle, dosyanın APK'nizde bulunması uyumluluk sorununa neden oluyor.
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
dosyası oluşturmamasını söylemek için Android Studio'daki renderscriptTargetApi
ayarını 21 veya sonraki bir sürüme ayarlayın. Ardından uygulamanızı yeniden oluşturun, .bc
dosyalarını kontrol edin 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 grubunu 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ünse uygulamanızı aşağıdaki seçeneklerden birini kullanarak yalnızca 64 bitlik 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 cihazlar için yalnızca 64 bit ortam içeren özel sistem resimleri 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 sistem görüntüleriyle birlikte sağlanmıştır ancak uygulamanızı 64 bit uyumluluğu açısından test ederken bu görüntüleri kullanmaya devam edebilirsiniz.
Yalnızca 64 bit görüntü alma
Fabrika sistem görüntülerine benzer şekilde, Android Flash Aracı'nı kullanarak veya aşağıdaki bölümlerde açıklandığı gibi cihazınızı manuel olarak flaşlayarak cihazınıza yalnızca 64 bitlik bir görüntü yükleyebilirsiniz.
Android Flash Tool'u kullanarak cihazınızı flaşlama
Android Flash Aracı, desteklenen Pixel cihazınıza sistem görüntüsünü güvenli bir şekilde yüklemenize olanak tanır. Android Flash Tool, Chrome veya Edge 79 ve sonraki sürümler gibi WebUSB'yi destekleyen tüm web tarayıcılarında çalışır.
Android Flash Tool, cihazınızın yazılımını yükleme işleminde size adım adım yol gösterir. Bunun için herhangi bir araç yüklemeniz gerekmez ancak cihazınızın kilidini açmanız ve Geliştirici seçeneklerinde USB Hata Ayıklama'yı etkinleştirmeniz gerekir. Tam talimatlar için Android Flash Tool dokümanlarına bakın.
Cihazınızı USB üzerinden bağlayın, ardından yüklemek istediğiniz sistem resminin türüne bağlı olarak aşağıdaki bağlantılardan birini kullanarak Android Flash Aracı'na gidin ve ekrandaki talimatları uygulayın:
Android 14 (Beta 5.2) yalnızca 64 bit sistem görüntüleri
Yanıp söndürmeye çalıştığınız cihazı seçin:
Android 13 (QPR3 Beta 3.2) yalnızca 64 bit sistem resimleri
Yanıp söndürmeye çalıştığınız cihazı seçin:
Cihazınızı manuel olarak flaşlama
Ayrıca en son sistem görüntüsünü indirip cihazınıza manuel olarak da yükleyebilirsiniz. Test cihazınızın sistem imajını indirmek için aşağıdaki tabloya bakın. Test ortamı üzerinde hassas kontrole ihtiyacınız varsa veya otomatik test yaparken sık sık yeniden yüklemeniz gerekiyorsa cihazı manuel olarak flaşlamak 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.
Dilediğiniz zaman herkese açık en son sürüme dönebilirsiniz.
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 yalnızca 64 bitlik katı bir ortam sağlar. Yalnızca 64 bit olan bu yapılandırmalar yalnızca geliştiriciler tarafından kullanılabilir.
Cihaz | İndirme Bağlantısı | SHA-256 sağlama |
---|---|---|
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 resimler, 64 bit uygulama uyumluluğunu test etmek için yalnızca 64 bitlik katı bir ortam sağlar. Yalnızca 64 bit olan bu yapılandırmalar yalnızca geliştiriciler tarafından kullanılabilir.
Cihaz | İndirme Bağlantısı | SHA-256 sağlama |
---|---|---|
Pixel 4a (5G) | b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a |
|
Pixel 5 | 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a |
|
Pixel 6 | becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8 |
|
Pixel 6 Pro | b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480 |
Herkese açık bir sürüme dönme
Fabrika görüntüsünü yüklemek için Android Flash Aracı'nı kullanabilir veya Nexus ve Pixel Cihazlar İçin Fabrika Görüntüleri sayfasından fabrika spesifikasyonu sistem görüntüsünü indirip cihaza manuel olarak yükleyebilirsiniz.
Android Emulator
Android 12'den (API düzeyi 31) itibaren Android Emülatör sistem görüntüleri yalnızca 64 bittir. Uygulama testi için yalnızca 64 bit olan katı bir ortam elde etmek üzere Android 12 (API düzeyi 31) veya sonraki sürümlerin bulunduğu bir sistem resmi 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 ikinci seçeneğiniz, Google Pixel veya diğer cihaz üreticilerinin son model amiral gemisi cihazları gibi 64 bit özellikli bir cihaz kullanmaktır.
Uygulamanızı yükleme ve 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 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ümle aynı olduğundan emin olmak için normalde yaptığınız gibi test edin.
Bilinen uyumluluk sorunlarını kontrol etme
Test ederken uygulamanızı 64 bit cihazlarda çalışırken uygulamaları etkileyen aşağıdaki sorunlar açısından kontrol edin. Uygulamanız doğrudan etkilenen kitaplıkları kullanmasa bile, uygulamanızın bağımlılarındaki üçüncü taraf kitaplıklar ve SDK'lar bu kitaplıkları kullanıyor olabilir.
SoLoader
Yerel kod yükleyici SDK'sı SoLoader'ı kullanıyorsanız 0.10.4 veya sonraki bir sürüme güncelleyin. Uygulamanız SoLoader'a bağımlı SDK'lar kullanıyorsa etkilenen SDK'ların en son kararlı sürümüne de güncellediğinizden emin olun.
SoLoader 0.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 kilitlenmelere neden olur.
Bu ve SoLoader'ın neden olduğu diğer sorunları düzeltme hakkında daha fazla bilgi için Google Yardım Merkezi'ndeki ilgili cevabı inceleyin.
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'e dayalı diğer SDK'lar kullanıyorsa SDK'nın daha yeni bir OpenSSL sürümünü kullanan en son sürümüne de güncellediğinizden emin olun. Böyle bir cihaz yoksa 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'in önceki sürümleri bu özellikleri yanlış kullanarak ARMv8.3a ve sonraki sürümlere sahip tüm cihazlarda çalışma zamanında kilitlenmelere neden oluyordu.
Bu ve OpenSSL'den kaynaklanan 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şı koruma sağlamak için dal hedefi talimatları (BTI'ler) 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 İPUCU olarak kodlandığından bu hata, BTI'yi 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ğıtmayla ilgili en iyi uygulamalara uymaya devam edin. Uygulamanızın kalitesinin tutarlı olmasını sağlamak için sınırlı sayıda kullanıcıya dağıtmak üzere 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 ş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.
İ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.
İ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.
İ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.
İ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.
İ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.
İ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.
İ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.