بستهای APKM. را بکشید و رها کنید
یا برای انتخاب یک آرشیو تقسیم apkm، .apks یا zip.. کلیک کنید
پردازش 100٪ مرورگر محلی • تجزیه و تحلیل info.json و تقسیم فایلهای APKداخل معماری کانتینر APKM
وقتی توسعهدهندگان یک Android App Bundle (.aab) را در Google Play منتشر میکنند، دستگاهها فقط APKهای تقسیمشده متناسب با سختافزارشان را دریافت میکنند. پلتفرمهای بایگانی شخص ثالث مانند APKMirror این بخشهای مدولار را در یک بسته .apkm در کنار یک توصیفگر JSON به نام info.json بستهبندی میکنند.
- تأیید بایت جادویی هدر: بررسی می کند که آیا .apkm از قاب بندی استاندارد PKZIP (0x504B0304) یا سرصفحه جریان v2 رمزگذاری شده استفاده می کند.
- تجزیه مانیفست info.json: نام بسته (pname)، کد نسخه، حداقل سطح Android SDK و معماریهای CPU پشتیبانی شده را استخراج میکند.
- بسته بندی مجدد استاندارد .apks با یک کلیک: ظروف .apkm رمزگذاری نشده را به بایگانی ZIP جهانی .apks تبدیل می کند که با SAI، bundletool و ادغام اصلی Split APK ما سازگار است.
مرجع فنی: تبدیل بستههای APKM به فایلهای APK مستقل
یک .apkm فایل یک بسته Androidی کامپایل شده منفرد نیست - یک آرشیو چند قسمتی است که حاوی یک اولیه است base.apk ماژول در کنار تقسیم های پیکربندی جداگانه برای مجموعه های دستورالعمل CPU (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 Merger خود رها کنید تا یک .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 | کتابخانه های مشترک 64 بیتی C/C++ ARM (lib/arm64-v8a/*.so) | بله (در گوشی های مدرن 64 بیتی مورد نیاز است) |
| split_config.xxhdpi.apk | نمادهای رابط کاربری با چگالی بالا، نقشههای بیتی و طرحبندیهای قابل ترسیم (320dpi–640dpi) | بله (از خرابی های قابل ترسیم جلوگیری می کند) |
| split_config.en.apk | جداول رشته های محلی سازی شده برای زبان سیستم کاربر | توصیه میشود (اطمینان میدهد که برچسبهای نوشتاری رابط کاربری به درستی ارائه میشوند) |