شرح كل تنسيقات ملفات Android: APK وAAB وXAPK وAPKS وAPKM وOBB والمزيد

A filing tray with tabs labeled APK, AAB, XAPK, APKS, APKM and OBB

يستخدم نظام Android البيئي مجموعة متنوعة من تنسيقات الملفات لتعبئة بيانات التطبيق وتوزيعها وتخزينها. إذا سبق لك تنزيل تطبيق من مصدر خارجي، فمن المحتمل أنك واجهت امتدادات ملفات تتجاوز ملف APK المألوف. تخدم التنسيقات مثل XAPK وAPKS وAPKM وAAB وOBB غرضًا محددًا في دورة حياة تطبيق Android.

يهدف هذا الدليل إلى أن يكون مرجعًا كاملاً لكل تنسيق ملفات Android الرئيسي. سيجد المطورون، والمستخدمون المتميزون الذين يقومون بتحميل التطبيقات، والقراء الفضوليين الذين يريدون فقط معرفة ما تحتويه هذه الملفات بالفعل، كل تنسيق مشروحًا بلغة واضحة أدناه.

APK: مجموعة أدوات Android

APK هو تنسيق الملف الأساسي لتطبيقات Android. لقد كان تنسيق التثبيت القياسي منذ بداية Android ويظل هو التنسيق الذي يفهمه نظام التشغيل Android أصلاً لتثبيت التطبيق.

ما يحتويه

ملف APK هو في الأساس أرشيف ZIP ببنية داخلية محددة:

  • AndroidManifest.xml، ملف XML الثنائي يوضح اسم حزمة التطبيق ومكوناتها وأذوناتها ومتطلباتها
  • classes.dex (و classes2.dex، وما إلى ذلك)، كود Dalvik الثانوي المجمع الذي يحتوي على كود Java/Kotlin الخاص بالتطبيق
  • resources.arsc، جدول الموارد المترجمة يعين معرفات الموارد لقيمها
  • res/، الدليل الذي يحتوي على موارد مثل التخطيطات والرسومات والسلاسل التي يتم الرجوع إليها بواسطة المعرف
  • assets/، ملفات الأصول الأولية التي يصل إليها التطبيق في وقت التشغيل من خلال AssetManager
  • lib/، المكتبات الأصلية المنظمة حسب بنية وحدة المعالجة المركزية (على سبيل المثال، lib/arm64-v8a/)
  • META-INF/، ملفات التوقيع ومعلومات الشهادة

عندما تواجهها

ملفات APK هي ما تقوم بتنزيله عند تحميل التطبيقات من مصادر خارجية. وهي أيضًا ما يتم تثبيته على جهازك من متجر Play، على الرغم من أن عمليات تثبيت Play Store الحديثة غالبًا ما تستخدم ملفات APK المقسمة التي تم إنشاؤها من حزم التطبيقات.

كيفية التعامل معها

يمكن تثبيت ملفات APK مباشرة على نظام Android عن طريق فتحها باستخدام مدير الملفات أو باستخدام adb install. يمكنك أيضًا فحص محتوياتها عن طريق إعادة تسمية الامتداد إلى .zip واستخراجه، أو باستخدام أداة التحقق من APK الخاص بنا لفحص التوقيعات والبيانات التعريفية.

AAB: حزمة تطبيقات Android

حزمة تطبيقات Android هي تنسيق النشر الخاص بشركة Google لمتجر Play. منذ أغسطس 2021، يجب تقديم جميع التطبيقات الجديدة على متجر Play بتنسيق AABs بدلاً من ملفات APK.

ما يحتويه

يستخدم ملف AAB تنسيقًا يستند إلى المخزن المؤقت للبروتوكول ويحتوي على:

  • رمز التطبيق الأساسي الوحدة الأساسية: والموارد المطلوبة على كل جهاز
  • موارد تقسيمات التكوين: منظمة حسب كثافة الشاشة وبنية وحدة المعالجة المركزية واللغة
  • وحدات الميزة الديناميكية: ميزات اختيارية يمكن تنزيلها عند الطلب
  • البيانات الوصفية للحزمة: تعليمات Google Play حول كيفية إنشاء ملفات APK خاصة بالجهاز

عندما تواجهها

كمستخدم عادي، عادةً لا تواجه ملفات AAB مباشرةً. يتم استخدامها من قبل المطورين أثناء عملية الإنشاء والتحميل. ومع ذلك، إذا حصلت على ملف AAB (ربما من عناصر بناء مشروع مفتوح المصدر)، فستحتاج إلى تحويله إلى تنسيق APK قبل التثبيت.

كيفية التعامل معها

استخدم أداة سطر الأوامر bundletool من Google أو محول AAB إلى APK لإنشاء ملف APK قابل للتثبيت من ملف AAB. تقوم عملية التحويل بإنشاء ملف APK عالمي (أكبر، يعمل في كل مكان) أو ملف APK خاص بالجهاز (أصغر، مستهدف للجهاز).

XAPK: APK الممتد

XAPK هو تنسيق حاوية شائع بواسطة APKPure والذي يجمع ملف APK مع ملفات بيانات OBB المرتبطة به أو يقسم تكوينات APK إلى حزمة واحدة قابلة للتنزيل.

ما يحتويه

ملف XAPK هو أرشيف ZIP يحتوي على:

  • ملف APK الأساسي (التطبيق الرئيسي)
  • ملفات OBB (بيانات التوسيع للألعاب والتطبيقات الكبيرة)
  • اختياريًا، يمكنك تقسيم ملفات APK لتكوينات الأجهزة المختلفة
  • ملف manifest.json يصف محتويات الحزمة وتعليمات التثبيت
  • ملف رمز لأغراض العرض

عندما تواجهها

تواجه ملفات XAPK عند تنزيل تطبيقات أو ألعاب كبيرة من مستودعات تطبيقات الطرف الثالث. عادةً ما يتم تجميع الألعاب التي تتطلب ملفات بيانات إضافية (تم توزيعها مسبقًا كملفات OBB) على شكل XAPKs لتبسيط عملية التنزيل في ملف واحد.

كيفية التعامل معها

لا يمكن تثبيت ملفات XAPK مباشرة بواسطة مثبت الحزمة الافتراضي لنظام Android. تحتاج إما إلى تطبيق تثبيت XAPK مخصص أو يمكنك استخدام محول XAPK إلى APK لاستخراج ملف APK الأساسي. بالنسبة للألعاب التي تتطلب بيانات OBB، ستحتاج أيضًا إلى استخراج ملفات OBB ووضعها في الدليل الصحيح باستخدام مستخرج OBB.

APKS: مجموعة APK

تنسيق APKS هو ناتج أداة حزمة Google عند إنشاء ملفات APK خاصة بالجهاز من ملف AAB. يتم استخدامه أيضًا بواسطة بعض أدوات النسخ الاحتياطي للتطبيقات لتخزين عمليات تثبيت APK المقسمة.

ما يحتويه

ملف APKS هو أرشيف ZIP يحتوي على:

  • toc.pb، جدول محتويات المخزن المؤقت للبروتوكول الذي يصف بنية الانقسام
  • splits/، الدليل الذي يحتوي على APK الأساسي وجميع ملفات APK المقسمة للتكوين
  • اختياريًا، ملفات APK مستقلة للأجهزة التي لا تدعم عمليات التثبيت المقسمة

عندما تواجهها

تواجه ملفات APKS عند استخدام Bundletool محليًا، أو عند النسخ الاحتياطي للتطبيقات المثبتة من متجر Play، أو عند التنزيل من مستودعات معينة تابعة لجهات خارجية تحافظ على بنية APK المقسمة.

كيفية التعامل معها

يمكنك تثبيت ملفات APKS باستخدام أمر install-apks الخاص بـ Bundletool أو تحويلها إلى ملف APK واحد باستخدام APKS لدمج APK. لاحظ أن دمج ملفات APK المقسمة في ملف APK عام قد يؤدي إلى زيادة حجم الملف حيث يتم دمج جميع موارد التكوين.

APKM: حزمة APKMirror

APKM هو تنسيق حاوية خاص تم إنشاؤه بواسطة APKMirror لتوزيع التطبيقات التي تتكون من ملفات APK متعددة ومقسمة. إنه يخدم غرضًا مشابهًا لـ XAPK و APKS ولكنه يستخدم بنية APKMirror الخاصة.

ما يحتويه

ملف APKM هو أرشيف ZIP يحتوي على:

  • ملف APK الأساسي
  • تقسيم ملفات APK لتكوينات مختلفة (الكثافة، ABI، اللغة)
  • ملف بيانات وصفية يصف بنية الحزمة

عندما تواجهها

تواجه ملفات APKM حصريًا عند التنزيل من APKMirror. يستخدم الموقع هذا التنسيق للتطبيقات التي يتم توزيعها كحزم تطبيقات على متجر Play، وبالتالي تتكون من عدة ملفات APK مقسمة.

كيفية التعامل معها

تتطلب ملفات APKM تطبيق APKMirror Installer للتثبيت المباشر، أو يمكنك استخراج المحتويات (نظرًا لأنه ملف ZIP) وتثبيت ملفات APK المقسمة يدويًا باستخدام أمر install-multiple الخاص بـ ADB. يمكن أيضًا استخراج ملف APK الأساسي وتثبيته بشكل مستقل، على الرغم من أن بعض الوظائف قد تكون محدودة دون تقسيمات التكوين.

OBB: فقاعة ثنائية غير شفافة

ملفات OBB هي ملفات توسيع تستخدمها تطبيقات Android (الألعاب بشكل أساسي) لتخزين كميات كبيرة من البيانات التي تتجاوز الحد الأقصى لحجم APK الخاص بمتجر Play. على الرغم من أن Google قد استبدلت هذا النظام إلى حد كبير بنظام Play Asset Delivery، إلا أن العديد من التطبيقات الحالية لا تزال تستخدم ملفات OBB.

ما يحتويه

يمكن أن تحتوي ملفات OBB على أي نوع من البيانات التي يحتاجها التطبيق:

  • قوام اللعبة ونماذج ثلاثية الأبعاد
  • الملفات الصوتية والموسيقى التصويرية
  • محتوى الفيديو
  • بيانات وخرائط المستوى
  • أي بيانات ثنائية كبيرة يختار المطور تخزينها خارجيًا

إن تنسيق البيانات الموجودة في ملف OBB متروك للمطور بالكامل. يستخدم البعض ضغط ZIP، والبعض الآخر يستخدم التنسيقات الثنائية المخصصة. يعكس "Opaque" في الاسم أن Android يتعامل مع الملف باعتباره صندوقًا أسود.

عندما تواجهها

تتم مواجهة ملفات OBB عند التحميل الجانبي للألعاب الكبيرة أو عندما يتم تجميعها ضمن حزم XAPK. ويتم تخزينها في /Android/obb/[package.name]/ على وحدة التخزين المشتركة للجهاز.

كيفية التعامل معها

يجب وضع ملفات OBB في الدليل الصحيح حتى يتمكن التطبيق من العثور عليها. يتبع اسم الملف عادةً النمط main.[version].[package.name].obb أو patch.[version].[package.name].obb. استخدم مستخرج OBB لاستخراج ملفات OBB من حزم XAPK.

DEX: دالفيك قابل للتنفيذ

تحتوي ملفات DEX على الكود الثانوي المترجم الذي يعمل على بيئة تشغيل Android. يتم العثور عليها داخل ملفات APK ولكن يمكن أيضًا أن توجد بشكل مستقل أثناء التطوير وتصحيح الأخطاء.

ما يحتويه

يحتوي ملف DEX على:

  • تم تجميع رمز Java/Kotlin الثانوي بتنسيق تعليمات Dalvik
  • ثوابت السلسلة وتعريفات النوع
  • الطريقة والمراجع الميدانية
  • تعريفات الطبقة والتسلسل الهرمي لها

التفاصيل الفنية

يحتوي ملف DEX واحد على حد مرجعي للطريقة يبلغ 65.536 ("حد 64 كيلو بايت"). تستخدم التطبيقات التي تتجاوز هذا الحد ملفات DEX متعددة (classes.dex، classes2.dex، وما إلى ذلك)، وهي تقنية تسمى multidex. أدوات البناء الحديثة تتعامل مع هذا تلقائيًا.

ملفات ODEX وVDEX وART

هذه هي الإصدارات المحسنة من ملفات DEX التي تم إنشاؤها بواسطة Android Runtime أثناء التثبيت أو بعده:

  • ODEX (DEX الأمثل): يحتوي على كود الجهاز الأصلي المترجم مسبقًا للطرق المستخدمة بشكل متكرر. تم إنشاؤها أثناء الصيانة الخاملة بناءً على ملفات تعريف الاستخدام.
  • VDEX (تم التحقق من DEX): يحتوي على رمز DEX الثانوي الذي تم التحقق منه مع نتائج التحقق المحسوبة مسبقًا. يؤدي هذا إلى تسريع عمليات التمهيد وتشغيل التطبيقات اللاحقة عن طريق تخطي إعادة التحقق.
  • ART (صورة وقت تشغيل Android): يحتوي على كائنات فئة تمت تهيئتها مسبقًا وبيانات الكومة. يسمح هذا لوقت التشغيل بتخطي تحميل الفصل وتهيئته لفئات إطار العمل الشائعة أثناء بدء التشغيل.

يتم إنشاء هذه الملفات بواسطة النظام وليست شيئًا يتفاعل معه المستخدمون عادةً بشكل مباشر. يتم تخزينها في /data/dalvik-cache/ أو بجانب APK في /data/app/.

SO: كائن مشترك (المكتبات المحلية)

الملفات ذات الامتداد .so هي مكتبات مشتركة أصلية تم تجميعها لبنى وحدة المعالجة المركزية المحددة. أنها تحتوي على رمز الجهاز مكتوب بلغة C أو C++ أو Rust والذي يعمل مباشرة على المعالج دون زيادة وقت تشغيل Dalvik/ART.

المتغيرات المعمارية

  • armeabi-v7a، ARM 32 بت (معظم الأجهزة القديمة)
  • arm64-v8a، ARM 64 بت (معظم الهواتف الحديثة)
  • x86، Intel/AMD 32 بت (بعض الأجهزة اللوحية والمحاكيات)
  • x86_64، Intel/AMD 64 بت (أجهزة Chromebook والمحاكيات)

عندما يحتوي ملف APK على مكتبات أصلية، يجب أن يتضمن البنية الصحيحة للجهاز المستهدف. إذا تم تضمين بنية خاطئة، فسيتعطل التطبيق مع UnsatisfiedLinkError.

ملفات XML في Android

يستخدم Android لغة XML على نطاق واسع، ولكن في شكلين مختلفين:

ثنائي XML

داخل ملفات APK، يتم تخزين موارد XML (التخطيطات والبيانات وملفات السلسلة) بتنسيق ثنائي مترجم يسمى AXML. هذا التنسيق أكثر إحكاما وأسرع في التحليل من نص XML. يمكن لأدوات مثل aapt2 أو apktool فك ترجمة XML الثنائية إلى نص قابل للقراءة.

نص XML

أثناء التطوير، تكون ملفات XML بتنسيق نص قياسي. تقوم عملية الإنشاء بتجميعها في XML الثنائي لتضمينها في APK. تبدأ ملفات التكوين مثل network_security_config.xml وملفات الموارد في دليل res/ كنص XML.

ملفات تعيين ProGuard/R8

على الرغم من أنها ليست تنسيقًا خاصًا بنظام التشغيل Android، إلا أن ملفات التعيين (mapping.txt) مهمة لفهم التطبيقات المبهمة. عندما يستخدم المطورون أدوات تقليص التعليمات البرمجية مثل R8، يتم استبدال أسماء الفئات والطرق بمعرفات قصيرة لا معنى لها. يسجل ملف التعيين ترجمات الأسماء الأصلية إلى المبهمة، وهي ضرورية لقراءة تقارير الأعطال.

تنسيق النسخ الاحتياطي لنظام Android (AB)

الملفات ذات الامتداد .ab هي أرشيفات نسخ احتياطي لنظام Android تم إنشاؤها بواسطة adb backup. وهي تحتوي على أرشيف tar (مضغوط ومشفر اختياريًا) لدليل بيانات التطبيق. تم إهمال هذا التنسيق لصالح حلول النسخ الاحتياطي المستندة إلى السحابة ولكنه لا يزال قيد الاستخدام بواسطة بعض أدوات النسخ الاحتياطي.

IMG وصور التقسيم

على الرغم من أن صور نظام Android لا تتعلق بالتطبيق، إلا أنها تستخدم عدة تنسيقات جديرة بالذكر:

  • نظام.img: قسم النظام للقراءة فقط والذي يحتوي على إطار عمل Android والتطبيقات المثبتة مسبقًا
  • boot.img: يحتوي على نواة Linux وقرص الذاكرة الأولي
  • بائع.img: برامج التشغيل والبرامج الثابتة الخاصة بالأجهزة
  • super.img: حاوية التقسيم الديناميكي المستخدمة في الأجهزة الحديثة (Android 10+)

تنسيق جدول المقارنة

فيما يلي مرجع سريع لمقارنة تنسيقات توزيع التطبيقات الرئيسية:

  • APK: ملف واحد، قابل للتثبيت مباشرة، عالمي (جميع التكوينات متضمنة)، حجم أكبر
  • تنسيق النشر أب:، غير قابل للتثبيت مباشرة، ويتطلب المعالجة بواسطة متجر Play
  • حاوية اكس ايه بي كيه: (APK + OBB/splits)، تتطلب التثبيت أو الاستخراج، تستخدم بواسطة APKPure
  • حاوية ملفات APK: (ملفات APK مقسمة)، بتنسيق Bundletool، تتطلب التثبيت أو الدمج
  • تتطلب حاوية APKM: (ملفات APK المقسمة)، بتنسيق APKMirror، أداة التثبيت الخاصة بها

اختيار الأداة الصحيحة

اعتمادًا على التنسيق الذي تعمل به، هناك أدوات مختلفة مناسبة:

  • هل لديك XAPK؟ استخدم محول XAPK إلى APK لاستخراج ملف APK القابل للتثبيت
  • هل لديك AAB؟ استخدم محول AAB إلى APK لإنشاء ملف APK عالمي
  • هل قمت بتقسيم ملفات APK (APKS)؟ استخدم APKS لدمج APK للجمع بينهما
  • هل تحتاج إلى التحقق من APK؟ استخدم أداة التحقق من APK للتحقق من التوقيعات
  • هل تحتاج إلى ملفات OBB من XAPK؟ استخدم مستخرج OBB الخاص بنا لتفريغ ملفات التوسيع

ما هو تنسيق حزمة Android الذي يجب عليك استخدامه؟

يعكس تنوع تنسيقات الملفات لنظام Android البيئي تطور النظام الأساسي من ملفات APK البسيطة ذات الملف الواحد إلى أنظمة التسليم المعيارية المتطورة. يوجد كل تنسيق لحل مشكلة معينة: تعمل ملفات AAB على تقليل أحجام التنزيل، وتعمل ملفات XAPK على تبسيط توزيع التطبيقات متعددة الملفات، وتتعامل ملفات OBB مع بيانات الألعاب الكبيرة، كما تعمل ملفات APK المقسمة على تمكين التحسين الخاص بالجهاز.

بمجرد فهم هذه التنسيقات، يمكنك التعامل مع أي حزمة Android تقوم بتشغيلها، سواء كنت تقوم بتحميل التطبيقات بشكل جانبي، أو تقوم بعمل نسخة احتياطية لجهازك، أو تقوم بتطوير تطبيقاتك الخاصة. الفكرة الرئيسية هي أن معظم هذه التنسيقات هي في النهاية حاويات تحتوي على ملفات APK بتكوينات مختلفة، وباستخدام الأدوات المناسبة، يمكنك دائمًا استخراج ما تحتاجه.

تم تصميمها وتوثيقها بواسطة Mst Shaefale المطور الرئيسي ومهندس حزم Android • تم التحقق منه على Android 12–15

يحتفظ Mst Shaefale بدمج XAPK/APKS من جانب العميل، ومحلل البيانات الثنائية، وأدوات توقيع APK v1+v2 في xapktoapk.com. اكتشاف أمر قديم أو تغيير نظام التشغيل؟ أرسل مذكرة تحريرية.