Overview
Modern Android apps often use Split APK format, distributing separate files for different architectures, screen densities, and languages. XAPK compilation packages all these files into a single installable archive.What is XAPK?
XAPK (Extended APK) is a packaging format that bundles:- Base APK: Core application logic
- Split APKs: Architecture-specific, density-specific, and language-specific modules
- manifest.json: Metadata describing the package structure
- OBB files (optional): Additional game data
.xapk file (actually a ZIP archive).
XAPK is an open format created by APKPure. It’s supported by multiple installers including SAI, APKPure App, and APKMirror Installer.
Why Split APKs Need XAPK
Split APKs cannot be installed directly because:- Multiple files: Android Package Manager expects a single installable unit
- Dependencies: Split APKs have interdependencies that must be resolved
- Installation order: Base APK must install first, then splits
- Bundling all APK files together
- Providing metadata for installers
- Ensuring correct installation order
You can detect Split APKs when
pm path returns multiple package paths.Compilation Process
APK Extractor compiles XAPK files through these steps:1. Detect Split APK
2. Extract All APK Files in Parallel
3. Generate manifest.json
The manifest describes the XAPK package structure:4. Compress into ZIP Archive
manifest.json Structure
Here’s an example manifest for a Split APK:Field Descriptions
| Field | Description | Example |
|---|---|---|
xapk_version | XAPK format version | 2 |
package_name | Android package identifier | com.example.app |
name | Display name (usually same as package) | com.example.app |
version_code | Integer version code | 123456 |
version_name | Human-readable version | 2.5.0 |
min_sdk_version | Minimum Android SDK | 21 |
target_sdk_version | Target Android SDK | 34 |
split_apks | Array of APK files in package | See above |
expansions | OBB files (usually empty) | [] |
Installing XAPK Files
XAPK files can be installed using:SAI (Split APKs Installer)
Recommended installer - Open source, no ads, supports Android 5.0+- GitHub: github.com/Aefyr/SAI
- Features: Batch install, root/non-root modes, backup support
APKPure App
Official installer from APKPure (creator of XAPK format)- Download: apkpure.com
- Features: Built-in app store, automatic updates
APKMirror Installer
Trusted installer from APKMirror team- Download: apkmirror.com/apk/apkmirror/apkmirror-installer
- Features: APK splitting, bundle conversion
Progress Tracking
The compilation process uses Server-Sent Events (SSE) for real-time progress updates:Progress Stages
| Progress | Stage | Description |
|---|---|---|
| 5% | Getting paths | Query device for APK locations |
| 10% | Extracting | Pull all APK files from device |
| 10-60% | File extraction | Progress per file (parallel) |
| 65% | Package info | Query version and SDK info |
| 70% | Manifest creation | Generate manifest.json |
| 80% | Compression | ZIP all files |
| 95% | Ready | XAPK ready for download |
The progress bar updates in real-time as each APK file finishes extracting.
Error Handling
Common Issues
Single APK detected
Single APK detected
If the app is not a Split APK:Solution: Use the regular APK extraction feature instead.
Extraction failed
Extraction failed
If APK files cannot be pulled from device:Solution: Check USB connection, restart ADB, or re-enable USB debugging.
Compression failed
Compression failed
If ZIP creation fails:Solution: Ensure sufficient disk space in temp directory.
Download API
After compilation, download the XAPK:Performance Optimizations
- Parallel extraction: All APK files pull simultaneously
- Streaming download: Files stream directly without buffering
- Auto cleanup: Temp files deleted immediately after use
- Progress feedback: Real-time SSE updates prevent UI freezing
- Timeout handling: 120s timeout per APK file for large apps
