ลากและวาง .APKM Bundle ที่นี่
หรือคลิกเพื่อเลือกไฟล์แยกไฟล์ .apkm, .apks หรือ .zip
การประมวลผลเบราว์เซอร์ท้องถิ่น 100% • แยกวิเคราะห์ info.json และ Split 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 และ หลักแยก 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 แต่อุปสรรคทางเทคนิคสองประการที่ทำให้แอปไม่ทำงาน:
- การบังคับใช้การแยกไบนารี Manifest (isSplitRequired="true"): ภายในไบนารี่ที่คอมไพล์แล้ว AndroidManifest.xml ของ base.apk แท็ก <application> มีแอตทริบิวต์บูลีน android:isSplitRequired="true" (รหัสทรัพยากรแอตทริบิวต์ 0x01010591) เมื่อ PackageManagerService ของ Android เห็นแฟล็กนี้ระหว่างการติดตั้ง APK เดียว มันจะยกเลิก INSTALL_FAILED_MISSING_SPLIT ทันที
- ไลบรารีดั้งเดิมที่แยกจากกันและทรัพยากรความหนาแน่น: ไลบรารีที่ใช้ร่วมกัน C/C++ ที่คอมไพล์แล้วทั้งหมด (lib/arm64-v8a/*.so) และ UI ที่มีความละเอียดสูงที่ดึงออกมาได้จะอยู่ในไฟล์ split_config.*.apk ที่แสดงร่วม หากไม่รวมรายการเหล่านั้นเข้ากับไฟล์เก็บถาวรฐานและอัปเดต resources.arsc แอปพลิเคชันจะขัดข้องเมื่อเปิดใช้งานด้วย java.lang.UnsatisfiedLinkError หรือ Resources$NotFoundException
- ไฟล์เก็บถาวร สตรีม APKM แบบ ZIP และแบบเข้ารหัส: Standard .apkm เริ่มต้นด้วยลายเซ็น PKZIP ขนาด 4 ไบต์ (50 4B 03 04) และรวมไฟล์ info.json ที่ราก อย่างไรก็ตาม การดาวน์โหลด APKMirror ที่ใหม่กว่าบางรายการใช้รูปแบบ wrapper ที่เข้ารหัสแบบกำหนดเอง (ส่วนหัวมายากล 02 ...) ซึ่งออกแบบมาสำหรับโปรแกรมติดตั้งที่เป็นกรรมสิทธิ์โดยเฉพาะ ตัววิเคราะห์ของเราจะตรวจสอบไฟล์ 16 ไบต์แรกของคุณทันทีในหน่วยความจำเบราว์เซอร์: หากเป็น .apkm ที่ใช้ ZIP มาตรฐาน คุณสามารถแตกการแยกไฟล์ทั้งหมดหรือส่งออกไฟล์เก็บถาวร .apks ที่ชัดเจนได้ที่นี่ จากนั้นวางไฟล์เก็บถาวรนั้นลงใน หน้าแรก XAPK & Split APK Merger ของเราเพื่อคอมไพล์ไฟล์ .apk ที่ลงชื่อ v1+v2 เดี่ยว
| ไฟล์ภายใน APKM | วัตถุประสงค์ในการจัดส่ง Android App Bundle | จำเป็นสำหรับการติดตั้งแบบสแตนด์อโลนหรือไม่? |
|---|---|---|
| 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 | ไอคอน UI ความหนาแน่นสูง บิตแมป และโครงร่างที่วาดได้ (320dpi–640dpi) | ใช่ (ป้องกันการล่มที่สามารถวาดได้หายไป) |
| split_config.en.apk | ตารางสตริงที่แปลเป็นภาษาท้องถิ่นที่คอมไพล์สำหรับภาษาระบบของผู้ใช้ | แนะนำ (ตรวจสอบให้แน่ใจว่าป้ายกำกับข้อความ UI แสดงผลอย่างถูกต้อง) |