Android uygulama paketi - Android application package - Wikipedia

APK
Dosya adı uzantısı.apk, .xapk, .apks, .apkm
İnternet medya türü
application / vnd.android.package-archive
Biçim türüPaket biçimi
İçin konteynerMobil uygulamalar
GenişletilmişKAVANOZ

Android Paket içeriği (APK)[1] ... paket dosya formatı tarafından kullanılan Android işletim sistemi ve dağıtımı ve kurulumu için bir dizi başka Android tabanlı işletim sistemi Mobil uygulamalar, mobil oyunlar ve ara yazılım.

APK diğerine benzer yazılım paketleri gibi APPX içinde Microsoft Windows veya a Debian paketi içinde Debian tabanlı işletim sistemleri. Bir APK dosyası oluşturmak için, Android için bir program ilk olarak kullanılarak derlenir Android Studio,[2] ve sonra tüm parçaları tek bir konteyner dosyasında paketlenir. Bir APK dosyası bir programın tüm kodunu içerir (örneğin .dex dosyalar), kaynaklar, varlıklar, sertifikalar ve bildirim dosyası. Birçok dosya biçiminde olduğu gibi, APK dosyalarının gerekli herhangi bir adı olabilir, ancak dosya adının Dosya uzantısı böyle tanınmak için.[3][4][5][6]

Android sistemi, kullanıcıların APK dosyalarını yalnızca Google Play gibi güvenilir kaynaklar dışındaki kaynaklardan yüklemeye izin veren bir "Bilinmeyen Kaynaklar" ayarını açtıktan sonra manuel olarak yüklemelerine izin verir. Bunu, mağazada bulunmayan uygulamaları yüklemek veya daha eski bir sürümü yüklemek gibi birçok nedenden dolayı yapabilirsiniz.[7] İlk önce yeni sürümü kaldırarak bir uygulamayı bu şekilde düşürmek mümkün olsa da, bunu Android Hata Ayıklama Köprüsü aracılığıyla yapmak, veri tutmaya izin verdiği için daha iyidir.[8]

Paket içeriği

Bir APK dosyası bir Arşiv genellikle aşağıdaki dosyaları ve dizinleri içerir:

  • META-INF dizin:
    • MANIFEST.MF: Manifest dosyası
    • Başvurunun sertifikası.
    • CERT.SF: Kaynakların listesi ve bir SHA-1 sindirmek MANIFEST.MF dosyasındaki ilgili satırların; Örneğin:
      İmza-Sürüm: 1.0 Oluşturan: 1.0 (Android) SHA1-Özet-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE = ... Ad: res / layout / exchange_component_back_bottom.xmlSHA1-Özet: eACjMjESj0nqWable7- Özet: DGEqylP8W0n0iV / ZzBx3MW0WGCA =
  • lib: platforma bağlı olan derlenmiş kodu içeren dizin; dizin, içinde daha fazla dizine bölünmüştür:
    • armeabi-v7a: yalnızca ARMv7 ve üzeri tabanlı işlemciler için derlenmiş kod
    • arm64-v8a: yalnızca ARMv8 arm64 ve üzeri tabanlı işlemciler için derlenmiş kod[9]
    • x86: için derlenmiş kod x86 yalnızca işlemciler
    • x86_64: için derlenmiş kod x86 64 yalnızca işlemciler
    • mips ve armeabi NDK r17'den beri Kullanımdan Kaldırıldı[10][11]
  • res: Resources.arsc dosyasında derlenmemiş kaynakları içeren dizin (aşağıya bakın).
  • varlıklar: alabilen uygulama varlıklarını içeren bir dizin Varlık yöneticisi.
  • AndroidManifest.xml: Uygulama için adı, sürümü, erişim haklarını ve başvurulan kitaplık dosyalarını açıklayan ek bir Android bildirim dosyası. Bu dosya Android'de olabilir ikili XML gibi araçlarla insan tarafından okunabilir düz metin XML'e dönüştürülebilen AXMLPrinter2, apktool veya Androguard.
  • classes.dex: Derlenen sınıflar dex dosya biçimi tarafından anlaşılabilir Dalvik sanal makine ve tarafından Android Çalışma Zamanı.
  • kaynaklar.arsc: örneğin ikili XML gibi önceden derlenmiş kaynakları içeren bir dosya.

Ayrıca bakınız

Referanslar

  1. ^ "Uygulamanın Temelleri | Android Geliştiricileri". Android Geliştiricileri. Alındı 2018-12-03.
  2. ^ "Application Studio | Android Studio". Android Geliştiricileri.
  3. ^ "Android Uygulama Çerçevesinin İçi" (video). Google Sites. 2008.
  4. ^ Hatem Ben Yacoub (20 Nisan 2018). "İpuçları: Android Emulator'da apk dosyaları nasıl yüklenir?". Ha Magazine'i açın. Arşivlenen orijinal 2012-05-26 tarihinde.
  5. ^ "Android Paket (APK) Dosyalarının Yapısı". OPhone SDN. OPhone Yazılım Geliştirici Ağı. 17 Kasım 2010. Arşivlenen orijinal 8 Şubat 2011.
  6. ^ chibucks (28 Mayıs 2010). "Balık Tutmayı Öğrenin: Bir APK'nin Genel Yapısı". SDX Geliştiriciler Forumu. Basit Makineler Forumu. Arşivlenen orijinal 17 Temmuz 2012.
  7. ^ "Bilinmeyen Kaynaklar: Bilmeniz gereken her şey!". Android Central. 27 Temmuz 2018.
  8. ^ "Android'de Bir Uygulamayı Eski Sürüme Geçirme - Kök Gerekmez". xda geliştiricileri. 25 Ağustos 2017.
  9. ^ "ABI Yönetimi | Android Geliştiricileri". developer.android.com. Alındı 16 Haziran 2018.
  10. ^ "Android ABI'leri | Android NDK". Android Geliştiricileri. Alındı 2020-08-14. Not: Geçmişte NDK, ARMv5 (armeabi) ve 32 bit ve 64 bit MIPS'i desteklerdi, ancak bu ABI'ler için destek NDK r17'de kaldırıldı.
  11. ^ Dan, Albert (5 Eyl 2018). "Değişiklik günlüğü r17". GitHub. Alındı 2020-08-14. ARMv5 (armeabi), MIPS ve MIPS64 desteği kaldırıldı. Bu ABI'lardan herhangi birini oluşturmaya çalışmak bir hatayla sonuçlanacaktır.