5.0 KiB
SDK Size Optimization
Reduce mobile app binary size when integrating Zoom Meeting SDK or Video SDK on iOS and Android.
Overview
Zoom SDKs add significant size to mobile apps. This guide covers Zoom-recommended techniques from the official developer forum and blog to minimize the impact on your app's download size.
Skills Needed
- zoom-meeting-sdk (iOS, Android)
- zoom-video-sdk (iOS, Android)
SDK Size Reference
Meeting SDK
| Platform | Configuration | Size |
|---|---|---|
| iOS | Universal (all architectures) | ~107 MB |
| Android | arm64-v8a + armeabi-v7a | ~97-108 MB |
| Android | arm64-v8a only | ~71 MB |
| Android | armeabi-v7a only | ~47 MB |
Video SDK
| Platform | Size |
|---|---|
| iOS/Android | ~75 MB |
Android: Zoom-Recommended Methods
1. ABI Filtering (Official Recommendation)
This is the primary method recommended by Zoom to reduce APK size. Filter to only the CPU architectures you need.
// build.gradle (app module)
android {
defaultConfig {
ndk {
// Option 1: Modern devices only (smallest size)
abiFilters 'arm64-v8a'
// Option 2: Broader device support
// abiFilters 'arm64-v8a', 'armeabi-v7a'
}
}
}
Size Impact (from Zoom Dev Forum):
| Configuration | APK Size |
|---|---|
| No Zoom SDK | ~11 MB |
| arm64-v8a + armeabi-v7a | ~97 MB |
| arm64-v8a only | ~71 MB |
| armeabi-v7a only | ~47 MB |
Note: Most modern Android devices (2017+) use arm64-v8a. Only include armeabi-v7a if you need to support older 32-bit devices.
2. Android App Bundle (AAB)
Use Android App Bundles for Play Store distribution. Google Play automatically generates device-specific APKs:
android {
bundle {
abi {
enableSplit = true
}
}
}
Users only download the architecture matching their device, reducing download size.
iOS: Zoom-Recommended Methods
App Store App Thinning (Automatic)
iOS App Store automatically applies App Thinning:
- Delivers only the architecture slice needed for each device
- No manual configuration required
- Happens automatically when distributing through App Store
Verify in Xcode: Window → Organizer → Archives → App Thinning Report
What Does NOT Work
Zoom has confirmed the following approaches are NOT supported:
No Feature/Module Exclusion
From Zoom Developer Forum (August 2024):
"There are no new updates regarding reducing size of SDK"
- Cannot remove virtual background module
- Cannot remove screen sharing module
- Cannot exclude any bundled features
- All features are compiled together
No Dynamic Feature Module Support
Zoom has confirmed they do NOT support Android Dynamic Feature Modules:
- Resource linking errors occur
Resources$NotFoundExceptionat runtime- Community workarounds are unsupported and may break
ProGuard/R8 Not Fully Supported
Warning: ProGuard/R8 causes crashes with Zoom SDK, even with Zoom's provided rules. Users report runtime crashes. Use at your own risk.
Bitcode Not Supported (iOS)
Zoom SDK does NOT support iOS Bitcode due to internal dependencies. However, Bitcode is no longer required by Apple (Xcode 15+).
Alternative Approaches
If SDK size is prohibitive for your use case:
1. Web SDK in WebView
Load the Web SDK in a native WebView instead of using the native SDK:
// iOS
let webView = WKWebView(frame: view.bounds)
webView.load(URLRequest(url: URL(string: "https://your-app.com/zoom-meeting")!))
// Android
webView.loadUrl("https://your-app.com/zoom-meeting")
Trade-offs:
- No native SDK size impact
- Reduced native feature access
- Requires WebView setup and web hosting
2. Deep Link to Zoom App
Open meetings in the native Zoom app instead of embedding:
// iOS
if let url = URL(string: "zoomus://zoom.us/join?confno=\(meetingNumber)") {
UIApplication.shared.open(url)
}
// Android
val intent = Intent(Intent.ACTION_VIEW,
Uri.parse("zoomus://zoom.us/join?confno=$meetingNumber"))
startActivity(intent)
Trade-offs:
- Zero SDK size impact
- Requires Zoom app to be installed
- Less integrated user experience
Summary
| Platform | Recommended Method | Expected Savings |
|---|---|---|
| Android | abiFilters 'arm64-v8a' |
~26 MB |
| Android | App Bundle (AAB) | Automatic per-device |
| iOS | App Thinning (automatic) | Automatic per-device |
Key Limitation: Zoom does not currently offer modular SDK downloads or feature exclusion. The SDK includes all features bundled together.
Resources
- Zoom Blog - Reduce APK Size: https://developers.zoom.us/blog/reduce-apk-size-zoom-meeting-sdk-android/
- Zoom Developer Forum - SDK Size Discussion: https://devforum.zoom.us/t/reducing-the-size-of-the-zoom-meeting-sdk-ios-android/94302
- Android ABI Management: https://developer.android.com/ndk/guides/abis