Android'de APK, package file ve SDK file arasındaki fark — basit rehber
APK, bir uygulama kurulum dosyasıdır (.apk), package file genellikle APK ile eş anlamlıdır ve SDK ise geliştirme araçları setidir (emülatörler, derleyiciler, kütüphaneler). Aşağıda, her birinin içinde neler olduğu, ne zaman kullanılacağı ve her dosya türüyle pratik olarak nasıl çalışılacağı açıklanmaktadır.
APK / package file nedir ve nelerden oluşur
APK (Android Package), geliştirici tarafından imzalanmış .apk uzantılı bir ZIP arşividir. İçeriği:
- classes.dex — derlenmiş bytecode;
- res/ ve resources.arsc — kaynaklar (XML, görseller);
- AndroidManifest.xml — meta veriler (izinler, activity);
- lib/*.so — yerel kütüphaneler;
- META-INF — imza.
Nasıl kurulur:
- Cihazda: .apk dosyasını açın veya dosya yöneticisi aracılığıyla yükleyin (üçüncü taraf paketler için "bilinmeyen kaynaklardan yükleme"yi etkinleştirin).
- USB üzerinden: adb install app.apk. Tavsiye: 2020'lerde Google, Play Store için .aab (App Bundle) önermektedir; bu format, cihaza özel optimize edilmiş APK'lar oluşturur.
Package file ve APK %99 durumda aynı şeydir: "package" terimi, formatın resmi adıdır.
APK'ları yalnızca güvenilir kaynaklardan indirin — imza ve içerik kötü niyetli kişiler tarafından değiştirilmiş olabilir.
SDK file nedir ve bununla nasıl çalışılır
SDK (Software Development Kit), tek bir dosya değil, bir araç setidir: komut satırı araçları, platform-tools (ADB), build-tools, API platformları, emülatörler ve kütüphaneler (AAR/JAR).
Hızlı pratik adımlar:
- Android SDK'yı Android Studio aracılığıyla kurun veya komut satırı araçlarını indirip ~/Android/Sdk dizinine çıkarın.
- PATH'e ekleyin: export PATH=$PATH:~/Android/Sdk/cmdline-tools/latest/bin ve platform-tools.
- Paketleri kurun: sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0".
- Uygulama derleme: proje kök dizininde ./gradlew assembleRelease.
- Sürüm için imzalama: keystore kullanın (oluşturma için keytool, imzalama için Gradle).
SDK, derleme, emülatörde test etme ve API'lere erişim için önemlidir; gigabaytlarca yer kaplar ancak sürümleri ve testleri otomatikleştirmenizi sağlar.
Ne zaman hangi dosyayı kullanmalı
- Kullanıcı için: APK — kurulum veya beta testleri (sideload) için.
- Geliştirici için: SDK — geliştirme, derleme ve test için; nihai ürün — APK veya AAB.
- Ekip için: kütüphaneler için AAR paylaşın, imzalı APK/AAB derlemeleri için CI kullanın.
Sık yapılan hatalar
- App not installed: imza uyumsuzluğu veya sürüm çakışması — eski sürümü kaldırın veya doğru şekilde imzalayın.
- SDK not found: ANDROID_HOME/ANDROID_SDK_ROOT ve PATH değişkenlerini kontrol edin.
- Missing build-tools: gerekli sürümü kurmak için sdkmanager çalıştırın.
- adb install hataları: USB hata ayıklamayı etkinleştirin ve bilgisayara güven onayını verin.
SSS
- APK kurmak için SDK'ya ihtiyacım var mı? Hayır — SDK geliştiriciler içindir; normal kullanıcılar için APK/AAB yeterlidir.
- AAB, APK'dan neden daha iyidir? AAB, Play Store'un cihaza özel optimize edilmiş APK'lar oluşturmasını sağlayarak indirme boyutunu küçültür.
- Kurulum için AAB'yi APK'ya nasıl dönüştürürüm? Yerel olarak bundletool kullanın (.apks oluşturma, ardından extract/install), ancak Play Store'a yayınlama için AAB yüklemek tercih edilir.
Bu pratik talimatlarla, APK'nın bir kurucu, SDK'nın ise bu kurucuyu oluşturmaya yönelik araçlar olduğunu hızlıca anlayacaksınız.