قم بسحب وإسقاط حزمة .APKM هنا
أو انقر لتحديد أرشيف مقسم بتنسيق .apkm أو .apks أو .zip
معالجة محلية للمتصفح بنسبة 100% • توزيع معلومات json وتقسيم ملفات APKداخل بنية حاوية APKM
عندما ينشر المطورون حزمة تطبيقات Android (.aab) على Google Play، لا تتلقى الأجهزة سوى ملفات APK المقسمة المخصصة لأجهزتهم. تقوم منصات الأرشفة التابعة لجهات خارجية، مثل APKMirror، بتجميع تلك الانقسامات المعيارية في حزمة .apkm جنبًا إلى جنب مع واصف JSON المسمى info.json.
- التحقق من البايت السحري للرأس: يتحقق مما إذا كان .apkm يستخدم إطار PKZIP القياسي (0x504B0304) أو رأس دفق v2 مشفر.
- تحليل بيان info.json: يستخرج اسم الحزمة (pname)، ورمز الإصدار، والحد الأدنى لمستوى Android SDK، وبنيات وحدة المعالجة المركزية المدعومة.
- إعادة التعبئة القياسية .apks بنقرة واحدة: يحول حاويات .apkm غير المشفرة إلى أرشيفات .apks ZIP عالمية متوافقة مع SAI وbundletool ودمج APK سبليت الرئيسي.
المرجع الفني: تحويل حزم APKM إلى ملفات APK مستقلة
ملف .apkm ليس حزمة Android مجمعة واحدة - بل هو أرشيف متعدد الأجزاء يحتوي على وحدة base.apk الأساسية إلى جانب تقسيمات التكوين المنفصلة لمجموعات تعليمات وحدة المعالجة المركزية (split_config.arm64_v8a.apk، split_config.armeabi_v7a.apk، وكثافات بكسل الشاشة (split_config.xxhdpi.apk، split_config.xxxhdpi.apk، وموارد السلسلة المترجمة (split_config.en.apk.) نظرًا لأن مثبت الحزمة الافتراضي لنظام Android (PackageInstaller) لا يقبل سوى ملف .apk متجانس واحد عند التحميل الجانبي من مدير الملفات، فإن النقر على ملف .apkm مباشرة على هاتفك يؤدي إلى خطأ ملف غير معروف)).
حتى إذا قمت باستخراج base.apk من أرشيف .apkm وحاولت تثبيته بنفسه على Android 13 أو 14 أو 15، فهناك عائقان فنيان يمنعان التطبيق من العمل:
- تنفيذ تقسيم البيان الثنائي (isSplitRequired="true"): داخل AndroidManifest.xml الثنائي المترجم لـ base.apk، تحمل علامة <application> السمة المنطقية android:isSplitRequired="true" (معرف مورد السمة 0x01010591). عندما يرى PackageManagerService لنظام Android هذه العلامة أثناء تثبيت APK واحد، فإنه يتم إحباطه على الفور مع INSTALL_FAILED_MISSING_SPLIT.
- المكتبات الأصلية المنفصلة وموارد الكثافة: جميع مكتبات C/C++ المشتركة المجمعة (lib/arm64-v8a/*.so) ورسومات واجهة المستخدم عالية الدقة موجودة في ملفات split_config.*.apk المصاحبة. بدون دمج هذه الإدخالات في الأرشيف الأساسي وتحديث resources.arsc، يتعطل التطبيق عند التشغيل باستخدام java.lang.UnsatisfiedLinkError أو Resources$NotFoundException.
- تبدأ أرشيفات تدفقات APKM المستندة إلى ZIP مقابل المشفرة: القياسية .apkm بتوقيع PKZIP ذو 4 بايت (50 4B 03 04) وتتضمن ملف info.json في الجذر. ومع ذلك، تستخدم بعض تنزيلات APKMirror الأحدث تنسيقًا مشفرًا مخصصًا (الرأس السحري 02 ...) مصممًا حصريًا للمثبت الخاص بها. يقوم محللنا بفحص أول 16 بايت من ملفك على الفور في ذاكرة المتصفح: إذا كان ملف .apkm قياسيًا يعتمد على ZIP، فيمكنك فك ضغط جميع الانقسامات أو تصدير أرشيف .apks نظيف هنا، ثم قم بإسقاط هذا الأرشيف في الصفحة الرئيسية دمج XAPK وSplit APK الخاص بنا لتجميع ملف .apk واحد بتوقيع v1+v2.
| ملف APKM الداخلي | الغرض من تسليم حزمة تطبيقات Android | هل يلزم التثبيت المستقل؟ |
|---|---|---|
| info.json | اسم حزمة تسجيل واصف بيانات JSON التعريفية، versioncode، min_api، وواجهات ABI المستهدفة | لا (البيانات التعريفية فقط؛ تمت إزالتها أثناء دمج APK) |
| base.apk | رمز بايت DEX الأساسي (classes.dex) وAndroidManifest.xml الأساسي والموارد الأساسية | نعم (الحزمة الأساسية الإلزامية) |
| split_config.arm64_v8a.apk | المكتبات المشتركة C/C++ الأصلية لـ ARM 64 بت (lib/arm64-v8a/*.so) | نعم (مطلوب على الهواتف الحديثة 64 بت) |
| split_config.xxhdpi.apk | أيقونات واجهة المستخدم عالية الكثافة والصور النقطية ورسومات التخطيط (320dpi–640dpi) | نعم (يمنع فقدان الأعطال القابلة للرسم) |
| split_config.en.apk | جداول سلسلة مترجمة تم تجميعها للغة النظام الخاصة بالمستخدم | موصى به (يضمن عرض تسميات نص واجهة المستخدم بشكل صحيح) |