Android App Bundle ile ilgili sık sorulan sorular

Android App Bundle hakkında

Android App Bundle (AAB) nedir?

2018 yılında kullanıma sunulan Android App Bundle (AAB), Android için Google Play ve diğer uygulama mağazalarının yanı sıra Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity ve Unreal gibi derleme araçları tarafından desteklenen bir yayınlama biçimidir.

AAB'ler ve APK'lar arasındaki fark nedir?

Uygulama paketleri yalnızca yayınlama amaçlıdır ve Android cihazlara yüklenemez. Android paketi (APK), Android'in uygulamalar için yüklenebilir ve yürütülebilir biçimidir. Uygulama paketlerinin cihazlara yüklenebilmesi için bir dağıtımcı tarafından APK'lar halinde işlenmesi gerekir.

AAB, yalnızca Google Play'de kullanılabilen tescilli bir biçim midir?

Hayır, AAB tescilli değildir. Uygulama paketi açık kaynaktır, bu nedenle tüm uygulama mağazaları destekleyebilir. Paketler, Google Play ve diğer bazı uygulama mağazaları tarafından desteklenir.

AAB oluşturmak, diğer uygulama mağazalarında yayınlamamı engeller mi?

Hayır, diğer uygulama mağazalarında uygulama yayınlamanız engellenmez. Uygulamanızı oluştururken, her uygulama mağazası için hangi yayınlama biçiminin gerektiğine bağlı olarak AAB'leri ve APK'ları aynı anda oluşturabilirsiniz.

AAB kullanmak için ne kadar çalışma gerekir?

Çoğu uygulama için AAB oluşturmak, APK oluşturmak için eş değer bir çabadır. Çünkü bu işlem, derleme sırasında APK yerine AAB'nin seçilmesini gerektirir. Bazı uygulamalarda, AAB'lerden tam olarak yararlanmak için bazı değişiklikler yapılması gerekebilir.

AAB kullanan geliştiriciler var mı?

Evet. 1 milyondan fazla uygulama ve oyun, üretim sürümlerini Google Play'de yayınlamak için uygulama paketlerini kullanıyor. Popüler uygulamaların çoğu da milyarlarca aktif yüklemeyi temsil ediyor. Uygulama yüklemek için Google Play'i kullanıyorsanız cihazınızdaki uygulamaların birçoğu uygulama paketi olarak yayınlanmış demektir.

AAB, kullanıcıların uygulamaları "başka cihazdan yüklemesini" engelliyor mu?

Hayır, AAB'ler kullanıcıların herhangi bir kaynaktan APK yüklemesini engellemez. AAB yalnızca bir yayınlama biçimi olduğundan Android platformunun çalışma şeklini değiştirmez.

Bir geliştirici optimize edilmiş APK'lar sunmak için AAB'leri kullanıyorsa bu, söz konusu APK'ları paylaşan kullanıcıların sorun yaşaması anlamına gelir mi?

Android'de, uygulamanın APK'lar veya AAB'ler aracılığıyla yayınlanmasından bağımsız olarak APK'ların bir cihazdan diğerine doğrudan aktarılamadığı nadir durumlar olmuştur. Spesifik olarak, APK'lar bir cihaz için optimize edildiğinde (örneğin, belirli bir çip mimarisi için) bu APK'ları doğrudan başka bir cihaza aktarmak, hedef cihaz orijinal cihazın özellikleriyle eşleşmiyorsa sorunlarla karşılaşabilir. Bu tür durumlarda, hedef cihaza uygun bir APK veya APK grubunun yüklenmesi gerekir.

Birden fazla uygulama mağazasında uygulama yayınlayabilir miyim?

Evet, AAB kullansanız da kullanmasanız da birden fazla uygulama mağazasında uygulama yayınlayabilirsiniz. AAB'leri, Google Play'de ve AAB'leri destekleyen diğer uygulama mağazalarında yayınlayabilirsiniz. Aynı zamanda, APK'ları AAB'leri desteklemeyen diğer uygulama mağazalarında veya web sitelerinde yayınlayabilirsiniz.

AAB gereksinimi, Managed Google Play'de yayınlanan özel uygulamalar için geçerli midir?

Hayır, Managed Google Play'de yayınlanan özel uygulamalar APK'lar veya AAB'ler ile yayınlanabilir. Yeni bir özel uygulama oluştururken Uygulama imzalama anahtarını değiştir'i seçebilir ve kendinden imzalı, özel bir APK yayınlamak isterseniz Play Uygulama İmzalama'yı devre dışı bırakabilirsiniz.

Play Uygulama İmzalama hakkında

Play Uygulama İmzalama nedir?

Android'deki her APK'nın yüklenebilir olabilmesi için bir uygulama imzalama anahtarıyla kriptografik olarak imzalanması gerekir. Android platformu, uygulama güncellemelerinin bir cihazdaki yüklü uygulamayla eşleşmesini sağlamak için anahtarı kullanır. Böylece, ilk yüklemenin ardından her uygulama güncellemesi aynı anahtar sahibinden gelir. Bu, kötü amaçlı uygulama güncellemesi riskini azaltır. 2017'de kullanıma sunulan Play Uygulama İmzalama, Play geliştiricilerinin Play'de dağıtılan uygulamalarına ait uygulama imzalama anahtarlarını koruyan ve yöneten Google Play'in anahtar yönetim hizmetidir. Ayrıca Play Uygulama İmzalama, Play'in yüklenen AAB'lerden oluşturduğu APK'larda imzalama işlemini gerçekleştirir. Play Uygulama İmzalama, AAB'leri kullanabilmeleri için yeni uygulamalarda gereklidir.

Google, Play Uygulama İmzalama özelliğini neden kullanıma sundu?

Uygulama imzalama anahtarları, Play geliştiricilerinin yıllarca zorlandığı bir konuydu. Anahtarı kaybetmek, artık kullanıcılara uygulama güncellemeleri sunamamak anlamına gelir ve bir anahtarın güvenliğinin ihlal edilmesi kullanıcıları kötü amaçlı güncellemelerle karşı karşıya bırakır. Yazılım dağıtımında dağıtım kanallarının, dağıttıkları yazılımın anahtarlarını depolaması ve yönetmesi yaygın bir durumdur, çünkü bu riskleri azaltır. Play Uygulama İmzalama, Play dağıtım anahtarlarını kaybetme riskini ortadan kaldırmak, önemli bir güvenlik ihlalinin ardından Play kullanıcılarını korumayı mümkün kılmak ve geliştiricilere Google'ın devam eden güvenlik yatırımından yararlanma olanağı sağlamak için 2017'de kullanıma sunulmuştur.

Google, Play Uygulama İmzalama'nın güvenliğini nasıl sağlıyor?

Google, geliştiricilerin anahtarlarını kendi anahtarlarını korumak için kullanılan sektör lideri ve güvenli altyapıda korur. Anahtarlar, kilitli EKL'ler ve tüm işlemleri kapsayan kurcalamaya karşı korumalı denetim izlemeleriyle, kilitli ve özel anahtar yönetim sunucularında şifrelenmiş bir şekilde saklanır. Google'ın bulut güvenliği işlemleri ve en iyi uygulamaları internette ayrıntılı olarak açıklanmaktadır.

Play'in uygulamam için kullandığı uygulama imzalama anahtarını seçebilir miyim?

Evet, yeni bir uygulama oluşturduğunuzda Google'ın sizin adınıza bir uygulama imzalama anahtarı oluşturup saklamasını seçebilir veya kendi uygulama imzalama anahtarınızı seçip bunun bir kopyasını yükleyebilirsiniz.

Play ve diğer uygulama mağazaları için aynı uygulama imzalama anahtarını kullanmak istiyorum. Bu hâlâ mümkün mü?

Uygulama güncellemelerinin işleyiş şeklini değerlendirdikten sonra aynı imzalama anahtarını birden fazla uygulama mağazasında kullanmaya karar verdiyseniz, yine de kullanabileceğinizi unutmayın. Bunun, her bir uygulama mağazasının, uygulamanız için mağazalar arası uygulama güncellemeleri gerçekleştirmesine izin vereceğini unutmayın. İki seçeneğiniz vardır:

  • Yerel olarak bir anahtar oluşturabilir ve bunun bir kopyasını Play'e yükleyebilirsiniz. Bu şekilde, uygulamanızı diğer uygulama mağazaları için derlerken Google Play'in kullandığı anahtarı kullanabilirsiniz.
  • Play Uygulama İmzalama için Google tarafından oluşturulan bir anahtar kullanabilir, ardından Play Console'dan Google tarafından oluşturulan anahtarla imzalanmış dağıtım APK'larını indirebilir ve bu APK'ları diğer uygulama mağazalarında veya web sitelerinde dağıtım için kullanabilirsiniz.

Ağustos 2021'den önce oluşturulan bir uygulama için Play Uygulama İmzalama'yı, uygulama imzalama anahtarımın kopyasını sağlamadan kullanabilir miyim?

Evet, Play Uygulama İmzalama, Ağustos 2021'den önce oluşturulan uygulamalar için "anahtar yeni sürüme geçirme" seçeneğini destekler. Bu şekilde uygulama, Play Uygulama İmzalama'yı yeni bir uygulama imzalama anahtarıyla kullanmaya başlayabilir. Ancak, bu seçeneği kullanabilmek için yükseltme işlemini gerçekleştirmenizin ardından her sürümde iki şey yüklemeniz gerekir: bir uygulama paketi ve eski uygulama imzalama anahtarınızla imzalanmış eski bir APK. Play, yeni yüklemeler ve bunların güncellemeleri için yeni sürüme geçirilmiş anahtarla imzalanmış APK'lar oluşturmak amacıyla AAB'lerinizi kullanır. Aynı zamanda, Play de uygulamanızı yüklemiş olan kullanıcıların uygulama güncellemeleri için eski APK'larınızı kullanır. Eski yüklemeler zaman içinde yeni sürüme geçirilen anahtara taşınır (ör. kullanıcılar yeni bir mobil cihaza geçtiğinde).

Ağustos 2021'den önce oluşturulan uygulamalar ile Ağustos 2021'den sonra oluşturulan uygulamalar için aynı uygulama imzalama anahtarını kullanmanın bir yolu var mı?

Aynı uygulama imzalama anahtarının birden fazla uygulama için kullanılması genellikle önerilmez. Ancak her uygulama için benzersiz bir anahtar kullanmak daha güvenlidir. Ancak birden fazla uygulamada aynı uygulama imzalama anahtarını kullanmanız gerekiyorsa bu mümkündür. Her iki durumda da, Play Uygulama İmzalama'yı yapılandırırken mevcut uygulama imzalama anahtarının bir kopyasını yükleyebilirsiniz. Mevcut uygulama imzalama anahtarını paylaşmak istemiyorsanız Ağustos 2021 öncesi uygulamanızın Play Uygulama İmzalama'yı kullanmaya başlaması için yakında kullanıma sunulacak "anahtar yeni sürüme geçirme" seçeneğini kullanabilirsiniz. Bu sayede hem Ağustos 2021 öncesi uygulamanız hem de Ağustos 2021 sonrası uygulamanız aynı yeni anahtarı kullanabilir.

Play Uygulama İmzalama tarafından kullanılan uygulama imzalama anahtarını değiştirebilir miyim?

Evet, uygulamalar Play Console'da anahtarın yeni sürüme geçirilmesi isteğinde bulunarak anahtarlarını değiştirebilir.

Google Play'in kodumda beklenmedik değişiklikler yapıp yapmadığını nasıl kontrol edebilirim?

Yapıları istediğiniz zaman Google Play'den ve Play Console'daki uygulama paketi gezgininden indirip inceleyebilirsiniz. Ayrıca, yakında Play Developer API ile APK'ları bir sürüm kanalına kaydetmeden önce doğrulama özelliği sunulacak. Ayrıca, uygulama paketleri için kod şeffaflığı adlı isteğe bağlı bir özelliği de kullanabilirsiniz. Kod şeffaflığı sayesinde siz ve son kullanıcılarınız, sunduğu kodun hesaba katılması için Google Play gibi bir uygulama mağazasını tutabilirsiniz.

Uygulama paketleri için kod şeffaflığı nasıl çalışır?

Kod şeffaflığı, uygulamanızı dağıtan bir uygulama mağazasının, sunduğu koddan dolayı hesaplanmasını sağlayan isteğe bağlı bir özelliktir. Kod şeffaflığını kullanmak için derleme sırasında uygulamanızda kodunuzu temsil eden bir kod şeffaflık dosyası oluşturursunuz (özellikle bu dosya, uygulamanızın kodunun karmalarını içeren bir dosyadır). Kodu yalnızca size ait olan, kendi özel kod şeffaflık anahtarınızla imzalarsınız. Kod şeffaflık anahtarınızı hiçbir zaman Google'a sağlamanız gerekmez. Ardından, bir cihazda yüklü APK'yı inceleyebilir ve imzaladığınız kod şeffaflık dosyasının APK'nın koduyla hâlâ eşleştiğini doğrulayabilirsiniz. Bu şekilde, dağıtım sırasında APK'nın kendisi yeniden imzalanmış olsa bile kod şeffaflığıyla doğrulanan kodun değiştirilmediğinden emin olursunuz. Uyuşmazlık varsa bu, kodun dağıtım sırasında değiştirildiğine dair bir kanıttır. Kod şeffaflığı, APK imzalarının yerini almaz ve Android platformunun bir parçası değildir.

Google Play'de büyük uygulama ve oyunlar yayınlama

AAB kullanırken Google Play uygulama boyutu sınırları nelerdir?

AAB'den oluşturulan herhangi bir APK grubu için maksimum sıkıştırılmış indirme boyutu 200 MB'tır. Yani Google Play, mümkün olan tüm APK'ları AAB'nizden oluşturur. Ardından Google Play, tek bir cihazın aldığı maksimum sıkıştırılmış indirme boyutunun 200 MB'tan büyük olup olmadığını kontrol eder. Yüklediğiniz AAB, bundan çok daha büyük olabilir. Bu da Google Play'de APK'larla mümkün olmayan bir şey olabilir.

Google Play, AAB'ler için genişletme dosyalarını (OBB'ler) destekliyor mu?

Hayır, Google Play, AAB'ler için genişletme dosyalarını desteklemez. Genişletme dosyaları (OBB'ler), APK'ları kullanarak büyük uygulama ve oyunları yayınlamak için Google Play'e özel eski bir çözümdür. 200 MB'tan büyük AAB'ler için Google ve üçüncü taraf alternatifleri vardır.

Google Play'de 200 MB'tan büyük bir uygulamayı veya oyunu nasıl yayınlarım?

AAB kullanan büyük uygulama ve oyunlar, 200 MB boyut sınırını aşmak için Play Asset Delivery veya Play Feature Delivery gibi Play yayınlama hizmetlerini ya da üçüncü taraf içerik yayınlama ağlarını kullanabilir.

Play Asset Delivery, genişletme dosyalarına (OBB'ler) kıyasla hangi avantajları sunar?

Google Play'de APK'lar, kullanıcılara ek kaynaklar sunmak için ayrı genişletme dosyaları (OBB'ler) gerektiriyordu. Ancak, OBB'ler imzalanmadığı ve uygulamanın harici depolama alanında saklandığı için pek güvenli değildir. Play Asset Delivery (PAD) sayesinde, 200 MB'tan büyük oyunlar oyunun tamamını Play Store'da tek bir uygulama paketi olarak yayınlayarak OBB'lerin yerini alabilir. PAD, daha sorunsuz bir yayınlama süreci ve esnek yayınlama modları sunmaya ek olarak güncellemelerin daha az cihaz depolama alanı gerektirdiği anlamına gelir. Sonuç olarak, uygulama daha yüksek yükleme oranları sağlayabilir. Son olarak, artık cihazların yaklaşık %80'inde ASTC desteklendiğinden, PAD'in doku sıkıştırma biçimi hedefleme özelliği ASTC'yi destekleyen cihazlara sunmanıza olanak tanır. Mevcut donanım ve cihaz depolama alanından verimli bir şekilde yararlanırken en geniş cihaz yelpazesini hedefleyebilirsiniz.

AAB'ler tarafından kilidi açılan Google Play yayınlama özellikleri

Play'in, AAB kullanan geliştiricilere sunduğu yeni özelliklere örnekler nelerdir?

Google Play gibi uygulama mağazaları, AAB'leri yüklenebilir APK'lar halinde işler. APK'lardan sorumlu olmak, geliştiricilere ve kullanıcılara fayda sağlayan yeni özellikler ve hizmetler sunmayı mümkün kılar. Play halihazırda geliştiriciler tarafından yaygın olarak kullanılan ve değer verilen bu tür hizmetleri sunmaktadır. Play Feature Delivery ve Play Asset Delivery'ye örnek olarak verilebilir.

Play Özellik Dağıtımı nedir?

Uygulama paketlerinin özelliklerinden biri, bir uygulamayı "özellik modülleri" adı verilen birden fazla modüle bölebilmelerine olanak tanımasıdır. Böylece bu modüller, kullanıcılara ve cihazlara farklı zamanlarda dinamik olarak sunulabilir (geçmişte yükleme sırasında her şeyin tek bir dosya halinde teslim edilmesi gerektiğinden farklı). Play Özellik Dağıtımı; yükleme zamanı, koşullu ve isteğe bağlı yayınlama modlarıyla hangi özellik modüllerinin hangi cihazda ne zaman yayınlanacağını özelleştirmenize olanak tanır. Bu, uygulamanızın boyutunu küçülterek daha fazla yüklenmesini ve uygulama deneyiminizi özelleştirmenizi sağlar. Örneğin, ihtiyaç duyan kullanıcılara yükleme sırasında değil istek üzerine müşteri desteği gibi nadiren kullanılan bir özelliği sunarak tüm kullanıcılar için ilk yükleme boyutunu küçültebilirsiniz. Bunun yerine, uygulama deneyiminizin tamamını gelişmiş cihazlara sunarken, veri ve cihaz depolama kısıtlamalarına sahip giriş düzeyindeki cihazlara isteğe bağlı, isteğe bağlı özelliklerle daha küçük bir uygulama deneyimi sunabilirsiniz.

Play Öğe Yayınlama nedir?

Play Asset Delivery, oyun geliştiricilerin büyük öğeleri en uygun zamanda dinamik olarak sunarak kullanıcı deneyimini iyileştirmesini ve bekleme süresini azaltmasını sağlar. Play Asset Delivery kullanan oyunlar, doku sıkıştırma biçimi hedeflemesinden de yararlanabilir. Böylece kullanıcılarınız, boş alan veya bant genişliği olmadan yalnızca cihazlarına uygun öğeleri alır.

Bu Play yayını özellikleri diğer uygulama mağazalarında da kullanılabiliyor mu?

Hayır, Play Feature Delivery ve Play Asset Delivery, Google Play Store ile doğrudan etkileşimde bulunan uygulama ve oyunları içerir. Bu isteğe bağlı hizmetler, Play'in kendisini uygulama mağazası olarak farklı kılan ve Play geliştiricileri ile kullanıcılarına ek değer ve faydalar getirdiğine dair örneklerdir. Uygulama paketleri ve APK'ları kullanan diğer uygulama mağazaları, geliştiricilere kendi uygulama mağazası hizmetlerini sunar.