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.
- Android Studio'yu açın ve herhangi bir projeyi açın.
Menüden Derle > APK'yı Analiz Et... seçeneğini belirleyin.
Değerlendirmek istediğiniz APK'yı seçin.
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.
arm64-v8a veya x86_64 klasöründe benzer ".so" dosyalarınızın olup olmadığını kontrol edin.
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.
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:
- 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.
Oynatıcı ayarları'nı tıklayın.
Oynatıcı Ayarları Paneli > Android için ayarları > Diğer ayarlar > Yapılandırma'ya gidin.
Komut Dosyası Arka Ucu'nu IL2CPP olarak ayarlayın.
Hedef Mimari > ARM64 onay kutusunu seçin.
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:
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 görüntüleri
Yanıp söndürmeye çalıştığınız cihazı seçin:
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.
İ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.