Ağustos 2021’den itibaren Play Store’daki tüm yeni uygulamalar, mevcut APK formatı yerine Android App Bundles (.aab) formatında yayınlanacak. Peki APK ve Android App Bundle (AAB) arasındaki temel farklar nelerdir? AAB’leri APK’lar gibi diğer sitelerden yükleyebilir miyiz? Tüm sorularınızı yanıtlamak için APK ve AAB arasındaki farkları anlatan bu ayrıntılı yazıyı hazırladık.
APK ve AAB Arasındaki Farklar Nelerdir?
İlk olarak, APK ile AAB (Android App Bundle) arasındaki farkların ne olduğunu doğru bir şekilde anlamak için bazı temel bilgileri kavramamız gerekiyor.
APK, başlangıcından bu yana Android’deki uygulama dağıtım paketi olmuştur. Bir APK, öncelikle uygulama kodlarını, resim, ses vb. gibi ağır kaynaklardan ve geliştirici tarafından oluşturulan bir uygulama imzalama anahtarından oluşur. Android cihazların çeşitli form faktörleri ve özelliklerle geldiğini unutmayın. Örneğin, aygıtlar değişen ekran yoğunluklarına (320 dpi, 480 dpi, vb.), işlemci türüne (ARM, ARM64, x86) ve daha fazlasına sahip olabilmektedirler. Ayrıca, kullanıcının bölgesine bağlı olarak, uygulamanın bir dil paketine (en, fr, ger, vb.) sahip olması gerekir.
İdeal bir durumda, bir geliştiricinin kullanıcının bölgesine, işlemci türüne ve ekran yoğunluğuna göre Play Store’da birden çok APK oluşturması ve yüklemesi gerekir. Bir kullanıcı Play Store’da “Yükle” düğmesine dokunduğunda, cihazına doğru ve en uygun APK yüklenir. Ancak, tüm bunlar geliştiricinin eline çok büyük bir görev yükler. Yalnızca uygulama geliştirmeleri değil, aynı zamanda bir tekne dolusu cihazı desteklemek için birden fazla APK’yı yönetmeleri gerekir.
Bu karmaşık ve zaman alan işlerden kaçınmak için çoğu geliştirici, söz konusu cihazda çoğuna ihtiyaç duymasanız bile tüm kaynaklarla (dil paketleri, kodlar ve daha fazlası) birlikte gelen bir Evrensel APK oluşturur. Bu, daha uzun yükleme süresi gerektiren ve daha fazla bant genişliği tüketen daha büyük uygulama boyutuna sahip hacimli bir APK ile sonuçlanır.
Google, bu sorunu çözmek ve bu yükün çoğunu Android App Bundle’a (AAB) yükleyerek geliştiricilere destek olmak istiyor. Bu da uygulama boyutunu, yükleme süresini ve bant genişliği tüketimini azaltmaya yardımcı olacaktır. Şirket, Google I/O 2018’de AAB’yi tanıttı ve yaklaşık iki yıl sonra Google, Play Store’da AAB biçiminde yeni uygulamalar göndermeyi zorunlu hale getirdi.
APK ile karşılaştırıldığında, AAB formatı tamamen yeni bir dağıtım paketi değildir. Aslında AAB, temel bir APK ve birden çok bölünmüş APK barındıran bir kapsayıcıdır. Temel olarak AAB, bir geliştiricinin Play Store’a gönderdiği bir yayınlama biçimidir, APK ise cihazınıza yüklediğiniz Android uygulamalar için paketleme biçimidir.
Peki burada gerçekten değişen şey nedir? Ağustos 2021’den itibaren, geliştiricilerin çok çeşitli cihazlar için bir sürü APK’yi işlemesi ve yönetmesi gerekmeyecek. AAB ile geliştiriciler, uygulama kodu, varlıklar, yoğun kaynaklar, tüm dil paketleri ve en önemlisi özel uygulama imzalama anahtarı gibi her şeyi Google’a teslim edecekler. Artık Google, cihazlara göre optimize edilmiş APK’lar oluşturup kullanıcılara sunabilecek. Daha küçük boyutu nedeniyle ABB’ler APK’dan daha küçük boyuttadır ve daha hızlı yüklenebilirler. Aşağıdaki resimde görebileceğiniz üzere ABB ile Netflix %57, Airbnb %22, Clash of Clans %8 daha küçük boyutta inmektedir.
Özel İmza Anahtarının Google ile Paylaşılması
AAB’nin masaya ne getirdiğine bakıldığında, APK’ya harika bir alternatif gibi görünüyor. AAB biçimi, uygulama boyutunu küçültür ve geliştiricilerin birden fazla APK oluşturması gerekmez. Ancak birçok geliştirici, özel imzalama anahtarının Google ile paylaşılmasına ilişkin endişelerini dile getiriyor.
Yukarıda bahsettiğimiz gibi imzalama anahtarı APK’nın bütünlüğünü doğrulamak için en önemli bilgidir. Üçüncü taraf bir kaynaktan APK yükleseniz bile, Google Play Store hiçbir şeyin değiştirilmediğinden emin olmak için imzalama anahtarını kontrol eder.
AAB ile Google, Google’ın uygulama paketini oluşturabilmesi ve AAB’yi aynı özel anahtarla imzalayabilmesi için geliştiricilerin özel imzalama anahtarını paylaşmasını zorunlu kılıyor. Kullanıcılar uygulamayı yüklediğinde veya yeni bir sürüme güncelleme yaptığında, Google Play Hizmetleri imzalama anahtarıyla eşleşir ve yükleme, anahtar uyuşmazlığı veya imza hatası sorunları olmadan gerçekleşir. Bununla birlikte, geliştiriciler potansiyel olarak kod enjeksiyonu için kapıyı açtığını söylüyor . Google, tüm “imzalama anahtarlarının, Google’ın kendi anahtarlarını depolamak için kullandığı altyapı üzerinde depolandığını söylüyor.” Bu yüzden, tüm özel imzalama anahtarlarınız çok sağlam bir güvenlikle korunuyor ama Google’a ait bir depolama alanında.
Ayrıca, geliştiricilerin endişelerini gidermek için Google, geliştiricilerin yalnızca kendileri tarafından erişilebilecek ayrı bir özel anahtar oluşturmasına olanak tanıyan Kod Şeffaflığı’nı duyurdu. Geliştiriciler, ayrı özel anahtardan, uygulama bütünlüğünü doğrulamak için kullanılabilecek ekstra bir imza oluşturabilir. Ancak, bu yöntemin bir sınırlaması vardır. Kod Şeffaflığı, varlıklar, kaynaklar veya bildirimle değil, yalnızca kodla ilgilenir. Ayrıca bu, birçok geliştiriciyi döngünün dışında bırakabilecek isteğe bağlı bir özelliktir.
AAB, Üçüncü Taraf Uygulama Mağazaları İçin İşleri Zorlaştıracak mı?
Özel anahtarın Google ile paylaşılmasından kaynaklanan bir diğer sorun, üçüncü taraf uygulama mağazaları için işleri zorlaştırabilmesidir. Örneğin, Play Store’dan bir uygulama yüklerseniz ancak başka bir Play Store alternatifinden (örneğin Samsung Apps veya Amazon App Store gibi) en son sürüme güncellemek istiyorsanız, imza uyuşmazlığı nedeniyle yükleme başarısız olabilir.
Bunun nedeni, Google’ın artık özel imzalama anahtarını yönetmesidir, bu nedenle uygulamanızı üçüncü taraf Android uygulama mağazasına yüklerken aynı anahtarı kullanamazsınız. Başka bir özel anahtar kullanmanız gerekecek ve bu, özel anahtar uyuşmazlığı hatasına neden olacaktır. Bunun Windows 11‘de Android uygulama desteği için bir sorun teşkil edip etmeyeceğini ise bekleyip görmemiz gerekecek.
Bunun dışında, AAB’nin geliştiricilerin APK’ları üçüncü taraf uygulama mağazalarına yüklemesini engelleyeceği söylemi doğru değildir. Google, geliştiricilerin AAB paketlerinden APK’lar oluşturmasına olanak tanıyan, bundletool adlı açık kaynaklı bir araç yaptı.
AAB’leri APK’lar Gibi Başka Sitelerden Yükleyebilir miyim?
Bildiğiniz gibi birçok kullanıcı, birçok oyun ve uygulamayı APKMirror, gibi APK sitelerinden indirmektedir. Peki AAB’leri de bu tür sitelerden indirebilecek miyiz? AAB’leri de yine APK’lar gibi bu sitelerden yükleyebileceksiniz. Ancak bu işlem APK indirmek ve yüklemek kadar basit olmayacak. Android’in paket yükleyicisi şu anda AAB paketleme biçimini desteklemiyor, yani cihazınızda AAB kurulumu yerel olarak mümkün olmayacak. Ancak, cihazınıza AAB yüklemek için üçüncü taraf yükleyici uygulamalarını kullanabilirsiniz. Örneğin, şu anda APKMirror Installer uygulaması bu işi yapmaktadır. Yakın zamanda buna benzer çalışan uygulamalar ortaya çıkacaktır.
APK vs AAB: Avantajları ve Dezavantajları
Tüm noktaları gözden geçirdikten sonra, AAB’lerin çoğu kullanıcı için kullanıcı deneyimi açısından pek bir fark yaratmayacağını söyleyebilirsiniz. Evet, çoğu kullanıcı için yararlı olacak olan uygulama boyutunu küçültür.
Ancak, AAB’leri diğer sitelerden yüklemek isteyen uzman kullanıcılar için işler biraz zor ve elverişsiz hale gelecektir. Cihazınız için APK’ları çıkarmak için paket aracı kullanmanız veya bir üçüncü taraf yükleyici kullanmanız gerekebilir. Unutulmaması gereken bir nokta, AAB’nin büyük varlıkları ve kaynakları indirmek için OBB’den (Opak ikili blob) uzaklaşacağıdır. Bunun yerine, 150MB veya daha yüksek indirme boyutuna sahip ağır kaynakları indirmek için Play Asset Delivery veya Play Feature Delivery’yi kullanır.
Bu değişiklikten en çok etkilenen geliştiricilere gelince, kodlarını yeniden düzenlemeleri gerekmiyor, bu harika. AAB’ler ayrıca yedekte modülerlik getirir, yani bir kod parçacığını değiştirebilir ve birçok birleştirme çakışmasıyla karşılaşmadan onu çekirdek tabanla birleştirebilirler. AAB’nin büyük bir avantajı, geliştiricilere özelleştirme seçenekleri sunmasıdır. Hangi API düzeyini hedefleyeceklerini veya hangi cihaz türünü destekleyeceklerini seçebilirler. Geliştiriciler ayrıca, belirli bir cihaz türünde veya minimum SDK sürümünde çalışan akıllı telefonlarda tüm özelliklerin neler sunacağına karar verebilir.
Dezavantajlara gelince, sorunun özü artık Google tarafından yönetilecek olan özel anahtarı paylaşmaktır. Üçüncü taraf uygulama mağazalarıyla uyumsuzluk başka bir büyük sorun olabilir ve geliştiricilerin APK’ları (tıpkı şu anda Play Store’da olduğu gibi) diğer uygulama mağazalarında yayınlamak ve yönetmek için fazladan bir yol kat etmesi gerekecek.
Google’ın APK’dan AAB’ye geçişi hakkında sizin yorumunuz nedir?