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.
- Android Studio'yu açın ve herhangi bir projeyi açın.
Menüden Build > Analyze APK'yı (Derleme > APK'yı analiz et) seçin.
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 işlem yapmanız gerekmez. armeabi-v7a veya x86 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 olup olmadığını kontrol edin.
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.
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:
- 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.
Oynatıcı ayarları'nı tıklayın.
Player Settings Panel > Settings for Android > Other settings > Configuration'a (Oynatıcı Ayarları Paneli > Android Ayarları > Diğer ayarlar > Yapılandırma) gidin.
Scripting Backend'i IL2CPP olarak ayarlayın.
Hedef Mimarisi > ARM64 onay kutusunu işaretleyin.
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:
Android 14 (Beta 5.2) yalnızca 64 bit sistem görüntüleri
Flaş yüklemeye çalıştığınız cihazı seçin:
Android 13 (QPR3 Beta 3.2) yalnızca 64 bit sistem görüntüleri
Flaş yüklemeye çalıştığınız cihazı seçin:
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.
İ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.
İ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.
İ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.
İ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.
İ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.
İ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.
İ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.