APK Nasıl Çalışır ve AAB'den Farkı Nedir
APK, uygulamanın byte-code'unu, kaynaklarını ve manifest dosyasını içeren bir Android kurulum dosyasıdır (.apk); AAB (Android App Bundle) ise Google Play'de yayınlamak için kullanılan ve mağazanın belirli cihazlar için optimize edilmiş APK'lar oluşturduğu bir bundle'dır. Aşağıda, APK'nın içinde neler olduğunu, her formatın ne zaman kullanılacağını ve uygulamanın nasıl güvenli bir şekilde kurulup imzalanacağını pratik bir şekilde ele alıyoruz.
APK Nedir ve Dosyanın İçeriği
APK, uygulama derlenirken oluşturulan sabit yapıya sahip bir ZIP arşividir. İçerisinde genellikle şunlar bulunur:
- classes.dex — derlenmiş kod (Dalvik/ART). Multidex durumunda birden fazla dosya olabilir.
- AndroidManifest.xml — izinlerin, bileşenlerin ve minimum SDK sürümünün tanımı.
- res/ ve resources.arsc — kaynaklar (layout, drawables, metinler).
- assets/ — rastgele dosyalar (veritabanları, yazı tipleri).
- META-INF/ — imza ve sertifikalar (MANIFEST.MF, CERT.RSA). APK geliştirici tarafından imzalanır: Geçerli bir imza olmadan sistem kurulum ve güncellemelere izin vermez.
Yapıyı görüntülemek için .apk dosyasını herhangi bir arşivleyici ile açabilirsiniz, ancak bu kod ve imza analizinin yerini tutmaz.
APK vs AAB — Temel Farklar ve Ne Zaman Hangisi Seçilmeli
- Format: APK — kuruluma hazır dosya; AAB — modüller içeren mağaza için bundle.
- Dağıtım: APK, sideload (mağaza dışı), testler ve kurumsal kurulumlar için uygundur; AAB, Google Play'e yeni uygulamaları yüklemek için zorunludur (2021'den itibaren) ve kullanıcı trafiğini azaltır.
- Boyut: AAB, Google Play'in optimize edilmiş APK'lar (split/feature delivery) oluşturmasına olanak tanır ve indirme boyutunu yaklaşık %15–30 oranında azaltır.
- Kontrol: APK ile tüm mimariler için evrensel bir dosya elde edersiniz; AAB ile derlemeyi mağazaya devredersiniz, ancak son kullanıcı için nihai APK üzerinde doğrudan kontrolünüzü kaybedersiniz.
Kısaca: Play'de yayınlıyorsanız AAB kullanın; doğrudan kurulum dosyasına veya mağaza bypass'ına ihtiyacınız varsa APK kullanın (doğru imza ve güvenlik önlemleriyle).
APK'yı Güvenli Bir Şekilde Nasıl Kurulur ve İmzalanır
- İmzalama: Android Studio'da — Build → Generate Signed Bundle/APK. Bir keystore oluşturun (anahtarı güvenli saklayın) ve release derlemesini imzalayın. Play için upload-key kullanılır.
- Kurulum: Android 8+ sürümlerinde, APK'yı kuran uygulama için özel izin etkinleştirilir. Dijital imzayı ve dosya hash'ini kontrol edin.
- Doğrulama: Kurulumdan önce imzayı uygulamanın bilinen sürümüyle karşılaştırın; test sırasında güncellemeler için adb install -r kullanın.
- Riskler: APK'ları yalnızca güvenilir kaynaklardan kurun ve dosyaları tarayın — sideloading kötü amaçlı yazılım riskini artırır.
Bilinmeyen kaynaklardan APK kurmak, sık görülen bir bulaşma nedenidir. Şüpheli sitelerden APK kurmayın ve imzayı görmezden gelmeyin.
Sık Yapılan Hatalar
- Orijinal yerine imzasız veya kendi kendine oluşturulmuş imza kullanmak — güncelleme sırasında çakışmaya neden olur.
- Split varyantları olmadan başka bir mimari için derlenmiş APK'yı kurmaya çalışmak — reddedilme olasılığı vardır.
- Keystore'u güvenilmeyen bir yerde saklamak — anahtar kaybı, Play'de uygulamanın güncellenmesini imkansız hale getirir.
SSS
-
Her zaman AAB'ye geçmem gerekir mi?
Google Play'de yayınlıyorsanız evet, yeni uygulamalar için AAB zorunludur; dahili dağıtım için APK hala geçerlidir. -
Upload-key ile imza anahtarı arasındaki fark nedir?
Upload-key, Play'e yüklediğiniz bundle'ı imzalar; Google daha sonra nihai APK'ları kendi anahtarıyla imzalar (Play App Signing). -
APK'nın güvenli olduğunu nasıl kontrol ederim?
İmzayı resmi olanla karşılaştırın, dosya hash'ini kontrol edin, yerleşik veya harici analiz araçlarını kullanın ve bilinmeyen kaynaklara güvenmeyin. -
AAB'yi yerel olarak APK'ye dönüştürmek mümkün mü?
Evet: bundletool kullanarak AAB'den cihaza özel APK oluşturabilirsiniz, ancak bu bundle'a ve konfigürasyona erişim gerektirir.
Gerekirse, Android Studio'da imzalama için adım adım talimatlar veya APK kurulumu için adb komutları ekleyebilirim.